diff options
-rw-r--r-- | lib/compress.js | 1 | ||||
-rw-r--r-- | test/compress/destructured.js | 19 |
2 files changed, 20 insertions, 0 deletions
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, |