fix side_effects on substituted AST_Defun

fixes #2660
This commit is contained in:
alexlamsl 2017-12-26 21:53:26 +08:00
parent 4832bc5d88
commit 3307d5167d
2 changed files with 26 additions and 0 deletions

View File

@ -4705,6 +4705,7 @@ merge(Compressor.prototype, {
value.walk(new TreeWalker(function(node) { value.walk(new TreeWalker(function(node) {
if (node instanceof AST_SymbolRef && node.definition() === defun_def) { if (node instanceof AST_SymbolRef && node.definition() === defun_def) {
node.thedef = lambda_def; node.thedef = lambda_def;
lambda_def.references.push(node);
} }
})); }));
} else { } else {

View File

@ -1434,3 +1434,28 @@ defun_lambda_same_name: {
} }
expect_stdout: "120" expect_stdout: "120"
} }
issue_2660: {
options = {
reduce_vars: true,
toplevel: true,
side_effects: true,
unused: true,
}
input: {
var a = 2;
function f(b) {
return b && f() || a--;
}
f(1);
console.log(a);
}
expect: {
var a = 2;
(function f(b) {
return b && f() || a--;
})(1);
console.log(a);
}
expect_stdout: "1"
}