blob: 04035c59be571ca4c20ebaac99bf90554d289ca7 [file] [log] [blame]
// Don't allow cycles in the graph of the compartment "debugs" relation.
load(libdir + "asserts.js");
// trivial cycles
var dbg = new Debugger;
assertThrowsInstanceOf(function () { dbg.addDebuggee(this); }, TypeError);
assertThrowsInstanceOf(function () { new Debugger(this); }, TypeError);
// cycles of length 2
var d1 = newGlobal();
d1.top = this;
d1.eval("var dbg = new Debugger(top)");
assertThrowsInstanceOf(function () { dbg.addDebuggee(d1); }, TypeError);
assertThrowsInstanceOf(function () { new Debugger(d1); }, TypeError);
// cycles of length 3
var d2 = newGlobal();
d2.top = this;
d2.eval("var dbg = new Debugger(top.d1)");
assertThrowsInstanceOf(function () { dbg.addDebuggee(d2); }, TypeError);
assertThrowsInstanceOf(function () { new Debugger(d2); }, TypeError);