class Base {
    constructor() {}
}
class Mid extends Base {
    constructor() { super(); }
    f() { return new super.constructor(); }
}
class Derived extends Mid {
    constructor() { super(); }
}

let d = new Derived();
var df = d.f();
assertEq(df.constructor, Base);

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