Fix unnecessary expression replacement in Pruner.

Pruner was rewriting the paramters of ALL method calls
instead of only the ones where a paramter was prumed.

Change-Id: I4de2d488dd96aa9312dcae498eec2f20028c9170
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
index 2aa55fd..26f8f9d 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
@@ -57,6 +57,7 @@
 import com.google.gwt.thirdparty.guava.common.base.Predicate;
 import com.google.gwt.thirdparty.guava.common.base.Predicates;
 import com.google.gwt.thirdparty.guava.common.collect.ArrayListMultimap;
+import com.google.gwt.thirdparty.guava.common.collect.ImmutableList;
 import com.google.gwt.thirdparty.guava.common.collect.Iterables;
 import com.google.gwt.thirdparty.guava.common.collect.ListMultimap;
 import com.google.gwt.thirdparty.guava.common.collect.Sets;
@@ -452,7 +453,7 @@
           return true;
         }
 
-        priorParametersByMethod.putAll(x, x.getParams());
+        List<JParameter> originalParameters = ImmutableList.copyOf(x.getParams());
 
         for (int i = 0; i < x.getParams().size(); ++i) {
           JParameter param = x.getParams().get(i);
@@ -462,6 +463,11 @@
             --i;
           }
         }
+
+        if (x.getParams().size() != originalParameters.size()) {
+          // Parameters were pruned. record the original parameters for the cleanup pass.
+          priorParametersByMethod.putAll(x, originalParameters);
+        }
       }
 
       return true;