fix corner case in unused (#4277)

fixes #4276
This commit is contained in:
Alex Lam S.L
2020-11-16 18:06:00 +00:00
committed by GitHub
parent e390e7e124
commit 42e34c870a
2 changed files with 68 additions and 5 deletions

View File

@@ -5032,7 +5032,7 @@ merge(Compressor.prototype, {
}
}
var old_def, var_defs = var_defs_by_id.get(sym.id);
if (!def.value) {
if (!def.value && !(node instanceof AST_Let)) {
if (var_defs.length > 1) {
AST_Node.info("Dropping declaration of variable {name} [{file}:{line},{col}]", template(def.name));
remove(var_defs, def);
@@ -5071,13 +5071,18 @@ merge(Compressor.prototype, {
duplicated++;
}
if (side_effects.length > 0) {
if (tail.length > 0) {
side_effects.push(def.value);
def.value = make_sequence(def.value, side_effects);
} else {
if (tail.length == 0) {
body.push(make_node(AST_SimpleStatement, node, {
body: make_sequence(node, side_effects)
}));
} else if (def.value) {
side_effects.push(def.value);
def.value = make_sequence(def.value, side_effects);
} else {
def.value = make_node(AST_UnaryPrefix, def, {
operator: "void",
expression: make_sequence(def, side_effects)
});
}
side_effects = [];
}