| Index: lib/filterClasses.js |
| =================================================================== |
| --- a/lib/filterClasses.js |
| +++ b/lib/filterClasses.js |
| @@ -314,28 +314,28 @@ |
| let strippedDollarIndex = -1; |
| let dollarIndex = -1; |
| do |
| { |
| strippedDollarIndex = beforeOptions.indexOf("$", strippedDollarIndex + 1); |
| dollarIndex = text.indexOf("$", dollarIndex + 1); |
| } |
| while (strippedDollarIndex != -1); |
| - let optionsText = text.substr(dollarIndex + 1); |
| + let optionsText = text.substring(dollarIndex + 1); |
| // Then we can normalize spaces in the options part safely |
| let options = optionsText.split(","); |
| for (let i = 0; i < options.length; i++) |
| { |
| let option = options[i]; |
| let cspMatch = /^ *c *s *p *=/i.exec(option); |
| if (cspMatch) |
| { |
| options[i] = cspMatch[0].replace(/ +/g, "") + |
| - option.substr(cspMatch[0].length).trim().replace(/ +/g, " "); |
| + option.substring(cspMatch[0].length).trim().replace(/ +/g, " "); |
| } |
| else |
| options[i] = option.replace(/ +/g, ""); |
| } |
| return beforeOptions + "$" + options.join(); |
| }; |
| @@ -526,17 +526,17 @@ |
| let domain = list[i]; |
| if (domain == "") |
| continue; |
| let include; |
| if (domain[0] == "~") |
| { |
| include = false; |
| - domain = domain.substr(1); |
| + domain = domain.substring(1); |
| } |
| else |
| { |
| include = true; |
| hasIncludes = true; |
| } |
| if (!domains) |
| @@ -725,17 +725,17 @@ |
| this.resourceName = resourceName; |
| if (regexpSource.length >= 2 && |
| regexpSource[0] == "/" && |
| regexpSource[regexpSource.length - 1] == "/") |
| { |
| // The filter is a regular expression - convert it immediately to |
| // catch syntax errors |
| - let regexp = new RegExp(regexpSource.substr(1, regexpSource.length - 2), |
| + let regexp = new RegExp(regexpSource.substring(1, regexpSource.length - 1), |
| this.matchCase ? "" : "i"); |
| Object.defineProperty(this, "regexp", {value: regexp}); |
| } |
| else |
| { |
| // Patterns like /foo/bar/* exist so that they are not treated as regular |
| // expressions. We drop any superfluous wildcards here so our optimizations |
| // can kick in. |
| @@ -907,17 +907,17 @@ |
| location = lowerCaseLocation || location.toLowerCase(); |
| let {pattern} = this; |
| let startsWithDoubleAnchor = pattern[0] == "|" && pattern[1] == "|"; |
| let endsWithSeparator = pattern[pattern.length - 1] == "^"; |
| if (startsWithDoubleAnchor) |
| - pattern = pattern.substr(2); |
| + pattern = pattern.substring(2); |
|
Manish Jethani
2019/02/21 15:04:39
This is a hot spot, let's leave it as it is.
hub
2019/02/21 18:09:42
Done.
|
| if (endsWithSeparator) |
| pattern = pattern.slice(0, -1); |
| let index = location.indexOf(pattern); |
| // The "||" prefix requires that the text that follows does not start |
| // with a forward slash. |
| @@ -970,47 +970,47 @@ |
| */ |
| RegExpFilter.fromText = function(text) |
| { |
| let blocking = true; |
| let origText = text; |
| if (text[0] == "@" && text[1] == "@") |
| { |
| blocking = false; |
| - text = text.substr(2); |
| + text = text.substring(2); |
| } |
| let contentType = null; |
| let matchCase = null; |
| let domains = null; |
| let sitekeys = null; |
| let thirdParty = null; |
| let collapse = null; |
| let csp = null; |
| let rewrite = null; |
| let resourceName = null; |
| let options; |
| let match = text.includes("$") ? Filter.optionsRegExp.exec(text) : null; |
| if (match) |
| { |
| options = match[1].split(","); |
| - text = match.input.substr(0, match.index); |
| + text = match.input.substring(0, match.index); |
| for (let option of options) |
| { |
| let value = null; |
| let separatorIndex = option.indexOf("="); |
| if (separatorIndex >= 0) |
| { |
| - value = option.substr(separatorIndex + 1); |
| - option = option.substr(0, separatorIndex); |
| + value = option.substring(separatorIndex + 1); |
| + option = option.substring(0, separatorIndex); |
| } |
| let inverse = option[0] == "~"; |
| if (inverse) |
| - option = option.substr(1); |
| + option = option.substring(1); |
| let type = RegExpFilter.typeMap[option.replace(/-/, "_").toUpperCase()]; |
| if (type) |
| { |
| if (inverse) |
| { |
| if (contentType == null) |
| ({contentType} = RegExpFilter.prototype); |
| @@ -1051,17 +1051,17 @@ |
| return new InvalidFilter(origText, "filter_unknown_option"); |
| sitekeys = value.toUpperCase(); |
| break; |
| case "rewrite": |
| if (value == null) |
| return new InvalidFilter(origText, "filter_unknown_option"); |
| rewrite = value; |
| if (value.startsWith("abp-resource:")) |
| - resourceName = value.substr("abp-resource:".length); |
| + resourceName = value.substring("abp-resource:".length); |
| break; |
| default: |
| return new InvalidFilter(origText, "filter_unknown_option"); |
| } |
| } |
| } |
| } |