michael@0: // Debugger.Object.prototype.evalInGlobal: closures capturing the global michael@0: michael@0: var g = newGlobal(); michael@0: var h = newGlobal(); michael@0: var dbg = new Debugger; michael@0: var gw = dbg.addDebuggee(g); michael@0: var hw = dbg.addDebuggee(h); michael@0: michael@0: g.x = "W H O K I L L"; michael@0: h.x = "No Color"; michael@0: var c1 = gw.evalInGlobal('(function () { return x; })').return; michael@0: var c2 = hw.evalInGlobal('(function () { return x; })').return; michael@0: var c3 = gw.evalInGlobalWithBindings('(function () { return x + y; })', { y:" In Rainbows" }).return; michael@0: var c4 = hw.evalInGlobalWithBindings('(function () { return x + y; })', { y:" In Rainbows" }).return; michael@0: michael@0: assertEq(c1.call(null).return, "W H O K I L L"); michael@0: assertEq(c2.call(null).return, "No Color"); michael@0: assertEq(c3.call(null).return, "W H O K I L L In Rainbows"); michael@0: assertEq(c4.call(null).return, "No Color In Rainbows");