Source code

Revision control

Copy as Markdown

Other Tools

const g = newGlobal({ newCompartment: true });
g.OtherObject = Object;
g.eval(`
var x1 = { __proto__: OtherObject.prototype };
`);
const dbg = new Debugger();
const gDO = dbg.addDebuggee(g);
const x1DO = gDO.makeDebuggeeValue(g.x1);
// If the debuggee object has prototype from another global,
// only the ctor/proto from that global should match.
const ObjectDO = gDO.makeDebuggeeValue(g.Object);
assertEq(dbg.findObjects({ class: ObjectDO }).includes(x1DO), false);
const ObjectProtoDO = gDO.makeDebuggeeValue(g.Object.prototype);
assertEq(dbg.findObjects({ class: ObjectProtoDO }).includes(x1DO), false);
const OtherObjectDO = gDO.makeDebuggeeValue(Object);
assertEq(dbg.findObjects({ class: OtherObjectDO }).includes(x1DO), true);
const OtherObjectProtoDO = gDO.makeDebuggeeValue(Object.prototype);
assertEq(dbg.findObjects({ class: OtherObjectProtoDO }).includes(x1DO), true);