fix corner case in merge_vars (#4629)

fixes #4628
This commit is contained in:
Alex Lam S.L
2021-02-09 04:36:12 +00:00
committed by GitHub
parent e13d1e9969
commit fcee32527b
2 changed files with 36 additions and 2 deletions

View File

@@ -5276,8 +5276,13 @@ merge(Compressor.prototype, {
return true;
}
if (node instanceof AST_VarDef) {
if (node.value) node.value.walk(tw);
node.name.mark_symbol(node.value ? function(node) {
var assigned = node.value;
if (assigned) {
assigned.walk(tw);
} else {
assigned = segment.block instanceof AST_ForEnumeration && segment.block.init === tw.parent();
}
node.name.mark_symbol(assigned ? function(node) {
if (!(node instanceof AST_SymbolDeclaration)) return;
if (node instanceof AST_SymbolVar) {
mark(node);

View File

@@ -3183,3 +3183,32 @@ issue_4257: {
"1",
]
}
issue_4628: {
options = {
merge_vars: true,
}
input: {
(function() {
try {
console;
} finally {
var b = a;
}
for (var a in "foo");
console.log(b);
})();
}
expect: {
(function() {
try {
console;
} finally {
var b = a;
}
for (var a in "foo");
console.log(b);
})();
}
expect_stdout: "undefined"
}