| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-2014 Eyeo GmbH | 3  * Copyright (C) 2006-2014 Eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 466     this.contentType = contentType; | 466     this.contentType = contentType; | 
| 467   if (matchCase) | 467   if (matchCase) | 
| 468     this.matchCase = matchCase; | 468     this.matchCase = matchCase; | 
| 469   if (thirdParty != null) | 469   if (thirdParty != null) | 
| 470     this.thirdParty = thirdParty; | 470     this.thirdParty = thirdParty; | 
| 471 | 471 | 
| 472   if (regexpSource.length >= 2 && regexpSource[0] == "/" && regexpSource[regexpS
     ource.length - 1] == "/") | 472   if (regexpSource.length >= 2 && regexpSource[0] == "/" && regexpSource[regexpS
     ource.length - 1] == "/") | 
| 473   { | 473   { | 
| 474     // The filter is a regular expression - convert it immediately to catch synt
     ax errors | 474     // The filter is a regular expression - convert it immediately to catch synt
     ax errors | 
| 475     let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), thi
     s.matchCase ? "" : "i"); | 475     let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), thi
     s.matchCase ? "" : "i"); | 
| 476     this.__defineGetter__("regexp", () => regexp); | 476     Object.defineProperty(this, "regexp", {value: regexp}); | 
| 477   } | 477   } | 
| 478   else | 478   else | 
| 479   { | 479   { | 
| 480     // No need to convert this filter to regular expression yet, do it on demand | 480     // No need to convert this filter to regular expression yet, do it on demand | 
| 481     this.regexpSource = regexpSource; | 481     this.regexpSource = regexpSource; | 
| 482   } | 482   } | 
| 483 } | 483 } | 
| 484 exports.RegExpFilter = RegExpFilter; | 484 exports.RegExpFilter = RegExpFilter; | 
| 485 | 485 | 
| 486 RegExpFilter.prototype = | 486 RegExpFilter.prototype = | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 522       .replace(/\\\*/g, ".*")      // replace wildcards by .* | 522       .replace(/\\\*/g, ".*")      // replace wildcards by .* | 
| 523       // process separator placeholders (all ANSI characters but alphanumeric ch
     aracters and _%.-) | 523       // process separator placeholders (all ANSI characters but alphanumeric ch
     aracters and _%.-) | 
| 524       .replace(/\\\^/g, "(?:[\\x00-\\x24\\x26-\\x2C\\x2F\\x3A-\\x40\\x5B-\\x5E\\
     x60\\x7B-\\x7F]|$)") | 524       .replace(/\\\^/g, "(?:[\\x00-\\x24\\x26-\\x2C\\x2F\\x3A-\\x40\\x5B-\\x5E\\
     x60\\x7B-\\x7F]|$)") | 
| 525       .replace(/^\\\|\\\|/, "^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?") // process 
     extended anchor at expression start | 525       .replace(/^\\\|\\\|/, "^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?") // process 
     extended anchor at expression start | 
| 526       .replace(/^\\\|/, "^")       // process anchor at expression start | 526       .replace(/^\\\|/, "^")       // process anchor at expression start | 
| 527       .replace(/\\\|$/, "$")       // process anchor at expression end | 527       .replace(/\\\|$/, "$")       // process anchor at expression end | 
| 528       .replace(/^(\.\*)/, "")      // remove leading wildcards | 528       .replace(/^(\.\*)/, "")      // remove leading wildcards | 
| 529       .replace(/(\.\*)$/, "");     // remove trailing wildcards | 529       .replace(/(\.\*)$/, "");     // remove trailing wildcards | 
| 530 | 530 | 
| 531     let regexp = new RegExp(source, this.matchCase ? "" : "i"); | 531     let regexp = new RegExp(source, this.matchCase ? "" : "i"); | 
| 532 | 532     Object.defineProperty(this, "regexp", {value: regexp}); | 
| 533     delete this.regexpSource; | 533     return regexp; | 
| 534     this.__defineGetter__("regexp", () => regexp); |  | 
| 535     return this.regexp; |  | 
| 536   }, | 534   }, | 
| 537   /** | 535   /** | 
| 538    * Content types the filter applies to, combination of values from RegExpFilte
     r.typeMap | 536    * Content types the filter applies to, combination of values from RegExpFilte
     r.typeMap | 
| 539    * @type Number | 537    * @type Number | 
| 540    */ | 538    */ | 
| 541   contentType: 0x7FFFFFFF, | 539   contentType: 0x7FFFFFFF, | 
| 542   /** | 540   /** | 
| 543    * Defines whether the filter should distinguish between lower and upper case 
     letters | 541    * Defines whether the filter should distinguish between lower and upper case 
     letters | 
| 544    * @type Boolean | 542    * @type Boolean | 
| 545    */ | 543    */ | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 565         (this.thirdParty == null || this.thirdParty == thirdParty) && | 563         (this.thirdParty == null || this.thirdParty == thirdParty) && | 
| 566         this.isActiveOnDomain(docDomain)) | 564         this.isActiveOnDomain(docDomain)) | 
| 567     { | 565     { | 
| 568       return true; | 566       return true; | 
| 569     } | 567     } | 
| 570 | 568 | 
| 571     return false; | 569     return false; | 
| 572   } | 570   } | 
| 573 }; | 571 }; | 
| 574 | 572 | 
| 575 RegExpFilter.prototype.__defineGetter__("0", function() | 573 // Required to optimize Matcher, see also RegExpFilter.prototype.length | 
|  | 574 Object.defineProperty(RegExpFilter.prototype, "0", | 
| 576 { | 575 { | 
| 577   return this; | 576   get: function() { return this; } | 
| 578 }); | 577 }); | 
| 579 | 578 | 
| 580 /** | 579 /** | 
| 581  * Creates a RegExp filter from its text representation | 580  * Creates a RegExp filter from its text representation | 
| 582  * @param {String} text   same as in Filter() | 581  * @param {String} text   same as in Filter() | 
| 583  */ | 582  */ | 
| 584 RegExpFilter.fromText = function(text) | 583 RegExpFilter.fromText = function(text) | 
| 585 { | 584 { | 
| 586   let blocking = true; | 585   let blocking = true; | 
| 587   let origText = text; | 586   let origText = text; | 
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 891 function ElemHideException(text, domains, selector) | 890 function ElemHideException(text, domains, selector) | 
| 892 { | 891 { | 
| 893   ElemHideBase.call(this, text, domains, selector); | 892   ElemHideBase.call(this, text, domains, selector); | 
| 894 } | 893 } | 
| 895 exports.ElemHideException = ElemHideException; | 894 exports.ElemHideException = ElemHideException; | 
| 896 | 895 | 
| 897 ElemHideException.prototype = | 896 ElemHideException.prototype = | 
| 898 { | 897 { | 
| 899   __proto__: ElemHideBase.prototype | 898   __proto__: ElemHideBase.prototype | 
| 900 }; | 899 }; | 
| OLD | NEW | 
|---|