diff options
Diffstat (limited to 'lib/LiquidDict.jsm')
-rw-r--r-- | lib/LiquidDict.jsm | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/lib/LiquidDict.jsm b/lib/LiquidDict.jsm index b45a5d7..c462427 100644 --- a/lib/LiquidDict.jsm +++ b/lib/LiquidDict.jsm @@ -2,7 +2,7 @@ ηMatrix - a browser extension to black/white list requests. Copyright (C) 2014-2019 Raymond Hill - Copyright (C) 2019-2020 Alessio Vanni + Copyright (C) 2019-2020-2021 Alessio Vanni This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. - Home: https://libregit.spks.xyz/heckyel/ematrix + Home: https://gitlab.com/vannilla/ematrix uMatrix Home: https://github.com/gorhill/uMatrix */ @@ -40,13 +40,13 @@ function meltBucket(dict, len, bucket) { --dict.frozenCount; if (bucket.charAt(0) === ' ') { - bucket.trim().split(' ').map(function (e) { - map[e] = true; - }); + bucket.trim().split(' ').map(function (e) { + map[e] = true; + }); } else { - for (let i=0; i<bucket.length; i+=len) { - map[bucket.substring(i, len)] = true; - } + for (let i=0; i<bucket.length; i+=len) { + map[bucket.substring(i, len)] = true; + } } return map; @@ -55,10 +55,10 @@ function meltBucket(dict, len, bucket) { function melt(dict) { let buckets = dict.dict; for (let key in buckets) { - let bucket = buckets[key]; - if (typeof bucket === 'string') { - buckets[key] = meltBucket(dict, key.charCodeAt(0) & 0xFF, bucket); - } + let bucket = buckets[key]; + if (typeof bucket === 'string') { + buckets[key] = meltBucket(dict, key.charCodeAt(0) & 0xFF, bucket); + } } } @@ -69,7 +69,7 @@ function freezeBucket(dict, bucket) { ++dict.frozenCount; if (wlen * words.length < dict.cutoff) { - return ' ' + words.join(' ') + ' '; + return ' ' + words.join(' ') + ' '; } return words.sort().join(''); @@ -78,15 +78,15 @@ function freezeBucket(dict, bucket) { LiquidDict.prototype.makeKey = function (word) { let len = word.length; if (len > 255) { - len = 255; + len = 255; } let i = len >> 2; return String.fromCharCode((word.charCodeAt(0) & 0x03) << 14 - | (word.charCodeAt(i) & 0x03) << 12 - | (word.charCodeAt(i+i) & 0x03) << 10 - | (word.charCodeAt(i+i+i) & 0x03) << 8 - | len); + | (word.charCodeAt(i) & 0x03) << 12 + | (word.charCodeAt(i+i) & 0x03) << 10 + | (word.charCodeAt(i+i+i) & 0x03) << 8 + | len); }; LiquidDict.prototype.test = function (word) { @@ -94,15 +94,15 @@ LiquidDict.prototype.test = function (word) { let bucket = this.dict[key]; if (bucket === undefined) { - return false; + return false; } if (typeof bucket === 'object') { - return bucket[word] !== undefined; + return bucket[word] !== undefined; } if (bucket.charAt(0) === ' ') { - return bucket.indexOf(' ' + word + ' ') >= 0; + return bucket.indexOf(' ' + word + ' ') >= 0; } let len = word.length; @@ -110,16 +110,16 @@ LiquidDict.prototype.test = function (word) { let right = ~~(bucket.length / len + 0.5); while (left < right) { - let i = left + right >> 1; - let needle = bucket.substr(len * i, len); - - if (word < needle) { - right = i; - } else if (word > needle) { - left = i + 1; - } else { - return true; - } + let i = left + right >> 1; + let needle = bucket.substr(len * i, len); + + if (word < needle) { + right = i; + } else if (word > needle) { + left = i + 1; + } else { + return true; + } } return false; @@ -128,26 +128,26 @@ LiquidDict.prototype.test = function (word) { LiquidDict.prototype.add = function (word) { let key = this.makeKey(word); if (key === undefined) { - return false; + return false; } let bucket = this.dict[key]; if (bucket === undefined) { - this.dict[key] = bucket = {}; - ++this.bucketCount; - bucket[word] = true; - ++this.count; + this.dict[key] = bucket = {}; + ++this.bucketCount; + bucket[word] = true; + ++this.count; - return true; + return true; } else if (typeof bucket === 'string') { - this.dict[key] = bucket = meltBucket(this, word.len, bucket); + this.dict[key] = bucket = meltBucket(this, word.len, bucket); } if (bucket[word] === undefined) { - bucket[word] = true; - ++this.count; + bucket[word] = true; + ++this.count; - return true; + return true; } ++this.duplicateCount; @@ -159,10 +159,10 @@ LiquidDict.prototype.freeze = function () { let buckets = this.dict; for (let key in buckets) { - let bucket = buckets[key]; - if (typeof bucket === 'object') { - buckets[key] = freezeBucket(this, bucket); - } + let bucket = buckets[key]; + if (typeof bucket === 'object') { + buckets[key] = freezeBucket(this, bucket); + } } }; |