enhance collapse_vars (#4826)
This commit is contained in:
@@ -1826,6 +1826,18 @@ merge(Compressor.prototype, {
|
|||||||
can_replace = replace;
|
can_replace = replace;
|
||||||
return signal_abort(node);
|
return signal_abort(node);
|
||||||
}
|
}
|
||||||
|
// Scan but don't replace inside block scope with colliding variable
|
||||||
|
if (node instanceof AST_BlockScope
|
||||||
|
&& !(node instanceof AST_Scope)
|
||||||
|
&& !(node.variables && node.variables.all(function(def) {
|
||||||
|
return !lvalues.has(def.name);
|
||||||
|
}))) {
|
||||||
|
var replace = can_replace;
|
||||||
|
can_replace = false;
|
||||||
|
if (!handle_custom_scan_order(node, scanner)) descend(node, scanner);
|
||||||
|
can_replace = replace;
|
||||||
|
return signal_abort(node);
|
||||||
|
}
|
||||||
return handle_custom_scan_order(node, scanner);
|
return handle_custom_scan_order(node, scanner);
|
||||||
}, signal_abort);
|
}, signal_abort);
|
||||||
var multi_replacer = new TreeTransformer(function(node) {
|
var multi_replacer = new TreeTransformer(function(node) {
|
||||||
@@ -1964,13 +1976,6 @@ merge(Compressor.prototype, {
|
|||||||
}
|
}
|
||||||
// Skip (non-executed) functions
|
// Skip (non-executed) functions
|
||||||
if (node instanceof AST_Scope) return node;
|
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/of statement
|
// Scan object only in a for-in/of statement
|
||||||
if (node instanceof AST_ForEnumeration) {
|
if (node instanceof AST_ForEnumeration) {
|
||||||
node.object = node.object.transform(tt);
|
node.object = node.object.transform(tt);
|
||||||
|
|||||||
Reference in New Issue
Block a user