Source code

Revision control

Copy as Markdown

Other Tools

// The global created for the interrupt-callback can't use the Debugger.
this.globalVar = 1;
setInterruptCallback(`
try {
var dbg = new Debugger();
dbg.addAllGlobalsAsDebuggees();
dbg.getDebuggees().forEach(g => {
g.executeInGlobal("globalThis.globalVar = 2");
});
} catch (e) {}
true
`);
interruptIf(true);
for (var i = 0; i < 10; i++) {}
assertEq(globalVar, 1);
// The global created for the interrupt-callback is invisible to the Debugger.
var dbg = new Debugger();
var fired = 0;
dbg.onNewGlobalObject = function() {
fired++;
};
newGlobal();
assertEq(fired, 1);
setInterruptCallback(`newGlobal({newCompartment: true, invisibleToDebugger: false}); true`);
interruptIf(true);
for (var i = 0; i < 10; i++) {}
assertEq(fired, 1);