diff options
-rw-r--r-- | lib/compress.js | 1 | ||||
-rw-r--r-- | test/compress/collapse_vars.js | 34 |
2 files changed, 34 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js index 993092a0..f9cd7a41 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1040,7 +1040,6 @@ merge(Compressor.prototype, { || node instanceof AST_PropAccess && (side_effects || node.expression.may_throw_on_access(compressor)) || node instanceof AST_SymbolRef - && !(parent instanceof AST_Assign && parent.operator == "=" && parent.left === node) && (lvalues[node.name] || side_effects && may_modify(node)) || node instanceof AST_VarDef && node.value && (node.name.name in lvalues || side_effects && may_modify(node.name)) diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js index ad09edc3..4191de85 100644 --- a/test/compress/collapse_vars.js +++ b/test/compress/collapse_vars.js @@ -4433,3 +4433,37 @@ issue_2873_2: { } expect_stdout: "0 1" } + +issue_2878: { + options = { + collapse_vars: true, + sequences: true, + } + input: { + var c = 0; + (function (a, b) { + function f2() { + if (a) c++; + } + b = f2(); + a = 1; + b && b.b; + f2(); + })(); + console.log(c); + } + expect: { + var c = 0; + (function (a, b) { + function f2() { + if (a) c++; + } + b = f2(), + a = 1, + b && b.b, + f2(); + })(), + console.log(c); + } + expect_stdout: "1" +} |