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