Index: test/mjsunit/es6/collections.js |
diff --git a/test/mjsunit/es6/collections.js b/test/mjsunit/es6/collections.js |
index 940c0b9d1fab8a314b071e9d5cd6d50fab4cd41d..fdaab762b448bac899e800ede0b70845a3a4672f 100644 |
--- a/test/mjsunit/es6/collections.js |
+++ b/test/mjsunit/es6/collections.js |
@@ -691,6 +691,24 @@ for (var i = 9; i >= 0; i--) { |
assertEquals(4950, accumulated); |
})(); |
+ |
+(function TestSetForEachReceiverAsObject() { |
+ var set = new Set(["1", "2"]); |
+ |
+ // Create a new object in each function call when receiver is a |
+ // primitive value. |
+ var a = []; |
+ set.forEach(function() { a.push(this); }, ""); |
+ assertTrue(a[0] !== a[1]); |
+ |
+ // Do not create a new object in each function call when receiver is a |
+ // primitive value. |
+ a = []; |
+ set.forEach(function() { a.push(this); }, {}); |
+ assertFalse(a[0] !== a[1]); |
+})(); |
+ |
+ |
(function TestMapForEachInvalidTypes() { |
assertThrows(function() { |
Map.prototype.map.forEach.call({}); |
@@ -998,6 +1016,25 @@ for (var i = 9; i >= 0; i--) { |
})(); |
+(function TestMapForEachReceiverAsObject() { |
+ var map = new Map(); |
+ map.set("key1", "value1"); |
+ map.set("key2", "value2"); |
+ |
+ // Create a new object in each function call when receiver is a |
+ // primitive value. |
+ var a = []; |
+ map.forEach(function() { a.push(this); }, ""); |
+ assertTrue(a[0] !== a[1]); |
+ |
+ // Do not create a new object in each function call when receiver is a |
+ // primitive value. |
+ a = []; |
+ map.forEach(function() { a.push(this); }, {}); |
+ assertFalse(a[0] !== a[1]); |
+})(); |
+ |
+ |
// Allows testing iterator-based constructors easily. |
var oneAndTwo = new Map(); |
var k0 = {key: 0}; |