mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-24 15:24:18 +00:00
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
|
|
Cu.import("resource://gre/modules/Services.jsm");
|
|
Cu.import("resource://gre/modules/jsdebugger.jsm");
|
|
|
|
const testingFunctions = Cu.getJSTestingFunctions();
|
|
const systemPrincipal = Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal);
|
|
|
|
function addTestingFunctionsToGlobal(global) {
|
|
for (let k in testingFunctions) {
|
|
global[k] = testingFunctions[k];
|
|
}
|
|
global.print = do_print;
|
|
global.newGlobal = newGlobal;
|
|
addDebuggerToGlobal(global);
|
|
}
|
|
|
|
function newGlobal() {
|
|
const global = new Cu.Sandbox(systemPrincipal, { freshZone: true });
|
|
addTestingFunctionsToGlobal(global);
|
|
return global;
|
|
}
|
|
|
|
addTestingFunctionsToGlobal(this);
|
|
|
|
function executeSoon(f) {
|
|
Services.tm.mainThread.dispatch({ run: f },
|
|
Ci.nsIThread.DISPATCH_NORMAL);
|
|
}
|
|
|
|
// The onGarbageCollection tests don't play well gczeal settings and lead to
|
|
// intermittents.
|
|
if (typeof gczeal == "function") {
|
|
gczeal(0);
|
|
}
|
|
|
|
// Make sure to GC before we start the test, so that no zones are scheduled for
|
|
// GC before we start testing onGarbageCollection hooks.
|
|
gc();
|