diff --git a/modules/angular2/src/change_detection/parser/context_with_variable_bindings.js b/modules/angular2/src/change_detection/parser/context_with_variable_bindings.js index ae7fcc4894..e5de7e2b0c 100644 --- a/modules/angular2/src/change_detection/parser/context_with_variable_bindings.js +++ b/modules/angular2/src/change_detection/parser/context_with_variable_bindings.js @@ -31,8 +31,6 @@ export class ContextWithVariableBindings { } clearValues() { - for (var k of MapWrapper.keys(this.varBindings)) { - MapWrapper.set(this.varBindings, k, null); - } + MapWrapper.clearValues(this.varBindings); } } diff --git a/modules/angular2/src/facade/collection.dart b/modules/angular2/src/facade/collection.dart index 478451d823..6fe8aa9a9c 100644 --- a/modules/angular2/src/facade/collection.dart +++ b/modules/angular2/src/facade/collection.dart @@ -52,6 +52,11 @@ class MapWrapper { static void clear(Map m) { m.clear(); } + static void clearValues(Map m) { + for (var k in m.keys) { + m[k] = null; + } + } static Iterable iterable(Map m) => new IterableMap(m); static Iterable keys(Map m) => m.keys; static Iterable values(Map m) => m.values; diff --git a/modules/angular2/src/facade/collection.es6 b/modules/angular2/src/facade/collection.es6 index 70e392f8d2..30504cb605 100644 --- a/modules/angular2/src/facade/collection.es6 +++ b/modules/angular2/src/facade/collection.es6 @@ -25,6 +25,13 @@ export class MapWrapper { static size(m) {return m.size;} static delete(m, k) { m.delete(k); } static clear(m) { m.clear(); } + static clearValues(m) { + var keyIterator = m.keys(); + var k; + while (!((k = keyIterator.next()).done)) { + m.set(k.value, null); + } + } static iterable(m) { return m; } static keys(m) { return m.keys(); } static values(m) { return m.values(); }