fix corner case in collapse_vars (#5169)

fixes #5168
This commit is contained in:
Alex Lam S.L
2021-11-13 14:18:18 +00:00
committed by GitHub
parent eaa84d32df
commit e9932e1314
2 changed files with 30 additions and 2 deletions

View File

@@ -1501,7 +1501,7 @@ merge(Compressor.prototype, {
AST_SymbolRef.DEFMETHOD("is_immutable", function() { AST_SymbolRef.DEFMETHOD("is_immutable", function() {
var def = this.redef || this.definition(); var def = this.redef || this.definition();
return def.orig.length == 1 && def.orig[0] instanceof AST_SymbolLambda; return (this.in_arg || def.orig.length == 1) && def.orig[0] instanceof AST_SymbolLambda;
}); });
AST_Node.DEFMETHOD("convert_symbol", noop); AST_Node.DEFMETHOD("convert_symbol", noop);
@@ -3369,10 +3369,10 @@ merge(Compressor.prototype, {
} }
} }
statements.length = n; statements.length = n;
CHANGED = n != len;
if (has_quit) has_quit.forEach(function(stat) { if (has_quit) has_quit.forEach(function(stat) {
extract_declarations_from_unreachable_code(compressor, stat, statements); extract_declarations_from_unreachable_code(compressor, stat, statements);
}); });
CHANGED = statements.length != len;
} }
function sequencesize(statements, compressor) { function sequencesize(statements, compressor) {

View File

@@ -3225,3 +3225,31 @@ issue_5153_object_var: {
expect_stdout: "PASS" expect_stdout: "PASS"
node_version: ">=6" node_version: ">=6"
} }
issue_5168: {
options = {
collapse_vars: true,
}
input: {
(function a({
[console.log(typeof function() {
++a;
return a;
}())]: b,
}) {
var a;
})({});
}
expect: {
(function a({
[console.log(typeof function() {
++a;
return a;
}())]: b,
}) {
var a;
})({});
}
expect_stdout: "function"
node_version: ">=6"
}