1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 00:17:58 +01:00

Override RealSet#add to match Set.add

This commit is contained in:
Kris Maglione
2014-02-22 10:07:58 -08:00
parent 9bb6dce76d
commit 619b414ca7
9 changed files with 23 additions and 44 deletions

View File

@@ -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) [

View File

@@ -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);
}

View File

@@ -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;
}
},
/**

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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;
}
});

View File

@@ -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) {}
},

View File

@@ -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);

View File

@@ -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_) {