diff options
-rw-r--r-- | lib/compress.js | 2 | ||||
-rw-r--r-- | test/compress/ie8.js | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js index 7c5558bd..10161337 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -4238,7 +4238,7 @@ merge(Compressor.prototype, { def(AST_Binary, function(compressor, first_in_statement) { var right = this.right.drop_side_effect_free(compressor, first_in_statement); if (!right) return this.left.drop_side_effect_free(compressor, first_in_statement); - if (lazy_op[this.operator]) { + if (lazy_op[this.operator] && !(right instanceof AST_Function)) { var node = this; if (right !== node.right) { node = this.clone(); diff --git a/test/compress/ie8.js b/test/compress/ie8.js index 1a840262..f8ce35dc 100644 --- a/test/compress/ie8.js +++ b/test/compress/ie8.js @@ -2339,3 +2339,25 @@ issue_3523_rename_ie8_toplevel: { } expect_stdout: "PASS" } + +issue_3542: { + options = { + ie8: true, + reduce_vars: true, + toplevel: true, + unused: true, + } + input: { + var a = 0; + var b = a++; + var c = b && function a() {} || b; + console.log(a); + } + expect: { + var a = 0; + a++; + (function a() {}); + console.log(a); + } + expect_stdout: "1" +} |