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); 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(); pop();
return true; return true;
} }

View File

@@ -465,3 +465,28 @@ issue_4390: {
] ]
node_version: ">=4" 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 = "})"; suffix = "})";
} else { } else {
s.push("((" + params + ") => "); s.push("((" + params + ") => ");
switch (rng(4)) { switch (rng(10)) {
case 0: case 0:
s.push('(typeof arguments != "undefined" && arguments && arguments[' + rng(3) + "])"); s.push('(typeof arguments != "undefined" && arguments && arguments[' + rng(3) + "])");
break; break;