From 362abe0ffb54c20bfc5a2d2d60c3ca2fe5ecd76e Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Wed, 26 May 2021 15:25:07 +0100 Subject: [PATCH] enhance `unused` (#4968) --- lib/compress.js | 19 ++----------------- test/compress/default-values.js | 7 ++----- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/compress.js b/lib/compress.js index 4340c8cc..b89f4624 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -6890,25 +6890,10 @@ merge(Compressor.prototype, { node.value = node.value.transform(tt); var name = node.name.transform(trimmer); if (!name) { + if (node.name instanceof AST_Destructured) return null; var value = node.value.drop_side_effect_free(compressor); if (!value) return null; - name = node.name; - if (name instanceof AST_Destructured) { - name = name.clone(); - name[name instanceof AST_DestructuredArray ? "elements" : "properties"] = []; - if (!(value instanceof AST_Array || value.is_string(compressor) - || name instanceof AST_DestructuredObject - && (value instanceof AST_Object - || value.is_boolean(compressor) - || value.is_number(compressor)))) { - value = make_node(AST_Array, value, { - elements: [ value ], - }); - } - node.name = name; - } else { - log(name, "Side effects in default value of unused variable {name}"); - } + log(node.name, "Side effects in default value of unused variable {name}"); node.value = value; } return node; diff --git a/test/compress/default-values.js b/test/compress/default-values.js index 56fa5c95..c65ccd35 100644 --- a/test/compress/default-values.js +++ b/test/compress/default-values.js @@ -598,6 +598,7 @@ unused_var_1: { unused_var_2: { options = { + pure_getters: "strict", toplevel: true, unused: true, } @@ -609,11 +610,7 @@ unused_var_2: { }; } expect: { - var { - p: [] = [ console.log("FAIL") ], - } = { - p: [ console.log("PASS") ], - }; + console.log("PASS"); } expect_stdout: "PASS" node_version: ">=6"