json-as 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.prettierrc +3 -0
  2. package/README.md +2 -0
  3. package/assembly/custom/util.ts +70 -24
  4. package/assembly/deserialize/simd/string.ts +7 -5
  5. package/assembly/deserialize/simple/arbitrary.ts +12 -5
  6. package/assembly/deserialize/simple/array/arbitrary.ts +24 -7
  7. package/assembly/deserialize/simple/array/array.ts +8 -2
  8. package/assembly/deserialize/simple/array/bool.ts +8 -2
  9. package/assembly/deserialize/simple/array/box.ts +8 -2
  10. package/assembly/deserialize/simple/array/float.ts +8 -2
  11. package/assembly/deserialize/simple/array/integer.ts +8 -2
  12. package/assembly/deserialize/simple/array/map.ts +26 -6
  13. package/assembly/deserialize/simple/array/object.ts +26 -6
  14. package/assembly/deserialize/simple/array/raw.ts +42 -6
  15. package/assembly/deserialize/simple/array/string.ts +8 -2
  16. package/assembly/deserialize/simple/array/struct.ts +26 -6
  17. package/assembly/deserialize/simple/array.ts +5 -1
  18. package/assembly/deserialize/simple/bool.ts +6 -2
  19. package/assembly/deserialize/simple/integer.ts +4 -1
  20. package/assembly/deserialize/simple/map.ts +85 -17
  21. package/assembly/deserialize/simple/object.ts +64 -12
  22. package/assembly/deserialize/simple/raw.ts +4 -1
  23. package/assembly/deserialize/simple/set.ts +37 -11
  24. package/assembly/deserialize/simple/staticarray/array.ts +12 -3
  25. package/assembly/deserialize/simple/staticarray/bool.ts +6 -2
  26. package/assembly/deserialize/simple/staticarray/float.ts +12 -3
  27. package/assembly/deserialize/simple/staticarray/integer.ts +6 -2
  28. package/assembly/deserialize/simple/staticarray/string.ts +12 -4
  29. package/assembly/deserialize/simple/staticarray/struct.ts +30 -7
  30. package/assembly/deserialize/simple/staticarray.ts +11 -3
  31. package/assembly/deserialize/simple/string.ts +9 -3
  32. package/assembly/deserialize/simple/struct.ts +104 -16
  33. package/assembly/deserialize/swar/string.ts +13 -10
  34. package/assembly/index.d.ts +5 -3
  35. package/assembly/index.ts +183 -87
  36. package/assembly/serialize/simd/string.ts +70 -69
  37. package/assembly/serialize/simple/raw.ts +5 -1
  38. package/assembly/serialize/simple/string.ts +9 -10
  39. package/assembly/serialize/swar/string.ts +33 -32
  40. package/assembly/test.ts +28 -22
  41. package/assembly/tsconfig.json +16 -1
  42. package/assembly/util/concat.ts +5 -1
  43. package/assembly/util/masks.ts +5 -6
  44. package/assembly/util/snp.ts +4 -1
  45. package/assembly/util/swar.ts +5 -7
  46. package/eslint.config.js +34 -51
  47. package/lib/as-bs.ts +22 -18
  48. package/package.json +7 -6
  49. package/tools/assemblyscript-eslint-local.js +29 -0
  50. package/tools/assemblyscript-eslint.js +29 -0
  51. package/transform/lib/builder.d.ts.map +1 -1
  52. package/transform/lib/builder.js +13 -5
  53. package/transform/lib/builder.js.map +1 -1
  54. package/transform/lib/index.d.ts.map +1 -1
  55. package/transform/lib/index.js +690 -151
  56. package/transform/lib/index.js.map +1 -1
  57. package/transform/lib/linkers/alias.d.ts.map +1 -1
  58. package/transform/lib/linkers/alias.js.map +1 -1
  59. package/transform/lib/linkers/custom.d.ts.map +1 -1
  60. package/transform/lib/linkers/custom.js +9 -4
  61. package/transform/lib/linkers/custom.js.map +1 -1
  62. package/transform/lib/linkers/imports.d.ts.map +1 -1
  63. package/transform/lib/linkers/imports.js.map +1 -1
  64. package/transform/lib/types.d.ts.map +1 -1
  65. package/transform/lib/types.js +21 -8
  66. package/transform/lib/types.js.map +1 -1
  67. package/transform/lib/util.d.ts.map +1 -1
  68. package/transform/lib/util.js +1 -1
  69. package/transform/lib/util.js.map +1 -1
  70. package/transform/lib/visitor.d.ts.map +1 -1
  71. package/transform/lib/visitor.js +2 -1
  72. package/transform/lib/visitor.js.map +1 -1
  73. package/transform/tsconfig.json +2 -6
  74. package/.claude/settings.local.json +0 -9
