aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2021-05-26 15:25:07 +0100
committerGitHub <noreply@github.com>2021-05-26 22:25:07 +0800
commit362abe0ffb54c20bfc5a2d2d60c3ca2fe5ecd76e (patch)
tree8236e7ded88cdaba4d07d8e2e6cd111dbc2007e1
parente3798d9a76704498819cc380166d62f2c8a9ff36 (diff)
downloadtracifyjs-362abe0ffb54c20bfc5a2d2d60c3ca2fe5ecd76e.tar.gz
tracifyjs-362abe0ffb54c20bfc5a2d2d60c3ca2fe5ecd76e.zip
enhance `unused` (#4968)
-rw-r--r--lib/compress.js19
-rw-r--r--test/compress/default-values.js7
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"