array-iterator-changing.js (747B)
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[Symbol.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);