fix corner case in unused

fixes #4556
This commit is contained in:
alexlamsl 2021-01-15 11:05:49 +08:00
parent 65d39a3702
commit 4e1411ad29
2 changed files with 23 additions and 0 deletions

View File

@ -5766,6 +5766,9 @@ merge(Compressor.prototype, {
var write_only = def.value.write_only; var write_only = def.value.write_only;
var value = def.value.drop_side_effect_free(compressor); var value = def.value.drop_side_effect_free(compressor);
if (def.value !== value) { if (def.value !== value) {
sym.references.forEach(function(node) {
if (node.fixed === sym.fixed) node.fixed = def.value;
});
def.value = null; def.value = null;
if (value) { if (value) {
AST_Node.warn("Side effects in last use of variable {name} [{file}:{line},{col}]", template(def.name)); AST_Node.warn("Side effects in last use of variable {name} [{file}:{line},{col}]", template(def.name));

View File

@ -826,3 +826,23 @@ issue_4363: {
expect_stdout: "PASS" expect_stdout: "PASS"
node_version: ">=8" node_version: ">=8"
} }
issue_4556: {
options = {
reduce_vars: true,
unused: true,
}
input: {
console.log(function() {
var a = "" + [ a++ ];
var b = [ ...a ];
}());
}
expect: {
console.log(function() {
var a;
}());
}
expect_stdout: "undefined"
node_version: ">=6"
}