1
- if ( ! ( globalThis as any ) . Buffer ) {
2
- ( globalThis as any ) . Buffer = require ( 'buffer/' ) . Buffer ;
3
- }
1
+ // if (!(globalThis as any).Buffer) {
2
+ // (globalThis as any).Buffer = require('buffer/').Buffer;
3
+ // }
4
4
5
5
const n = ( n : number | string ) => BigInt ( n )
6
6
const PRIME64_1 = n ( '0x9E3779B185EBCA87' ) ; /* 0b1001111000110111011110011011000110000101111010111100101010000111 */
@@ -9,6 +9,7 @@ const PRIME64_3 = n('0x165667B19E3779F9'); /* 0b000101100101011001100111101100
9
9
const PRIME64_4 = n ( '0x85EBCA77C2B2AE63' ) ; /* 0b1000010111101011110010100111011111000010101100101010111001100011 */
10
10
const PRIME64_5 = n ( '0x27D4EB2F165667C5' ) ;
11
11
const kkey = Buffer . from ( 'b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e' , 'hex' )
12
+ const mask128 = ( n ( 1 ) << n ( 128 ) ) - n ( 1 ) ;
12
13
const mask64 = ( n ( 1 ) << n ( 64 ) ) - n ( 1 ) ;
13
14
const mask32 = ( n ( 1 ) << n ( 32 ) ) - n ( 1 ) ;
14
15
const STRIPE_LEN = 64
@@ -117,14 +118,14 @@ function XXH3_hashLong_128b(data: Buffer, seed: bigint) {
117
118
118
119
119
120
function XXH3_mul128 ( a : bigint , b : bigint ) {
120
- const lll = a * b ;
121
+ const lll = ( a * b ) & mask128 ;
121
122
return ( lll + ( lll >> n ( 64 ) ) ) & mask64 ;
122
123
}
123
124
124
125
function XXH3_mix16B ( data : Buffer , key : Buffer ) {
125
126
return XXH3_mix2Accs ( data , key )
126
- // return XXH3_mul128(data.readBigUInt64LE(data_offset ) ^ key.readBigUInt64LE(key_offset ),
127
- // data.readBigUInt64LE(data_offset + 8) ^ key.readBigUInt64LE(key_offset + 8));
127
+ // return XXH3_mul128(data.readBigUInt64LE(0 ) ^ key.readBigUInt64LE(0 ),
128
+ // data.readBigUInt64LE(8) ^ key.readBigUInt64LE(8));
128
129
}
129
130
130
131
function XXH3_avalanche ( h64 : bigint ) {
@@ -223,4 +224,4 @@ export function XXH3_128(data: Buffer, seed: bigint = n(0)) {
223
224
const part2 = ( ( acc1 * PRIME64_3 ) + ( acc2 * PRIME64_4 ) + ( ( n ( len ) - seed ) * PRIME64_2 ) ) & mask64 ;
224
225
225
226
return ( XXH3_avalanche ( part1 ) << n ( 64 ) ) | XXH3_avalanche ( part2 )
226
- }
227
+ }
0 commit comments