enhance unused (#4968)
This commit is contained in:
@@ -6890,25 +6890,10 @@ merge(Compressor.prototype, {
|
|||||||
node.value = node.value.transform(tt);
|
node.value = node.value.transform(tt);
|
||||||
var name = node.name.transform(trimmer);
|
var name = node.name.transform(trimmer);
|
||||||
if (!name) {
|
if (!name) {
|
||||||
|
if (node.name instanceof AST_Destructured) return null;
|
||||||
var value = node.value.drop_side_effect_free(compressor);
|
var value = node.value.drop_side_effect_free(compressor);
|
||||||
if (!value) return null;
|
if (!value) return null;
|
||||||
name = node.name;
|
log(node.name, "Side effects in default value of unused variable {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}");
|
|
||||||
}
|
|
||||||
node.value = value;
|
node.value = value;
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
|
|||||||
@@ -598,6 +598,7 @@ unused_var_1: {
|
|||||||
|
|
||||||
unused_var_2: {
|
unused_var_2: {
|
||||||
options = {
|
options = {
|
||||||
|
pure_getters: "strict",
|
||||||
toplevel: true,
|
toplevel: true,
|
||||||
unused: true,
|
unused: true,
|
||||||
}
|
}
|
||||||
@@ -609,11 +610,7 @@ unused_var_2: {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
expect: {
|
expect: {
|
||||||
var {
|
console.log("PASS");
|
||||||
p: [] = [ console.log("FAIL") ],
|
|
||||||
} = {
|
|
||||||
p: [ console.log("PASS") ],
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
node_version: ">=6"
|
node_version: ">=6"
|
||||||
|
|||||||
Reference in New Issue
Block a user