diff --git a/common/content/bookmarks.js b/common/content/bookmarks.js index f77432c4..87ac0d89 100644 --- a/common/content/bookmarks.js +++ b/common/content/bookmarks.js @@ -682,7 +682,6 @@ var Bookmarks = Module("bookmarks", { context.format = history.format; context.title = [/*L*/keyword + " Quick Search"]; context.keys = { text: "url", description: "title", icon: "icon" }; - // context.background = true; context.compare = CompletionContext.Sort.unsorted; context.generate = function () { let [begin, end] = item.url.split("%s"); diff --git a/common/content/commandline.js b/common/content/commandline.js index 0da9dd8e..dfb30113 100644 --- a/common/content/commandline.js +++ b/common/content/commandline.js @@ -394,11 +394,12 @@ var CommandMode = Class("CommandMode", { commandline.hideCompletions(); + let result = this.command; modes.delay(function () { if (!this.keepCommand || commandline.silent || commandline.quiet) commandline.hide(); if (!waiting) - this[this.accepted ? "onSubmit" : "onCancel"](commandline.command); + this[this.accepted ? "onSubmit" : "onCancel"](result); if (commandline.messageCount === this.messageCount) commandline.clearMessage(); }, this); diff --git a/common/content/dactyl.js b/common/content/dactyl.js index 36bef7fe..14c95b5e 100644 --- a/common/content/dactyl.js +++ b/common/content/dactyl.js @@ -953,7 +953,6 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), { // decide where to load the first url switch (where) { - case dactyl.NEW_TAB: if (!dactyl.has("tabs")) return open(loc, dactyl.NEW_WINDOW); diff --git a/common/modules/options.jsm b/common/modules/options.jsm index 2b874ebb..d85d2b77 100644 --- a/common/modules/options.jsm +++ b/common/modules/options.jsm @@ -705,9 +705,13 @@ var Option = Class("Option", { return this.value.filter(function (item) !this.has(item), new RealSet(values)); case "=": if (invert) { - let keepValues = this.value.filter(function (item) !this.has(item), new RealSet(values)); - let addValues = values.filter(function (item) !this.has(item), new RealSet(this.value)); - return addValues.concat(keepValues); + let old = this.value.map(String); + let new_ = values.map(String); + let map = Ary(this.value).concat(values).map(val => [String(val), val]).toObject(); + + let keepValues = old.filter(function (item) !this.has(item), new RealSet(new_)); + let addValues = new_.filter(function (item) !this.has(item), new RealSet(old)); + return addValues.concat(keepValues).map(s => map[s]); } return values; } diff --git a/common/modules/promises.jsm b/common/modules/promises.jsm index 6ef8f426..a7e60aac 100644 --- a/common/modules/promises.jsm +++ b/common/modules/promises.jsm @@ -83,6 +83,13 @@ var Promises = Module("Promises", { }); }, + /** + * Returns true if the passed object is a promise. + */ + isPromise: function isPromise(obj) { + return isObject(obj) && typeof obj.then === "function"; + }, + /** * Returns a promise which resolves after the given number of * milliseconds.