fix corner case in collapse_vars (#4206)

fixes #4205
This commit is contained in:
Alex Lam S.L
2020-10-12 18:30:21 +01:00
committed by GitHub
parent 4d33cb2f94
commit 9272f662c0
2 changed files with 47 additions and 2 deletions

View File

@@ -1494,14 +1494,22 @@ merge(Compressor.prototype, {
}
function handle_custom_scan_order(node, tt) {
if (!(node instanceof AST_BlockScope)) return;
// Skip (non-executed) functions
if (node instanceof AST_Scope) return node;
// Stop upon collision with block-scoped variables
if (node.variables && !node.variables.all(function(def) {
return !lvalues.has(def.name);
})) {
abort = true;
return node;
}
// Scan object only in a for-in statement
if (node instanceof AST_ForIn) {
node.object = node.object.transform(tt);
abort = true;
return node;
}
// Skip (non-executed) functions
if (node instanceof AST_Scope) return node;
// Scan first case expression only in a switch statement
if (node instanceof AST_Switch) {
node.expression = node.expression.transform(tt);