Index: lib/subscriptionClasses.js |
diff --git a/lib/subscriptionClasses.js b/lib/subscriptionClasses.js |
index f559cb3937f42a8caff29135c7799e90c598183f..d58a9923c0b5c7bb906010f5ac51ab2ca9c4971c 100644 |
--- a/lib/subscriptionClasses.js |
+++ b/lib/subscriptionClasses.js |
@@ -21,6 +21,7 @@ |
let {ActiveFilter, BlockingFilter, WhitelistFilter, ElemHideBase} = require("filterClasses"); |
let {FilterNotifier} = require("filterNotifier"); |
+let {desc} = require("coreUtils"); |
/** |
* Abstract base class for filter subscriptions |
@@ -229,10 +230,7 @@ function SpecialSubscription(url, title) |
} |
exports.SpecialSubscription = SpecialSubscription; |
-SpecialSubscription.prototype = |
-{ |
- __proto__: Subscription.prototype, |
- |
+SpecialSubscription.prototype = Object.create(Subscription.prototype, desc({ |
/** |
* Filter types that should be added to this subscription by default |
* (entries should correspond to keys in SpecialSubscription.defaultsMap). |
@@ -272,14 +270,13 @@ SpecialSubscription.prototype = |
if (this._lastDownload) |
buffer.push("lastDownload=" + this._lastDownload); |
} |
-}; |
+})); |
-SpecialSubscription.defaultsMap = { |
- __proto__: null, |
+SpecialSubscription.defaultsMap = Object.create(null, desc({ |
"whitelist": WhitelistFilter, |
"blocking": BlockingFilter, |
"elemhide": ElemHideBase |
-}; |
+})); |
/** |
* Creates a new user-defined filter group. |
@@ -327,10 +324,7 @@ function RegularSubscription(url, title) |
} |
exports.RegularSubscription = RegularSubscription; |
-RegularSubscription.prototype = |
-{ |
- __proto__: Subscription.prototype, |
- |
+RegularSubscription.prototype = Object.create(Subscription.prototype, desc({ |
_homepage: null, |
_lastDownload: 0, |
@@ -338,38 +332,42 @@ RegularSubscription.prototype = |
* Filter subscription homepage if known |
* @type String |
*/ |
- get homepage() |
- { |
- return this._homepage; |
- }, |
- set homepage(value) |
- { |
- if (value != this._homepage) |
+ homepage: { |
+ get: function() |
{ |
- let oldValue = this._homepage; |
- this._homepage = value; |
- FilterNotifier.triggerListeners("subscription.homepage", this, value, oldValue); |
+ return this._homepage; |
+ }, |
+ set: function(value) |
+ { |
+ if (value != this._homepage) |
+ { |
+ let oldValue = this._homepage; |
+ this._homepage = value; |
+ FilterNotifier.triggerListeners("subscription.homepage", this, value, oldValue); |
+ } |
+ return this._homepage; |
} |
- return this._homepage; |
}, |
/** |
* Time of the last subscription download (in seconds since the beginning of the epoch) |
* @type Number |
*/ |
- get lastDownload() |
- { |
- return this._lastDownload; |
- }, |
- set lastDownload(value) |
- { |
- if (value != this._lastDownload) |
+ lastDownload: { |
+ get: function() |
+ { |
+ return this._lastDownload; |
+ }, |
+ set: function(value) |
{ |
- let oldValue = this._lastDownload; |
- this._lastDownload = value; |
- FilterNotifier.triggerListeners("subscription.lastDownload", this, value, oldValue); |
+ if (value != this._lastDownload) |
+ { |
+ let oldValue = this._lastDownload; |
+ this._lastDownload = value; |
+ FilterNotifier.triggerListeners("subscription.lastDownload", this, value, oldValue); |
+ } |
+ return this._lastDownload; |
} |
- return this._lastDownload; |
}, |
/** |
@@ -383,7 +381,7 @@ RegularSubscription.prototype = |
if (this._lastDownload) |
buffer.push("lastDownload=" + this._lastDownload); |
} |
-}; |
+})); |
/** |
* Class for filter subscriptions updated externally (by other extension) |
@@ -398,10 +396,7 @@ function ExternalSubscription(url, title) |
} |
exports.ExternalSubscription = ExternalSubscription; |
-ExternalSubscription.prototype = |
-{ |
- __proto__: RegularSubscription.prototype, |
- |
+ExternalSubscription.prototype = Object.create(RegularSubscription.prototype, desc({ |
/** |
* See Subscription.serialize() |
*/ |
@@ -409,7 +404,7 @@ ExternalSubscription.prototype = |
{ |
throw new Error("Unexpected call, external subscriptions should not be serialized"); |
} |
-}; |
+})); |
/** |
* Class for filter subscriptions updated externally (by other extension) |
@@ -424,10 +419,7 @@ function DownloadableSubscription(url, title) |
} |
exports.DownloadableSubscription = DownloadableSubscription; |
-DownloadableSubscription.prototype = |
-{ |
- __proto__: RegularSubscription.prototype, |
- |
+DownloadableSubscription.prototype = Object.create(RegularSubscription.prototype, desc({ |
_downloadStatus: null, |
_lastCheck: 0, |
_errors: 0, |
@@ -436,16 +428,18 @@ DownloadableSubscription.prototype = |
* Status of the last download (ID of a string) |
* @type String |
*/ |
- get downloadStatus() |
- { |
- return this._downloadStatus; |
- }, |
- set downloadStatus(value) |
- { |
- let oldValue = this._downloadStatus; |
- this._downloadStatus = value; |
- FilterNotifier.triggerListeners("subscription.downloadStatus", this, value, oldValue); |
- return this._downloadStatus; |
+ downloadStatus: { |
+ get: function() |
+ { |
+ return this._downloadStatus; |
+ }, |
+ set: function(value) |
+ { |
+ let oldValue = this._downloadStatus; |
+ this._downloadStatus = value; |
+ FilterNotifier.triggerListeners("subscription.downloadStatus", this, value, oldValue); |
+ return this._downloadStatus; |
+ } |
}, |
/** |
@@ -460,19 +454,21 @@ DownloadableSubscription.prototype = |
* if the user doesn't use Adblock Plus for some time. |
* @type Number |
*/ |
- get lastCheck() |
- { |
- return this._lastCheck; |
- }, |
- set lastCheck(value) |
- { |
- if (value != this._lastCheck) |
+ lastCheck: { |
+ get: function() |
{ |
- let oldValue = this._lastCheck; |
- this._lastCheck = value; |
- FilterNotifier.triggerListeners("subscription.lastCheck", this, value, oldValue); |
+ return this._lastCheck; |
+ }, |
+ set: function(value) |
+ { |
+ if (value != this._lastCheck) |
+ { |
+ let oldValue = this._lastCheck; |
+ this._lastCheck = value; |
+ FilterNotifier.triggerListeners("subscription.lastCheck", this, value, oldValue); |
+ } |
+ return this._lastCheck; |
} |
- return this._lastCheck; |
}, |
/** |
@@ -491,19 +487,21 @@ DownloadableSubscription.prototype = |
* Number of download failures since last success |
* @type Number |
*/ |
- get errors() |
- { |
- return this._errors; |
- }, |
- set errors(value) |
- { |
- if (value != this._errors) |
+ errors: { |
+ get: function() |
+ { |
+ return this._errors; |
+ }, |
+ set: function(value) |
{ |
- let oldValue = this._errors; |
- this._errors = value; |
- FilterNotifier.triggerListeners("subscription.errors", this, value, oldValue); |
+ if (value != this._errors) |
+ { |
+ let oldValue = this._errors; |
+ this._errors = value; |
+ FilterNotifier.triggerListeners("subscription.errors", this, value, oldValue); |
+ } |
+ return this._errors; |
} |
- return this._errors; |
}, |
/** |
@@ -549,4 +547,4 @@ DownloadableSubscription.prototype = |
if (this.downloadCount) |
buffer.push("downloadCount=" + this.downloadCount); |
} |
-}; |
+})); |