diff --git a/modules/angular2/src/facade/collection.ts b/modules/angular2/src/facade/collection.ts index b76358af5e..a12feec44d 100644 --- a/modules/angular2/src/facade/collection.ts +++ b/modules/angular2/src/facade/collection.ts @@ -25,10 +25,23 @@ var createMapFromPairs: {(pairs: List): Map} = (function() { return map; } })(); +var createMapFromMap: {(m: Map): Map} = (function() { + try { + if (new Map(new Map())) { + return function createMapFromMap(m: Map): Map { return new Map(m); }; + } + } catch (e) { + } + return function createMapAndPopulateFromMap(m: Map): Map { + var map = new Map(); + m.forEach((v, k) => { map.set(k, v); }); + return map; + } +})(); export class MapWrapper { static create(): Map { return new Map(); } - static clone(m: Map): Map { return new Map(m); } + static clone(m: Map): Map { return createMapFromMap(m); } static createFromStringMap(stringMap): Map { var result = MapWrapper.create(); for (var prop in stringMap) {