]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/stress/array-iterators-next.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / array-iterators-next.js
CommitLineData
ed1e77d3
A
1// This test checks the behavior of the iterator.next methods on Array objects
2
3var testArray = [1,2,3,4,5,6]
4var keys = testArray.keys();
5var i = 0;
6while (true) {
7 var {done, value: key} = keys.next();
8 if (done)
9 break;
10 if (key !== i)
11 throw "Error: bad value: " + key;
12 i++;
13}
14
15if (testArray.length !== i)
16 throw "Error: bad value: " + i;
17
18var value = keys.next().value;
19if (value !== undefined)
20 throw "Error: bad value: " + value;
21
22var values = testArray[Symbol.iterator]();
23var i = 0;
24while (true) {
25 var {done, value} = values.next();
26 if (done)
27 break;
28 i++;
29 if (value !== i)
30 throw "Error: bad value: " + value;
31}
32
33if (testArray.length !== i)
34 throw "Error: bad value: " + i;
35
36var value = values.next().value;
37if (value !== undefined)
38 throw "Error: bad value: " + value;
39
40var values = testArray.values();
41var i = 0;
42while (true) {
43 var {done, value} = values.next();
44 if (done)
45 break;
46 i++;
47 if (value !== i)
48 throw "Error: bad value: " + value;
49}
50
51if (testArray.length !== i)
52 throw "Error: bad value: " + i;
53
54var value = values.next().value;
55if (value !== undefined)
56 throw "Error: bad value: " + value;
57
58var entries = testArray.entries();
59var i = 0;
60do {
61 var {done, value: entry} = entries.next();
62 if (done)
63 break;
64 var [key, value] = entry;
65 if (value !== testArray[key])
66 throw "Error: bad value: " + value + " " + testArray[key];
67 if (key !== i)
68 throw "Error: bad value: " + key;
69 i++
70 if (value !== i)
71 throw "Error: bad value: " + value + " " + i;
72} while (!done);
73
74if (testArray.length !== i)
75 throw "Error: bad value: " + i;
76
77var value = entries.next().value;
78if (value !== undefined)
79 throw "Error: bad value: " + value;
80
81var entries = testArray.entries();
82var i = 0;
83do {
84 var {done, value: entry} = entries.next();
85 if (done)
86 break;
87 var [key, value] = entry;
88 if (value !== testArray[key])
89 throw "Error: bad value: " + value + " " + testArray[key];
90 if (key !== i)
91 throw "Error: bad value: " + key;
92 i++
93 if (i % 2 == 0)
94 testArray[i] *= 2;
95 if (i < 4)
96 testArray.push(testArray.length)
97 if (i == 4)
98 delete testArray[4]
99 if (i == 5)
100 testArray[4] = 5
101} while (!done);
102
103if (testArray.length !== i)
104 throw "Error: bad value: " + i;
105
106var value = entries.next().value;
107if (value !== undefined)
108 throw "Error: bad value: " + value;