]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/stress/set-iterators-next.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / set-iterators-next.js
1 // This test checks the behavior of the iterator.next methods on Set objects
2
3 var testArray = [1,2,3,4,5,6]
4 var testSet = new Set();
5 for (var [key, value] of testArray.entries()) {
6 testSet.add(value);
7 }
8 var keys = testSet.keys();
9 var i = 0;
10 while (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
19 if (testSet.size !== i)
20 throw "Error: bad value: " + i;
21
22 var value = keys.next().value;
23 if (value !== undefined)
24 throw "Error: bad value: " + value;
25
26 var values = testSet.values();
27 var i = 0;
28 while (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
37 if (testSet.size !== i)
38 throw "Error: bad value: " + i;
39
40 var value = values.next().value;
41 if (value !== undefined)
42 throw "Error: bad value: " + value;
43
44 var entries = testSet.entries();
45 var i = 0;
46 do {
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
62 if (testSet.size !== i)
63 throw "Error: bad value: " + i;
64
65 var value = entries.next().value;
66 if (value !== undefined)
67 throw "Error: bad value: " + value;
68
69 var entries = testSet.entries();
70 var i = 0;
71 do {
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
85 if (testSet.size !== i)
86 throw "Error: bad value: " + i;
87
88 var value = entries.next().value;
89 if (value !== undefined)
90 throw "Error: bad value: " + value;
91
92 function otherKey(key) {
93 return (key + 1) % testArray.length;
94 }
95
96 var entries = testSet.entries();
97 var i = 0;
98 do {
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
110 if (testSet.size !== i)
111 throw "Error: bad value: " + i;
112
113 var value = entries.next().value;
114 if (value !== undefined)
115 throw "Error: bad value: " + value;