]>
Commit | Line | Data |
---|---|---|
ed1e77d3 A |
1 | function test(object, name) { |
2 | return { | |
3 | object, | |
4 | name: '[object ' + name + ']' | |
5 | }; | |
6 | } | |
7 | ||
8 | function iter(object) { | |
9 | return object[Symbol.iterator](); | |
10 | } | |
11 | ||
12 | var tests = [ | |
13 | test(iter([]), "Array Iterator"), | |
14 | test(iter(new Array), "Array Iterator"), | |
15 | test([].keys(), "Array Iterator"), | |
16 | test([].entries(), "Array Iterator"), | |
17 | test(iter(new Map), "Map Iterator"), | |
18 | test((new Map()).keys(), "Map Iterator"), | |
19 | test((new Map()).entries(), "Map Iterator"), | |
20 | test(iter(new Set), "Set Iterator"), | |
21 | test((new Set()).keys(), "Set Iterator"), | |
22 | test((new Set()).entries(), "Set Iterator"), | |
23 | test(iter(new String("")), "String Iterator"), | |
24 | test(iter(""), "String Iterator"), | |
25 | ]; | |
26 | ||
27 | function check(actual, expected) { | |
28 | if (actual !== expected) | |
29 | throw new Error('bad value: ' + actual); | |
30 | } | |
31 | ||
32 | for (var { object, name } of tests) { | |
33 | check(object.toString(), name); | |
34 | check(Object.prototype.toString.call(object), name); | |
35 | } |