|
1 // defineProperty can define accessor properties. |
|
2 |
|
3 var g = newGlobal(); |
|
4 var dbg = new Debugger; |
|
5 var gw = dbg.addDebuggee(g); |
|
6 g.value = undefined; |
|
7 g.eval("function gf() { return 12; }\n" + |
|
8 "function sf(v) { value = v; }\n"); |
|
9 var gfw = gw.getOwnPropertyDescriptor("gf").value; |
|
10 var sfw = gw.getOwnPropertyDescriptor("sf").value; |
|
11 gw.defineProperty("x", {configurable: true, get: gfw, set: sfw}); |
|
12 assertEq(g.x, 12); |
|
13 g.x = 'ok'; |
|
14 assertEq(g.value, 'ok'); |
|
15 |
|
16 var desc = g.Object.getOwnPropertyDescriptor(g, "x"); |
|
17 assertEq(desc.configurable, true); |
|
18 assertEq(desc.enumerable, false); |
|
19 assertEq(desc.get, g.gf); |
|
20 assertEq(desc.set, g.sf); |