michael@0: // obj.defineProperties can define accessor properties. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger; michael@0: var gw = dbg.addDebuggee(g); michael@0: g.value = undefined; michael@0: g.eval("function gf() { return 12; }\n" + michael@0: "function sf(v) { value = v; }\n"); michael@0: var gfw = gw.getOwnPropertyDescriptor("gf").value; michael@0: var sfw = gw.getOwnPropertyDescriptor("sf").value; michael@0: gw.defineProperties({x: {configurable: true, get: gfw, set: sfw}}); michael@0: assertEq(g.x, 12); michael@0: g.x = 'ok'; michael@0: assertEq(g.value, 'ok'); michael@0: michael@0: var desc = g.Object.getOwnPropertyDescriptor(g, "x"); michael@0: assertEq(desc.configurable, true); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.get, g.gf); michael@0: assertEq(desc.set, g.sf);