Skip to content

Commit 7ffd841

Browse files
committed
chore: correctness and minor issues
1 parent c0cf9c7 commit 7ffd841

28 files changed

+887
-53
lines changed

assembly/__tests__/output_a.wasm

21.8 KB
Binary file not shown.

assembly/__tests__/output_b.wasm

21.3 KB
Binary file not shown.

assembly/__tests__/test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
import { JSON } from "..";
3+
4+
@json
5+
class Data {
6+
id: string = "";
7+
active: bool = false;
8+
}
9+
10+
export function test(): void {
11+
const d = new Data();
12+
d.id = "second";
13+
d.active = true;
14+
const result = JSON.stringify<Data>(d);
15+
assert(result == '{"id":"second","active":true}', "Serialization B failed: " + result);
16+
}

assembly/deserialize/simd/string.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { BACK_SLASH } from "../../custom/chars";
33
import { DESERIALIZE_ESCAPE_TABLE, ESCAPE_HEX_TABLE } from "../../globals/tables";
44
import { hex4_to_u16_swar } from "../../util/swar";
55

6-
// @ts-ignore: decorator allowed
6+
// @ts-expect-error: @lazy is a valid decorator
77
@lazy const SPLAT_5C = i16x8.splat(0x5C); // \
88

99
// Overflow Pattern for Unicode Escapes (READ)

assembly/deserialize/swar/string.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
139139
*
140140
* Each matching lane sets itself to 0x80.
141141
*/
142-
// @ts-ignore: decorator
142+
// @ts-expect-error: @inline is a valid decorator
143143
@inline function backslash_mask(block: u64): u64 {
144144
const b = block ^ 0x005C_005C_005C_005C;
145145
const backslash_mask = (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;
@@ -158,7 +158,7 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
158158
* WARNING: The low byte of a code unit *may* be a backslash, thus triggering false positives!
159159
* This is useful for a hot path where it is possible to detect the false positive scalarly.
160160
*/
161-
// @ts-ignore: decorator
161+
// @ts-expect-error: @inline is a valid decorator
162162
@inline function backslash_mask_unsafe(block: u64): u64 {
163163
const b = block ^ 0x005C_005C_005C_005C;
164164
const backslash_mask = (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;

assembly/serialize/simd/string.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ import { OBJECT, TOTAL_OVERHEAD } from "rt/common";
22
import { bs, sc } from "../../../lib/as-bs";
33
import { BACK_SLASH } from "../../custom/chars";
44
import { SERIALIZE_ESCAPE_TABLE } from "../../globals/tables";
5-
// @ts-ignore: decorator allowed
5+
// @ts-expect-error: @lazy is a valid decorator
66
@lazy const U00_MARKER = 13511005048209500;
7-
// @ts-ignore: decorator allowed
7+
// @ts-expect-error: @lazy is a valid decorator
88
@lazy const U_MARKER = 7667804;
9-
// @ts-ignore: decorator allowed
9+
// @ts-expect-error: @lazy is a valid decorator
1010
@lazy const SPLAT_0022 = i16x8.splat(0x0022); // "
11-
// @ts-ignore: decorator allowed
11+
// @ts-expect-error: @lazy is a valid decorator
1212
@lazy const SPLAT_005C = i16x8.splat(0x005C); // \
13-
// @ts-ignore: decorator allowed
13+
// @ts-expect-error: @lazy is a valid decorator
1414
@lazy const SPLAT_0020 = i16x8.splat(0x0020); // space and control check
15-
// @ts-ignore: decorator allowed
15+
// @ts-expect-error: @lazy is a valid decorator
1616
@lazy const SPLAT_FFD8 = i16x8.splat(i16(0xD7FE));
1717

1818
/**
@@ -177,7 +177,7 @@ export function serializeString_SIMD(src: string): void {
177177
if (isDefined(JSON_CACHE)) sc.insertCached(changetype<usize>(src), srcStart, srcSize);
178178
}
179179

180-
// @ts-ignore: inline
180+
// @ts-expect-error: @inline is a valid decorator
181181
@inline function write_u_escape(code: u16): void {
182182
bs.growSize(10);
183183
store<u32>(bs.offset, U_MARKER); // "\u"
@@ -189,7 +189,7 @@ export function serializeString_SIMD(src: string): void {
189189
bs.offset += 12;
190190
}
191191

192-
// @ts-ignore: inline
192+
// @ts-expect-error: @inline is a valid decorator
193193
@inline function hexNibble(n: u16): u16 {
194194
return n < 10 ? (48 + n) : (87 + n);
195195
}

assembly/serialize/swar/string.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { SERIALIZE_ESCAPE_TABLE } from "../../globals/tables";
44
import { OBJECT, TOTAL_OVERHEAD } from "rt/common";
55
import { mask_to_string } from "../../util/masks";
66

7-
// @ts-ignore: decorator allowed
7+
// @ts-expect-error: @lazy is a valid decorator
88
@lazy const U00_MARKER = 13511005048209500;
9-
// @ts-ignore: decorator allowed
9+
// @ts-expect-error: @lazy is a valid decorator
1010
@lazy const U_MARKER = 7667804;
1111

1212
export function serializeString_SWAR(src: string): void {
@@ -148,7 +148,7 @@ export function serializeString_SWAR(src: string): void {
148148
if (isDefined(JSON_CACHE)) sc.insertCached(changetype<usize>(src), srcStart, srcSize);
149149
}
150150

151-
// @ts-ignore: inline
151+
// @ts-expect-error: @inline is a valid decorator
152152
@inline function write_u_escape(code: u16): void {
153153
bs.growSize(10);
154154
store<u32>(bs.offset, U_MARKER); // "\u"
@@ -160,12 +160,12 @@ export function serializeString_SWAR(src: string): void {
160160
bs.offset += 12;
161161
}
162162

163-
// @ts-ignore: inline
163+
// @ts-expect-error: @inline is a valid decorator
164164
@inline function hexNibble(n: u16): u16 {
165165
return n < 10 ? (48 + n) : (87 + n);
166166
}
167167

168-
// @ts-ignore: inline
168+
// @ts-expect-error: @inline is a valid decorator
169169
@inline export function detect_escapable_u64_swar(block: u64): u64 {
170170
const lo = block & 0x00FF_00FF_00FF_00FF;
171171
const ascii_mask = (
@@ -178,7 +178,7 @@ export function serializeString_SWAR(src: string): void {
178178
return (ascii_mask & (~hi_mask >> 8)) | hi_mask;
179179
}
180180

181-
// @ts-ignore: inline
181+
// @ts-expect-error: @inline is a valid decorator
182182
@inline export function detect_escapable_u64_swar_unsafe(block: u64): u64 {
183183
const lo = block & 0x00FF_00FF_00FF_00FF;
184184
const ascii_mask = (

0 commit comments

Comments
 (0)