<!doctype html> <html> <head> <title>Bug 1150253 - Sanity test for the SpiderMonkey Debugger API's onGarbageCollection hook</title> <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"> </script> </head> <body xmlns="http://www.w3.org/1999/xhtml"> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1150253" target="_blank">Mozilla Bug 1150253</a> <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); const { gc } = Cu.getJSTestingFunctions(); // Instantiate `Debugger` in a sandbox as Debugger requires to be created // in a compartment different than the debuggee. let sandbox = Cu.Sandbox( Components.Constructor("@mozilla.org/systemprincipal;1", "nsIPrincipal")(), { freshCompartment: true, wantGlobalProperties: ["ChromeUtils"], } ); Cu.evalInSandbox(` const { addDebuggerToGlobal } = ChromeUtils.importESModule( 'resource://gre/modules/jsdebugger.sys.mjs' ); addDebuggerToGlobal(globalThis); `, sandbox ); const dbg = new sandbox.Debugger(this); dbg.memory.onGarbageCollection = function (data) { // Don't keep calling this hook after we finish. dbg.memory.onGarbageCollection = undefined; dbg.removeAllDebuggees(); ok(data, "The onGarbageCollection hook was fired."); SimpleTest.finish(); }; gc(); </script> </body> </html>