michael@0: // Removing many Map entries does not cause a live iterator to skip any of the michael@0: // entries that were not removed. (Compacting a Map must not be observable to michael@0: // script.) michael@0: michael@0: load(libdir + "iteration.js"); michael@0: michael@0: var map = Map(); michael@0: for (var i = 0; i < 32; i++) michael@0: map.set(i, i); michael@0: var iter = map[std_iterator](); michael@0: assertIteratorNext(iter, [0, 0]); michael@0: for (var i = 0; i < 30; i++) michael@0: map.delete(i); michael@0: assertEq(map.size, 2); michael@0: for (var i = 32; i < 100; i++) michael@0: map.set(i, i); // eventually triggers compaction michael@0: michael@0: for (var i = 30; i < 100; i++) michael@0: assertIteratorNext(iter, [i, i]); michael@0: michael@0: assertIteratorDone(iter, undefined);