Object-defineProperty-09.js (618B)
1 // defineProperty can't re-define non-configurable properties. 2 // Also: when defineProperty throws, the exception is native to the debugger 3 // compartment, not a wrapper. 4 5 var g = newGlobal({newCompartment: true}); 6 var dbg = new Debugger; 7 var gw = dbg.addDebuggee(g); 8 gw.defineProperty("p", {value: 1}); 9 g.p = 4; 10 assertEq(g.p, 1); 11 12 var threw; 13 try { 14 gw.defineProperty("p", {value: 2}); 15 threw = false; 16 } catch (exc) { 17 threw = true; 18 assertEq(exc instanceof TypeError, true); 19 assertEq(typeof exc.message, "string"); 20 assertEq(typeof exc.stack, "string"); 21 } 22 assertEq(threw, true); 23 24 assertEq(g.p, 1);