Set-iterator-remove-6.js (587B)
1 // Removing many Set entries does not cause a live iterator to skip any of the 2 // entries that were not removed. (Compacting a Set must not be observable to 3 // script.) 4 5 load(libdir + "iteration.js"); 6 7 var set = new Set(); 8 for (var i = 0; i < 32; i++) 9 set.add(i); 10 var iter = set[Symbol.iterator](); 11 assertIteratorNext(iter, 0); 12 for (var i = 0; i < 30; i++) 13 set.delete(i); 14 assertEq(set.size, 2); 15 for (var i = 32; i < 100; i++) 16 set.add(i); // eventually triggers compaction 17 18 for (var i = 30; i < 100; i++) 19 assertIteratorNext(iter, i); 20 assertIteratorDone(iter, undefined);