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

Fix :rehash/updating.

This commit is contained in:
Kris Maglione
2015-05-12 20:49:07 -07:00
parent fbdae38c9e
commit 1c2766371b
3 changed files with 15 additions and 5 deletions

2
common/bootstrap.js vendored
View File

@@ -113,7 +113,7 @@ let JSMLoader = {
atexit: function atexit(arg, self) { atexit: function atexit(arg, self) {
if (typeof arg !== "string") if (typeof arg !== "string")
this._atexit.push(arguments); this._atexit.push([arg, self]);
else else
for (let [fn, self] of this._atexit) for (let [fn, self] of this._atexit)
try { try {

View File

@@ -125,8 +125,16 @@ var Modules = function Modules(window) {
return p; return p;
}, },
set: function window_set(target, prop, val) { set: function window_set(target, prop, val, receiver) {
return target[prop] = val; if (receiver !== target)
Object.defineProperty(receiver, prop, {
value: val,
enumerable: true, configurable: true, writable: true
});
else
target[prop] = val;
return true;
} }
}); });
@@ -249,7 +257,9 @@ overlay.overlayWindow(Object.keys(config.overlays),
cleanup: function cleanup(window) { cleanup: function cleanup(window) {
overlay.windows.delete(window); overlay.windows.delete(window);
Cu.nukeSandbox(this.jsmodules); JSMLoader.atexit(() => {
Cu.nukeSandbox(this.jsmodules);
});
}, },
unload: function unload(window) { unload: function unload(window) {

View File

@@ -102,7 +102,7 @@ var Overlay = Module("Overlay", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReferen
if (event === true) if (event === true)
target = null; target = null;
this.setData(doc, "listeners", listeners.filter(function (args) { this.setData(doc, "listeners", listeners.filter(args => {
let elem = args[0].get(); let elem = args[0].get();
if (target == null || elem == target && args[1] == event && args[2].wrapped == callback && args[3] == capture) { if (target == null || elem == target && args[1] == event && args[2].wrapped == callback && args[3] == capture) {
apply(elem, "removeEventListener", args.slice(1)); apply(elem, "removeEventListener", args.slice(1));