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