@@ -4,6 +4,7 @@ import { SERIALIZE_ESCAPE_TABLE } from "../../globals/tables";
44import { OBJECT , TOTAL_OVERHEAD } from "rt/common" ;
55
66// @ts -expect-error: @lazy is a valid decorator
7+ // @ts -nocheck
78@lazy const U00_MARKER = 13511005048209500 ;
89// @ts -expect-error: @lazy is a valid decorator
910@lazy const U_MARKER = 7667804 ;
@@ -12,7 +13,7 @@ export function serializeString_SWAR(src: string): void {
1213 let srcStart = changetype < usize > ( src ) ;
1314
1415 if ( isDefined ( JSON_CACHE ) ) {
15- const e = unchecked ( sc . entries [ ( srcStart >> 4 ) & sc . CACHE_MASK ] ) ;
16+ const e = unchecked ( sc . entries [ i32 ( ( srcStart >> 4 ) & sc . CACHE_MASK ) ] ) ;
1617 if ( e . key == srcStart ) {
1718 bs . offset += e . len ;
1819 bs . stackSize += e . len ;
@@ -181,11 +182,11 @@ export function serializeString_SWAR(src: string): void {
181182@inline export function detect_escapable_u64_swar_unsafe ( block : u64 ) : u64 {
182183 const lo = block & 0x00FF_00FF_00FF_00FF ;
183184 const ascii_mask = (
184- ( ( lo - 0x0020_0020_0020_0020 ) |
185- ( ( lo ^ 0x0022_0022_0022_0022 ) - 0x0001_0001_0001_0001 ) |
186- ( ( lo ^ 0x005C_005C_005C_005C ) - 0x0001_0001_0001_0001 ) )
187- & ( 0x0080_0080_0080_0080 & ~ lo )
185+ ( ( lo - 0x0020_0020_0020_0020 ) | // lt 0x20
186+ ( ( lo ^ 0x0022_0022_0022_0022 ) - 0x0001_0001_0001_0001 ) | // eq 0x22
187+ ( ( lo ^ 0x005C_005C_005C_005C ) - 0x0001_0001_0001_0001 ) ) // eq 0x5C
188+ & ( 0x0080_0080_0080_0080 & ~ lo ) // replace each lane with 0x80
188189 ) ;
189- const hi = block & 0xFF00_FF00_FF00_FF00 ;
190+ const hi = block & 0xFF00_FF00_FF00_FF00 ; // add possible non-ascii code units
190191 return ascii_mask | hi ;
191192}
0 commit comments