X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fmodules%2Fmessages.jsm;h=82c0f3c6f261f27905bc91817941187bed923841;hb=refs%2Fheads%2Fupstream;hp=36fead2c19abd57265800d202bf0e6bfbb85ae4d;hpb=354a049cce8415487552ce405cce167b7071fe1f;p=dactyl.git diff --git a/common/modules/messages.jsm b/common/modules/messages.jsm index 36fead2..82c0f3c 100644 --- a/common/modules/messages.jsm +++ b/common/modules/messages.jsm @@ -1,4 +1,4 @@ -// Copyright (c) 2011-2013 Kris Maglione +// Copyright (c) 2011-2014 Kris Maglione // // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. @@ -11,7 +11,7 @@ defineModule("messages", { var Messages = Module("messages", { - init: function init(name = "messages") { + init: function init(name="messages") { let self = this; this.name = name; @@ -45,13 +45,21 @@ var Messages = Module("messages", { "resource://dactyl-locale-local/en-US/" + this.name + ".properties"], true) .map(services.stringBundle.createBundle) - .filter(function (bundle) { try { bundle.getSimpleEnumeration(); return true; } catch (e) { return false; } })), + .filter(function (bundle) { + try { + bundle.getSimpleEnumeration(); + return true; + } + catch (e) { + return false; + } + })), iterate: function () { - let seen = {}; + let seen = RealSet(); for (let bundle in values(this.bundles)) for (let { key, value } in iter(bundle.getSimpleEnumeration(), Ci.nsIPropertyElement)) - if (!Set.add(seen, key)) + if (!seen.add(key)) yield [key, value]; }, @@ -97,7 +105,7 @@ var Messages = Module("messages", { let { Buffer, commands, hints, io, mappings, modes, options, sanitizer } = overlay.activeModules; file = io.File(file); - function properties(base, iter_, prop = "description") iter(function _properties() { + function properties(base, iter_, prop="description") iter(function _properties() { function key(...args) [base, obj.identifier || obj.name].concat(args).join(".").replace(/[\\:=]/g, "\\$&"); for (var obj in iter_) { @@ -139,9 +147,9 @@ var Messages = Module("messages", { return { configurable: true, enumerable: true, value: this.default, writable: true }; */ - if (!Set.has(obj, "localizedProperties")) - obj.localizedProperties = { __proto__: obj.localizedProperties }; - obj.localizedProperties[prop] = true; + if (!hasOwnProperty(obj, "localizedProperties")) + obj.localizedProperties = RealSet(obj.localizedProperties); + obj.localizedProperties.add(prop); obj[_prop] = this.default; return {