fix loss of context in collapse_vars & cascade (#2112)

fixes #2110
This commit is contained in:
Alex Lam S.L
2017-06-16 21:18:43 +08:00
committed by GitHub
parent 00e4f7b3c1
commit 931daa85bf
2 changed files with 65 additions and 0 deletions

View File

@@ -722,6 +722,7 @@ merge(Compressor.prototype, {
// Stop immediately if these node types are encountered
var parent = tt.parent();
if (node instanceof AST_Assign && node.operator != "=" && lhs.equivalent_to(node.left)
|| node instanceof AST_Call && lhs instanceof AST_PropAccess && lhs.equivalent_to(node.expression)
|| node instanceof AST_Debugger
|| node instanceof AST_IterationStatement && !(node instanceof AST_For)
|| node instanceof AST_SymbolRef && node.undeclared()
@@ -3349,6 +3350,7 @@ merge(Compressor.prototype, {
field = "left";
}
} else if (cdr instanceof AST_Call
&& !(left instanceof AST_PropAccess && cdr.expression.equivalent_to(left))
|| cdr instanceof AST_PropAccess
|| cdr instanceof AST_Unary && !unary_side_effects(cdr.operator)) {
field = "expression";