@@ -1,15 +1,33 @@
1
- import { BRACE_LEFT, BRACE_RIGHT, BRACKET_LEFT, BRACKET_RIGHT } from "../../../custom/chars";
1
+ import {
2
+ BRACE_LEFT,
3
+ BRACE_RIGHT,
4
+ BRACKET_LEFT,
5
+ BRACKET_RIGHT,
6
+ } from "../../../custom/chars";
2
7
  import { JSON } from "../../..";
3
8
  import { isSpace } from "util/string";
4
9
 
5
- export function deserializeStaticArrayStruct<T extends StaticArray<any>>(srcStart: usize, srcEnd: usize, dst: usize): T {
10
+ export function deserializeStaticArrayStruct<T extends StaticArray<any>>(
11
+ srcStart: usize,
12
+ srcEnd: usize,
13
+ dst: usize,
14
+ ): T {
6
15
  while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
7
16
  while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
8
17
 
9
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
18
+ if (srcStart - srcEnd == 0)
19
+ throw new Error("Input string had zero length or was all whitespace");
10
20
 
11
- if (load<u16>(srcStart) != BRACKET_LEFT) throw new Error("Expected '[' at start of object at position " + (srcEnd - srcStart).toString());
12
- if (load<u16>(srcEnd - 2) != BRACKET_RIGHT) throw new Error("Expected ']' at end of object at position " + (srcEnd - srcStart).toString());
21
+ if (load<u16>(srcStart) != BRACKET_LEFT)
22
+ throw new Error(
23
+ "Expected '[' at start of object at position " +
24
+ (srcEnd - srcStart).toString(),
25
+ );
26
+ if (load<u16>(srcEnd - 2) != BRACKET_RIGHT)
27
+ throw new Error(
28
+ "Expected ']' at end of object at position " +
29
+ (srcEnd - srcStart).toString(),
30
+ );
13
31
 
14
32
  // First pass: count elements using same logic as Array deserializer
15
33
  let count: i32 = 0;
@@ -26,7 +44,7 @@ export function deserializeStaticArrayStruct<T extends StaticArray<any>>(srcStar
26
44
  }
27
45
 
28
46
  // Allocate StaticArray with correct size
29
- const outSize = <usize>count << alignof<valueof<T>>();
47
+ const outSize = (<usize>count) << alignof<valueof<T>>();
30
48
  const out = changetype<nonnull<T>>(dst || __new(outSize, idof<T>()));
31
49
 
32
50
  // Second pass: populate values
@@ -38,7 +56,12 @@ export function deserializeStaticArrayStruct<T extends StaticArray<any>>(srcStar
38
56
  if (code == BRACE_LEFT && depth++ == 0) {
39
57
  lastIndex = srcStart;
40
58
  } else if (code == BRACE_RIGHT && --depth == 0) {
41
- unchecked((out[index++] = JSON.__deserialize<valueof<T>>(lastIndex, (srcStart += 2))));
59
+ unchecked(
60
+ (out[index++] = JSON.__deserialize<valueof<T>>(
61
+ lastIndex,
62
+ (srcStart += 2),
63
+ )),
64
+ );
42
65
  }
43
66
  srcStart += 2;
44
67
  }
@@ -5,7 +5,11 @@ import { deserializeStaticArrayString } from "./staticarray/string";
5
5
  import { deserializeStaticArrayArray } from "./staticarray/array";
6
6
  import { deserializeStaticArrayStruct } from "./staticarray/struct";
7
7
 
8
- export function deserializeStaticArray<T extends StaticArray<any>>(srcStart: usize, srcEnd: usize, dst: usize): T {
8
+ export function deserializeStaticArray<T extends StaticArray<any>>(
9
+ srcStart: usize,
10
+ srcEnd: usize,
11
+ dst: usize,
12
+ ): T {
9
13
  if (isString<valueof<T>>()) {
10
14
  return <T>deserializeStaticArrayString(srcStart, srcEnd, dst);
11
15
  } else if (isBoolean<valueof<T>>()) {
@@ -21,8 +25,12 @@ export function deserializeStaticArray<T extends StaticArray<any>>(srcStart: usi
21
25
  if (isDefined(type.__DESERIALIZE)) {
22
26
  return deserializeStaticArrayStruct<T>(srcStart, srcEnd, dst);
23
27
  }
24
- throw new Error("Could not parse static array of type " + nameof<T>() + "!");
28
+ throw new Error(
29
+ "Could not parse static array of type " + nameof<T>() + "!",
30
+ );
25
31
  } else {
26
- throw new Error("Could not parse static array of type " + nameof<T>() + "!");
32
+ throw new Error(
33
+ "Could not parse static array of type " + nameof<T>() + "!",
34
+ );
27
35
  }
28
36
  }
@@ -1,9 +1,15 @@
1
1
  import { bs } from "../../../lib/as-bs";
2
- import { DESERIALIZE_ESCAPE_TABLE, ESCAPE_HEX_TABLE } from "../../globals/tables";
2
+ import {
3
+ DESERIALIZE_ESCAPE_TABLE,
4
+ ESCAPE_HEX_TABLE,
5
+ } from "../../globals/tables";
3
6
  import { hex4_to_u16_swar } from "../../util/swar";
4
7
 
5
8
  // @ts-ignore: inline
6
- @inline export function deserializeString(srcStart: usize, srcEnd: usize): string {
9
+ @inline export function deserializeString(
10
+ srcStart: usize,
11
+ srcEnd: usize,
12
+ ): string {
7
13
  // Strip quotes
8
14
  srcStart += 2;
9
15
  srcEnd -= 2;
@@ -15,7 +21,7 @@ import { hex4_to_u16_swar } from "../../util/swar";
15
21
  srcStart += 2;
16
22
 
17
23
  // Early exit
18
- if (block !== 0x5C) {
24
+ if (block !== 0x5c) {
19
25
  bs.offset += 2;
20
26
  continue;
21
27
  }
@@ -1,7 +1,23 @@
1
- import { BACK_SLASH, COMMA, CHAR_F, BRACE_LEFT, BRACKET_LEFT, CHAR_N, QUOTE, BRACE_RIGHT, BRACKET_RIGHT, CHAR_T, COLON } from "../../custom/chars";
1
+ import {
2
+ BACK_SLASH,
3
+ COMMA,
4
+ CHAR_F,
5
+ BRACE_LEFT,
6
+ BRACKET_LEFT,
7
+ CHAR_N,
8
+ QUOTE,
9
+ BRACE_RIGHT,
10
+ BRACKET_RIGHT,
11
+ CHAR_T,
12
+ COLON,
13
+ } from "../../custom/chars";
2
14
  import { isSpace } from "../../util";
3
15
 
4
- export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize): T {
16
+ export function deserializeStruct<T>(
17
+ srcStart: usize,
18
+ srcEnd: usize,
19
+ dst: usize,
20
+ ): T {
5
21
  const out = changetype<nonnull<T>>(dst || __new(offsetof<T>(), idof<T>()));
6
22
 
7
23
  // @ts-ignore: supplied by transform
@@ -16,9 +32,18 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
16
32
  while (srcStart < srcEnd && isSpace(load<u16>(srcStart))) srcStart += 2;
17
33
  while (srcEnd > srcStart && isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2; // would like to optimize this later
18
34
 
19
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
20
- if (load<u16>(srcStart) != BRACE_LEFT) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
21
- if (load<u16>(srcEnd - 2) != BRACE_RIGHT) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
35
+ if (srcStart - srcEnd == 0)
36
+ throw new Error("Input string had zero length or was all whitespace");
37
+ if (load<u16>(srcStart) != BRACE_LEFT)
38
+ throw new Error(
39
+ "Expected '{' at start of object at position " +
40
+ (srcEnd - srcStart).toString(),
41
+ );
42
+ if (load<u16>(srcEnd - 2) != BRACE_RIGHT)
43
+ throw new Error(
44
+ "Expected '}' at end of object at position " +
45
+ (srcEnd - srcStart).toString(),
46
+ );
22
47
 
23
48
  srcStart += 2;
24
49
  while (srcStart < srcEnd) {
@@ -31,7 +56,11 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
31
56
  // console.log("Key: " + ptrToStr(lastIndex, srcStart));
32
57
  // console.log("Next: " + String.fromCharCode(load<u16>(srcStart + 2)));
33
58
  while (isSpace((code = load<u16>((srcStart += 2))))) {}
34
- if (code !== COLON) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
59
+ if (code !== COLON)
60
+ throw new Error(
61
+ "Expected ':' after key at position " +
62
+ (srcEnd - srcStart).toString(),
63
+ );
35
64
  isKey = false;
36
65
  } else {
37
66
  // console.log("Got key start");
@@ -50,7 +79,13 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
50
79
  if (code == QUOTE && load<u16>(srcStart - 2) !== BACK_SLASH) {
51
80
  // console.log("Value (string): " + ptrToStr(lastIndex, srcStart + 2));
52
81
  // @ts-ignore: exists
53
- out.__DESERIALIZE(keyStart, keyEnd, lastIndex, srcStart + 2, changetype<usize>(out));
82
+ out.__DESERIALIZE(
83
+ keyStart,
84
+ keyEnd,
85
+ lastIndex,
86
+ srcStart + 2,
87
+ changetype<usize>(out),
88
+ );
54
89
  // while (isSpace(load<u16>(srcStart))) srcStart += 2;
55
90
  srcStart += 4;
56
91
  // console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
@@ -67,7 +102,13 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
67
102
  if (code == COMMA || code == BRACE_RIGHT || isSpace(code)) {
68
103
  // console.log("Value (number): " + ptrToStr(lastIndex, srcStart));
69
104
  // @ts-ignore: exists
70
- out.__DESERIALIZE(keyStart, keyEnd, lastIndex, srcStart, changetype<usize>(out));
105
+ out.__DESERIALIZE(
106
+ keyStart,
107
+ keyEnd,
108
+ lastIndex,
109
+ srcStart,
110
+ changetype<usize>(out),
111
+ );
71
112
  // while (isSpace(load<u16>((srcStart += 2)))) {
72
113
  // /* empty */
73
114
  // }
@@ -86,12 +127,24 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
86
127
  const code = load<u16>(srcStart);
87
128
  if (code == QUOTE) {
88
129
  srcStart += 2;
89
- while (!(load<u16>(srcStart) == QUOTE && load<u16>(srcStart - 2) != BACK_SLASH)) srcStart += 2;
130
+ while (
131
+ !(
132
+ load<u16>(srcStart) == QUOTE &&
133
+ load<u16>(srcStart - 2) != BACK_SLASH
134
+ )
135
+ )
136
+ srcStart += 2;
90
137
  } else if (code == BRACE_RIGHT) {
91
138
  if (--depth == 0) {
92
139
  // console.log("Value (object): " + ptrToStr(lastIndex, srcStart + 2));
93
140
  // @ts-ignore: exists
94
- out.__DESERIALIZE(keyStart, keyEnd, lastIndex, (srcStart += 2), changetype<usize>(out));
141
+ out.__DESERIALIZE(
142
+ keyStart,
143
+ keyEnd,
144
+ lastIndex,
145
+ (srcStart += 2),
146
+ changetype<usize>(out),
147
+ );
95
148
  // console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
96
149
  keyStart = 0;
97
150
  // while (isSpace(load<u16>(srcStart))) {
@@ -110,12 +163,24 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
110
163
  const code = load<u16>(srcStart);
111
164
  if (code == QUOTE) {
112
165
  srcStart += 2;
113
- while (!(load<u16>(srcStart) == QUOTE && load<u16>(srcStart - 2) != BACK_SLASH)) srcStart += 2;
166
+ while (
167
+ !(
168
+ load<u16>(srcStart) == QUOTE &&
169
+ load<u16>(srcStart - 2) != BACK_SLASH
170
+ )
171
+ )
172
+ srcStart += 2;
114
173
  } else if (code == BRACKET_RIGHT) {
115
174
  if (--depth == 0) {
116
175
  // console.log("Value (array): " + ptrToStr(lastIndex, srcStart + 2));
117
176
  // @ts-ignore: exists
118
- out.__DESERIALIZE(keyStart, keyEnd, lastIndex, (srcStart += 2), changetype<usize>(out));
177
+ out.__DESERIALIZE(
178
+ keyStart,
179
+ keyEnd,
180
+ lastIndex,
181
+ (srcStart += 2),
182
+ changetype<usize>(out),
183
+ );
119
184
  // console.log("Next: " + String.fromCharCode(load<u16>(srcStart)));
120
185
  keyStart = 0;
121
186
  // while (isSpace(load<u16>((srcStart += 2)))) {
@@ -130,7 +195,13 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
130
195
  if (load<u64>(srcStart) == 28429475166421108) {
131
196
  // console.log("Value (bool): " + ptrToStr(srcStart, srcStart + 8));
132
197
  // @ts-ignore: exists
133
- out.__DESERIALIZE(keyStart, keyEnd, srcStart, (srcStart += 8), changetype<usize>(out));
198
+ out.__DESERIALIZE(
199
+ keyStart,
200
+ keyEnd,
201
+ srcStart,
202
+ (srcStart += 8),
203
+ changetype<usize>(out),
204
+ );
134
205
  // while (isSpace(load<u16>((srcStart += 2)))) {
135
206
  // /* empty */
136
207
  // }
@@ -142,7 +213,13 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
142
213
  if (load<u64>(srcStart, 2) == 28429466576093281) {
143
214
  // console.log("Value (bool): " + ptrToStr(srcStart, srcStart + 10));
144
215
  // @ts-ignore: exists
145
- out.__DESERIALIZE(keyStart, keyEnd, srcStart, (srcStart += 10), changetype<usize>(out));
216
+ out.__DESERIALIZE(
217
+ keyStart,
218
+ keyEnd,
219
+ srcStart,
220
+ (srcStart += 10),
221
+ changetype<usize>(out),
222
+ );
146
223
  // while (isSpace(load<u16>((srcStart += 2)))) {
147
224
  // /* empty */
148
225
  // }
@@ -154,7 +231,13 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
154
231
  if (load<u64>(srcStart) == 30399761348886638) {
155
232
  // console.log("Value (null): " + ptrToStr(srcStart, srcStart + 8));
156
233
  // @ts-ignore: exists
157
- out.__DESERIALIZE(keyStart, keyEnd, srcStart, (srcStart += 8), changetype<usize>(out));
234
+ out.__DESERIALIZE(
235
+ keyStart,
236
+ keyEnd,
237
+ srcStart,
238
+ (srcStart += 8),
239
+ changetype<usize>(out),
240
+ );
158
241
  // while (isSpace(load<u16>((srcStart += 2)))) {
159
242
  /* empty */
160
243
  // }
@@ -165,7 +248,12 @@ export function deserializeStruct<T>(srcStart: usize, srcEnd: usize, dst: usize)
165
248
  } else if (isSpace(code)) {
166
249
  srcStart += 2;
167
250
  } else {
168
- throw new Error("Unexpected character in JSON object '" + String.fromCharCode(code) + "' at position " + (srcEnd - srcStart).toString());
251
+ throw new Error(
252
+ "Unexpected character in JSON object '" +
253
+ String.fromCharCode(code) +
254
+ "' at position " +
255
+ (srcEnd - srcStart).toString(),
256
+ );
169
257
  }
170
258
  }
171
259
  }
@@ -67,13 +67,13 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
67
67
  const code = <u16>(header >> 16);
68
68
 
69
69
  // Detect false positive (code unit where low byte is 0x5C)
70
- if ((header & 0xFFFF) !== 0x5C) continue;
70
+ if ((header & 0xffff) !== 0x5c) continue;
71
71
 
72
72
  // Hot path (negative bias)
73
73
  if (code !== 0x75) {
74
74
  // Short escapes (\n \t \" \\)
75
75
  const escaped = load<u16>(DESERIALIZE_ESCAPE_TABLE + code);
76
- mask &= mask - usize(escaped === 0x5C);
76
+ mask &= mask - usize(escaped === 0x5c);
77
77
  store<u16>(dstIdx, escaped);
78
78
  store<u32>(dstIdx, load<u32>(srcIdx, 4), 2);
79
79
 
@@ -90,7 +90,6 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
90
90
  // store<u64>(dstIdx, load<u32>(srcIdx, 12), 2);
91
91
  srcStart += 4 + laneIdx;
92
92
  bs.offset -= 6 - laneIdx;
93
-
94
93
  } while (mask !== 0);
95
94
 
96
95
  bs.offset += 8;
@@ -103,7 +102,7 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
103
102
  srcStart += 2;
104
103
 
105
104
  // Early exit
106
- if (block !== 0x5C) {
105
+ if (block !== 0x5c) {
107
106
  bs.offset += 2;
108
107
  continue;
109
108
  }
@@ -141,11 +140,14 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
141
140
  */
142
141
  // @ts-expect-error: @inline is a valid decorator
143
142
  @inline function backslash_mask(block: u64): u64 {
144
- const b = block ^ 0x005C_005C_005C_005C;
145
- const backslash_mask = (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;
143
+ const b = block ^ 0x005c_005c_005c_005c;
144
+ const backslash_mask =
145
+ (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;
146
146
  const high_byte_mask =
147
- ~(((block - 0x0100_0100_0100_0100) & ~block & 0x8000_8000_8000_8000)
148
- ^ 0x8000_8000_8000_8000) >> 8;
147
+ ~(
148
+ ((block - 0x0100_0100_0100_0100) & ~block & 0x8000_8000_8000_8000) ^
149
+ 0x8000_8000_8000_8000
150
+ ) >> 8;
149
151
  return backslash_mask & high_byte_mask;
150
152
  }
151
153
 
@@ -160,7 +162,8 @@ export function deserializeString_SWAR(srcStart: usize, srcEnd: usize): string {
160
162
  */
161
163
  // @ts-expect-error: @inline is a valid decorator
162
164
  @inline function backslash_mask_unsafe(block: u64): u64 {
163
- const b = block ^ 0x005C_005C_005C_005C;
164
- const backslash_mask = (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;
165
+ const b = block ^ 0x005c_005c_005c_005c;
166
+ const backslash_mask =
167
+ (b - 0x0001_0001_0001_0001) & ~b & 0x0080_0080_0080_0080;
165
168
  return backslash_mask;
166
169
  }
@@ -24,7 +24,9 @@ declare function omit(..._): void;
24
24
  /**
25
25
  * Property decorator that allows a field to be omitted when equal to an Expression.
26
26
  */
27
- declare function omitif(condition: string | ((value: any) => boolean)): Function;
27
+ declare function omitif(
28
+ condition: string | ((value: any) => boolean),
29
+ ): Function;
28
30
 
29
31
  /**
30
32
  * Property decorator that allows a field to be omitted when a property is null.
@@ -47,8 +49,8 @@ declare function deserializer(..._): any;
47
49
  declare enum JSONMode {
48
50
  SWAR = 0,
49
51
  SIMD = 1,
50
- NAIVE = 2
52
+ NAIVE = 2,
51
53
  }
52
54
 
53
55
  declare const JSON_MODE: JSONMode;
54
- declare const JSON_CACHE: bool;
56
+ declare const JSON_CACHE: bool;