mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 00:27:58 +01:00
Override RealSet#add to match Set.add
This commit is contained in:
@@ -383,10 +383,8 @@ var Mappings = Module("mappings", {
|
||||
let seen = RealSet();
|
||||
for (let hive in this.hives.iterValues())
|
||||
for (let map in array(hive.getStack(mode)).iterValues())
|
||||
if (!seen.has(map.name)) {
|
||||
seen.add(map.name);
|
||||
if (!seen.add(map.name))
|
||||
yield map;
|
||||
}
|
||||
},
|
||||
|
||||
// NOTE: just normal mode for now
|
||||
@@ -643,10 +641,8 @@ var Mappings = Module("mappings", {
|
||||
let seen = RealSet();
|
||||
for (let stack in values(hive.stacks))
|
||||
for (let map in array.iterValues(stack))
|
||||
if (!seen.has(map.id)) {
|
||||
seen.add(map.id);
|
||||
if (!seen.add(map.id))
|
||||
yield map;
|
||||
}
|
||||
}
|
||||
|
||||
modeDescription = modeDescription ? " in " + modeDescription + " mode" : "";
|
||||
@@ -758,8 +754,7 @@ var Mappings = Module("mappings", {
|
||||
for (let hive in mappings.hives.iterValues())
|
||||
for (let map in array.iterValues(hive.getStack(mode)))
|
||||
for (let name in values(map.names))
|
||||
if (!seen.has(name)) {
|
||||
seen.add(name);
|
||||
if (!seen.add(name))
|
||||
yield {
|
||||
name: name,
|
||||
columns: [
|
||||
@@ -770,7 +765,6 @@ var Mappings = Module("mappings", {
|
||||
],
|
||||
__proto__: map
|
||||
};
|
||||
}
|
||||
},
|
||||
format: {
|
||||
description: function (map) [
|
||||
|
||||
@@ -450,8 +450,7 @@ var Modes = Module("modes", {
|
||||
res = [],
|
||||
queue = [this].concat(this.bases);
|
||||
for (let mode in array.iterValues(queue))
|
||||
if (!seen.has(mode)) {
|
||||
seen.add(mode);
|
||||
if (!seen.add(mode)) {
|
||||
res.push(mode);
|
||||
queue.push.apply(queue, mode.bases);
|
||||
}
|
||||
|
||||
@@ -246,10 +246,8 @@ function properties(obj, prototypes) {
|
||||
try {
|
||||
if ("dactylPropertyNames" in obj && !prototypes)
|
||||
for (let key in values(obj.dactylPropertyNames))
|
||||
if (key in obj && !seen.has(key)) {
|
||||
seen.add(key);
|
||||
if (key in obj && !seen.add(key))
|
||||
yield key;
|
||||
}
|
||||
}
|
||||
catch (e) {}
|
||||
|
||||
@@ -289,10 +287,8 @@ function properties(obj, prototypes) {
|
||||
var iter = (v for each (v in props(obj)));
|
||||
|
||||
for (let key in iter)
|
||||
if (!prototypes || !seen.has(key) && obj != orig) {
|
||||
seen.add(key);
|
||||
if (!prototypes || !seen.add(key) && obj != orig)
|
||||
yield key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,11 +342,9 @@ deprecated.warn = function warn(func, name, alternative, frame) {
|
||||
frame = frame || Components.stack.caller.caller;
|
||||
|
||||
let filename = util.fixURI(frame.filename || "unknown");
|
||||
if (!func.seenCaller.has(filename)) {
|
||||
func.seenCaller.add(filename);
|
||||
if (!func.seenCaller.add(filename))
|
||||
util.dactyl(func).warn([util.urlPath(filename), frame.lineNumber, " "].join(":")
|
||||
+ _("warn.deprecated", name, alternative));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -394,6 +388,12 @@ var forEach = deprecated("iter.forEach", function forEach() iter.forEach.apply(i
|
||||
var iterAll = deprecated("iter", function iterAll() iter.apply(null, arguments));
|
||||
|
||||
var RealSet = Set;
|
||||
let Set_add = RealSet.prototype.add;
|
||||
RealSet.prototype.add = function RealSet_add(val) {
|
||||
let res = this.has(val);
|
||||
Set_add.apply(this, arguments);
|
||||
return res;
|
||||
};
|
||||
|
||||
/**
|
||||
* Utility for managing sets of strings. Given an array, returns an
|
||||
@@ -1567,10 +1567,8 @@ update(iter, {
|
||||
uniq: function uniq(iter) {
|
||||
let seen = RealSet();
|
||||
for (let item in iter)
|
||||
if (!seen.has(item)) {
|
||||
seen.add(item);
|
||||
if (!seen.add(item))
|
||||
yield item;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -206,10 +206,9 @@ var Cache = Module("Cache", XPCOM(Ci.nsIRequestObserver), {
|
||||
}
|
||||
|
||||
if (hasOwnProperty(this.providers, name)) {
|
||||
util.assert(!this.providing.has(name),
|
||||
util.assert(!this.providing.add(name),
|
||||
"Already generating cache for " + name,
|
||||
false);
|
||||
this.providing.add(name);
|
||||
|
||||
let [func, long] = this.providers[name];
|
||||
try {
|
||||
|
||||
@@ -405,10 +405,8 @@ var Command = Class("Command", {
|
||||
|
||||
let key = type + ":" + (context ? context.file : "[Command Line]");
|
||||
|
||||
if (!this.complained.has(key)) {
|
||||
this.complained.add(key);
|
||||
if (!this.complained.add(key))
|
||||
this.modules.dactyl.warn(loc + message);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
hasName: function hasName(specs, name)
|
||||
|
||||
@@ -534,9 +534,9 @@ var Downloads_ = Module("downloads", XPCOM(Ci.nsIDownloadProgressListener), {
|
||||
has: function () Array.some(arguments, val => this.value.some(v => v.substr(1) == val)),
|
||||
|
||||
validator: function (value) {
|
||||
let seen = {};
|
||||
let seen = RealSet();
|
||||
return value.every(val => /^[+-]/.test(val) && hasOwnProperty(this.values, val.substr(1))
|
||||
&& !Set.add(seen, val.substr(1)))
|
||||
&& !seen.add(val.substr(1)))
|
||||
&& value.length;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -77,26 +77,20 @@ var JavaScript = Module("javascript", {
|
||||
let globals = values(toplevel && this.window === obj ? this.globalNames : []);
|
||||
|
||||
if (toplevel && isObject(obj) && "wrappedJSObject" in obj)
|
||||
if (!seen.has("wrappedJSObject")) {
|
||||
seen.add("wrappedJSObject");
|
||||
if (!seen.add("wrappedJSObject"))
|
||||
yield "wrappedJSObject";
|
||||
}
|
||||
|
||||
for (let key in iter(globals, properties(obj, !toplevel)))
|
||||
if (!seen.has(key)) {
|
||||
seen.add(key);
|
||||
if (!seen.add(key))
|
||||
yield key;
|
||||
}
|
||||
|
||||
// Properties aren't visible in an XPCNativeWrapper until
|
||||
// they're accessed.
|
||||
for (let key in properties(this.getKey(obj, "wrappedJSObject"),
|
||||
!toplevel))
|
||||
try {
|
||||
if (key in obj && !seen.has(key)) {
|
||||
seen.add(key);
|
||||
if (key in obj && !seen.has(key))
|
||||
yield key;
|
||||
}
|
||||
}
|
||||
catch (e) {}
|
||||
},
|
||||
|
||||
@@ -269,9 +269,8 @@ overlay.overlayWindow(Object.keys(config.overlays),
|
||||
if (loaded.has(module.className))
|
||||
return;
|
||||
|
||||
if (seen.has(module.className))
|
||||
if (seen.add(module.className))
|
||||
throw Error("Module dependency loop.");
|
||||
seen.add(module.className);
|
||||
|
||||
for (let dep in values(module.requires))
|
||||
this.loadModule(Module.constructors[dep], module.className);
|
||||
|
||||
@@ -59,10 +59,8 @@ var Messages = Module("messages", {
|
||||
let seen = RealSet();
|
||||
for (let bundle in values(this.bundles))
|
||||
for (let { key, value } in iter(bundle.getSimpleEnumeration(), Ci.nsIPropertyElement))
|
||||
if (!seen.has(key)) {
|
||||
seen.add(key);
|
||||
if (!seen.add(key))
|
||||
yield [key, value];
|
||||
}
|
||||
},
|
||||
|
||||
get: function get(value, default_) {
|
||||
|
||||
Reference in New Issue
Block a user