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