fix corner case in merge_vars (#4402)

fixes #4401
This commit is contained in:
Alex Lam S.L
2020-12-18 04:20:43 +00:00
committed by GitHub
parent 1b646d3bc4
commit d2c50ace99
3 changed files with 31 additions and 2 deletions

View File

@@ -4915,7 +4915,11 @@ merge(Compressor.prototype, {
argname.mark_symbol(marker, scanner);
});
}
walk_body(node, tw);
if (node instanceof AST_Arrow && node.value) {
node.value.walk(tw);
} else {
walk_body(node, tw);
}
pop();
return true;
}

View File

@@ -465,3 +465,28 @@ issue_4390: {
]
node_version: ">=4"
}
issue_4401: {
options = {
merge_vars: true,
}
input: {
(function() {
var a = (b => b(a))(console.log || a);
var c = console.log;
c && c(typeof b);
})();
}
expect: {
(function() {
var a = (b => b(a))(console.log || a);
var c = console.log;
c && c(typeof b);
})();
}
expect_stdout: [
"undefined",
"undefined",
]
node_version: ">=4"
}

View File

@@ -1011,7 +1011,7 @@ function _createExpression(recurmax, noComma, stmtDepth, canThrow) {
suffix = "})";
} else {
s.push("((" + params + ") => ");
switch (rng(4)) {
switch (rng(10)) {
case 0:
s.push('(typeof arguments != "undefined" && arguments && arguments[' + rng(3) + "])");
break;