UNPKG

1.28 kBJavaScriptView Raw
1// @client-side
2
3// fix for-of for Maps and Sets in IE9 & IE10
4if (!Map.prototype[Symbol.iterator]) {
5 Map.prototype[Symbol.iterator] = function() {
6 return this.entries();
7 };
8}
9if (!Set.prototype[Symbol.iterator]) {
10 Set.prototype[Symbol.iterator] = function() {
11 return this.values();
12 };
13}
14
15[Map, Set].forEach(function(collection) {
16 if (!new collection().entries()[Symbol.iterator]) {
17 var entriesMethod = collection.prototype.entries;
18 collection.prototype.entries = function() {
19 var iterator = entriesMethod.call(this);
20 iterator[Symbol.iterator] = function() {
21 return iterator;
22 };
23 return iterator;
24 };
25 }
26 if (!new collection().keys()[Symbol.iterator]) {
27 var keysMethod = collection.prototype.keys;
28 collection.prototype.keys = function() {
29 var iterator = keysMethod.call(this);
30 iterator[Symbol.iterator] = function() {
31 return iterator;
32 };
33 return iterator;
34 };
35 }
36 if (!new collection().values()[Symbol.iterator]) {
37 var valuesMethod = collection.prototype.values;
38 collection.prototype.values = function() {
39 var iterator = valuesMethod.call(this);
40 iterator[Symbol.iterator] = function() {
41 return iterator;
42 };
43 return iterator;
44 };
45 }
46});