| Index: lib/filterClasses.js |
| diff --git a/lib/filterClasses.js b/lib/filterClasses.js |
| index 5a8ac6d77bf116ace79ceebbbf3df1b02dc11fc6..c17187571366caac15c3dae895b7c8267515bb32 100644 |
| --- a/lib/filterClasses.js |
| +++ b/lib/filterClasses.js |
| @@ -20,6 +20,7 @@ |
| */ |
| let {FilterNotifier} = require("filterNotifier"); |
| +let {desc} = require("coreUtils"); |
| /** |
| * Abstract base class for filters |
| @@ -210,10 +211,7 @@ function InvalidFilter(text, reason) |
| } |
| exports.InvalidFilter = InvalidFilter; |
| -InvalidFilter.prototype = |
| -{ |
| - __proto__: Filter.prototype, |
| - |
| +InvalidFilter.prototype = Object.create(Filter.prototype, desc({ |
| type: "invalid", |
| /** |
| @@ -226,7 +224,7 @@ InvalidFilter.prototype = |
| * See Filter.serialize() |
| */ |
| serialize: function(buffer) {} |
| -}; |
| +})); |
| /** |
| * Class for comments |
| @@ -240,17 +238,14 @@ function CommentFilter(text) |
| } |
| exports.CommentFilter = CommentFilter; |
| -CommentFilter.prototype = |
| -{ |
| - __proto__: Filter.prototype, |
| - |
| +CommentFilter.prototype = Object.create(Filter.prototype, desc({ |
| type: "comment", |
| /** |
| * See Filter.serialize() |
| */ |
| serialize: function(buffer) {} |
| -}; |
| +})); |
| /** |
| * Abstract base class for filters that can get hits |
| @@ -267,10 +262,7 @@ function ActiveFilter(text, domains) |
| } |
| exports.ActiveFilter = ActiveFilter; |
| -ActiveFilter.prototype = |
| -{ |
| - __proto__: Filter.prototype, |
| - |
| +ActiveFilter.prototype = Object.create(Filter.prototype, desc({ |
| _disabled: false, |
| _hitCount: 0, |
| _lastHit: 0, |
| @@ -515,7 +507,7 @@ ActiveFilter.prototype = |
| buffer.push("lastHit=" + this._lastHit); |
| } |
| } |
| -}; |
| +})); |
| /** |
| * Abstract base class for RegExp-based filters |
| @@ -556,10 +548,7 @@ function RegExpFilter(text, regexpSource, contentType, matchCase, domains, third |
| } |
| exports.RegExpFilter = RegExpFilter; |
| -RegExpFilter.prototype = |
| -{ |
| - __proto__: ActiveFilter.prototype, |
| - |
| +RegExpFilter.prototype = Object.create(ActiveFilter.prototype, desc({ |
| /** |
| * @see ActiveFilter.domainSourceIsUpperCase |
| */ |
| @@ -664,7 +653,7 @@ RegExpFilter.prototype = |
| return false; |
| } |
| -}; |
| +})); |
| // Required to optimize Matcher, see also RegExpFilter.prototype.length |
| Object.defineProperty(RegExpFilter.prototype, "0", |
| @@ -810,10 +799,7 @@ function BlockingFilter(text, regexpSource, contentType, matchCase, domains, thi |
| } |
| exports.BlockingFilter = BlockingFilter; |
| -BlockingFilter.prototype = |
| -{ |
| - __proto__: RegExpFilter.prototype, |
| - |
| +BlockingFilter.prototype = Object.create(RegExpFilter.prototype, desc({ |
| type: "blocking", |
| /** |
| @@ -821,7 +807,7 @@ BlockingFilter.prototype = |
| * @type Boolean |
| */ |
| collapse: null |
| -}; |
| +})); |
| /** |
| * Class for whitelist filters |
| @@ -841,12 +827,9 @@ function WhitelistFilter(text, regexpSource, contentType, matchCase, domains, th |
| } |
| exports.WhitelistFilter = WhitelistFilter; |
| -WhitelistFilter.prototype = |
| -{ |
| - __proto__: RegExpFilter.prototype, |
| - |
| +WhitelistFilter.prototype = Object.create(RegExpFilter.prototype, desc({ |
| type: "whitelist" |
| -}; |
| +})); |
| /** |
| * Base class for element hiding filters |
| @@ -866,10 +849,7 @@ function ElemHideBase(text, domains, selector) |
| } |
| exports.ElemHideBase = ElemHideBase; |
| -ElemHideBase.prototype = |
| -{ |
| - __proto__: ActiveFilter.prototype, |
| - |
| +ElemHideBase.prototype = Object.create(ActiveFilter.prototype, desc({ |
| /** |
| * @see ActiveFilter.domainSeparator |
| */ |
| @@ -890,7 +870,7 @@ ElemHideBase.prototype = |
| * @type String |
| */ |
| selector: null |
| -}; |
| +})); |
| /** |
| * Creates an element hiding filter from a pre-parsed text representation |
| @@ -975,12 +955,9 @@ function ElemHideFilter(text, domains, selector) |
| } |
| exports.ElemHideFilter = ElemHideFilter; |
| -ElemHideFilter.prototype = |
| -{ |
| - __proto__: ElemHideBase.prototype, |
| - |
| +ElemHideFilter.prototype = Object.create(ElemHideBase.prototype, desc({ |
| type: "elemhide" |
| -}; |
| +})); |
| /** |
| * Class for element hiding exceptions |
| @@ -996,12 +973,9 @@ function ElemHideException(text, domains, selector) |
| } |
| exports.ElemHideException = ElemHideException; |
| -ElemHideException.prototype = |
| -{ |
| - __proto__: ElemHideBase.prototype, |
| - |
| +ElemHideException.prototype = Object.create(ElemHideBase.prototype, desc({ |
| type: "elemhideexception" |
| -}; |
| +})); |
| /** |
| * Class for CSS property filters |
| @@ -1025,10 +999,7 @@ function CSSPropertyFilter(text, domains, selector, regexpSource, |
| } |
| exports.CSSPropertyFilter = CSSPropertyFilter; |
| -CSSPropertyFilter.prototype = |
| -{ |
| - __proto__: ElemHideBase.prototype, |
| - |
| +CSSPropertyFilter.prototype = Object.create(ElemHideBase.prototype, desc({ |
| type: "cssproperty", |
| /** |
| @@ -1067,4 +1038,4 @@ CSSPropertyFilter.prototype = |
| Object.defineProperty(this, "regexpString", {value: regexp}); |
| return regexp; |
| } |
| -}; |
| +})); |