fix corner case in inline (#4322)

fixes #4321
This commit is contained in:
Alex Lam S.L
2020-11-28 19:48:42 +00:00
committed by GitHub
parent af1cca25bf
commit 8791f258e3
2 changed files with 35 additions and 3 deletions

View File

@@ -4609,12 +4609,13 @@ merge(Compressor.prototype, {
var len = fn.argnames.length;
if (len > 0 && compressor.option("inline") < 2) break;
if (len > self.argnames.length) break;
if (!all(self.argnames, function(argname) {
return argname instanceof AST_SymbolFunarg;
})) break;
for (var j = 0; j < len; j++) {
var arg = call.args[j];
if (!(arg instanceof AST_SymbolRef)) break;
var argname = self.argnames[j];
if (!(argname instanceof AST_SymbolFunarg)) break;
if (arg.definition() !== argname.definition()) break;
if (arg.definition() !== self.argnames[j].definition()) break;
}
if (j < len) break;
for (; j < call.args.length; j++) {

View File

@@ -1710,3 +1710,34 @@ issue_4319: {
expect_stdout: "undefined"
node_version: ">=6"
}
issue_4321: {
options = {
inline: true,
keep_fargs: "strict",
}
input: {
try {
console.log(function({}) {
return function() {
while (!console);
}();
}());
} catch (e) {
console.log("PASS");
}
}
expect: {
try {
console.log(function({}) {
return function() {
while (!console);
}();
}());
} catch (e) {
console.log("PASS");
}
}
expect_stdout: "PASS"
node_version: ">=6"
}