| Index: lib/matcher.js |
| =================================================================== |
| --- a/lib/matcher.js |
| +++ b/lib/matcher.js |
| @@ -63,33 +63,33 @@ |
| add(filter) |
| { |
| if (this.keywordByFilter.has(filter)) |
| return; |
| // Look for a suitable keyword |
| let keyword = this.findKeyword(filter); |
| let oldEntry = this.filterByKeyword.get(keyword); |
| - if (typeof oldEntry == "undefined") |
| + if (!oldEntry) |
| this.filterByKeyword.set(keyword, filter); |
| else if (oldEntry.length == 1) |
| this.filterByKeyword.set(keyword, [oldEntry, filter]); |
| else |
| oldEntry.push(filter); |
| this.keywordByFilter.set(filter, keyword); |
| }, |
| /** |
| * Removes a filter from the matcher |
| * @param {RegExpFilter} filter |
| */ |
| remove(filter) |
| { |
| let keyword = this.keywordByFilter.get(filter); |
| - if (typeof keyword == "undefined") |
| + if (keyword == null) |
|
Manish Jethani
2018/06/12 04:50:27
keyword can be an empty string, so we must check a
|
| return; |
| let list = this.filterByKeyword.get(keyword); |
| if (list.length <= 1) |
| this.filterByKeyword.delete(keyword); |
| else |
| { |
| let index = list.indexOf(filter); |
| @@ -133,17 +133,17 @@ |
| let hash = this.filterByKeyword; |
| let resultCount = 0xFFFFFF; |
| let resultLength = 0; |
| for (let i = 0, l = candidates.length; i < l; i++) |
| { |
| let candidate = candidates[i].substr(1); |
| let filters = hash.get(candidate); |
| - let count = typeof filters != "undefined" ? filters.length : 0; |
| + let count = filters ? filters.length : 0; |
| if (count < resultCount || |
| (count == resultCount && candidate.length > resultLength)) |
| { |
| result = candidate; |
| resultCount = count; |
| resultLength = candidate.length; |
| } |
| } |
| @@ -163,17 +163,17 @@ |
| /** |
| * Returns the keyword used for a filter, null for unknown filters. |
| * @param {RegExpFilter} filter |
| * @return {?string} |
| */ |
| getKeywordForFilter(filter) |
| { |
| let keyword = this.keywordByFilter.get(filter); |
| - return typeof keyword != "undefined" ? keyword : null; |
| + return keyword != null ? keyword : null; |
| }, |
| /** |
| * Checks whether the entries for a particular keyword match a URL |
| * @param {string} keyword |
| * @param {string} location |
| * @param {number} typeMask |
| * @param {string} docDomain |
| @@ -181,17 +181,17 @@ |
| * @param {string} sitekey |
| * @param {boolean} specificOnly |
| * @return {?Filter} |
| */ |
| _checkEntryMatch(keyword, location, typeMask, docDomain, thirdParty, sitekey, |
| specificOnly) |
| { |
| let list = this.filterByKeyword.get(keyword); |
| - if (typeof list == "undefined") |
| + if (!list) |
| return null; |
| for (let i = 0; i < list.length; i++) |
| { |
| let filter = list[i]; |
| if (specificOnly && filter.isGeneric() && |
| !(filter instanceof WhitelistFilter)) |
| continue; |