|
1 // Array iterators reflect changes to elements of the underlying array. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 load(libdir + "iteration.js"); |
|
5 |
|
6 var arr = [0, 1, 2]; |
|
7 var it = arr[std_iterator](); |
|
8 arr[0] = 1000; |
|
9 arr[2] = 2000; |
|
10 assertIteratorNext(it, 1000); |
|
11 assertIteratorNext(it, 1); |
|
12 assertIteratorNext(it, 2000); |
|
13 assertIteratorDone(it, undefined); |
|
14 |
|
15 // test that .keys() and .entries() have the same behaviour |
|
16 |
|
17 arr = [0, 1, 2]; |
|
18 var ki = arr.keys(); |
|
19 var ei = arr.entries(); |
|
20 arr[0] = 1000; |
|
21 arr[2] = 2000; |
|
22 assertIteratorNext(ki, 0); |
|
23 assertIteratorNext(ei, [0, 1000]); |
|
24 assertIteratorNext(ki, 1); |
|
25 assertIteratorNext(ei, [1, 1]); |
|
26 assertIteratorNext(ki, 2); |
|
27 assertIteratorNext(ei, [2, 2000]); |
|
28 assertIteratorDone(ki, undefined); |
|
29 assertIteratorDone(ei, undefined); |