From 8239099902402712d8c3711f73be475e1011eb62 Mon Sep 17 00:00:00 2001 From: johnlenz Date: Tue, 11 Apr 2017 12:37:16 -0700 Subject: [PATCH] Fix change tracking in DAE ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=152846140 --- .../jscomp/DeadAssignmentsElimination.java | 4 ++-- .../jscomp/DeadAssignmentsEliminationTest.java | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java b/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java index 4370cba5fc3..b3856d5c9bf 100644 --- a/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java +++ b/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java @@ -254,7 +254,7 @@ private void tryRemoveAssignment(NodeTraversal t, Node n, Node exprRoot, n.isAssign()) { n.removeChild(rhs); n.replaceWith(rhs); - compiler.reportCodeChange(); + compiler.reportChangeToEnclosingScope(rhs); return; } @@ -307,7 +307,7 @@ private void tryRemoveAssignment(NodeTraversal t, Node n, Node exprRoot, throw new IllegalStateException("Unknown statement"); } - compiler.reportCodeChange(); + compiler.reportChangeToEnclosingScope(parent); return; } else { for (Node c = n.getFirstChild(); c != null;) { diff --git a/test/com/google/javascript/jscomp/DeadAssignmentsEliminationTest.java b/test/com/google/javascript/jscomp/DeadAssignmentsEliminationTest.java index 909ac598d9e..8a6ed8f60e1 100644 --- a/test/com/google/javascript/jscomp/DeadAssignmentsEliminationTest.java +++ b/test/com/google/javascript/jscomp/DeadAssignmentsEliminationTest.java @@ -28,11 +28,6 @@ public DeadAssignmentsEliminationTest() { super("var extern;"); } - @Override - public void setUp() { - validateAstChangeMarking(false); - } - @Override public CompilerPass getProcessor(final Compiler compiler) { return new CompilerPass() { @@ -164,7 +159,11 @@ public void testErrorHandling() { "var x; try{1;throw 1;x} finally{x=2}; x"); } - public void testDeadVarDeclarations() { + public void testDeadVarDeclarations1() { + inFunction("var x=1; x=2; x", "var x; 1; x=2; x"); + } + + public void testDeadVarDeclarations2() { inFunction("var x=1;"); inFunction("var x=1; x=2; x", "var x; 1; x=2; x"); inFunction("var x=1, y=10; x=2; x", "var x, y; 1; 10; x=2; x"); @@ -461,6 +460,9 @@ public void testIssue297h() { "};"); } + public void testInExpression0() { + inFunction("var a; return a=(a=(a=a));", "var a; return a;"); + } public void testInExpression1() { inFunction("var a; return a=(a=(a=3));", "var a; return 3;");