From 15bf32c47eaececa5827f21a0a3b7ea228874f13 Mon Sep 17 00:00:00 2001 From: mlaval Date: Mon, 2 Nov 2015 15:34:35 +0100 Subject: [PATCH] fix(util): incorrect Symbol.iterator for es6-shim --- src/util/Symbol_iterator.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/util/Symbol_iterator.ts b/src/util/Symbol_iterator.ts index 1166062597..48b9230e1e 100644 --- a/src/util/Symbol_iterator.ts +++ b/src/util/Symbol_iterator.ts @@ -10,8 +10,18 @@ if (!root.Symbol.iterator) { } else if (root.Set && typeof new root.Set()['@@iterator'] === 'function') { // Bug for mozilla version root.Symbol.iterator = '@@iterator'; + } else if (root.Map) { + // es6-shim specific logic + let keys = Object.getOwnPropertyNames(root.Map.prototype); + for (let i = 0; i < keys.length; ++i) { + let key = keys[i]; + if (key !== 'entries' && key !== 'size' && root.Map.prototype[key] === root.Map.prototype['entries']) { + root.Symbol.iterator = key; + break; + } + } } else { - root.Symbol.iterator = '_es6shim_iterator_'; + root.Symbol.iterator = '@@iterator'; } }