OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Flags: --harmony-classes --harmony-sloppy | 5 // Flags: --harmony-classes --harmony-sloppy |
6 | 6 |
7 (function TestBasics() { | 7 (function TestBasics() { |
8 var C = class C {} | 8 var C = class C {} |
9 assertEquals(typeof C, 'function'); | 9 assertEquals(typeof C, 'function'); |
10 assertEquals(C.__proto__, Function.prototype); | 10 assertEquals(C.__proto__, Function.prototype); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 assertThrows(function() { | 64 assertThrows(function() { |
65 // Function but its .prototype is not null or a function. | 65 // Function but its .prototype is not null or a function. |
66 class C extends Math.abs {} | 66 class C extends Math.abs {} |
67 }, TypeError); | 67 }, TypeError); |
68 | 68 |
69 assertThrows(function() { | 69 assertThrows(function() { |
70 Math.abs.prototype = 42; | 70 Math.abs.prototype = 42; |
71 class C extends Math.abs {} | 71 class C extends Math.abs {} |
72 }, TypeError); | 72 }, TypeError); |
73 delete Math.abs.prototype; | 73 delete Math.abs.prototype; |
| 74 |
| 75 assertThrows(function() { |
| 76 function* g() {} |
| 77 class C extends g {} |
| 78 }, TypeError); |
74 })(); | 79 })(); |
75 | 80 |
76 | 81 |
77 (function TestConstructorProperty() { | 82 (function TestConstructorProperty() { |
78 class C {} | 83 class C {} |
79 assertEquals(C, C.prototype.constructor); | 84 assertEquals(C, C.prototype.constructor); |
80 var descr = Object.getOwnPropertyDescriptor(C.prototype, 'constructor'); | 85 var descr = Object.getOwnPropertyDescriptor(C.prototype, 'constructor'); |
81 assertTrue(descr.configurable); | 86 assertTrue(descr.configurable); |
82 assertFalse(descr.enumerable); | 87 assertFalse(descr.enumerable); |
83 assertTrue(descr.writable); | 88 assertTrue(descr.writable); |
(...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 testClassRestrictedProperties(ClassWithDefaultConstructor); | 939 testClassRestrictedProperties(ClassWithDefaultConstructor); |
935 testClassRestrictedProperties(Class); | 940 testClassRestrictedProperties(Class); |
936 testClassRestrictedProperties(DerivedClassWithDefaultConstructor); | 941 testClassRestrictedProperties(DerivedClassWithDefaultConstructor); |
937 testClassRestrictedProperties(DerivedClass); | 942 testClassRestrictedProperties(DerivedClass); |
938 testClassRestrictedProperties(class { method() {} }); | 943 testClassRestrictedProperties(class { method() {} }); |
939 testClassRestrictedProperties(class { constructor() {} method() {} }); | 944 testClassRestrictedProperties(class { constructor() {} method() {} }); |
940 testClassRestrictedProperties(class extends Class { }); | 945 testClassRestrictedProperties(class extends Class { }); |
941 testClassRestrictedProperties( | 946 testClassRestrictedProperties( |
942 class extends Class { constructor() { super(); } }); | 947 class extends Class { constructor() { super(); } }); |
943 })(); | 948 })(); |
OLD | NEW |