From f0dbb9a3148f975ba5e57405038b18539fa9cce5 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Tue, 25 Feb 2014 09:15:15 -0800 Subject: [PATCH] Better validateCompleter fix. --- common/modules/contexts.jsm | 2 +- common/modules/options.jsm | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/common/modules/contexts.jsm b/common/modules/contexts.jsm index 51fb0ec6..3fc45fd9 100644 --- a/common/modules/contexts.jsm +++ b/common/modules/contexts.jsm @@ -94,7 +94,7 @@ var Contexts = Module("contexts", { }, cleanup: function () { - for (let module of this.pluginModules) + for each (let module in this.pluginModules) util.trapErrors("unload", module); this.pluginModules = {}; diff --git a/common/modules/options.jsm b/common/modules/options.jsm index 52228aec..302a1d34 100644 --- a/common/modules/options.jsm +++ b/common/modules/options.jsm @@ -109,6 +109,8 @@ var Option = Class("Option", { */ parse: function parse(value) Option.dequote(value), + parseKey: function parseKey(value) value, + /** * Returns *values* packed in the appropriate format for the option type. * @@ -564,6 +566,11 @@ var Option = Class("Option", { }, this)) }, + parseKey: { + number: Number, + boolean: function boolean(value) value == "true" || value == true ? true : false, + }, + testValues: { regexpmap: function regexpmap(vals, validator) vals.every(re => validator(re.result)), get sitemap() this.regexpmap, @@ -742,7 +749,8 @@ var Option = Class("Option", { if (isArray(acceptable)) acceptable = RealSet(acceptable.map(([k]) => k)); else - acceptable = RealSet(this.parse(k) for (k in Object.keys(acceptable))); + acceptable = RealSet(this.parseKey(k) + for (k of Object.keys(acceptable))); if (this.type === "regexpmap" || this.type === "sitemap") return Array.concat(vals).every(re => acceptable.has(re.result)); @@ -776,6 +784,9 @@ var Option = Class("Option", { if (type in Option.parse) class_.prototype.parse = Option.parse[type]; + if (type in Option.parseKey) + class_.prototype.parseKey = Option.parse[type]; + if (type in Option.stringify) class_.prototype.stringify = Option.stringify[type];