diff options
Diffstat (limited to 'test/compress/functions.js')
-rw-r--r-- | test/compress/functions.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/test/compress/functions.js b/test/compress/functions.js index 4a192d59..c1522e2e 100644 --- a/test/compress/functions.js +++ b/test/compress/functions.js @@ -3928,3 +3928,89 @@ preserve_binding_2: { } expect_stdout: "PASS" } + +issue_3770: { + options = { + inline: true, + reduce_vars: true, + side_effects: true, + unused: true, + } + input: { + (function() { + function f(a, a) { + var b = function() { + return a || "PASS"; + }(); + console.log(b); + } + f("FAIL"); + })(); + } + expect: { + (function() { + b = a || "PASS", + console.log(b); + var a, b; + })(); + } + expect_stdout: "PASS" +} + +issue_3771: { + options = { + inline: true, + reduce_vars: true, + side_effects: true, + toplevel: true, + unused: true, + } + input: { + try { + function f(a) { + var a = f(1234); + } + f(); + } catch (e) { + console.log("PASS"); + } + } + expect: { + try { + (function f(a) { + f(); + })(); + } catch (e) { + console.log("PASS"); + } + } + expect_stdout: "PASS" +} + +issue_3772: { + options = { + collapse_vars: true, + dead_code: true, + inline: true, + reduce_vars: true, + side_effects: true, + toplevel: true, + unused: true, + } + input: { + var a = "PASS"; + function f() { + return a; + } + var b = f(); + function g() { + console.log(f()); + } + g(); + } + expect: { + var a = "PASS"; + console.log(a); + } + expect_stdout: "PASS" +} |