summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/class/superCallOrder.js
blob: 46a1b0e57c78eb7a031072697a1dfc524b24bbd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function base() { }

class beforeSwizzle extends base {
    constructor() {
        super(Object.setPrototypeOf(beforeSwizzle, null));
    }
}

new beforeSwizzle();

function MyError() {}

// Again, testing both dynamic prototype dispatch, and that we verify the function
// is a constructor after evaluating args
class beforeThrow extends base {
    constructor() {
        function thrower() { throw new MyError(); }
        super(thrower());
    }
}

Object.setPrototypeOf(beforeThrow, Math.sin);

// Won't throw that Math.sin is not a constructor before evaluating the args
assertThrowsInstanceOf(() => new beforeThrow(), MyError);

if (typeof reportCompare === 'function')
    reportCompare(0,0,"OK");