enhance collapse_vars (#4117)

This commit is contained in:
Alex Lam S.L
2020-09-16 23:35:22 +01:00
committed by GitHub
parent a9d934ab4e
commit fdf2e8c5b0
2 changed files with 9 additions and 4 deletions

View File

@@ -1458,9 +1458,15 @@ merge(Compressor.prototype, {
}
function handle_custom_scan_order(node, tt) {
// 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 case expressions first in a switch statement
// Scan first case expression only in a switch statement
if (node instanceof AST_Switch) {
node.expression = node.expression.transform(tt);
for (var i = 0; !abort && i < node.body.length; i++) {
@@ -1493,7 +1499,7 @@ merge(Compressor.prototype, {
}
if (node instanceof AST_Debugger) return true;
if (node instanceof AST_Defun) return funarg && lhs.name === node.name.name;
if (node instanceof AST_IterationStatement) return !(node instanceof AST_For);
if (node instanceof AST_DWLoop) return true;
if (node instanceof AST_LoopControl) return true;
if (node instanceof AST_Try) return true;
if (node instanceof AST_With) return true;

View File

@@ -2181,8 +2181,7 @@ issue_3515_1: {
expect: {
var c = 0;
(function() {
this[c++] = 0;
for (var key20 in !0);
for (var key20 in !(this[c++] = 0));
})();
console.log(c);
}