// map.iterator() is live: entries added during iteration are visited.

var map = new Map();
function force(k) {
    if (!map.has(k) && k >= 0)
        map.set(k, k - 1);
}
force(5);
var log = '';
for (let [k, v] of map) {
    log += k + ';';
    force(v);
}
assertEq(log, '5;4;3;2;1;0;');
assertEq(map.size, 6);