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