| Index: test/mjsunit/harmony/classes.js
|
| diff --git a/test/mjsunit/harmony/classes.js b/test/mjsunit/harmony/classes.js
|
| index c5c2b72313a69d0ffac6d12b294aa99675a66b9b..ddf6c9e4fc722beaa89fa24adf860f2e26c2279f 100644
|
| --- a/test/mjsunit/harmony/classes.js
|
| +++ b/test/mjsunit/harmony/classes.js
|
| @@ -19,8 +19,21 @@
|
| assertEquals(Function.prototype, Object.getPrototypeOf(D));
|
| assertEquals('D', D.name);
|
|
|
| + class D2 { constructor() {} }
|
| + assertEquals('D2', D2.name);
|
| +
|
| + class D3 {}
|
| + class D4 {}
|
| + assertEquals('D3', D3.name);
|
| + assertEquals('D4', D4.name);
|
| +
|
| + // TODO(arv): The logic for the name of anonymous functions in ES6 requires
|
| + // the below to be 'E';
|
| var E = class {}
|
| - assertEquals('', E.name);
|
| + assertEquals('', E.name); // Should be 'E'.
|
| +
|
| + var F = class { constructor() {} };
|
| + assertEquals('', F.name); // Should be 'F'.
|
| })();
|
|
|
|
|
| @@ -589,6 +602,33 @@ function assertAccessorDescriptor(object, name) {
|
| })();
|
|
|
|
|
| +(function TestDefaultConstructorNoCrash() {
|
| + // Regression test for https://code.google.com/p/v8/issues/detail?id=3661
|
| + class C {}
|
| + assertEquals(undefined, C());
|
| + assertEquals(undefined, C(1));
|
| + assertTrue(new C() instanceof C);
|
| + assertTrue(new C(1) instanceof C);
|
| +})();
|
| +
|
| +
|
| +(function TestDefaultConstructor() {
|
| + var calls = 0;
|
| + class Base {
|
| + constructor() {
|
| + calls++;
|
| + }
|
| + }
|
| + class Derived extends Base {}
|
| + var object = new Derived;
|
| + assertEquals(1, calls);
|
| +
|
| + calls = 0;
|
| + Derived();
|
| + assertEquals(1, calls);
|
| +})();
|
| +
|
| +
|
| /* TODO(arv): Implement
|
| (function TestNameBindingInConstructor() {
|
| class C {
|
|
|