From fd6544b34011a30bd869d2447b744fe51d0d741f Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Wed, 18 Nov 2020 17:11:28 +0000 Subject: [PATCH] fix corner case `reduce_vars` (#4300) fixes #4297 --- lib/compress.js | 1 + test/compress/destructured.js | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/compress.js b/lib/compress.js index 49c1572d..0f1342f7 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -681,6 +681,7 @@ merge(Compressor.prototype, { && can_drop_symbol(sym) && safe_to_assign(tw, d)) { push_ref(d, sym); mark(tw, d); + if (d.single_use && left instanceof AST_Destructured) d.single_use = false; tw.loop_ids[d.id] = tw.in_loop; mark_escaped(tw, d, sym.scope, node, node.right, 0, 1); sym.fixed = d.fixed = fixed; diff --git a/test/compress/destructured.js b/test/compress/destructured.js index cebb70ae..8671d87b 100644 --- a/test/compress/destructured.js +++ b/test/compress/destructured.js @@ -1503,6 +1503,25 @@ issue_4294: { node_version: ">=6" } +issue_4297: { + options = { + reduce_vars: true, + unused: true, + } + input: { + console.log(typeof function(a) { + return { a } = a; + }(function() {})); + } + expect: { + console.log(typeof function(a) { + return { a } = a; + }(function() {})); + } + expect_stdout: "function" + node_version: ">=6" +} + issue_4298: { options = { merge_vars: true, -- 2.34.1