From 4d6771b9b1d89f0b49625795a92267d6e59dd064 Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Tue, 7 Jan 2020 19:34:16 +0800 Subject: fix corner case in `collapse_vars` (#3672) fixes #3671 --- lib/compress.js | 2 +- test/compress/collapse_vars.js | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/compress.js b/lib/compress.js index 7e55da5a..03587359 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1367,7 +1367,7 @@ merge(Compressor.prototype, { if (replace_all) return false; return node instanceof AST_SymbolRef && !node.is_declared(compressor) - && !(parent instanceof AST_Assign && parent.left === node); + && !(parent instanceof AST_Assign && parent.operator == "=" && parent.left === node); } function in_conditional(node, parent) { diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js index a5975279..c3832d43 100644 --- a/test/compress/collapse_vars.js +++ b/test/compress/collapse_vars.js @@ -7464,3 +7464,30 @@ issue_3651: { } expect_stdout: "PASS" } + +issue_3671: { + options = { + collapse_vars: true, + } + input: { + var a = 0; + try { + a++; + A += 0; + a = 1 + a; + } catch (e) { + console.log(a); + } + } + expect: { + var a = 0; + try { + a++; + A += 0; + a = 1 + a; + } catch (e) { + console.log(a); + } + } + expect_stdout: "1" +} -- cgit v1.2.3