// Turning debugger on for a particular global with on-stack scripts shouldn't // make other globals' scripts observable.
var g1 = newGlobal({newCompartment: true}); var g2 = newGlobal({newCompartment: true}); var g3 = newGlobal({newCompartment: true});
g1.eval("" + function f() { var name = "f";
g(); return name;
});
g2.eval("" + function g() { var name = "g";
h(); return name;
});
g3.eval("" + function h() { var name = "h";
toggle(); return name;
});
g1.g = g2.g;
g2.h = g3.h;
function name(f) { return f.environment.getVariable("name");
}
var dbg = new Debugger;
g3.toggle = function () { var frame;
// Only f should be visible.
dbg.addDebuggee(g1);
frame = dbg.getNewestFrame();
assertEq(name(frame), "f");
// Now h should also be visible.
dbg.addDebuggee(g3);
frame = dbg.getNewestFrame();
assertEq(name(frame), "h");
assertEq(name(frame.older), "f");
// Finally everything should be visible.
dbg.addDebuggee(g2);
frame = dbg.getNewestFrame();
assertEq(name(frame), "h");
assertEq(name(frame.older), "g");
assertEq(name(frame.older.older), "f");
};
g1.eval("(" + function () { f(); } + ")();");
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.