Set-iterator-remove-5.js (551B)
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 = new 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);