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