michael@0: // Debugger.Object.prototype.unwrap unwraps Debugger.Objects referring to michael@0: // cross-compartment wrappers. michael@0: michael@0: var dbg = new Debugger(); michael@0: michael@0: var g1 = newGlobal(); michael@0: var dg1 = dbg.addDebuggee(g1); michael@0: assertEq(dg1.unwrap(), dg1); michael@0: michael@0: var g2 = newGlobal(); michael@0: var dg2 = dbg.addDebuggee(g2); michael@0: michael@0: var dg1g2 = dg1.makeDebuggeeValue(g2); michael@0: assertEq(dg1g2.global, dg1); michael@0: assertEq(dg1g2.unwrap(), dg2); michael@0: michael@0: // Try an ordinary object, not a global. michael@0: var g2o = g2.Object(); michael@0: var dg2o = dg2.makeDebuggeeValue(g2o); michael@0: var dg1g2o = dg1.makeDebuggeeValue(g2o); michael@0: assertEq(dg1g2o.global, dg1); michael@0: assertEq(dg1g2o.unwrap(), dg2o); michael@0: assertEq(dg1g2o.unwrap().unwrap(), dg2o);