// A Set iterator does not visit entries removed by clear(). | |
load(libdir + "iteration.js"); | |
var s = new Set(); | |
var it = s[Symbol.iterator](); | |
s.clear(); | |
assertIteratorDone(it, undefined); | |
s = new Set(["a", "b", "c", "d"]); | |
it = s[Symbol.iterator](); | |
assertIteratorNext(it, "a"); | |
s.clear(); | |
assertIteratorDone(it, undefined); | |
var log = ""; | |
s = new Set(["a", "b", "c", "d"]); | |
for (var v of s) { | |
log += v; | |
if (v == "b") | |
s.clear(); | |
} | |
assertEq(log, "ab"); |