// The constructor specified should get called, regardless of order, or // other distractions var called = false; class a { constructor(x) { assertEq(x, 4); called = true } } new a(4); assertEq(called, true); called = false; var aExpr = class { constructor(x) { assertEq(x, 4); called = true } }; new aExpr(4); assertEq(called, true); called = false; class b { constructor() { called = true } method() { } } new b(); assertEq(called, true); called = false; var bExpr = class { constructor() { called = true } method() { } }; new bExpr(); assertEq(called, true); called = false; class c { method() { } constructor() { called = true; } } new c(); assertEq(called, true); called = false; var cExpr = class { method() { } constructor() { called = true; } } new cExpr(); assertEq(called, true); called = false; class d { ["constructor"]() { throw new Error("NO"); } constructor() { called = true; } } new d(); assertEq(called, true); called = false; var dExpr = class { ["constructor"]() { throw new Error("NO"); } constructor() { called = true; } } new dExpr(); assertEq(called, true); if (typeof reportCompare === "function") reportCompare(0, 0, "OK");