diff --git a/mozilla/js/rhino/org/mozilla/javascript/VariableTable.java b/mozilla/js/rhino/org/mozilla/javascript/VariableTable.java index ccc55a26be2..f716c33b81c 100644 --- a/mozilla/js/rhino/org/mozilla/javascript/VariableTable.java +++ b/mozilla/js/rhino/org/mozilla/javascript/VariableTable.java @@ -136,6 +136,17 @@ public class VariableTable { if (i != null) { itsVariables.removeElementAt(i.intValue()); itsVariableNames.remove(name); + Hashtable ht = new Hashtable(11); + Enumeration e = itsVariableNames.keys(); + while (e.hasMoreElements()) { + Object k = e.nextElement(); + Integer v = (Integer) itsVariableNames.get(k); + int v2 = v.intValue(); + if (v2 > i.intValue()) + v = new Integer(v2 - 1); + ht.put(k, v); + } + itsVariableNames = ht; } } diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/VariableTable.java b/mozilla/js/rhino/src/org/mozilla/javascript/VariableTable.java index ccc55a26be2..f716c33b81c 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/VariableTable.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/VariableTable.java @@ -136,6 +136,17 @@ public class VariableTable { if (i != null) { itsVariables.removeElementAt(i.intValue()); itsVariableNames.remove(name); + Hashtable ht = new Hashtable(11); + Enumeration e = itsVariableNames.keys(); + while (e.hasMoreElements()) { + Object k = e.nextElement(); + Integer v = (Integer) itsVariableNames.get(k); + int v2 = v.intValue(); + if (v2 > i.intValue()) + v = new Integer(v2 - 1); + ht.put(k, v); + } + itsVariableNames = ht; } }