1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-21 19:17:59 +01:00

Resurrect my range finder, Part I.

This commit is contained in:
Kris Maglione
2009-11-09 23:00:56 -05:00
parent dd924d0822
commit 95fa7a4037
4 changed files with 298 additions and 8 deletions

View File

@@ -23,6 +23,7 @@ window.addEventListener("load", function () {
const start = Date.now();
const deferredInit = { load: [] };
const seen = set();
const loaded = [];
function load(module, prereq) {
try {
@@ -36,23 +37,26 @@ window.addEventListener("load", function () {
load(Module.constructors[dep], module.name);
dump("Load" + (isstring(prereq) ? " " + prereq + " dependency: " : ": ") + module.name);
loaded.push(module.name);
modules[module.name] = module();
function init(mod, module)
function () module.INIT[mod].call(modules[module.name], modules[mod]);
for (let [mod, ] in iter(module.INIT))
for (let mod in values(loaded)) {
try {
if (mod in modules)
if (mod in module.INIT)
init(mod, module)();
else {
deferredInit[mod] = deferredInit[mod] || [];
deferredInit[mod].push(init(mod, module));
}
delete module.INIT[mod]
}
catch(e) {
if (modules.liberator)
liberator.reportError(e);
}
}
for (let mod in keys(module.INIT)) {
deferredInit[mod] = deferredInit[mod] || [];
deferredInit[mod].push(init(mod, module));
}
for (let [, fn] in iter(deferredInit[module.name] || []))
fn();
}