|
1 // Debugger.Object.prototype.evalInGlobal: closures capturing the global |
|
2 |
|
3 var g = newGlobal(); |
|
4 var h = newGlobal(); |
|
5 var dbg = new Debugger; |
|
6 var gw = dbg.addDebuggee(g); |
|
7 var hw = dbg.addDebuggee(h); |
|
8 |
|
9 g.x = "W H O K I L L"; |
|
10 h.x = "No Color"; |
|
11 var c1 = gw.evalInGlobal('(function () { return x; })').return; |
|
12 var c2 = hw.evalInGlobal('(function () { return x; })').return; |
|
13 var c3 = gw.evalInGlobalWithBindings('(function () { return x + y; })', { y:" In Rainbows" }).return; |
|
14 var c4 = hw.evalInGlobalWithBindings('(function () { return x + y; })', { y:" In Rainbows" }).return; |
|
15 |
|
16 assertEq(c1.call(null).return, "W H O K I L L"); |
|
17 assertEq(c2.call(null).return, "No Color"); |
|
18 assertEq(c3.call(null).return, "W H O K I L L In Rainbows"); |
|
19 assertEq(c4.call(null).return, "No Color In Rainbows"); |