Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | // Test that you can't call the SavedFrame constructor and can only use |
michael@0 | 2 | // SavedFrame's getters on SavedFrame instances. |
michael@0 | 3 | |
michael@0 | 4 | load(libdir + "asserts.js"); |
michael@0 | 5 | |
michael@0 | 6 | let proto = Object.getPrototypeOf(saveStack()); |
michael@0 | 7 | |
michael@0 | 8 | // Can't create new SavedFrame instances by hand. |
michael@0 | 9 | assertThrowsInstanceOf(() => { |
michael@0 | 10 | new proto.constructor(); |
michael@0 | 11 | }, TypeError); |
michael@0 | 12 | |
michael@0 | 13 | for (let p of ["source", "line", "column", "functionDisplayName", "parent"]) { |
michael@0 | 14 | // The getters shouldn't work on the prototype. |
michael@0 | 15 | assertThrowsInstanceOf(() => proto[p], TypeError); |
michael@0 | 16 | |
michael@0 | 17 | // Nor should they work on random objects. |
michael@0 | 18 | let o = {}; |
michael@0 | 19 | Object.defineProperty(o, p, Object.getOwnPropertyDescriptor(proto, p)); |
michael@0 | 20 | assertThrowsInstanceOf(() => o[p], TypeError); |
michael@0 | 21 | } |