michael@0: // map.iterator() is live: entries added during iteration are visited. michael@0: michael@0: var map = Map(); michael@0: function force(k) { michael@0: if (!map.has(k) && k >= 0) michael@0: map.set(k, k - 1); michael@0: } michael@0: force(5); michael@0: var log = ''; michael@0: for (let [k, v] of map) { michael@0: log += k + ';'; michael@0: force(v); michael@0: } michael@0: assertEq(log, '5;4;3;2;1;0;'); michael@0: assertEq(map.size, 6);