| // If an array is truncated to the left of an iterator it, it.next() returns { done: true }. |
| |
| load(libdir + "asserts.js"); |
| load(libdir + "iteration.js"); |
| |
| var arr = [0, 1, 2]; |
| var it = arr[Symbol.iterator](); |
| var ki = arr.keys(); |
| var ei = arr.entries(); |
| |
| assertIteratorNext(it, 0); |
| assertIteratorNext(it, 1); |
| assertIteratorNext(ki, 0); |
| assertIteratorNext(ki, 1); |
| assertIteratorNext(ei, [0, 0]); |
| assertIteratorNext(ei, [1, 1]); |
| arr.length = 1; |
| assertIteratorDone(it, undefined); |
| assertIteratorDone(ki, undefined); |
| assertIteratorDone(ei, undefined); |