|
1 // If an array with an active iterator is lengthened, the iterator visits the new elements. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 load(libdir + "iteration.js"); |
|
5 |
|
6 var arr = [0, 1]; |
|
7 var it = arr[std_iterator](); |
|
8 var ki = arr.keys(); |
|
9 var ei = arr.entries(); |
|
10 assertIteratorNext(it, 0); |
|
11 assertIteratorNext(ki, 0); |
|
12 assertIteratorNext(ei, [0, 0]); |
|
13 assertIteratorNext(it, 1); |
|
14 assertIteratorNext(ki, 1); |
|
15 assertIteratorNext(ei, [1, 1]); |
|
16 arr[2] = 2; |
|
17 arr.length = 4; |
|
18 assertIteratorNext(it, 2); |
|
19 assertIteratorNext(ki, 2); |
|
20 assertIteratorNext(ei, [2, 2]); |
|
21 assertIteratorNext(it, undefined); |
|
22 assertIteratorNext(ki, 3); |
|
23 assertIteratorNext(ei, [3, undefined]); |
|
24 assertIteratorDone(it, undefined); |
|
25 assertIteratorDone(ki, undefined); |
|
26 assertIteratorDone(ei, undefined); |