From d308e55e127386ad789e0aad51bfaa203fee06cb Mon Sep 17 00:00:00 2001 From: Marc Laval Date: Fri, 22 May 2015 12:42:24 +0200 Subject: [PATCH] fix(collection): new Map(iterable) is not supported (Safari) --- modules/angular2/src/facade/collection.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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) {