457faa4579ab80feb222be849258b42117f9408d
[WebKit.git] / LayoutTests / js / script-tests / class-syntax-default-constructor.js
1
2 description('Tests for ES6 class syntax default constructor');
3
4 class A { };
5 class B extends A { };
6
7 shouldBeTrue('new A instanceof A');
8 shouldThrow('A()', '"TypeError: Cannot call a class constructor"');
9 shouldBeTrue('A.prototype.constructor instanceof Function');
10 shouldBe('A.prototype.constructor.name', '"A"');
11 shouldBeTrue('new B instanceof A; new B instanceof A');
12 shouldThrow('B()', '"TypeError: Cannot call a class constructor"');
13 shouldBe('B.prototype.constructor.name', '"B"');
14 shouldBeTrue('A !== B');
15 shouldBeTrue('A.prototype.constructor !== B.prototype.constructor');
16 shouldBe('new (class extends (class { constructor(a, b) { return [a, b]; } }) {})(1, 2)', '[1, 2]');
17
18 var successfullyParsed = true;