| Index: test/mjsunit/harmony/classes-experimental.js
|
| diff --git a/test/mjsunit/harmony/classes-experimental.js b/test/mjsunit/harmony/classes-experimental.js
|
| index 73944b182c607d82801e224c44d9e4c8bb288cf6..5a3c3e5558319941e0098dabdc712ebfd1be0e93 100644
|
| --- a/test/mjsunit/harmony/classes-experimental.js
|
| +++ b/test/mjsunit/harmony/classes-experimental.js
|
| @@ -7,29 +7,51 @@
|
| 'use strict';
|
|
|
| class Base {
|
| - constructor() {
|
| + constructor(a, b) {
|
| let o = new Object();
|
| - o.prp = 1;
|
| + o.prp = a + b;
|
| return o;
|
| }
|
| }
|
|
|
| class Subclass extends Base {
|
| - constructor() {
|
| + constructor(a, b) {
|
| + var exn;
|
| try {
|
| this.prp1 = 3;
|
| } catch (e) {
|
| - // TODO(dslomov): actually test the exception once TDZ is implemented.
|
| + exn = e;
|
| }
|
| - super();
|
| - assertSame(1, this.prp);
|
| + assertTrue(exn instanceof ReferenceError);
|
| + super(a, b);
|
| + assertSame(a + b, this.prp);
|
| assertSame(undefined, this.prp1);
|
| assertFalse(this.hasOwnProperty("prp1"));
|
| return this;
|
| }
|
| }
|
|
|
| -let s = new Subclass();
|
| +let b = new Base(1, 2);
|
| +assertSame(3, b.prp);
|
| +
|
| +let s = new Subclass(2, -1);
|
| assertSame(1, s.prp);
|
| assertSame(undefined, s.prp1);
|
| assertFalse(s.hasOwnProperty("prp1"));
|
| +
|
| +class Subclass2 extends Base {
|
| + constructor() {
|
| + super(1,2);
|
| +
|
| + let called = false;
|
| + function tmp() { called = true; return 3; }
|
| + var exn = null;
|
| + try {
|
| + super(tmp(),4);
|
| + } catch(e) { exn = e; }
|
| + assertTrue(exn !== null);
|
| + assertFalse(called);
|
| + }
|
| +}
|
| +
|
| +new Subclass2();
|
|
|