summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/content/buffer.js6
-rw-r--r--common/content/commands.js36
-rw-r--r--common/content/mappings.js6
-rw-r--r--common/content/marks.js2
-rw-r--r--common/content/options.js4
-rw-r--r--common/content/tabs.js2
-rw-r--r--common/modules/base.jsm3
-rw-r--r--common/modules/completion.jsm2
-rw-r--r--common/modules/finder.jsm2
-rw-r--r--common/modules/overlay.jsm42
10 files changed, 66 insertions, 39 deletions
diff --git a/common/content/buffer.js b/common/content/buffer.js
index 9c5f3031..1357afd6 100644
--- a/common/content/buffer.js
+++ b/common/content/buffer.js
@@ -1640,9 +1640,9 @@ var Buffer = Module("buffer", {
};
},
events: function () {
- events.addSessionListener(config.browser, "DOMContentLoaded", this.closure.onDOMContentLoaded, true);
- events.addSessionListener(config.browser, "load", this.closure.onPageLoad, true);
- events.addSessionListener(config.browser, "scroll", this.closure._updateBufferPosition, false);
+ events.addSessionListener(config.browser, "DOMContentLoaded", buffer.closure.onDOMContentLoaded, true);
+ events.addSessionListener(config.browser, "load", buffer.closure.onPageLoad, true);
+ events.addSessionListener(config.browser, "scroll", buffer.closure._updateBufferPosition, false);
},
mappings: function () {
var myModes = config.browserModes;
diff --git a/common/content/commands.js b/common/content/commands.js
index 095f9e4b..fcb19500 100644
--- a/common/content/commands.js
+++ b/common/content/commands.js
@@ -468,7 +468,7 @@ var Commands = Module("commands", {
_addCommand: function (args, replace) {
if (!args[3])
args[3] = {};
- args[3].definedAt = commands.getCaller(Components.stack.caller.caller);
+ args[3].definedAt = Commands.getCaller(Components.stack.caller.caller);
let names = array.flatten(Command.parseSpecs(args[0]));
args.parsedSpecs = names;
@@ -660,23 +660,6 @@ var Commands = Module("commands", {
},
/**
- * Returns a frame object describing the currently executing
- * command, if applicable, otherwise returns the passed frame.
- *
- * @param {nsIStackFrame} frame
- */
- getCaller: function (frame) {
- if (io.sourcing)
- return {
- __proto__: frame,
- filename: io.sourcing.file[0] == "[" ? io.sourcing.file :
- services.io.newFileURI(File(io.sourcing.file)).spec,
- lineNumber: io.sourcing.line
- };
- return frame;
- },
-
- /**
* Returns true if a command invocation contains a URL referring to the
* domain *host*.
*
@@ -1179,6 +1162,23 @@ var Commands = Module("commands", {
delete this._exMap[name];
}
}, {
+ /**
+ * Returns a frame object describing the currently executing
+ * command, if applicable, otherwise returns the passed frame.
+ *
+ * @param {nsIStackFrame} frame
+ */
+ getCaller: function (frame) {
+ if (io.sourcing)
+ return {
+ __proto__: frame,
+ filename: io.sourcing.file[0] == "[" ? io.sourcing.file :
+ services.io.newFileURI(File(io.sourcing.file)).spec,
+ lineNumber: io.sourcing.line
+ };
+ return frame;
+ },
+
// returns [count, parsed_argument]
parseArg: function parseArg(str, sep, keepQuotes) {
let arg = "";
diff --git a/common/content/mappings.js b/common/content/mappings.js
index 02bd1847..dd19bda4 100644
--- a/common/content/mappings.js
+++ b/common/content/mappings.js
@@ -172,7 +172,7 @@ var MapHive = Class("MapHive", {
extra = extra || {};
let map = Map(modes, keys, description, action, extra);
- map.definedAt = commands.getCaller(Components.stack.caller);
+ map.definedAt = Commands.getCaller(Components.stack.caller);
map.hive = this;
if (this.name !== "builtin")
@@ -344,7 +344,7 @@ var Mappings = Module("mappings", {
*/
add: function () {
let map = this.builtin.add.apply(this.builtin, arguments);
- map.definedAt = commands.getCaller(Components.stack.caller);
+ map.definedAt = Commands.getCaller(Components.stack.caller);
return map;
},
@@ -361,7 +361,7 @@ var Mappings = Module("mappings", {
*/
addUserMap: function () {
let map = this.user.add.apply(this.user, arguments);
- map.definedAt = commands.getCaller(Components.stack.caller);
+ map.definedAt = Commands.getCaller(Components.stack.caller);
return map;
},
diff --git a/common/content/marks.js b/common/content/marks.js
index 30dcedbb..729e23ac 100644
--- a/common/content/marks.js
+++ b/common/content/marks.js
@@ -208,7 +208,7 @@ var Marks = Module("marks", {
events: function () {
let appContent = document.getElementById("appcontent");
if (appContent)
- events.addSessionListener(appContent, "load", this.closure._onPageLoad, true);
+ events.addSessionListener(appContent, "load", marks.closure._onPageLoad, true);
},
mappings: function () {
var myModes = config.browserModes;
diff --git a/common/content/options.js b/common/content/options.js
index 9c691d5a..18aa4097 100644
--- a/common/content/options.js
+++ b/common/content/options.js
@@ -660,7 +660,7 @@ var Options = Module("options", {
if (!extraInfo)
extraInfo = {};
- extraInfo.definedAt = commands.getCaller(Components.stack.caller);
+ extraInfo.definedAt = Commands.getCaller(Components.stack.caller);
let name = names[0];
if (name in this._optionMap) {
@@ -973,7 +973,7 @@ var Options = Module("options", {
}
if (res)
dactyl.echoerr(res);
- option.setFrom = commands.getCaller(null);
+ option.setFrom = Commands.getCaller(null);
}
}
flushList();
diff --git a/common/content/tabs.js b/common/content/tabs.js
index 49add59a..b366c51e 100644
--- a/common/content/tabs.js
+++ b/common/content/tabs.js
@@ -875,7 +875,7 @@ var Tabs = Module("tabs", {
}
for (let event in values(["TabMove", "TabOpen", "TabClose"]))
events.addSessionListener(tabContainer, event, callback, false);
- events.addSessionListener(tabContainer, "TabSelect", this.closure._onTabSelect, false);
+ events.addSessionListener(tabContainer, "TabSelect", tabs.closure._onTabSelect, false);
},
mappings: function () {
mappings.add([modes.NORMAL], ["g0", "g^"],
diff --git a/common/modules/base.jsm b/common/modules/base.jsm
index 92f8655a..020fbbb5 100644
--- a/common/modules/base.jsm
+++ b/common/modules/base.jsm
@@ -147,6 +147,9 @@ defineModule.modules = [];
defineModule.times = { all: 0 };
defineModule.time = function time(major, minor, func, self) {
let time = Date.now();
+ if (typeof func !== "function")
+ func = self[func];
+
try {
var res = func.apply(self, Array.slice(arguments, 4));
}
diff --git a/common/modules/completion.jsm b/common/modules/completion.jsm
index ab2a8a74..1b788d4d 100644
--- a/common/modules/completion.jsm
+++ b/common/modules/completion.jsm
@@ -844,7 +844,7 @@ var Completion = Module("completion", {
get setFunctionCompleter() JavaScript.setCompleter, // Backward compatibility
Local: function (dactyl, modules, window) ({
- options: modules.options,
+ get options() modules.options,
// FIXME
_runCompleter: function _runCompleter(name, filter, maxItems) {
diff --git a/common/modules/finder.jsm b/common/modules/finder.jsm
index 45d98e24..a5b9280d 100644
--- a/common/modules/finder.jsm
+++ b/common/modules/finder.jsm
@@ -162,7 +162,7 @@ var RangeFinder = Module("rangefinder", {
}, {
}, {
modes: function (dactyl, modules, window) {
- const { commandline, modes } = modules;
+ const { modes } = modules;
modes.addMode("FIND", {
extended: true,
description: "Find mode, active when typing search input",
diff --git a/common/modules/overlay.jsm b/common/modules/overlay.jsm
index d9165085..e7dd2afe 100644
--- a/common/modules/overlay.jsm
+++ b/common/modules/overlay.jsm
@@ -246,9 +246,11 @@ var Overlay = Module("Overlay", {
defineModule.loadLog.push(" from: " + util.fixURI(frame.filename) + ":" + frame.lineNumber);
delete modules[module.className];
+ // util.dump("INIT: " + module.className);
modules[module.className] = defineModule.time(module.className, "init", module);
+ frob(module.className);
- init(modules[module.className]);
+ // init(modules[module.className]);
}
catch (e) {
util.dump("Loading " + (module && module.className) + ":");
@@ -257,16 +259,38 @@ var Overlay = Module("Overlay", {
return modules[module.className];
}
- for each (let module in defineModule.modules)
- if (module.INIT.init)
- defineModule.time(module.constructor.className, "init",
- module.INIT.init, module,
- modules.dactyl, modules, window);
+ Module.list.forEach(function (mod) {
+ Object.keys(mod.prototype.INIT).forEach(function (name) {
+ deferredInit[name] = deferredInit[name] || [];
+ deferredInit[name].push(function () {
+ // util.dump("INIT: " + mod.className + ":" + name);
+ defineModule.time(mod.className, name,
+ name, mod.prototype.INIT,
+ modules.dactyl, modules, window);
+ });
+ });
+ });
+ defineModule.modules.forEach(function (mod) {
+ Object.keys(mod.INIT).forEach(function (name) {
+ deferredInit[name] = deferredInit[name] || [];
+ deferredInit[name].push(function () {
+ // util.dump("INIT: " + mod.constructor.className + ":" + name);
+ defineModule.time(mod.constructor.className, name,
+ mod.INIT[name], mod,
+ modules.dactyl, modules, window);
+ });
+ });
+ });
+
+ function frob(name) {
+ (deferredInit[name] || []).forEach(call);
+ }
- defineModule.modules.map(init);
+ frob("init");
+ defineModule.modules.forEach(function (mod) { frob(mod.className); });
- Module.list.forEach(load);
- deferredInit["load"].forEach(call);
+ // Module.list.forEach(load);
+ frob("load");
modules.times = update({}, defineModule.times);
defineModule.loadLog.push("Loaded in " + (Date.now() - start) + "ms");