diff --git a/test/compress/dead-code.js b/test/compress/dead-code.js index 9612b92b..47dea154 100644 --- a/test/compress/dead-code.js +++ b/test/compress/dead-code.js @@ -505,6 +505,28 @@ return_assignment: { console.log(a); } } + function y() { + console.log("y"); + } + function test(inc) { + var counter = 0; + x = function() { + counter += inc; + if (inc < 0) throw counter; + return counter; + }; + [ f1, f2, f3, f4, f5, f6 ].forEach(function(f, i) { + try { + i += 1; + console.log("result " + f(10 * i, 100 * i, 1000 * i)); + } catch (x) { + console.log("caught " + x); + } + }); + } + var x; + test(1); + test(-1); } expect: { function f1(a, b, c) { @@ -533,7 +555,47 @@ return_assignment: { console.log(a); } } + function y() { + console.log("y"); + } + function test(inc) { + var counter = 0; + x = function() { + counter += inc; + if (inc < 0) throw counter; + return counter; + }; + [ f1, f2, f3, f4, f5, f6 ].forEach(function(f, i) { + try { + i += 1; + console.log("result " + f(10 * i, 100 * i, 1000 * i)); + } catch (x) { + console.log("caught " + x); + } + }); + } + var x; + test(1); + test(-1); } + expect_stdout: [ + "y", + "result 31", + "result 2", + "result 3", + "result 4", + "result 5", + "6", + "result 6", + "caught -1", + "caught -2", + "caught -3", + "caught -4", + "50", + "result undefined", + "60", + "caught -6", + ] } throw_assignment: { @@ -596,6 +658,24 @@ throw_assignment: { console.log(a); } } + function test(inc) { + var counter = 0; + x = function() { + counter += inc; + if (inc < 0) throw counter; + return counter; + }; + [ f1, f2, f3, f4, f5, f6, f7, f8, f9 ].forEach(function(f) { + try { + f(); + } catch (x) { + console.log("caught " + x); + } + }); + } + var x; + test(1); + test(-1); } expect: { function f1() { @@ -651,5 +731,49 @@ throw_assignment: { console.log(a); } } + function test(inc) { + var counter = 0; + x = function() { + counter += inc; + if (inc < 0) throw counter; + return counter; + }; + [ f1, f2, f3, f4, f5, f6, f7, f8, f9 ].forEach(function(f) { + try { + f(); + } catch (x) { + console.log("caught " + x); + } + }); + } + var x; + test(1); + test(-1); } + expect_stdout: [ + "caught 1", + "caught 2", + "caught 3", + "4", + "5", + "6", + "7", + "caught 7", + "8", + "caught 8", + "9", + "caught 9", + "caught -1", + "caught -2", + "caught -3", + "7", + "undefined", + "undefined", + "7", + "caught -7", + "undefined", + "caught -8", + "undefined", + "caught -9", + ]; }