|
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(); |
|
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); |