fix corner case in merge_vars (#5657)

fixes #5656
This commit is contained in:
Alex Lam S.L
2022-09-09 21:14:33 +01:00
committed by GitHub
parent 9dec612cd5
commit 88dfc49683
2 changed files with 30 additions and 3 deletions

View File

@@ -1720,10 +1720,10 @@ Compressor.prototype.compress = function(node) {
}
function find_scope(compressor) {
var level = 0, node;
while (node = compressor.parent(level++)) {
var level = 0, node = compressor.self();
do {
if (node.variables) return node;
}
} while (node = compressor.parent(level++));
}
function find_try(compressor, level, node, scope, may_throw, sync) {
@@ -6733,6 +6733,7 @@ Compressor.prototype.compress = function(node) {
var refs = references[def.id];
if (!refs) return;
if (refs.start.block !== seg.block) return references[def.id] = false;
sym.scope = find_scope(tw);
refs.push(sym);
refs.end = seg;
if (def.id in prev) {
@@ -6747,6 +6748,7 @@ Compressor.prototype.compress = function(node) {
return references[def.id] = false;
} else {
var refs = declarations.get(def.id) || [];
sym.scope = find_scope(tw);
refs.push(sym);
references[def.id] = refs;
if (!read) {