fix compound assignments

This commit is contained in:
alexlamsl 2017-05-04 18:06:15 +08:00
parent f605e9efcf
commit 5d1a291544
2 changed files with 21 additions and 1 deletions

View File

@ -688,7 +688,8 @@ merge(Compressor.prototype, {
}
// Stop immediately if these node types are encountered
var parent = tt.parent();
if (node instanceof AST_Debugger
if (node instanceof AST_Assign && node.operator != "=" && lhs.equivalent_to(node.left)
|| node instanceof AST_Debugger
|| node instanceof AST_IterationStatement && !(node instanceof AST_For)
|| node instanceof AST_SymbolRef && node.undeclared()
|| node instanceof AST_Try

View File

@ -2167,3 +2167,22 @@ lvalues_def: {
}
expect_stdout: true
}
compound_assignment: {
options = {
collapse_vars: true,
}
input: {
var a;
a = 1;
a += a + 2;
console.log(a);
}
expect: {
var a;
a = 1;
a += a + 2;
console.log(a);
}
expect_stdout: "4"
}