|
1 // Removing a Set entry already visited by an iterator does not cause any |
|
2 // entries to be skipped. |
|
3 |
|
4 var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
|
5 var set = Set(str); |
|
6 |
|
7 var log = ''; |
|
8 var i = 0; |
|
9 for (var x of set) { |
|
10 log += x; |
|
11 if (i++ % 5 === 0) { |
|
12 // Delete all entries preceding this one. |
|
13 for (let y of set) { |
|
14 if (y === x) |
|
15 break; |
|
16 set.delete(y); |
|
17 } |
|
18 } |
|
19 } |
|
20 assertEq(log, str); |
|
21 assertEq(set.size, 1); // Elements 0 to 24 are removed, leaving only 25 (Z). |
|
22 assertEq(set.has('Z'), true); |