|
1 // Iterator prototype surfaces. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 load(libdir + "iteration.js"); |
|
5 |
|
6 function test(constructor) { |
|
7 var proto = Object.getPrototypeOf(constructor()[std_iterator]()); |
|
8 var names = Object.getOwnPropertyNames(proto); |
|
9 names.sort(); |
|
10 assertDeepEq(names, [std_iterator, 'next']); |
|
11 |
|
12 var desc = Object.getOwnPropertyDescriptor(proto, 'next'); |
|
13 assertEq(desc.configurable, true); |
|
14 assertEq(desc.enumerable, false); |
|
15 assertEq(desc.writable, true); |
|
16 |
|
17 assertEq(proto[std_iterator](), proto); |
|
18 assertIteratorDone(proto, undefined); |
|
19 } |
|
20 |
|
21 //test(Array); |
|
22 test(Map); |
|
23 test(Set); |