Index: lib/subscriptionClasses.js |
=================================================================== |
--- a/lib/subscriptionClasses.js |
+++ b/lib/subscriptionClasses.js |
@@ -19,17 +19,16 @@ |
/** |
* @fileOverview Definition of Subscription class and its subclasses. |
*/ |
const {ActiveFilter, BlockingFilter, |
WhitelistFilter, ElemHideBase} = require("./filterClasses"); |
const {FilterNotifier} = require("./filterNotifier"); |
-const {desc, extend} = require("./coreUtils"); |
/** |
* Abstract base class for filter subscriptions |
* |
* @param {string} url download location of the subscription |
* @param {string} [title] title of the filter subscription |
* @constructor |
*/ |
@@ -235,17 +234,19 @@ |
* @augments Subscription |
*/ |
function SpecialSubscription(url, title) |
{ |
Subscription.call(this, url, title); |
} |
exports.SpecialSubscription = SpecialSubscription; |
-SpecialSubscription.prototype = extend(Subscription, { |
+SpecialSubscription.prototype = { |
+ __proto__: Subscription.prototype, |
+ |
/** |
* Filter types that should be added to this subscription by default |
* (entries should correspond to keys in SpecialSubscription.defaultsMap). |
* @type {string[]} |
*/ |
defaults: null, |
/** |
@@ -282,23 +283,24 @@ |
this.defaults.filter( |
type => type in SpecialSubscription.defaultsMap |
).join(" ") |
); |
} |
if (this._lastDownload) |
buffer.push("lastDownload=" + this._lastDownload); |
} |
-}); |
+}; |
-SpecialSubscription.defaultsMap = Object.create(null, desc({ |
+SpecialSubscription.defaultsMap = { |
+ __proto__: null, |
whitelist: WhitelistFilter, |
blocking: BlockingFilter, |
elemhide: ElemHideBase |
-})); |
+}; |
/** |
* Creates a new user-defined filter group. |
* @param {string} [title] title of the new filter group |
* @return {SpecialSubscription} |
*/ |
SpecialSubscription.create = function(title) |
{ |
@@ -339,17 +341,19 @@ |
* @augments Subscription |
*/ |
function RegularSubscription(url, title) |
{ |
Subscription.call(this, url, title || url); |
} |
exports.RegularSubscription = RegularSubscription; |
-RegularSubscription.prototype = extend(Subscription, { |
+RegularSubscription.prototype = { |
+ __proto__: Subscription.prototype, |
+ |
_homepage: null, |
_lastDownload: 0, |
/** |
* Filter subscription homepage if known |
* @type {string} |
*/ |
get homepage() |
@@ -396,58 +400,62 @@ |
serialize(buffer) |
{ |
Subscription.prototype.serialize.call(this, buffer); |
if (this._homepage) |
buffer.push("homepage=" + this._homepage); |
if (this._lastDownload) |
buffer.push("lastDownload=" + this._lastDownload); |
} |
-}); |
+}; |
/** |
* Class for filter subscriptions updated externally (by other extension) |
* @param {string} url see Subscription() |
* @param {string} [title] see Subscription() |
* @constructor |
* @augments RegularSubscription |
*/ |
function ExternalSubscription(url, title) |
{ |
RegularSubscription.call(this, url, title); |
} |
exports.ExternalSubscription = ExternalSubscription; |
-ExternalSubscription.prototype = extend(RegularSubscription, { |
+ExternalSubscription.prototype = { |
+ __proto__: RegularSubscription.prototype, |
+ |
/** |
* See Subscription.serialize() |
* @inheritdoc |
*/ |
serialize(buffer) |
{ |
throw new Error( |
"Unexpected call, external subscriptions should not be serialized" |
); |
} |
-}); |
+}; |
/** |
* Class for filter subscriptions updated externally (by other extension) |
* @param {string} url see Subscription() |
* @param {string} [title] see Subscription() |
* @constructor |
* @augments RegularSubscription |
*/ |
function DownloadableSubscription(url, title) |
{ |
RegularSubscription.call(this, url, title); |
} |
exports.DownloadableSubscription = DownloadableSubscription; |
-DownloadableSubscription.prototype = extend(RegularSubscription, { |
+DownloadableSubscription.prototype = { |
+ __proto__: RegularSubscription.prototype, |
+ |
_downloadStatus: null, |
_lastCheck: 0, |
_errors: 0, |
/** |
* Status of the last download (ID of a string) |
* @type {string} |
*/ |
@@ -566,9 +574,9 @@ |
buffer.push("errors=" + this.errors); |
if (this.version) |
buffer.push("version=" + this.version); |
if (this.requiredVersion) |
buffer.push("requiredVersion=" + this.requiredVersion); |
if (this.downloadCount) |
buffer.push("downloadCount=" + this.downloadCount); |
} |
-}); |
+}; |