fix corner case in reduce_vars (#4459)

fixes #4458
This commit is contained in:
Alex Lam S.L
2020-12-25 14:50:11 +00:00
committed by GitHub
parent a1b2735dd8
commit 95aea0e33c
2 changed files with 31 additions and 0 deletions

View File

@@ -879,6 +879,13 @@ merge(Compressor.prototype, {
pop(tw);
return true;
});
def(AST_DefaultValue, function(tw) {
this.name.walk(tw);
push(tw);
this.value.walk(tw);
pop(tw);
return true;
});
def(AST_Defun, reduce_defun);
def(AST_Do, function(tw) {
var saved_loop = tw.in_loop;

View File

@@ -1076,3 +1076,27 @@ issue_4446_2: {
expect_stdout: "PASS 42"
node_version: ">=6"
}
issue_4458: {
options = {
evaluate: true,
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
var a = "PASS";
function f(b = a = "FAIL") {
console.log(a, b);
}
f(42);
}
expect: {
var a = "PASS";
(function(b = a = "FAIL") {
console.log(a, b);
})(42);
}
expect_stdout: "PASS 42"
node_version: ">=6"
}