blob: c37482032d5f34609faa50ffdd5c6c426624f2d5 [file] [log] [blame]
// This file tests subclassing various misc constructors.
class A extends ArrayBuffer { }
class B extends Boolean { }
class D extends Date { }
class E extends Error { }
class N extends Number { }
class M extends Map { }
class R extends RegExp { }
class S extends Set { }
class WM extends WeakMap { }
class WS extends WeakSet { }
function test() {
a = new A(10);
if (!(a instanceof ArrayBuffer && a instanceof A))
throw "a has incorrect prototype chain";
b = new B(true);
if (!(b instanceof Boolean && b instanceof B))
throw "b has incorrect prototype chain";
d = new D();
if (!(d instanceof Date && d instanceof D))
throw "d has incorrect prototype chain";
e = new E();
if (!(e instanceof Error && e instanceof E))
throw "e has incorrect prototype chain";
n = new N(10);
if (!(n instanceof Number && n instanceof N))
throw "n has incorrect prototype chain";
m = new M();
if (!(m instanceof Map && m instanceof M))
throw "m has incorrect prototype chain";
r = new R("foo");
if (!(r instanceof RegExp && r instanceof R))
throw "r has incorrect prototype chain";
s = new S();
if (!(s instanceof Set && s instanceof S))
throw "s has incorrect prototype chain";
wm = new WM();
if (!(wm instanceof WeakMap && wm instanceof WM))
throw "wm has incorrect prototype chain";
ws = new WS();
if (!(ws instanceof WeakSet && ws instanceof WS))
throw "ws has incorrect prototype chain";
}
noInline(test);
for(i = 0; i < 10000; i++)
test();