summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/for-of/array-iterator-shrinking.js
blob: 3963129ddeaa8ca1ff9079b8f50570ac4542f3b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 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);