Files
palemoon27/js/src/tests/ecma_6/Class/superPropDelete.js
T
roytam1 395e2e581b import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1219494 - Part 2. gfx/2d and gfxCrash. r=milan (2beb096938)
- Bug 1233069 - add override declarations to Windows graphics headers; r=Bas (a7f6e7d7f4)
- Bug 1230357. Enable subpixel text on skia content backends. r=lsalzman (86d91dece3)
- Bug 1225977 - fix DrawTargetSkia::MaskSurface with non-zero offset. r=jmuizelaar (5d63e35dc7)
- Bug 1230740 - wallpaper patch for a missing nullptr scenario. r=bas (bdfadb90ae)
- Bug 1233401 - Do Statistics static initialization from JS_Init; r=jandem (5f8383cd4a)
- Bug 1232113 - "Make the format specifiers in JS_snprintf() invocations more portable". r=evilpies (4b0481a222)
- Bug 1233722 - Add a documentation comment for JSOP_DEBUGCHECKSELFHOSTED. DONTBUILD. r=efaust (741fedfca9)
- Bug 1233722 - Followup: Differentiate between non-debug and opt builds. (rs=arai) DONTBUILD comment-only (234db53445)
- Bug 1227144 - Remove unused AutoRegExpStaticsBuffer; r=jonco (b7a21b5471)
- Bug 1233302: Don't seed the SavedStacks PRNG unless we're actually going to use it. r=fitzgen (4763a5eab5)
- Bug 1233187 - Use normal Rooted for AutoLocationValueRooter; r=fitzgen (90aea4363c)
- Bug 1208850 - Inline functions exported to self-hosting global. r=till (b0fbfc7245)
- Bug 1197932 - Remove Nightly-only restriction from ES6 Classes. (r=jorendorff) (11e58dfe79)
- Bug 1233011 - SharedArrayBuffer subclassing + tests. r=efaust (95c08f129e)
- Bug 1232264 - SharedArrayBuffer is only a constructor. r=arai (ae98086e9b)
- Bug 1233863 - ARM64: Set up pseudo stack pointer in proglogues. r=sstangl (9db659f62b)
- Bug 1232269 - Use the correct receiver when calling an own getter or setter on an unboxed object, r=jandem. (b28b8e4061)
- Bug 1233096 - Give JS::ubi::RootList its full type name as its concreteTypeName; r=jimb (6cab2fd056)
- Bug 1229829 - make sameBuffer more discriminating. r=waldo (fa7723a152)
- Bug 1233175 - refine an assertion. r=terrence (3bc1da0783)
- Bug 1231314 - Turn mozilla-config.h and js-confdefs.h into CONFIGURE_DEFINE_FILES. r=gps (b20e88acbb)
- Bug 1233966 - build fixes for FreeBSD. r=jrmuizel (a94c01b3aa)
2023-06-15 15:50:32 +08:00

47 lines
1.5 KiB
JavaScript

// Make sure we get the proper side effects.
// |delete super.prop| and |delete super[expr]| throw universally.
class base {
constructor() { }
}
class derived extends base {
constructor() { super(); }
testDeleteProp() { delete super.prop; }
testDeleteElem() {
let sideEffect = 0;
assertThrowsInstanceOf(() => delete super[sideEffect = 1], ReferenceError);
assertEq(sideEffect, 1);
}
testDeleteElemPropValFirst() {
// The deletion error is a reference error, but by munging the prototype
// chain, we can force a typeerror from JSOP_SUPERBASE
delete super[Object.setPrototypeOf(derived.prototype, null)];
}
}
var d = new derived();
assertThrowsInstanceOf(() => d.testDeleteProp(), ReferenceError);
d.testDeleteElem();
assertThrowsInstanceOf(() => d.testDeleteElemPropValFirst(), TypeError);
// |delete super.x| does not delete anything before throwing.
var thing1 = {
go() { delete super.toString; }
};
let saved = Object.prototype.toString;
assertThrowsInstanceOf(() => thing1.go(), ReferenceError);
assertEq(Object.prototype.toString, saved);
// |delete super.x| does not tell the prototype to delete anything, when it's a proxy.
var thing2 = {
go() { delete super.prop; }
};
Object.setPrototypeOf(thing2, new Proxy({}, {
deleteProperty(x) { throw "FAIL"; }
}));
assertThrowsInstanceOf(() => thing2.go(), ReferenceError);
if (typeof reportCompare === 'function')
reportCompare(0,0,"OK");