| Index: test/mjsunit/es6/classes-subclass-builtins.js | 
| diff --git a/test/mjsunit/es6/classes-subclass-builtins.js b/test/mjsunit/es6/classes-subclass-builtins.js | 
| index ccf386153e639d3b747409061ad64c899d8689a6..7e0958baf14b57c743cf3f74c10f21b532f7a5d8 100644 | 
| --- a/test/mjsunit/es6/classes-subclass-builtins.js | 
| +++ b/test/mjsunit/es6/classes-subclass-builtins.js | 
| @@ -3,6 +3,7 @@ | 
| // found in the LICENSE file. | 
|  | 
| // Flags: --allow-natives-syntax --harmony-reflect --harmony-regexp-subclass | 
| +// Flags: --expose-gc | 
|  | 
| "use strict"; | 
|  | 
| @@ -24,6 +25,7 @@ function checkPrototypeChain(object, constructors) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -34,6 +36,7 @@ function checkPrototypeChain(object, constructors) { | 
| checkPrototypeChain(s, [A, Object]); | 
| assertEquals(42, s.a); | 
| assertEquals(4.2, s.d); | 
| +  assertEquals(153, s.o.foo); | 
|  | 
| var s1 = new A("bar"); | 
| assertTrue(%HaveSameMap(s, s1)); | 
| @@ -46,6 +49,7 @@ function checkPrototypeChain(object, constructors) { | 
| checkPrototypeChain(s, [A, Object]); | 
| assertEquals(42, n.a); | 
| assertEquals(4.2, n.d); | 
| +  assertEquals(153, n.o.foo); | 
|  | 
| var n1 = new A(312); | 
| assertTrue(%HaveSameMap(n, n1)); | 
| @@ -59,10 +63,13 @@ function checkPrototypeChain(object, constructors) { | 
| checkPrototypeChain(s, [A, Object]); | 
| assertEquals(42, b.a); | 
| assertEquals(4.2, b.d); | 
| +  assertEquals(153, b.o.foo); | 
|  | 
| var b1 = new A(true); | 
| assertTrue(%HaveSameMap(b, b1)); | 
| assertTrue(%HaveSameMap(b, s)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -73,10 +80,11 @@ function checkPrototypeChain(object, constructors) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| -  var o = new A("this.foo = 153;"); | 
| +  var o = new A("this.foo = 113;"); | 
| assertTrue(o instanceof Object); | 
| assertTrue(o instanceof Function); | 
| assertTrue(o instanceof A); | 
| @@ -84,11 +92,14 @@ function checkPrototypeChain(object, constructors) { | 
| checkPrototypeChain(o, [A, Function, Object]); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
| var oo = new o(); | 
| -  assertEquals(153, oo.foo); | 
| +  assertEquals(113, oo.foo); | 
|  | 
| var o1 = new A("return 312;"); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -99,6 +110,7 @@ function checkPrototypeChain(object, constructors) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -111,9 +123,12 @@ function checkPrototypeChain(object, constructors) { | 
| assertTrue(o.valueOf()); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(false); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -124,6 +139,7 @@ function TestErrorSubclassing(error) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -142,9 +158,12 @@ function TestErrorSubclassing(error) { | 
| assertEquals(error.name + ": message", o.toString()); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A("achtung!"); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| } | 
|  | 
|  | 
| @@ -166,6 +185,7 @@ function TestErrorSubclassing(error) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -178,9 +198,12 @@ function TestErrorSubclassing(error) { | 
| assertEquals(153, o.valueOf()); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(312); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -191,6 +214,7 @@ function TestErrorSubclassing(error) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -203,12 +227,15 @@ function TestErrorSubclassing(error) { | 
| assertEquals(1234567890, o.getTime()); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(2015, 10, 29); | 
| assertEquals(2015, o1.getFullYear()); | 
| assertEquals(10, o1.getMonth()); | 
| assertEquals(29, o1.getDate()); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -219,6 +246,7 @@ function TestErrorSubclassing(error) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -232,9 +260,12 @@ function TestErrorSubclassing(error) { | 
| assertEquals("foo", o.valueOf()); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A("bar"); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -245,6 +276,7 @@ function TestErrorSubclassing(error) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -263,9 +295,12 @@ function TestErrorSubclassing(error) { | 
| assertEquals(10, o.lastIndex); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(7); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -276,6 +311,7 @@ function TestArraySubclassing(array) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -295,6 +331,7 @@ function TestArraySubclassing(array) { | 
| assertEquals(10, o.length); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(7); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| @@ -324,6 +361,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -358,9 +396,12 @@ function TestMapSetSubclassing(container, is_map) { | 
| } | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| + | 
| +  gc(); | 
| } | 
|  | 
|  | 
| @@ -379,6 +420,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -392,6 +434,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| assertEquals(16, o.byteLength); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A("bar"); | 
| assertTrue(%HaveSameMap(o, o1)); | 
| @@ -423,6 +466,8 @@ function TestMapSetSubclassing(container, is_map) { | 
| assertEquals(-1, int32view[1]); | 
| assertEquals(0xfffffffe, uint32view[0]); | 
| assertEquals(0xffffffff, uint32view[1]); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -433,6 +478,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
|  | 
| @@ -449,10 +495,12 @@ function TestMapSetSubclassing(container, is_map) { | 
| assertEquals(0xbebafeca, o.getUint32(0, true)); | 
| assertEquals(42, o.a); | 
| assertEquals(4.2, o.d); | 
| +  assertEquals(153, o.o.foo); | 
|  | 
| var o1 = new A(buffer); | 
| assertTrue(%HaveSameMap(o, o1)); | 
|  | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -465,6 +513,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| super(...args); | 
| this.a = 42; | 
| this.d = 4.2; | 
| +      this.o = {foo:153}; | 
| } | 
| } | 
| var generator_func = new A("var index = 0; while (index < 5) { yield ++index; }"); | 
| @@ -476,6 +525,7 @@ function TestMapSetSubclassing(container, is_map) { | 
| checkPrototypeChain(generator_func, [A, GeneratorFunction, Function, Object]); | 
| assertEquals(42, generator_func.a); | 
| assertEquals(4.2, generator_func.d); | 
| +  assertEquals(153, generator_func.o.foo); | 
|  | 
| var o = new generator_func(); | 
| assertTrue(o instanceof Object); | 
| @@ -491,6 +541,8 @@ function TestMapSetSubclassing(container, is_map) { | 
|  | 
| var generator_func1 = new A("return 0;"); | 
| assertTrue(%HaveSameMap(generator_func, generator_func1)); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
| @@ -584,6 +636,8 @@ function TestMapSetSubclassing(container, is_map) { | 
| assertTrue(o instanceof C); | 
| assertEquals("object", typeof o); | 
| checkPrototypeChain(o, [C, B, A, Boolean, Object]); | 
| + | 
| +  gc(); | 
| })(); | 
|  | 
|  | 
|  |