diff options
author | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
commit | 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch) | |
tree | 75be5fba4368472fb11c8015aee026b2b9a71888 /school/node_modules/xxhashjs/lib | |
parent | 8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff) | |
download | pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2 pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip |
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'school/node_modules/xxhashjs/lib')
-rw-r--r-- | school/node_modules/xxhashjs/lib/index.js | 4 | ||||
-rw-r--r-- | school/node_modules/xxhashjs/lib/xxhash.js | 389 | ||||
-rw-r--r-- | school/node_modules/xxhashjs/lib/xxhash64.js | 444 |
3 files changed, 0 insertions, 837 deletions
diff --git a/school/node_modules/xxhashjs/lib/index.js b/school/node_modules/xxhashjs/lib/index.js deleted file mode 100644 index 9868ca4..0000000 --- a/school/node_modules/xxhashjs/lib/index.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - h32: require("./xxhash") -, h64: require("./xxhash64") -} diff --git a/school/node_modules/xxhashjs/lib/xxhash.js b/school/node_modules/xxhashjs/lib/xxhash.js deleted file mode 100644 index 8189b85..0000000 --- a/school/node_modules/xxhashjs/lib/xxhash.js +++ /dev/null @@ -1,389 +0,0 @@ -/** -xxHash implementation in pure Javascript - -Copyright (C) 2013, Pierre Curto -MIT license -*/ -var UINT32 = require('cuint').UINT32 - -/* - Merged this sequence of method calls as it speeds up - the calculations by a factor of 2 - */ -// this.v1.add( other.multiply(PRIME32_2) ).rotl(13).multiply(PRIME32_1); -UINT32.prototype.xxh_update = function (low, high) { - var b00 = PRIME32_2._low - var b16 = PRIME32_2._high - - var c16, c00 - c00 = low * b00 - c16 = c00 >>> 16 - - c16 += high * b00 - c16 &= 0xFFFF // Not required but improves performance - c16 += low * b16 - - var a00 = this._low + (c00 & 0xFFFF) - var a16 = a00 >>> 16 - - a16 += this._high + (c16 & 0xFFFF) - - var v = (a16 << 16) | (a00 & 0xFFFF) - v = (v << 13) | (v >>> 19) - - a00 = v & 0xFFFF - a16 = v >>> 16 - - b00 = PRIME32_1._low - b16 = PRIME32_1._high - - c00 = a00 * b00 - c16 = c00 >>> 16 - - c16 += a16 * b00 - c16 &= 0xFFFF // Not required but improves performance - c16 += a00 * b16 - - this._low = c00 & 0xFFFF - this._high = c16 & 0xFFFF -} - -/* - * Constants - */ -var PRIME32_1 = UINT32( '2654435761' ) -var PRIME32_2 = UINT32( '2246822519' ) -var PRIME32_3 = UINT32( '3266489917' ) -var PRIME32_4 = UINT32( '668265263' ) -var PRIME32_5 = UINT32( '374761393' ) - -/** -* Convert string to proper UTF-8 array -* @param str Input string -* @returns {Uint8Array} UTF8 array is returned as uint8 array -*/ -function toUTF8Array (str) { - var utf8 = [] - for (var i=0, n=str.length; i < n; i++) { - var charcode = str.charCodeAt(i) - if (charcode < 0x80) utf8.push(charcode) - else if (charcode < 0x800) { - utf8.push(0xc0 | (charcode >> 6), - 0x80 | (charcode & 0x3f)) - } - else if (charcode < 0xd800 || charcode >= 0xe000) { - utf8.push(0xe0 | (charcode >> 12), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)) - } - // surrogate pair - else { - i++; - // UTF-16 encodes 0x10000-0x10FFFF by - // subtracting 0x10000 and splitting the - // 20 bits of 0x0-0xFFFFF into two halves - charcode = 0x10000 + (((charcode & 0x3ff)<<10) - | (str.charCodeAt(i) & 0x3ff)) - utf8.push(0xf0 | (charcode >>18), - 0x80 | ((charcode>>12) & 0x3f), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)) - } - } - - return new Uint8Array(utf8) -} - -/** - * XXH object used as a constructor or a function - * @constructor - * or - * @param {Object|String} input data - * @param {Number|UINT32} seed - * @return ThisExpression - * or - * @return {UINT32} xxHash - */ -function XXH () { - if (arguments.length == 2) - return new XXH( arguments[1] ).update( arguments[0] ).digest() - - if (!(this instanceof XXH)) - return new XXH( arguments[0] ) - - init.call(this, arguments[0]) -} - -/** - * Initialize the XXH instance with the given seed - * @method init - * @param {Number|Object} seed as a number or an unsigned 32 bits integer - * @return ThisExpression - */ - function init (seed) { - this.seed = seed instanceof UINT32 ? seed.clone() : UINT32(seed) - this.v1 = this.seed.clone().add(PRIME32_1).add(PRIME32_2) - this.v2 = this.seed.clone().add(PRIME32_2) - this.v3 = this.seed.clone() - this.v4 = this.seed.clone().subtract(PRIME32_1) - this.total_len = 0 - this.memsize = 0 - this.memory = null - - return this -} -XXH.prototype.init = init - -/** - * Add data to be computed for the XXH hash - * @method update - * @param {String|Buffer|ArrayBuffer} input as a string or nodejs Buffer or ArrayBuffer - * @return ThisExpression - */ -XXH.prototype.update = function (input) { - var isString = typeof input == 'string' - var isArrayBuffer - - // Convert all strings to utf-8 first (issue #5) - if (isString) { - input = toUTF8Array(input) - isString = false - isArrayBuffer = true - } - - if (typeof ArrayBuffer !== "undefined" && input instanceof ArrayBuffer) - { - isArrayBuffer = true - input = new Uint8Array(input); - } - - var p = 0 - var len = input.length - var bEnd = p + len - - if (len == 0) return this - - this.total_len += len - - if (this.memsize == 0) - { - if (isString) { - this.memory = '' - } else if (isArrayBuffer) { - this.memory = new Uint8Array(16) - } else { - this.memory = new Buffer(16) - } - } - - if (this.memsize + len < 16) // fill in tmp buffer - { - // XXH_memcpy(this.memory + this.memsize, input, len) - if (isString) { - this.memory += input - } else if (isArrayBuffer) { - this.memory.set( input.subarray(0, len), this.memsize ) - } else { - input.copy( this.memory, this.memsize, 0, len ) - } - - this.memsize += len - return this - } - - if (this.memsize > 0) // some data left from previous update - { - // XXH_memcpy(this.memory + this.memsize, input, 16-this.memsize); - if (isString) { - this.memory += input.slice(0, 16 - this.memsize) - } else if (isArrayBuffer) { - this.memory.set( input.subarray(0, 16 - this.memsize), this.memsize ) - } else { - input.copy( this.memory, this.memsize, 0, 16 - this.memsize ) - } - - var p32 = 0 - if (isString) { - this.v1.xxh_update( - (this.memory.charCodeAt(p32+1) << 8) | this.memory.charCodeAt(p32) - , (this.memory.charCodeAt(p32+3) << 8) | this.memory.charCodeAt(p32+2) - ) - p32 += 4 - this.v2.xxh_update( - (this.memory.charCodeAt(p32+1) << 8) | this.memory.charCodeAt(p32) - , (this.memory.charCodeAt(p32+3) << 8) | this.memory.charCodeAt(p32+2) - ) - p32 += 4 - this.v3.xxh_update( - (this.memory.charCodeAt(p32+1) << 8) | this.memory.charCodeAt(p32) - , (this.memory.charCodeAt(p32+3) << 8) | this.memory.charCodeAt(p32+2) - ) - p32 += 4 - this.v4.xxh_update( - (this.memory.charCodeAt(p32+1) << 8) | this.memory.charCodeAt(p32) - , (this.memory.charCodeAt(p32+3) << 8) | this.memory.charCodeAt(p32+2) - ) - } else { - this.v1.xxh_update( - (this.memory[p32+1] << 8) | this.memory[p32] - , (this.memory[p32+3] << 8) | this.memory[p32+2] - ) - p32 += 4 - this.v2.xxh_update( - (this.memory[p32+1] << 8) | this.memory[p32] - , (this.memory[p32+3] << 8) | this.memory[p32+2] - ) - p32 += 4 - this.v3.xxh_update( - (this.memory[p32+1] << 8) | this.memory[p32] - , (this.memory[p32+3] << 8) | this.memory[p32+2] - ) - p32 += 4 - this.v4.xxh_update( - (this.memory[p32+1] << 8) | this.memory[p32] - , (this.memory[p32+3] << 8) | this.memory[p32+2] - ) - } - - p += 16 - this.memsize - this.memsize = 0 - if (isString) this.memory = '' - } - - if (p <= bEnd - 16) - { - var limit = bEnd - 16 - - do - { - if (isString) { - this.v1.xxh_update( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - ) - p += 4 - this.v2.xxh_update( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - ) - p += 4 - this.v3.xxh_update( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - ) - p += 4 - this.v4.xxh_update( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - ) - } else { - this.v1.xxh_update( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - ) - p += 4 - this.v2.xxh_update( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - ) - p += 4 - this.v3.xxh_update( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - ) - p += 4 - this.v4.xxh_update( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - ) - } - p += 4 - } while (p <= limit) - } - - if (p < bEnd) - { - // XXH_memcpy(this.memory, p, bEnd-p); - if (isString) { - this.memory += input.slice(p) - } else if (isArrayBuffer) { - this.memory.set( input.subarray(p, bEnd), this.memsize ) - } else { - input.copy( this.memory, this.memsize, p, bEnd ) - } - - this.memsize = bEnd - p - } - - return this -} - -/** - * Finalize the XXH computation. The XXH instance is ready for reuse for the given seed - * @method digest - * @return {UINT32} xxHash - */ -XXH.prototype.digest = function () { - var input = this.memory - var isString = typeof input == 'string' - var p = 0 - var bEnd = this.memsize - var h32, h - var u = new UINT32 - - if (this.total_len >= 16) - { - h32 = this.v1.rotl(1).add( this.v2.rotl(7).add( this.v3.rotl(12).add( this.v4.rotl(18) ) ) ) - } - else - { - h32 = this.seed.clone().add( PRIME32_5 ) - } - - h32.add( u.fromNumber(this.total_len) ) - - while (p <= bEnd - 4) - { - if (isString) { - u.fromBits( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - ) - } else { - u.fromBits( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - ) - } - h32 - .add( u.multiply(PRIME32_3) ) - .rotl(17) - .multiply( PRIME32_4 ) - p += 4 - } - - while (p < bEnd) - { - u.fromBits( isString ? input.charCodeAt(p++) : input[p++], 0 ) - h32 - .add( u.multiply(PRIME32_5) ) - .rotl(11) - .multiply(PRIME32_1) - } - - h = h32.clone().shiftRight(15) - h32.xor(h).multiply(PRIME32_2) - - h = h32.clone().shiftRight(13) - h32.xor(h).multiply(PRIME32_3) - - h = h32.clone().shiftRight(16) - h32.xor(h) - - // Reset the state - this.init( this.seed ) - - return h32 -} - -module.exports = XXH diff --git a/school/node_modules/xxhashjs/lib/xxhash64.js b/school/node_modules/xxhashjs/lib/xxhash64.js deleted file mode 100644 index 2956470..0000000 --- a/school/node_modules/xxhashjs/lib/xxhash64.js +++ /dev/null @@ -1,444 +0,0 @@ -/** -xxHash64 implementation in pure Javascript - -Copyright (C) 2016, Pierre Curto -MIT license -*/ -var UINT64 = require('cuint').UINT64 - -/* - * Constants - */ -var PRIME64_1 = UINT64( '11400714785074694791' ) -var PRIME64_2 = UINT64( '14029467366897019727' ) -var PRIME64_3 = UINT64( '1609587929392839161' ) -var PRIME64_4 = UINT64( '9650029242287828579' ) -var PRIME64_5 = UINT64( '2870177450012600261' ) - -/** -* Convert string to proper UTF-8 array -* @param str Input string -* @returns {Uint8Array} UTF8 array is returned as uint8 array -*/ -function toUTF8Array (str) { - var utf8 = [] - for (var i=0, n=str.length; i < n; i++) { - var charcode = str.charCodeAt(i) - if (charcode < 0x80) utf8.push(charcode) - else if (charcode < 0x800) { - utf8.push(0xc0 | (charcode >> 6), - 0x80 | (charcode & 0x3f)) - } - else if (charcode < 0xd800 || charcode >= 0xe000) { - utf8.push(0xe0 | (charcode >> 12), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)) - } - // surrogate pair - else { - i++; - // UTF-16 encodes 0x10000-0x10FFFF by - // subtracting 0x10000 and splitting the - // 20 bits of 0x0-0xFFFFF into two halves - charcode = 0x10000 + (((charcode & 0x3ff)<<10) - | (str.charCodeAt(i) & 0x3ff)) - utf8.push(0xf0 | (charcode >>18), - 0x80 | ((charcode>>12) & 0x3f), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)) - } - } - - return new Uint8Array(utf8) -} - -/** - * XXH64 object used as a constructor or a function - * @constructor - * or - * @param {Object|String} input data - * @param {Number|UINT64} seed - * @return ThisExpression - * or - * @return {UINT64} xxHash - */ -function XXH64 () { - if (arguments.length == 2) - return new XXH64( arguments[1] ).update( arguments[0] ).digest() - - if (!(this instanceof XXH64)) - return new XXH64( arguments[0] ) - - init.call(this, arguments[0]) -} - -/** - * Initialize the XXH64 instance with the given seed - * @method init - * @param {Number|Object} seed as a number or an unsigned 32 bits integer - * @return ThisExpression - */ - function init (seed) { - this.seed = seed instanceof UINT64 ? seed.clone() : UINT64(seed) - this.v1 = this.seed.clone().add(PRIME64_1).add(PRIME64_2) - this.v2 = this.seed.clone().add(PRIME64_2) - this.v3 = this.seed.clone() - this.v4 = this.seed.clone().subtract(PRIME64_1) - this.total_len = 0 - this.memsize = 0 - this.memory = null - - return this -} -XXH64.prototype.init = init - -/** - * Add data to be computed for the XXH64 hash - * @method update - * @param {String|Buffer|ArrayBuffer} input as a string or nodejs Buffer or ArrayBuffer - * @return ThisExpression - */ -XXH64.prototype.update = function (input) { - var isString = typeof input == 'string' - var isArrayBuffer - - // Convert all strings to utf-8 first (issue #5) - if (isString) { - input = toUTF8Array(input) - isString = false - isArrayBuffer = true - } - - if (typeof ArrayBuffer !== "undefined" && input instanceof ArrayBuffer) - { - isArrayBuffer = true - input = new Uint8Array(input); - } - - var p = 0 - var len = input.length - var bEnd = p + len - - if (len == 0) return this - - this.total_len += len - - if (this.memsize == 0) - { - if (isString) { - this.memory = '' - } else if (isArrayBuffer) { - this.memory = new Uint8Array(32) - } else { - this.memory = new Buffer(32) - } - } - - if (this.memsize + len < 32) // fill in tmp buffer - { - // XXH64_memcpy(this.memory + this.memsize, input, len) - if (isString) { - this.memory += input - } else if (isArrayBuffer) { - this.memory.set( input.subarray(0, len), this.memsize ) - } else { - input.copy( this.memory, this.memsize, 0, len ) - } - - this.memsize += len - return this - } - - if (this.memsize > 0) // some data left from previous update - { - // XXH64_memcpy(this.memory + this.memsize, input, 16-this.memsize); - if (isString) { - this.memory += input.slice(0, 32 - this.memsize) - } else if (isArrayBuffer) { - this.memory.set( input.subarray(0, 32 - this.memsize), this.memsize ) - } else { - input.copy( this.memory, this.memsize, 0, 32 - this.memsize ) - } - - var p64 = 0 - if (isString) { - var other - other = UINT64( - (this.memory.charCodeAt(p64+1) << 8) | this.memory.charCodeAt(p64) - , (this.memory.charCodeAt(p64+3) << 8) | this.memory.charCodeAt(p64+2) - , (this.memory.charCodeAt(p64+5) << 8) | this.memory.charCodeAt(p64+4) - , (this.memory.charCodeAt(p64+7) << 8) | this.memory.charCodeAt(p64+6) - ) - this.v1.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory.charCodeAt(p64+1) << 8) | this.memory.charCodeAt(p64) - , (this.memory.charCodeAt(p64+3) << 8) | this.memory.charCodeAt(p64+2) - , (this.memory.charCodeAt(p64+5) << 8) | this.memory.charCodeAt(p64+4) - , (this.memory.charCodeAt(p64+7) << 8) | this.memory.charCodeAt(p64+6) - ) - this.v2.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory.charCodeAt(p64+1) << 8) | this.memory.charCodeAt(p64) - , (this.memory.charCodeAt(p64+3) << 8) | this.memory.charCodeAt(p64+2) - , (this.memory.charCodeAt(p64+5) << 8) | this.memory.charCodeAt(p64+4) - , (this.memory.charCodeAt(p64+7) << 8) | this.memory.charCodeAt(p64+6) - ) - this.v3.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory.charCodeAt(p64+1) << 8) | this.memory.charCodeAt(p64) - , (this.memory.charCodeAt(p64+3) << 8) | this.memory.charCodeAt(p64+2) - , (this.memory.charCodeAt(p64+5) << 8) | this.memory.charCodeAt(p64+4) - , (this.memory.charCodeAt(p64+7) << 8) | this.memory.charCodeAt(p64+6) - ) - this.v4.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - } else { - var other - other = UINT64( - (this.memory[p64+1] << 8) | this.memory[p64] - , (this.memory[p64+3] << 8) | this.memory[p64+2] - , (this.memory[p64+5] << 8) | this.memory[p64+4] - , (this.memory[p64+7] << 8) | this.memory[p64+6] - ) - this.v1.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory[p64+1] << 8) | this.memory[p64] - , (this.memory[p64+3] << 8) | this.memory[p64+2] - , (this.memory[p64+5] << 8) | this.memory[p64+4] - , (this.memory[p64+7] << 8) | this.memory[p64+6] - ) - this.v2.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory[p64+1] << 8) | this.memory[p64] - , (this.memory[p64+3] << 8) | this.memory[p64+2] - , (this.memory[p64+5] << 8) | this.memory[p64+4] - , (this.memory[p64+7] << 8) | this.memory[p64+6] - ) - this.v3.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p64 += 8 - other = UINT64( - (this.memory[p64+1] << 8) | this.memory[p64] - , (this.memory[p64+3] << 8) | this.memory[p64+2] - , (this.memory[p64+5] << 8) | this.memory[p64+4] - , (this.memory[p64+7] << 8) | this.memory[p64+6] - ) - this.v4.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - } - - p += 32 - this.memsize - this.memsize = 0 - if (isString) this.memory = '' - } - - if (p <= bEnd - 32) - { - var limit = bEnd - 32 - - do - { - if (isString) { - var other - other = UINT64( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , (input.charCodeAt(p+5) << 8) | input.charCodeAt(p+4) - , (input.charCodeAt(p+7) << 8) | input.charCodeAt(p+6) - ) - this.v1.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , (input.charCodeAt(p+5) << 8) | input.charCodeAt(p+4) - , (input.charCodeAt(p+7) << 8) | input.charCodeAt(p+6) - ) - this.v2.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , (input.charCodeAt(p+5) << 8) | input.charCodeAt(p+4) - , (input.charCodeAt(p+7) << 8) | input.charCodeAt(p+6) - ) - this.v3.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , (input.charCodeAt(p+5) << 8) | input.charCodeAt(p+4) - , (input.charCodeAt(p+7) << 8) | input.charCodeAt(p+6) - ) - this.v4.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - } else { - var other - other = UINT64( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , (input[p+5] << 8) | input[p+4] - , (input[p+7] << 8) | input[p+6] - ) - this.v1.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , (input[p+5] << 8) | input[p+4] - , (input[p+7] << 8) | input[p+6] - ) - this.v2.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , (input[p+5] << 8) | input[p+4] - , (input[p+7] << 8) | input[p+6] - ) - this.v3.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - p += 8 - other = UINT64( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , (input[p+5] << 8) | input[p+4] - , (input[p+7] << 8) | input[p+6] - ) - this.v4.add( other.multiply(PRIME64_2) ).rotl(31).multiply(PRIME64_1); - } - p += 8 - } while (p <= limit) - } - - if (p < bEnd) - { - // XXH64_memcpy(this.memory, p, bEnd-p); - if (isString) { - this.memory += input.slice(p) - } else if (isArrayBuffer) { - this.memory.set( input.subarray(p, bEnd), this.memsize ) - } else { - input.copy( this.memory, this.memsize, p, bEnd ) - } - - this.memsize = bEnd - p - } - - return this -} - -/** - * Finalize the XXH64 computation. The XXH64 instance is ready for reuse for the given seed - * @method digest - * @return {UINT64} xxHash - */ -XXH64.prototype.digest = function () { - var input = this.memory - var isString = typeof input == 'string' - var p = 0 - var bEnd = this.memsize - var h64, h - var u = new UINT64 - - if (this.total_len >= 32) - { - h64 = this.v1.clone().rotl(1) - h64.add( this.v2.clone().rotl(7) ) - h64.add( this.v3.clone().rotl(12) ) - h64.add( this.v4.clone().rotl(18) ) - - h64.xor( this.v1.multiply(PRIME64_2).rotl(31).multiply(PRIME64_1) ) - h64.multiply(PRIME64_1).add(PRIME64_4) - - h64.xor( this.v2.multiply(PRIME64_2).rotl(31).multiply(PRIME64_1) ) - h64.multiply(PRIME64_1).add(PRIME64_4) - - h64.xor( this.v3.multiply(PRIME64_2).rotl(31).multiply(PRIME64_1) ) - h64.multiply(PRIME64_1).add(PRIME64_4) - - h64.xor( this.v4.multiply(PRIME64_2).rotl(31).multiply(PRIME64_1) ) - h64.multiply(PRIME64_1).add(PRIME64_4) - } - else - { - h64 = this.seed.clone().add( PRIME64_5 ) - } - - h64.add( u.fromNumber(this.total_len) ) - - while (p <= bEnd - 8) - { - if (isString) { - u.fromBits( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , (input.charCodeAt(p+5) << 8) | input.charCodeAt(p+4) - , (input.charCodeAt(p+7) << 8) | input.charCodeAt(p+6) - ) - } else { - u.fromBits( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , (input[p+5] << 8) | input[p+4] - , (input[p+7] << 8) | input[p+6] - ) - } - u.multiply(PRIME64_2).rotl(31).multiply(PRIME64_1) - h64 - .xor(u) - .rotl(27) - .multiply( PRIME64_1 ) - .add( PRIME64_4 ) - p += 8 - } - - if (p + 4 <= bEnd) { - if (isString) { - u.fromBits( - (input.charCodeAt(p+1) << 8) | input.charCodeAt(p) - , (input.charCodeAt(p+3) << 8) | input.charCodeAt(p+2) - , 0 - , 0 - ) - } else { - u.fromBits( - (input[p+1] << 8) | input[p] - , (input[p+3] << 8) | input[p+2] - , 0 - , 0 - ) - } - h64 - .xor( u.multiply(PRIME64_1) ) - .rotl(23) - .multiply( PRIME64_2 ) - .add( PRIME64_3 ) - p += 4 - } - - while (p < bEnd) - { - u.fromBits( isString ? input.charCodeAt(p++) : input[p++], 0, 0, 0 ) - h64 - .xor( u.multiply(PRIME64_5) ) - .rotl(11) - .multiply(PRIME64_1) - } - - h = h64.clone().shiftRight(33) - h64.xor(h).multiply(PRIME64_2) - - h = h64.clone().shiftRight(29) - h64.xor(h).multiply(PRIME64_3) - - h = h64.clone().shiftRight(32) - h64.xor(h) - - // Reset the state - this.init( this.seed ) - - return h64 -} - -module.exports = XXH64 |