1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-31 14:22:27 +01:00

Use Object.defineProperty instead of __defineGetter__/__defineSetter__

In Firefox 48+, the __defineSetter__/__defineSetter__ is deprecated,
so use Object.defineProperty instead.
This commit is contained in:
Zheng Chaoping
2016-05-04 20:00:59 +08:00
parent 1a4290d92a
commit 195ea78efb
20 changed files with 291 additions and 146 deletions

View File

@@ -253,15 +253,19 @@ overlay.overlayWindow(Object.keys(config.overlays),
this.initDependencies(className);
}
else
modules.__defineGetter__(className, () => {
let module = modules.jsmodules[className];
Class.replaceProperty(modules, className, module);
if (module.reallyInit)
module.reallyInit(); // :(
Object.defineProperty(modules, className, {
get: () => {
let module = modules.jsmodules[className];
Class.replaceProperty(modules, className, module);
if (module.reallyInit)
module.reallyInit(); // :(
if (!module.lazyDepends)
self.initDependencies(className);
return module;
if (!module.lazyDepends)
this.initDependencies(className);
return module;
},
enumerable: true,
configurable: true,
});
}, this);
},
@@ -380,9 +384,12 @@ overlay.overlayWindow(Object.keys(config.overlays),
Module.list.forEach(mod => {
if (!mod.frobbed) {
modules.__defineGetter__(mod.className, () => {
delete modules[mod.className];
return this.loadModule(mod.className, null, Components.stack.caller);
Object.defineProperty(modules, mod.className, {
get: () => {
return this.loadModule(mod.className, null, Components.stack.caller);
},
enumerable: true,
configurable: true
});
Object.keys(mod.prototype.INIT)
.forEach(name => { this.deferInit(name, mod.prototype.INIT, mod); });