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 ff5f6ffb0fa09bb7ce0e32fb3f9cb09f74dd5c9a..f175a6867dac65f84f184126918a76ee7c2af4c6 100644 |
--- a/test/mjsunit/es6/classes-subclass-builtins.js |
+++ b/test/mjsunit/es6/classes-subclass-builtins.js |
@@ -18,6 +18,51 @@ function checkPrototypeChain(object, constructors) { |
(function() { |
+ class A extends Object { |
+ constructor(...args) { |
+ assertTrue(%IsConstructCall()); |
+ super(...args); |
+ this.a = 42; |
+ } |
+ } |
+ |
+ var s = new A("foo"); |
+ assertTrue(s instanceof Object); |
+ assertTrue(s instanceof A); |
+ assertEquals("object", typeof s); |
+ checkPrototypeChain(s, [A, Object]); |
+ assertEquals(42, s.a); |
+ |
+ var s1 = new A("bar"); |
+ assertTrue(%HaveSameMap(s, s1)); |
+ |
+ |
+ var n = new A(153); |
+ assertTrue(n instanceof Object); |
+ assertTrue(n instanceof A); |
+ assertEquals("object", typeof s); |
+ checkPrototypeChain(s, [A, Object]); |
+ assertEquals(42, n.a); |
+ |
+ var n1 = new A(312); |
+ assertTrue(%HaveSameMap(n, n1)); |
+ assertTrue(%HaveSameMap(n, s)); |
+ |
+ |
+ var b = new A(true); |
+ assertTrue(b instanceof Object); |
+ assertTrue(b instanceof A); |
+ assertEquals("object", typeof s); |
+ checkPrototypeChain(s, [A, Object]); |
+ assertEquals(42, b.a); |
+ |
+ var b1 = new A(true); |
+ assertTrue(%HaveSameMap(b, b1)); |
+ assertTrue(%HaveSameMap(b, s)); |
+})(); |
+ |
+ |
+(function() { |
class A extends Function { |
constructor(...args) { |
assertTrue(%IsConstructCall()); |