// defineProperty can't re-define non-configurable properties. // Also: when defineProperty throws, the exception is native to the debugger // compartment, not a wrapper. var g = newGlobal({newCompartment: true}); var dbg = new Debugger; var gw = dbg.addDebuggee(g); gw.defineProperty("p", {value: 1}); g.p = 4; assertEq(g.p, 1); var threw; try { gw.defineProperty("p", {value: 2}); threw = false; } catch (exc) { threw = true; assertEq(exc instanceof TypeError, true); assertEq(typeof exc.message, "string"); assertEq(typeof exc.stack, "string"); } assertEq(threw, true); assertEq(g.p, 1);