1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-26 21:02:25 +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

@@ -62,9 +62,13 @@ let init = function init_() {
UserAgent = Struct("name", "useragent", "appname", "appcodename",
"appversion", "platform", "vendor", "vendorsub", "userset");
UserAgent.prototype.__defineGetter__("options", function () {
return opts.slice(1).map(opt => [opt.name, this[opt.name]])
.filter(opt => opt[1]);
Object.defineProperty(UserAgent.prototype, "options", {
get() {
return opts.slice(1).map(opt => [opt.name, this[opt.name]])
.filter(opt => opt[1]);
},
enumerable: true,
configurable: true
});
useragents = array([

View File

@@ -98,16 +98,20 @@ userContext.xpwrapper = function xpwrapper(obj, iface) {
try {
let shim = XPCOMShim([iface]);
iter.forEach(properties(shim), function (prop) {
res.__defineGetter__(prop, function () {
let res = obj.QueryInterface(Ci[iface])[prop];
if (callable(res)) {
let fn = (...args) => res.apply(obj, args);
fn.toString = () => res.toString();
fn.toSource = () => res.toSource();
return fn;
}
return res;
})
Object.defineProperty(res, prop, {
get() {
let res = obj.QueryInterface(Ci[iface])[prop];
if (callable(res)) {
let fn = (...args) => res.apply(obj, args);
fn.toString = () => res.toString();
fn.toSource = () => res.toSource();
return fn;
}
return res;
},
enumerable: true,
configurable: true
});
});
}
catch (e if e === Cr.NS_ERROR_NO_INTERFACE) {
@@ -146,7 +150,11 @@ memoize(userContext, "xpclasses", function () {
return userContext.xpwrapper(cls);
}
Object.keys(Cc).forEach(function (k) {
xpclasses.__defineGetter__(k, () => xpclasses(k));
Object.defineProperty(xpclasses, k, {
get: () => xpclasses(k),
enumerable: true,
configurable: true
});
});
JavaScript.setCompleter([xpclasses], Completer(Cc));
return xpclasses;
@@ -179,7 +187,11 @@ memoize(userContext, "xpservices", function () {
return userContext.xpwrapper(cls);
}
Object.keys(Cc).forEach(function (k) {
xpservices.__defineGetter__(k, () => xpservices(k));
Object.defineProperty(xpservices, k, {
get: () => xpservices(k),
enumerable: true,
configurable: true
});
});
JavaScript.setCompleter([xpservices], Completer(Cc));
return xpservices;