From 9ed5d069eefeccd2485d33f362ecbfa90ec753f6 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Fri, 8 Oct 2010 15:31:53 -0400 Subject: [PATCH] Fix prefixing of dump messages from base.jsm. --- common/content/dactyl-overlay.js | 2 +- common/modules/base.jsm | 22 +++++++++++++++++----- common/modules/services.jsm | 4 ++-- common/modules/util.jsm | 10 +--------- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/common/content/dactyl-overlay.js b/common/content/dactyl-overlay.js index 676a403d..f764ef9d 100644 --- a/common/content/dactyl-overlay.js +++ b/common/content/dactyl-overlay.js @@ -13,7 +13,7 @@ sandbox.__proto__ = proto || modules; return sandbox; } - const jsmodules = {}; + const jsmodules = { dump: function dump_(arg) window.dump("dactyl: " + arg + "\n") }; const modules = { __proto__: jsmodules, get content() window.content, diff --git a/common/modules/base.jsm b/common/modules/base.jsm index 9b360ba8..d02930fa 100644 --- a/common/modules/base.jsm +++ b/common/modules/base.jsm @@ -112,7 +112,19 @@ function defineModule(name, params) { } defineModule.loadLog = []; -Object.defineProperty(defineModule.loadLog, "push", { value: function (val) { dump(val + "\n"); this[this.length] = val; } }); +Object.defineProperty(defineModule.loadLog, "push", { + value: function (val) { defineModule.dump(val + "\n"); this[this.length] = val; } +}); +defineModule.dump = function dump_() { + let msg = Array.map(arguments, function (msg) { + if (loaded.util && typeof msg == "object") + msg = util.objectToString(msg); + return msg; + }).join(", "); + let name = loaded.services ? services.get("dactyl:").name : "dactyl"; + dump(String.replace(msg, /\n?$/, "\n") + .replace(/^./gm, name + ": $&")); +} defineModule.modules = []; defineModule.times = { all: 0 }; defineModule.time = function time(major, minor, func, self) { @@ -130,9 +142,9 @@ defineModule.time = function time(major, minor, func, self) { function endModule() { defineModule.loadLog.push("endModule " + currentModule.NAME); - loaded[currentModule.NAME] = 1; for(let [, mod] in Iterator(use[currentModule.NAME] || [])) require(mod, currentModule.NAME, "use"); + loaded[currentModule.NAME] = 1; } function require(obj, name, from) { @@ -141,11 +153,11 @@ function require(obj, name, from) { Cu.import("resource://dactyl/" + name + ".jsm", obj); } catch (e) { - dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n"); + defineModule.dump("loading " + String.quote("resource://dactyl/" + name + ".jsm") + "\n"); if (loaded.util) util.reportError(e); else - dump(" " + e.fileName + ":" + e.lineNumber + ": " + e +"\n"); + defineModule.dump(" " + e.fileName + ":" + e.lineNumber + ": " + e +"\n"); } } @@ -165,10 +177,10 @@ defineModule("base", { function Runnable(self, func, args) { return { __proto__: Runnable.prototype, - QueryInterface: XPCOMUtils.generateQI([Ci.nsIRunnable]), run: function () { func.apply(self, args || []); } }; } +Runnable.prototype.QueryInterface = XPCOMUtils.generateQI([Ci.nsIRunnable]); /** * Returns a list of all of the top-level properties of an object, by diff --git a/common/modules/services.jsm b/common/modules/services.jsm index 93daf28b..d19ce9e2 100644 --- a/common/modules/services.jsm +++ b/common/modules/services.jsm @@ -3,7 +3,7 @@ // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. "use strict"; - +try { Components.utils.import("resource://dactyl/base.jsm"); defineModule("services", { exports: ["Services", "services"], @@ -136,6 +136,6 @@ const Services = Module("Services", { endModule(); -// catch(e){dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack);} +} catch(e){dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack);} // vim: set fdm=marker sw=4 sts=4 et ft=javascript: diff --git a/common/modules/util.jsm b/common/modules/util.jsm index a2342e1a..17918e85 100644 --- a/common/modules/util.jsm +++ b/common/modules/util.jsm @@ -231,15 +231,7 @@ const Util = Module("Util", { * * @param {string|Object} msg The message to print. */ - dump: function dump_() { - let msg = Array.map(arguments, function (msg) { - if (typeof msg == "object") - msg = util.objectToString(msg); - return msg; - }).join(", "); - msg = String.replace(msg, /\n?$/, "\n"); - dump(msg.replace(/^./gm, services.get("dactyl:").name + ": $&")); - }, + dump: defineModule.dump, /** * Dumps a stack trace to the console.