Index: test/mjsunit/harmony/collections.js |
diff --git a/test/mjsunit/harmony/collections.js b/test/mjsunit/harmony/collections.js |
index 7bf7bf70639aaee83230ed9beefbcc15ad310eb5..22a76399087225f729c7e415974529d426587743 100644 |
--- a/test/mjsunit/harmony/collections.js |
+++ b/test/mjsunit/harmony/collections.js |
@@ -852,3 +852,50 @@ for (var i = 9; i >= 0; i--) { |
}); |
assertEquals(4950, accumulated); |
})(); |
+ |
+ |
+(function TestMapForEachAllRemovedTransition() { |
+ var map = new Map; |
+ map.set(0, 0); |
+ |
+ var buffer = []; |
+ map.forEach(function(v) { |
+ buffer.push(v); |
+ if (v === 0) { |
+ for (var i = 1; i < 4; i++) { |
+ map.set(i, i); |
+ } |
+ } |
+ |
+ if (v === 3) { |
+ for (var i = 0; i < 4; i++) { |
+ map.delete(i); |
+ } |
+ for (var i = 4; i < 8; i++) { |
+ map.set(i, i); |
+ } |
+ } |
+ }); |
+ |
+ assertArrayEquals([0, 1, 2, 3, 4, 5, 6, 7], buffer); |
+})(); |
+ |
+ |
+(function TestMapForEachClearTransition() { |
+ var map = new Map; |
+ map.set(0, 0); |
+ |
+ var i = 0; |
+ var buffer = []; |
+ map.forEach(function(v) { |
+ buffer.push(v); |
+ if (++i < 5) { |
+ for (var j = 0; j < 5; j++) { |
+ map.clear(); |
+ map.set(i, i); |
+ } |
+ } |
+ }); |
+ |
+ assertArrayEquals([0, 1, 2, 3, 4], buffer); |
+})(); |