diff --git a/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java b/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java index 7ab0467ddb4..eeadbc697d7 100644 --- a/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java +++ b/src/com/google/javascript/jscomp/DeadAssignmentsElimination.java @@ -118,13 +118,6 @@ private void eliminateDeadAssignments(NodeTraversal t) { return; } - // Elevate all variable declarations up till the function scope - // so the liveness analysis has all variables for the process. - for (Var var : blockScope.getVarIterable()) { - checkArgument(!var.isClass()); - functionScope.declare(var.getName(), var.getNameNode(), var.getInput()); - } - // Computes liveness information first. ControlFlowGraph cfg = t.getControlFlowGraph(); liveness = @@ -242,11 +235,11 @@ private void tryRemoveAssignment(NodeTraversal t, Node n, Node exprRoot, } String name = lhs.getString(); checkState(t.getScope().isFunctionBlockScope()); - Scope functionScope = t.getScope().getParent(); - if (!functionScope.isDeclaredSloppy(name, false)) { + Scope functionBlockScope = t.getScope(); + if (!functionBlockScope.isDeclaredSloppy(name, false)) { return; } - Var var = functionScope.getVar(name); + Var var = functionBlockScope.getVar(name); if (liveness.getEscapedLocals().contains(var)) { return; // Local variable that might be escaped due to closures.