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(); |
})(); |