diff options
Diffstat (limited to 'js/src/jit-test/tests/debug/Object-global-01.js')
-rw-r--r-- | js/src/jit-test/tests/debug/Object-global-01.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Object-global-01.js b/js/src/jit-test/tests/debug/Object-global-01.js new file mode 100644 index 000000000..24a5a5f32 --- /dev/null +++ b/js/src/jit-test/tests/debug/Object-global-01.js @@ -0,0 +1,26 @@ +// Debugger.Object.prototype.global accessor surfaces. + +load(libdir + 'asserts.js'); + +var dbg = new Debugger; +var g = newGlobal(); +var gw = dbg.addDebuggee(g); + +assertEq(Object.getOwnPropertyDescriptor(gw, 'global'), undefined); +var d = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(gw), 'global'); +assertEq(d.enumerable, false); +assertEq(d.configurable, true); +assertEq(typeof d.get, "function"); +assertEq(d.get.length, 0); +assertEq(d.set, undefined); + +// This should not throw. +gw.global = ''; + +// This should throw. +assertThrowsInstanceOf(function () { "use strict"; gw.global = {}; }, TypeError); +assertEq(gw.global, gw); + +// You shouldn't be able to apply the accessor to the prototype. +assertThrowsInstanceOf(function () { return Debugger.Object.prototype.global; }, + TypeError); |