fix corner case in unused (#4185)

fixes #4184
This commit is contained in:
Alex Lam S.L
2020-10-05 11:59:03 +01:00
committed by GitHub
parent b7a57fc69d
commit b91a2459c0
2 changed files with 38 additions and 1 deletions

View File

@@ -5133,6 +5133,13 @@ merge(Compressor.prototype, {
return rhs.right;
}
function cross_scope(def, sym) {
do {
if (def === sym) return false;
if (sym instanceof AST_Scope) return true;
} while (sym = sym.parent_scope);
}
function scan_ref_scoped(node, descend, init) {
if (node instanceof AST_Assign && node.left instanceof AST_SymbolRef) {
var def = node.left.definition();
@@ -5186,7 +5193,7 @@ merge(Compressor.prototype, {
in_use_ids[node_def.id] = true;
in_use.push(node_def);
}
if (node.scope !== node_def.scope) {
if (cross_scope(node_def.scope, node.scope)) {
var redef = node_def.redefined();
if (redef && !(redef.id in in_use_ids)) {
in_use_ids[redef.id] = true;