-// Copyright (c) 2009-2011 by Kris Maglione <maglione.k@gmail.com>
+// Copyright (c) 2009-2012 Kris Maglione <maglione.k@gmail.com>
//
// This work is licensed for reuse under an MIT license. Details are
// given in the LICENSE.txt file included with this file.
-/* use strict */
+"use strict";
try {
-Components.utils.import("resource://dactyl/bootstrap.jsm");
defineModule("main", {
exports: ["ModuleBase"],
require: ["config", "overlay", "services", "util"]
-}, this);
+});
var BASE = "resource://dactyl-content/";
Module.list = [];
Module.constructors = {};
- const create = window.Object.create || (function () {
- window.__dactyl_eval_string = "(function (proto) ({ __proto__: proto }))";
- JSMLoader.loadSubScript(BASE + "eval.js", window);
-
- let res = window.__dactyl_eval_result;
- delete window.__dactyl_eval_string;
- delete window.__dactyl_eval_result;
- return res;
- })();
+ const create = window.Object.create.bind(window.Object);
const BASES = [BASE, "resource://dactyl-local-content/"];
- const jsmodules = { NAME: "jsmodules" };
+ jsmodules = Cu.createObjectIn(window);
+ jsmodules.NAME = "jsmodules";
const modules = update(create(jsmodules), {
yes_i_know_i_should_not_report_errors_in_these_branches_thanks: [],
}
}
try {
- require(jsmodules, script);
+ require(script, jsmodules);
}
catch (e) {
util.dump("Loading script " + script + ":");
wantXrays: false });
// Hack:
- sandbox.Object = jsmodules.Object;
+ // sandbox.Object = jsmodules.Object;
sandbox.File = jsmodules.File;
sandbox.Math = jsmodules.Math;
sandbox.__proto__ = proto || modules;
defineModule.time("load", null, function _load() {
config.modules.global
- .forEach(function (name) defineModule.time("load", name, require, null, modules.jsmodules, name));
+ .forEach(function (name) {
+ if (!isArray(name))
+ defineModule.time("load", name, require, null, name, modules.jsmodules);
+ else
+ lazyRequire(name[0], name.slice(1), modules.jsmodules);
+ });
config.modules.window
.forEach(function (name) defineModule.time("load", name, modules.load, modules, name));