| 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 |