|
1 // Debugger.Object.prototype.unwrap unwraps Debugger.Objects referring to |
|
2 // cross-compartment wrappers. |
|
3 |
|
4 var dbg = new Debugger(); |
|
5 |
|
6 var g1 = newGlobal(); |
|
7 var dg1 = dbg.addDebuggee(g1); |
|
8 assertEq(dg1.unwrap(), dg1); |
|
9 |
|
10 var g2 = newGlobal(); |
|
11 var dg2 = dbg.addDebuggee(g2); |
|
12 |
|
13 var dg1g2 = dg1.makeDebuggeeValue(g2); |
|
14 assertEq(dg1g2.global, dg1); |
|
15 assertEq(dg1g2.unwrap(), dg2); |
|
16 |
|
17 // Try an ordinary object, not a global. |
|
18 var g2o = g2.Object(); |
|
19 var dg2o = dg2.makeDebuggeeValue(g2o); |
|
20 var dg1g2o = dg1.makeDebuggeeValue(g2o); |
|
21 assertEq(dg1g2o.global, dg1); |
|
22 assertEq(dg1g2o.unwrap(), dg2o); |
|
23 assertEq(dg1g2o.unwrap().unwrap(), dg2o); |