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) {
if (typeof arg !== "string")
this._atexit.push(arguments);
this._atexit.push([arg, self]);
else
for (let [fn, self] of this._atexit)
try {

View File

@@ -125,8 +125,16 @@ var Modules = function Modules(window) {
return p;
},
set: function window_set(target, prop, val) {
return target[prop] = val;
set: function window_set(target, prop, val, receiver) {
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) {
overlay.windows.delete(window);
JSMLoader.atexit(() => {
Cu.nukeSandbox(this.jsmodules);
});
},
unload: function unload(window) {

View File

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