@menapo/vi18n 0.0.0-stage → 0.1.0

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 (100) hide show
  1. package/LICENSE +49 -0
  2. package/README.md +110 -2
  3. package/dist/apply-Bre-lY9J.js +228 -0
  4. package/dist/captured-Bj8bO6vd.js +1034 -0
  5. package/dist/check-D34P-S--.js +1 -0
  6. package/dist/check-DyrAbv73.js +201 -0
  7. package/dist/cli.d.ts +1 -0
  8. package/dist/cli.js +41 -0
  9. package/dist/codec-DuvU2VQy.js +207 -0
  10. package/dist/collect-Cx4_SKOe.js +13 -0
  11. package/dist/collisions-CfpZU8e4.js +217 -0
  12. package/dist/compile-B5Mz6WJm.js +245 -0
  13. package/dist/compile-Cc97JaW2.js +2502 -0
  14. package/dist/concurrency-C9UUWuDC.js +96 -0
  15. package/dist/concurrency-DONL7t4V.js +1 -0
  16. package/dist/config.d.ts +21 -0
  17. package/dist/config.js +39 -0
  18. package/dist/dir-zw6bGMKQ.js +290 -0
  19. package/dist/duplicates-yuRljQ6h.js +185 -0
  20. package/dist/engine-B7p40M__.js +531 -0
  21. package/dist/engine.d.ts +43 -0
  22. package/dist/engine.js +1241 -0
  23. package/dist/exclude-Du-Zd_qI.js +26 -0
  24. package/dist/export-DGsMbcTZ.js +103 -0
  25. package/dist/extract-Dujlsgnk.js +298 -0
  26. package/dist/formats-KPIg-08V.js +781 -0
  27. package/dist/i18next-CrUnKFfh.js +1596 -0
  28. package/dist/i18next-Rgo-v9l0.js +1 -0
  29. package/dist/import-Cwdhcywt.js +225 -0
  30. package/dist/index.d.ts +156 -0
  31. package/dist/index.js +239 -0
  32. package/dist/init-BecCTvKi.js +792 -0
  33. package/dist/library-D5CWvTQs.js +1882 -0
  34. package/dist/lingui--PcOOYry.js +833 -0
  35. package/dist/lint.d.ts +105 -0
  36. package/dist/lint.js +971 -0
  37. package/dist/load-CQRz4PpM.js +2950 -0
  38. package/dist/load-gW-oJt1Q.js +747 -0
  39. package/dist/locales-DX4MOBFE.js +827 -0
  40. package/dist/lsp-Cq1Nuu-Q.js +31 -0
  41. package/dist/match-BGr8EXB3.js +89 -0
  42. package/dist/mcp-Cf0T7qPW.js +28 -0
  43. package/dist/merge-driver-CpiiSVIc.js +422 -0
  44. package/dist/messages-Cxa-5tR0.js +166 -0
  45. package/dist/migrate-CntqvrW4.js +1 -0
  46. package/dist/migrate-dPgq9uzy.js +1484 -0
  47. package/dist/openai-CTaMDcl-.js +346 -0
  48. package/dist/output-DsaHKHEt.js +164 -0
  49. package/dist/parse.d.ts +62 -0
  50. package/dist/parse.js +156 -0
  51. package/dist/pipeline-C7g11THL.js +2031 -0
  52. package/dist/pipeline-wxS0SApG.js +1 -0
  53. package/dist/project-Dwx7iPm6.js +381 -0
  54. package/dist/project-pXipT8iG.js +1046 -0
  55. package/dist/pseudo-DRv30iN5.js +145 -0
  56. package/dist/raw-C4Y6vyGY.js +4708 -0
  57. package/dist/react-intl-CaBVwJ9u.js +519 -0
  58. package/dist/restore-Btq66Tid.js +175 -0
  59. package/dist/rewrite-CiTRAICl.js +803 -0
  60. package/dist/rich-DCUKl5HM.js +97 -0
  61. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  62. package/dist/run-DYD_VXKy.js +694 -0
  63. package/dist/runtime-DTMmliT1.js +64 -0
  64. package/dist/scan-worker.d.ts +62 -0
  65. package/dist/scan-worker.js +1 -0
  66. package/dist/scoped-BMYpSthj.js +44 -0
  67. package/dist/server-BDkykMjb.js +11823 -0
  68. package/dist/server-qv3mz70d.js +10485 -0
  69. package/dist/server.d.ts +169 -0
  70. package/dist/server.js +1234 -0
  71. package/dist/sitemap-DV3o8QD7.js +159 -0
  72. package/dist/sources-D19czDSA.js +2242 -0
  73. package/dist/status-DZArW5aE.js +149 -0
  74. package/dist/stdio-CVaJfxA7.js +29 -0
  75. package/dist/stdio-FPOKQAgu.js +95 -0
  76. package/dist/sync-CcVzger_.js +658 -0
  77. package/dist/t-DC-c9zE5.js +454 -0
  78. package/dist/test.d.ts +116 -0
  79. package/dist/test.js +319 -0
  80. package/dist/translate-DZR3MkSA.js +299 -0
  81. package/dist/ts-BaU5yOf0.js +4863 -0
  82. package/dist/types-CgUCkFU1.d.ts +707 -0
  83. package/dist/types-D3QGM8XO.js +146 -0
  84. package/dist/types-DsdWBG0b.d.ts +558 -0
  85. package/dist/types-DtvQ7UdD.js +1948 -0
  86. package/dist/types-wSh9fCBY.js +11 -0
  87. package/dist/units-CQ5Q99RC.js +150 -0
  88. package/dist/url-CRfCOhUI.js +172 -0
  89. package/dist/url-CsBkRaJy.js +225 -0
  90. package/dist/validate-BxpupdAf.js +2615 -0
  91. package/dist/validate-D6DJepZv.js +365 -0
  92. package/dist/version-BlyLGlOa.js +28 -0
  93. package/dist/vite-scan-B_YW4X_a.js +242 -0
  94. package/dist/vite.d.ts +34 -0
  95. package/dist/vite.js +7558 -0
  96. package/dist/vue-i18n-CEMnpv7k.js +651 -0
  97. package/dist/which-C6PFI1Dm.js +116 -0
  98. package/dist/worker-84U6uYB3.js +1656 -0
  99. package/package.json +97 -3
  100. package/schemas/catalog.json +57 -0
@@ -0,0 +1,4708 @@
1
+ //#region ../../node_modules/.pnpm/oxc-parser@0.154.0/node_modules/oxc-parser/src-js/generated/constants.js
2
+ /**
3
+ * Total size of the allocator block (including metadata and allocator `ChunkFooter`).
4
+ */
5
+ const BLOCK_SIZE = 2147483632;
6
+ /**
7
+ * Total size of the transfer buffer used on JS side, in bytes
8
+ * (`BLOCK_SIZE` minus `FixedSizeAllocatorMetadata` and `ChunkFooter`).
9
+ */
10
+ const BUFFER_SIZE = 2147483576;
11
+ /**
12
+ * Size of the active data region in bytes - the region where source text and AST live
13
+ * (`BUFFER_SIZE` minus `RawTransferMetadata`).
14
+ */
15
+ const ACTIVE_SIZE = 2147483560;
16
+ //#endregion
17
+ //#region ../../node_modules/.pnpm/oxc-parser@0.154.0/node_modules/oxc-parser/src-js/generated/deserialize/js.js
18
+ let uint8;
19
+ let int32;
20
+ let float64;
21
+ let sourceText;
22
+ let sourceTextLatin;
23
+ let sourceStartPos = 0;
24
+ let firstNonAsciiPos = 0;
25
+ const { fromCharCode } = String, { utf8Slice, latin1Slice } = Buffer.prototype, stringDecodeArrays = Array(65).fill(null);
26
+ for (let i = 0; i <= 64; i++) stringDecodeArrays[i] = Array(i).fill(0);
27
+ function deserialize(buffer, sourceText, sourceStartPos, sourceByteLen) {
28
+ return deserializeWith(buffer, sourceText, sourceStartPos, sourceByteLen, deserializeRawTransferData);
29
+ }
30
+ function deserializeWith(buffer, sourceTextInput, sourceStartPosInput, sourceByteLen, deserialize) {
31
+ uint8 = buffer;
32
+ int32 = buffer.int32;
33
+ float64 = buffer.float64;
34
+ sourceText = sourceTextInput;
35
+ sourceStartPos = sourceStartPosInput;
36
+ if (sourceText.length === sourceByteLen) {
37
+ firstNonAsciiPos = sourceStartPos + sourceByteLen;
38
+ sourceTextLatin = sourceText;
39
+ } else {
40
+ let i = sourceStartPos, sourceEndPos = sourceStartPos + sourceByteLen;
41
+ for (; i < sourceEndPos && uint8[i] < 128; i++);
42
+ firstNonAsciiPos = i;
43
+ sourceTextLatin = latin1Slice.call(uint8, sourceStartPos, sourceEndPos);
44
+ }
45
+ let data = deserialize(int32[536870890]);
46
+ resetBuffer();
47
+ return data;
48
+ }
49
+ function resetBuffer() {
50
+ uint8 = int32 = float64 = sourceText = sourceTextLatin = void 0;
51
+ }
52
+ function deserializeProgram(pos) {
53
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), program = {
54
+ type: "Program",
55
+ body: null,
56
+ sourceType: deserializeModuleKind(pos + 137),
57
+ hashbang: null,
58
+ start,
59
+ end
60
+ };
61
+ program.hashbang = deserializeOptionHashbang(pos + 56);
62
+ (program.body = deserializeVecDirective(pos + 88)).push(...deserializeVecStatement(pos + 112));
63
+ return program;
64
+ }
65
+ function deserializeExpression(pos) {
66
+ switch (uint8[pos]) {
67
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
68
+ case 1: return deserializeBoxNullLiteral(pos + 8);
69
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
70
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
71
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
72
+ case 5: return deserializeBoxStringLiteral(pos + 8);
73
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
74
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
75
+ case 8: return deserializeBoxSuper(pos + 8);
76
+ case 9: return deserializeBoxArrayExpression(pos + 8);
77
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
78
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
79
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
80
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
81
+ case 14: return deserializeBoxCallExpression(pos + 8);
82
+ case 15: return deserializeBoxChainExpression(pos + 8);
83
+ case 16: return deserializeBoxClass(pos + 8);
84
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
85
+ case 18: return deserializeBoxFunction(pos + 8);
86
+ case 19: return deserializeBoxImportExpression(pos + 8);
87
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
88
+ case 21: return deserializeBoxNewExpression(pos + 8);
89
+ case 22: return deserializeBoxObjectExpression(pos + 8);
90
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
91
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
92
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
93
+ case 26: return deserializeBoxThisExpression(pos + 8);
94
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
95
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
96
+ case 29: return deserializeBoxYieldExpression(pos + 8);
97
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
98
+ case 31: return deserializeBoxImportMeta(pos + 8);
99
+ case 32: return deserializeBoxNewTarget(pos + 8);
100
+ case 33: return deserializeBoxJSXElement(pos + 8);
101
+ case 34: return deserializeBoxJSXFragment(pos + 8);
102
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
103
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
104
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
105
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
106
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
107
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
108
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
109
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
110
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
111
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for Expression`);
112
+ }
113
+ }
114
+ function deserializeIdentifierName(pos) {
115
+ return {
116
+ type: "Identifier",
117
+ name: deserializeStr(pos + 16),
118
+ start: deserializeI32(pos),
119
+ end: deserializeI32(pos + 4)
120
+ };
121
+ }
122
+ function deserializeIdentifierReference(pos) {
123
+ return {
124
+ type: "Identifier",
125
+ name: deserializeStr(pos + 16),
126
+ start: deserializeI32(pos),
127
+ end: deserializeI32(pos + 4)
128
+ };
129
+ }
130
+ function deserializeBindingIdentifier(pos) {
131
+ return {
132
+ type: "Identifier",
133
+ name: deserializeStr(pos + 16),
134
+ start: deserializeI32(pos),
135
+ end: deserializeI32(pos + 4)
136
+ };
137
+ }
138
+ function deserializeLabelIdentifier(pos) {
139
+ return {
140
+ type: "Identifier",
141
+ name: deserializeStr(pos + 16),
142
+ start: deserializeI32(pos),
143
+ end: deserializeI32(pos + 4)
144
+ };
145
+ }
146
+ function deserializeThisExpression(pos) {
147
+ return {
148
+ type: "ThisExpression",
149
+ start: deserializeI32(pos),
150
+ end: deserializeI32(pos + 4)
151
+ };
152
+ }
153
+ function deserializeArrayExpression(pos) {
154
+ let node = {
155
+ type: "ArrayExpression",
156
+ elements: null,
157
+ start: deserializeI32(pos),
158
+ end: deserializeI32(pos + 4)
159
+ };
160
+ node.elements = deserializeVecArrayExpressionElement(pos + 16);
161
+ return node;
162
+ }
163
+ function deserializeArrayExpressionElement(pos) {
164
+ switch (uint8[pos]) {
165
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
166
+ case 1: return deserializeBoxNullLiteral(pos + 8);
167
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
168
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
169
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
170
+ case 5: return deserializeBoxStringLiteral(pos + 8);
171
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
172
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
173
+ case 8: return deserializeBoxSuper(pos + 8);
174
+ case 9: return deserializeBoxArrayExpression(pos + 8);
175
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
176
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
177
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
178
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
179
+ case 14: return deserializeBoxCallExpression(pos + 8);
180
+ case 15: return deserializeBoxChainExpression(pos + 8);
181
+ case 16: return deserializeBoxClass(pos + 8);
182
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
183
+ case 18: return deserializeBoxFunction(pos + 8);
184
+ case 19: return deserializeBoxImportExpression(pos + 8);
185
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
186
+ case 21: return deserializeBoxNewExpression(pos + 8);
187
+ case 22: return deserializeBoxObjectExpression(pos + 8);
188
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
189
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
190
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
191
+ case 26: return deserializeBoxThisExpression(pos + 8);
192
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
193
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
194
+ case 29: return deserializeBoxYieldExpression(pos + 8);
195
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
196
+ case 31: return deserializeBoxImportMeta(pos + 8);
197
+ case 32: return deserializeBoxNewTarget(pos + 8);
198
+ case 33: return deserializeBoxJSXElement(pos + 8);
199
+ case 34: return deserializeBoxJSXFragment(pos + 8);
200
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
201
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
202
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
203
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
204
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
205
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
206
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
207
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
208
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
209
+ case 64: return deserializeBoxSpreadElement(pos + 8);
210
+ case 65: return deserializeBoxElision(pos + 8);
211
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ArrayExpressionElement`);
212
+ }
213
+ }
214
+ function deserializeElision(pos) {
215
+ return null;
216
+ }
217
+ function deserializeObjectExpression(pos) {
218
+ let node = {
219
+ type: "ObjectExpression",
220
+ properties: null,
221
+ start: deserializeI32(pos),
222
+ end: deserializeI32(pos + 4)
223
+ };
224
+ node.properties = deserializeVecObjectPropertyKind(pos + 16);
225
+ return node;
226
+ }
227
+ function deserializeObjectPropertyKind(pos) {
228
+ switch (uint8[pos]) {
229
+ case 0: return deserializeBoxObjectProperty(pos + 8);
230
+ case 1: return deserializeBoxSpreadElement(pos + 8);
231
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ObjectPropertyKind`);
232
+ }
233
+ }
234
+ function deserializeObjectProperty(pos) {
235
+ let node = {
236
+ type: "Property",
237
+ kind: deserializePropertyKind(pos + 12),
238
+ key: null,
239
+ value: null,
240
+ method: deserializeBool(pos + 13),
241
+ shorthand: deserializeBool(pos + 14),
242
+ computed: deserializeBool(pos + 15),
243
+ start: deserializeI32(pos),
244
+ end: deserializeI32(pos + 4)
245
+ };
246
+ node.key = deserializePropertyKey(pos + 16);
247
+ node.value = deserializeExpression(pos + 32);
248
+ return node;
249
+ }
250
+ function deserializePropertyKey(pos) {
251
+ switch (uint8[pos]) {
252
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
253
+ case 1: return deserializeBoxNullLiteral(pos + 8);
254
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
255
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
256
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
257
+ case 5: return deserializeBoxStringLiteral(pos + 8);
258
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
259
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
260
+ case 8: return deserializeBoxSuper(pos + 8);
261
+ case 9: return deserializeBoxArrayExpression(pos + 8);
262
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
263
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
264
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
265
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
266
+ case 14: return deserializeBoxCallExpression(pos + 8);
267
+ case 15: return deserializeBoxChainExpression(pos + 8);
268
+ case 16: return deserializeBoxClass(pos + 8);
269
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
270
+ case 18: return deserializeBoxFunction(pos + 8);
271
+ case 19: return deserializeBoxImportExpression(pos + 8);
272
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
273
+ case 21: return deserializeBoxNewExpression(pos + 8);
274
+ case 22: return deserializeBoxObjectExpression(pos + 8);
275
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
276
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
277
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
278
+ case 26: return deserializeBoxThisExpression(pos + 8);
279
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
280
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
281
+ case 29: return deserializeBoxYieldExpression(pos + 8);
282
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
283
+ case 31: return deserializeBoxImportMeta(pos + 8);
284
+ case 32: return deserializeBoxNewTarget(pos + 8);
285
+ case 33: return deserializeBoxJSXElement(pos + 8);
286
+ case 34: return deserializeBoxJSXFragment(pos + 8);
287
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
288
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
289
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
290
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
291
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
292
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
293
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
294
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
295
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
296
+ case 64: return deserializeBoxIdentifierName(pos + 8);
297
+ case 65: return deserializeBoxPrivateIdentifier(pos + 8);
298
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for PropertyKey`);
299
+ }
300
+ }
301
+ function deserializePropertyKind(pos) {
302
+ switch (uint8[pos]) {
303
+ case 0: return "init";
304
+ case 1: return "get";
305
+ case 2: return "set";
306
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for PropertyKind`);
307
+ }
308
+ }
309
+ function deserializeTemplateLiteral(pos) {
310
+ let node = {
311
+ type: "TemplateLiteral",
312
+ quasis: null,
313
+ expressions: null,
314
+ start: deserializeI32(pos),
315
+ end: deserializeI32(pos + 4)
316
+ };
317
+ node.quasis = deserializeVecTemplateElement(pos + 16);
318
+ node.expressions = deserializeVecExpression(pos + 40);
319
+ return node;
320
+ }
321
+ function deserializeTaggedTemplateExpression(pos) {
322
+ let node = {
323
+ type: "TaggedTemplateExpression",
324
+ tag: null,
325
+ quasi: null,
326
+ start: deserializeI32(pos),
327
+ end: deserializeI32(pos + 4)
328
+ };
329
+ node.tag = deserializeExpression(pos + 16);
330
+ node.quasi = deserializeTemplateLiteral(pos + 40);
331
+ return node;
332
+ }
333
+ function deserializeTemplateElement(pos) {
334
+ let tail = deserializeBool(pos + 12), start = deserializeI32(pos), end = deserializeI32(pos + 4), value = deserializeTemplateElementValue(pos + 16);
335
+ value.cooked !== null && deserializeBool(pos + 13) && (value.cooked = value.cooked.replace(/\uFFFD(.{4})/g, (_, hex) => String.fromCodePoint(parseInt(hex, 16))));
336
+ return {
337
+ type: "TemplateElement",
338
+ value,
339
+ tail,
340
+ start,
341
+ end
342
+ };
343
+ }
344
+ function deserializeTemplateElementValue(pos) {
345
+ return {
346
+ raw: deserializeStr(pos),
347
+ cooked: deserializeOptionStr(pos + 16)
348
+ };
349
+ }
350
+ function deserializeComputedMemberExpression(pos) {
351
+ let node = {
352
+ type: "MemberExpression",
353
+ object: null,
354
+ property: null,
355
+ optional: deserializeBool(pos + 12),
356
+ computed: true,
357
+ start: deserializeI32(pos),
358
+ end: deserializeI32(pos + 4)
359
+ };
360
+ node.object = deserializeExpression(pos + 16);
361
+ node.property = deserializeExpression(pos + 32);
362
+ return node;
363
+ }
364
+ function deserializeStaticMemberExpression(pos) {
365
+ let node = {
366
+ type: "MemberExpression",
367
+ object: null,
368
+ property: null,
369
+ optional: deserializeBool(pos + 12),
370
+ computed: false,
371
+ start: deserializeI32(pos),
372
+ end: deserializeI32(pos + 4)
373
+ };
374
+ node.object = deserializeExpression(pos + 16);
375
+ node.property = deserializeIdentifierName(pos + 32);
376
+ return node;
377
+ }
378
+ function deserializePrivateFieldExpression(pos) {
379
+ let node = {
380
+ type: "MemberExpression",
381
+ object: null,
382
+ property: null,
383
+ optional: deserializeBool(pos + 12),
384
+ computed: false,
385
+ start: deserializeI32(pos),
386
+ end: deserializeI32(pos + 4)
387
+ };
388
+ node.object = deserializeExpression(pos + 16);
389
+ node.property = deserializePrivateIdentifier(pos + 32);
390
+ return node;
391
+ }
392
+ function deserializeCallExpression(pos) {
393
+ let node = {
394
+ type: "CallExpression",
395
+ callee: null,
396
+ arguments: null,
397
+ optional: deserializeBool(pos + 12),
398
+ start: deserializeI32(pos),
399
+ end: deserializeI32(pos + 4)
400
+ };
401
+ node.callee = deserializeExpression(pos + 16);
402
+ node.arguments = deserializeVecArgument(pos + 40);
403
+ return node;
404
+ }
405
+ function deserializeNewExpression(pos) {
406
+ let node = {
407
+ type: "NewExpression",
408
+ callee: null,
409
+ arguments: null,
410
+ start: deserializeI32(pos),
411
+ end: deserializeI32(pos + 4)
412
+ };
413
+ node.callee = deserializeExpression(pos + 16);
414
+ node.arguments = deserializeVecArgument(pos + 40);
415
+ return node;
416
+ }
417
+ function deserializeImportMeta(pos) {
418
+ let node = {
419
+ type: "MetaProperty",
420
+ meta: null,
421
+ property: null,
422
+ start: deserializeI32(pos),
423
+ end: deserializeI32(pos + 4)
424
+ }, importStart = deserializeI32(pos), importIdent = {
425
+ type: "Identifier",
426
+ name: "import",
427
+ start: importStart,
428
+ end: deserializeI32(pos + 4) === 0 ? 0 : importStart + 6
429
+ }, metaEnd = deserializeI32(pos + 4), metaIdent = {
430
+ type: "Identifier",
431
+ name: "meta",
432
+ start: metaEnd === 0 ? 0 : metaEnd - 4,
433
+ end: metaEnd
434
+ };
435
+ node.meta = importIdent;
436
+ node.property = metaIdent;
437
+ return node;
438
+ }
439
+ function deserializeNewTarget(pos) {
440
+ let node = {
441
+ type: "MetaProperty",
442
+ meta: null,
443
+ property: null,
444
+ start: deserializeI32(pos),
445
+ end: deserializeI32(pos + 4)
446
+ }, newStart = deserializeI32(pos), newIdent = {
447
+ type: "Identifier",
448
+ name: "new",
449
+ start: newStart,
450
+ end: deserializeI32(pos + 4) === 0 ? 0 : newStart + 3
451
+ }, targetEnd = deserializeI32(pos + 4), targetIdent = {
452
+ type: "Identifier",
453
+ name: "target",
454
+ start: targetEnd === 0 ? 0 : targetEnd - 6,
455
+ end: targetEnd
456
+ };
457
+ node.meta = newIdent;
458
+ node.property = targetIdent;
459
+ return node;
460
+ }
461
+ function deserializeSpreadElement(pos) {
462
+ let node = {
463
+ type: "SpreadElement",
464
+ argument: null,
465
+ start: deserializeI32(pos),
466
+ end: deserializeI32(pos + 4)
467
+ };
468
+ node.argument = deserializeExpression(pos + 16);
469
+ return node;
470
+ }
471
+ function deserializeArgument(pos) {
472
+ switch (uint8[pos]) {
473
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
474
+ case 1: return deserializeBoxNullLiteral(pos + 8);
475
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
476
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
477
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
478
+ case 5: return deserializeBoxStringLiteral(pos + 8);
479
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
480
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
481
+ case 8: return deserializeBoxSuper(pos + 8);
482
+ case 9: return deserializeBoxArrayExpression(pos + 8);
483
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
484
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
485
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
486
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
487
+ case 14: return deserializeBoxCallExpression(pos + 8);
488
+ case 15: return deserializeBoxChainExpression(pos + 8);
489
+ case 16: return deserializeBoxClass(pos + 8);
490
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
491
+ case 18: return deserializeBoxFunction(pos + 8);
492
+ case 19: return deserializeBoxImportExpression(pos + 8);
493
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
494
+ case 21: return deserializeBoxNewExpression(pos + 8);
495
+ case 22: return deserializeBoxObjectExpression(pos + 8);
496
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
497
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
498
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
499
+ case 26: return deserializeBoxThisExpression(pos + 8);
500
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
501
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
502
+ case 29: return deserializeBoxYieldExpression(pos + 8);
503
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
504
+ case 31: return deserializeBoxImportMeta(pos + 8);
505
+ case 32: return deserializeBoxNewTarget(pos + 8);
506
+ case 33: return deserializeBoxJSXElement(pos + 8);
507
+ case 34: return deserializeBoxJSXFragment(pos + 8);
508
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
509
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
510
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
511
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
512
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
513
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
514
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
515
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
516
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
517
+ case 64: return deserializeBoxSpreadElement(pos + 8);
518
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for Argument`);
519
+ }
520
+ }
521
+ function deserializeUpdateExpression(pos) {
522
+ let node = {
523
+ type: "UpdateExpression",
524
+ operator: deserializeUpdateOperator(pos + 12),
525
+ prefix: deserializeBool(pos + 13),
526
+ argument: null,
527
+ start: deserializeI32(pos),
528
+ end: deserializeI32(pos + 4)
529
+ };
530
+ node.argument = deserializeSimpleAssignmentTarget(pos + 16);
531
+ return node;
532
+ }
533
+ function deserializeUnaryExpression(pos) {
534
+ let node = {
535
+ type: "UnaryExpression",
536
+ operator: deserializeUnaryOperator(pos + 12),
537
+ argument: null,
538
+ prefix: true,
539
+ start: deserializeI32(pos),
540
+ end: deserializeI32(pos + 4)
541
+ };
542
+ node.argument = deserializeExpression(pos + 16);
543
+ return node;
544
+ }
545
+ function deserializeBinaryExpression(pos) {
546
+ let node = {
547
+ type: "BinaryExpression",
548
+ left: null,
549
+ operator: deserializeBinaryOperator(pos + 12),
550
+ right: null,
551
+ start: deserializeI32(pos),
552
+ end: deserializeI32(pos + 4)
553
+ };
554
+ node.left = deserializeExpression(pos + 16);
555
+ node.right = deserializeExpression(pos + 32);
556
+ return node;
557
+ }
558
+ function deserializePrivateInExpression(pos) {
559
+ let node = {
560
+ type: "BinaryExpression",
561
+ left: null,
562
+ operator: "in",
563
+ right: null,
564
+ start: deserializeI32(pos),
565
+ end: deserializeI32(pos + 4)
566
+ };
567
+ node.left = deserializePrivateIdentifier(pos + 16);
568
+ node.right = deserializeExpression(pos + 48);
569
+ return node;
570
+ }
571
+ function deserializeLogicalExpression(pos) {
572
+ let node = {
573
+ type: "LogicalExpression",
574
+ left: null,
575
+ operator: deserializeLogicalOperator(pos + 12),
576
+ right: null,
577
+ start: deserializeI32(pos),
578
+ end: deserializeI32(pos + 4)
579
+ };
580
+ node.left = deserializeExpression(pos + 16);
581
+ node.right = deserializeExpression(pos + 32);
582
+ return node;
583
+ }
584
+ function deserializeConditionalExpression(pos) {
585
+ let node = {
586
+ type: "ConditionalExpression",
587
+ test: null,
588
+ consequent: null,
589
+ alternate: null,
590
+ start: deserializeI32(pos),
591
+ end: deserializeI32(pos + 4)
592
+ };
593
+ node.test = deserializeExpression(pos + 16);
594
+ node.consequent = deserializeExpression(pos + 32);
595
+ node.alternate = deserializeExpression(pos + 48);
596
+ return node;
597
+ }
598
+ function deserializeAssignmentExpression(pos) {
599
+ let node = {
600
+ type: "AssignmentExpression",
601
+ operator: deserializeAssignmentOperator(pos + 12),
602
+ left: null,
603
+ right: null,
604
+ start: deserializeI32(pos),
605
+ end: deserializeI32(pos + 4)
606
+ };
607
+ node.left = deserializeAssignmentTarget(pos + 16);
608
+ node.right = deserializeExpression(pos + 32);
609
+ return node;
610
+ }
611
+ function deserializeAssignmentTarget(pos) {
612
+ switch (uint8[pos]) {
613
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
614
+ case 1: return deserializeBoxTSAsExpression(pos + 8);
615
+ case 2: return deserializeBoxTSSatisfiesExpression(pos + 8);
616
+ case 3: return deserializeBoxTSNonNullExpression(pos + 8);
617
+ case 4: return deserializeBoxTSTypeAssertion(pos + 8);
618
+ case 8: return deserializeBoxArrayAssignmentTarget(pos + 8);
619
+ case 9: return deserializeBoxObjectAssignmentTarget(pos + 8);
620
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
621
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
622
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
623
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTarget`);
624
+ }
625
+ }
626
+ function deserializeSimpleAssignmentTarget(pos) {
627
+ switch (uint8[pos]) {
628
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
629
+ case 1: return deserializeBoxTSAsExpression(pos + 8);
630
+ case 2: return deserializeBoxTSSatisfiesExpression(pos + 8);
631
+ case 3: return deserializeBoxTSNonNullExpression(pos + 8);
632
+ case 4: return deserializeBoxTSTypeAssertion(pos + 8);
633
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
634
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
635
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
636
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for SimpleAssignmentTarget`);
637
+ }
638
+ }
639
+ function deserializeArrayAssignmentTarget(pos) {
640
+ let node = {
641
+ type: "ArrayPattern",
642
+ elements: null,
643
+ start: deserializeI32(pos),
644
+ end: deserializeI32(pos + 4)
645
+ }, elements = deserializeVecOptionAssignmentTargetMaybeDefault(pos + 16), rest = deserializeOptionBoxAssignmentTargetRest(pos + 40);
646
+ rest !== null && elements.push(rest);
647
+ node.elements = elements;
648
+ return node;
649
+ }
650
+ function deserializeObjectAssignmentTarget(pos) {
651
+ let node = {
652
+ type: "ObjectPattern",
653
+ properties: null,
654
+ start: deserializeI32(pos),
655
+ end: deserializeI32(pos + 4)
656
+ }, properties = deserializeVecAssignmentTargetProperty(pos + 16), rest = deserializeOptionBoxAssignmentTargetRest(pos + 40);
657
+ rest !== null && properties.push(rest);
658
+ node.properties = properties;
659
+ return node;
660
+ }
661
+ function deserializeAssignmentTargetRest(pos) {
662
+ let node = {
663
+ type: "RestElement",
664
+ argument: null,
665
+ start: deserializeI32(pos),
666
+ end: deserializeI32(pos + 4)
667
+ };
668
+ node.argument = deserializeAssignmentTarget(pos + 16);
669
+ return node;
670
+ }
671
+ function deserializeAssignmentTargetMaybeDefault(pos) {
672
+ switch (uint8[pos]) {
673
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
674
+ case 1: return deserializeBoxTSAsExpression(pos + 8);
675
+ case 2: return deserializeBoxTSSatisfiesExpression(pos + 8);
676
+ case 3: return deserializeBoxTSNonNullExpression(pos + 8);
677
+ case 4: return deserializeBoxTSTypeAssertion(pos + 8);
678
+ case 8: return deserializeBoxArrayAssignmentTarget(pos + 8);
679
+ case 9: return deserializeBoxObjectAssignmentTarget(pos + 8);
680
+ case 16: return deserializeBoxAssignmentTargetWithDefault(pos + 8);
681
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
682
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
683
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
684
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTargetMaybeDefault`);
685
+ }
686
+ }
687
+ function deserializeAssignmentTargetWithDefault(pos) {
688
+ let node = {
689
+ type: "AssignmentPattern",
690
+ left: null,
691
+ right: null,
692
+ start: deserializeI32(pos),
693
+ end: deserializeI32(pos + 4)
694
+ };
695
+ node.left = deserializeAssignmentTarget(pos + 16);
696
+ node.right = deserializeExpression(pos + 32);
697
+ return node;
698
+ }
699
+ function deserializeAssignmentTargetProperty(pos) {
700
+ switch (uint8[pos]) {
701
+ case 0: return deserializeBoxAssignmentTargetPropertyIdentifier(pos + 8);
702
+ case 1: return deserializeBoxAssignmentTargetPropertyProperty(pos + 8);
703
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTargetProperty`);
704
+ }
705
+ }
706
+ function deserializeAssignmentTargetPropertyIdentifier(pos) {
707
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), node = {
708
+ type: "Property",
709
+ kind: "init",
710
+ key: null,
711
+ value: null,
712
+ method: false,
713
+ shorthand: true,
714
+ computed: false,
715
+ start,
716
+ end
717
+ }, key = deserializeIdentifierReference(pos + 16), value = {
718
+ type: "Identifier",
719
+ name: key.name,
720
+ start: key.start,
721
+ end: key.end
722
+ }, init = deserializeOptionExpression(pos + 48);
723
+ init !== null && (value = {
724
+ type: "AssignmentPattern",
725
+ left: value,
726
+ right: init,
727
+ start,
728
+ end
729
+ });
730
+ node.key = key;
731
+ node.value = value;
732
+ return node;
733
+ }
734
+ function deserializeAssignmentTargetPropertyProperty(pos) {
735
+ let node = {
736
+ type: "Property",
737
+ kind: "init",
738
+ key: null,
739
+ value: null,
740
+ method: false,
741
+ shorthand: false,
742
+ computed: deserializeBool(pos + 12),
743
+ start: deserializeI32(pos),
744
+ end: deserializeI32(pos + 4)
745
+ };
746
+ node.key = deserializePropertyKey(pos + 16);
747
+ node.value = deserializeAssignmentTargetMaybeDefault(pos + 32);
748
+ return node;
749
+ }
750
+ function deserializeSequenceExpression(pos) {
751
+ let node = {
752
+ type: "SequenceExpression",
753
+ expressions: null,
754
+ start: deserializeI32(pos),
755
+ end: deserializeI32(pos + 4)
756
+ };
757
+ node.expressions = deserializeVecExpression(pos + 16);
758
+ return node;
759
+ }
760
+ function deserializeSuper(pos) {
761
+ return {
762
+ type: "Super",
763
+ start: deserializeI32(pos),
764
+ end: deserializeI32(pos + 4)
765
+ };
766
+ }
767
+ function deserializeAwaitExpression(pos) {
768
+ let node = {
769
+ type: "AwaitExpression",
770
+ argument: null,
771
+ start: deserializeI32(pos),
772
+ end: deserializeI32(pos + 4)
773
+ };
774
+ node.argument = deserializeExpression(pos + 16);
775
+ return node;
776
+ }
777
+ function deserializeChainExpression(pos) {
778
+ let node = {
779
+ type: "ChainExpression",
780
+ expression: null,
781
+ start: deserializeI32(pos),
782
+ end: deserializeI32(pos + 4)
783
+ };
784
+ node.expression = deserializeChainElement(pos + 16);
785
+ return node;
786
+ }
787
+ function deserializeChainElement(pos) {
788
+ switch (uint8[pos]) {
789
+ case 0: return deserializeBoxCallExpression(pos + 8);
790
+ case 1: return deserializeBoxTSNonNullExpression(pos + 8);
791
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
792
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
793
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
794
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ChainElement`);
795
+ }
796
+ }
797
+ function deserializeParenthesizedExpression(pos) {
798
+ let node;
799
+ node = {
800
+ type: "ParenthesizedExpression",
801
+ expression: null,
802
+ start: deserializeI32(pos),
803
+ end: deserializeI32(pos + 4)
804
+ };
805
+ node.expression = deserializeExpression(pos + 16);
806
+ return node;
807
+ }
808
+ function deserializeStatement(pos) {
809
+ switch (uint8[pos]) {
810
+ case 0: return deserializeBoxBlockStatement(pos + 8);
811
+ case 1: return deserializeBoxBreakStatement(pos + 8);
812
+ case 2: return deserializeBoxContinueStatement(pos + 8);
813
+ case 3: return deserializeBoxDebuggerStatement(pos + 8);
814
+ case 4: return deserializeBoxDoWhileStatement(pos + 8);
815
+ case 5: return deserializeBoxEmptyStatement(pos + 8);
816
+ case 6: return deserializeBoxExpressionStatement(pos + 8);
817
+ case 7: return deserializeBoxForInStatement(pos + 8);
818
+ case 8: return deserializeBoxForOfStatement(pos + 8);
819
+ case 9: return deserializeBoxForStatement(pos + 8);
820
+ case 10: return deserializeBoxIfStatement(pos + 8);
821
+ case 11: return deserializeBoxLabeledStatement(pos + 8);
822
+ case 12: return deserializeBoxReturnStatement(pos + 8);
823
+ case 13: return deserializeBoxSwitchStatement(pos + 8);
824
+ case 14: return deserializeBoxThrowStatement(pos + 8);
825
+ case 15: return deserializeBoxTryStatement(pos + 8);
826
+ case 16: return deserializeBoxWhileStatement(pos + 8);
827
+ case 17: return deserializeBoxWithStatement(pos + 8);
828
+ case 32: return deserializeBoxVariableDeclaration(pos + 8);
829
+ case 33: return deserializeBoxFunction(pos + 8);
830
+ case 34: return deserializeBoxClass(pos + 8);
831
+ case 35: return deserializeBoxTSTypeAliasDeclaration(pos + 8);
832
+ case 36: return deserializeBoxTSInterfaceDeclaration(pos + 8);
833
+ case 37: return deserializeBoxTSEnumDeclaration(pos + 8);
834
+ case 38: return deserializeBoxTSExternalModuleDeclaration(pos + 8);
835
+ case 39: return deserializeBoxTSNamespaceDeclaration(pos + 8);
836
+ case 40: return deserializeBoxTSGlobalDeclaration(pos + 8);
837
+ case 41: return deserializeBoxTSImportEqualsDeclaration(pos + 8);
838
+ case 64: return deserializeBoxImportDeclaration(pos + 8);
839
+ case 65: return deserializeBoxExportAllDeclaration(pos + 8);
840
+ case 66: return deserializeBoxExportDefaultDeclaration(pos + 8);
841
+ case 67: return deserializeBoxExportDeclaration(pos + 8);
842
+ case 68: return deserializeBoxExportNamedDeclaration(pos + 8);
843
+ case 69: return deserializeBoxExportFromDeclaration(pos + 8);
844
+ case 70: return deserializeBoxTSExportAssignment(pos + 8);
845
+ case 71: return deserializeBoxTSNamespaceExportDeclaration(pos + 8);
846
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for Statement`);
847
+ }
848
+ }
849
+ function deserializeDirective(pos) {
850
+ let node = {
851
+ type: "ExpressionStatement",
852
+ expression: null,
853
+ directive: deserializeStr(pos + 64),
854
+ start: deserializeI32(pos),
855
+ end: deserializeI32(pos + 4)
856
+ };
857
+ node.expression = deserializeStringLiteral(pos + 16);
858
+ return node;
859
+ }
860
+ function deserializeHashbang(pos) {
861
+ return {
862
+ type: "Hashbang",
863
+ value: deserializeStr(pos + 16),
864
+ start: deserializeI32(pos),
865
+ end: deserializeI32(pos + 4)
866
+ };
867
+ }
868
+ function deserializeBlockStatement(pos) {
869
+ let node = {
870
+ type: "BlockStatement",
871
+ body: null,
872
+ start: deserializeI32(pos),
873
+ end: deserializeI32(pos + 4)
874
+ };
875
+ node.body = deserializeVecStatement(pos + 16);
876
+ return node;
877
+ }
878
+ function deserializeDeclaration(pos) {
879
+ switch (uint8[pos]) {
880
+ case 32: return deserializeBoxVariableDeclaration(pos + 8);
881
+ case 33: return deserializeBoxFunction(pos + 8);
882
+ case 34: return deserializeBoxClass(pos + 8);
883
+ case 35: return deserializeBoxTSTypeAliasDeclaration(pos + 8);
884
+ case 36: return deserializeBoxTSInterfaceDeclaration(pos + 8);
885
+ case 37: return deserializeBoxTSEnumDeclaration(pos + 8);
886
+ case 38: return deserializeBoxTSExternalModuleDeclaration(pos + 8);
887
+ case 39: return deserializeBoxTSNamespaceDeclaration(pos + 8);
888
+ case 40: return deserializeBoxTSGlobalDeclaration(pos + 8);
889
+ case 41: return deserializeBoxTSImportEqualsDeclaration(pos + 8);
890
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for Declaration`);
891
+ }
892
+ }
893
+ function deserializeVariableDeclaration(pos) {
894
+ let node = {
895
+ type: "VariableDeclaration",
896
+ kind: deserializeVariableDeclarationKind(pos + 12),
897
+ declarations: null,
898
+ start: deserializeI32(pos),
899
+ end: deserializeI32(pos + 4)
900
+ };
901
+ node.declarations = deserializeVecVariableDeclarator(pos + 16);
902
+ return node;
903
+ }
904
+ function deserializeVariableDeclarationKind(pos) {
905
+ switch (uint8[pos]) {
906
+ case 0: return "var";
907
+ case 1: return "let";
908
+ case 2: return "const";
909
+ case 3: return "using";
910
+ case 4: return "await using";
911
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for VariableDeclarationKind`);
912
+ }
913
+ }
914
+ function deserializeVariableDeclarator(pos) {
915
+ let node = {
916
+ type: "VariableDeclarator",
917
+ id: null,
918
+ init: null,
919
+ start: deserializeI32(pos),
920
+ end: deserializeI32(pos + 4)
921
+ };
922
+ node.id = deserializeBindingPattern(pos + 16);
923
+ node.init = deserializeOptionExpression(pos + 40);
924
+ return node;
925
+ }
926
+ function deserializeEmptyStatement(pos) {
927
+ return {
928
+ type: "EmptyStatement",
929
+ start: deserializeI32(pos),
930
+ end: deserializeI32(pos + 4)
931
+ };
932
+ }
933
+ function deserializeExpressionStatement(pos) {
934
+ let node = {
935
+ type: "ExpressionStatement",
936
+ expression: null,
937
+ start: deserializeI32(pos),
938
+ end: deserializeI32(pos + 4)
939
+ };
940
+ node.expression = deserializeExpression(pos + 16);
941
+ return node;
942
+ }
943
+ function deserializeIfStatement(pos) {
944
+ let node = {
945
+ type: "IfStatement",
946
+ test: null,
947
+ consequent: null,
948
+ alternate: null,
949
+ start: deserializeI32(pos),
950
+ end: deserializeI32(pos + 4)
951
+ };
952
+ node.test = deserializeExpression(pos + 16);
953
+ node.consequent = deserializeStatement(pos + 32);
954
+ node.alternate = deserializeOptionStatement(pos + 48);
955
+ return node;
956
+ }
957
+ function deserializeDoWhileStatement(pos) {
958
+ let node = {
959
+ type: "DoWhileStatement",
960
+ body: null,
961
+ test: null,
962
+ start: deserializeI32(pos),
963
+ end: deserializeI32(pos + 4)
964
+ };
965
+ node.body = deserializeStatement(pos + 16);
966
+ node.test = deserializeExpression(pos + 32);
967
+ return node;
968
+ }
969
+ function deserializeWhileStatement(pos) {
970
+ let node = {
971
+ type: "WhileStatement",
972
+ test: null,
973
+ body: null,
974
+ start: deserializeI32(pos),
975
+ end: deserializeI32(pos + 4)
976
+ };
977
+ node.test = deserializeExpression(pos + 16);
978
+ node.body = deserializeStatement(pos + 32);
979
+ return node;
980
+ }
981
+ function deserializeForStatement(pos) {
982
+ let node = {
983
+ type: "ForStatement",
984
+ init: null,
985
+ test: null,
986
+ update: null,
987
+ body: null,
988
+ start: deserializeI32(pos),
989
+ end: deserializeI32(pos + 4)
990
+ };
991
+ node.init = deserializeOptionForStatementInit(pos + 16);
992
+ node.test = deserializeOptionExpression(pos + 32);
993
+ node.update = deserializeOptionExpression(pos + 48);
994
+ node.body = deserializeStatement(pos + 64);
995
+ return node;
996
+ }
997
+ function deserializeForStatementInit(pos) {
998
+ switch (uint8[pos]) {
999
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
1000
+ case 1: return deserializeBoxNullLiteral(pos + 8);
1001
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
1002
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
1003
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
1004
+ case 5: return deserializeBoxStringLiteral(pos + 8);
1005
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
1006
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
1007
+ case 8: return deserializeBoxSuper(pos + 8);
1008
+ case 9: return deserializeBoxArrayExpression(pos + 8);
1009
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
1010
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
1011
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
1012
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
1013
+ case 14: return deserializeBoxCallExpression(pos + 8);
1014
+ case 15: return deserializeBoxChainExpression(pos + 8);
1015
+ case 16: return deserializeBoxClass(pos + 8);
1016
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
1017
+ case 18: return deserializeBoxFunction(pos + 8);
1018
+ case 19: return deserializeBoxImportExpression(pos + 8);
1019
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
1020
+ case 21: return deserializeBoxNewExpression(pos + 8);
1021
+ case 22: return deserializeBoxObjectExpression(pos + 8);
1022
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
1023
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
1024
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
1025
+ case 26: return deserializeBoxThisExpression(pos + 8);
1026
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
1027
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
1028
+ case 29: return deserializeBoxYieldExpression(pos + 8);
1029
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
1030
+ case 31: return deserializeBoxImportMeta(pos + 8);
1031
+ case 32: return deserializeBoxNewTarget(pos + 8);
1032
+ case 33: return deserializeBoxJSXElement(pos + 8);
1033
+ case 34: return deserializeBoxJSXFragment(pos + 8);
1034
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
1035
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
1036
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
1037
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
1038
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
1039
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
1040
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
1041
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
1042
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
1043
+ case 64: return deserializeBoxVariableDeclaration(pos + 8);
1044
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ForStatementInit`);
1045
+ }
1046
+ }
1047
+ function deserializeForInStatement(pos) {
1048
+ let node = {
1049
+ type: "ForInStatement",
1050
+ left: null,
1051
+ right: null,
1052
+ body: null,
1053
+ start: deserializeI32(pos),
1054
+ end: deserializeI32(pos + 4)
1055
+ };
1056
+ node.left = deserializeForStatementLeft(pos + 16);
1057
+ node.right = deserializeExpression(pos + 32);
1058
+ node.body = deserializeStatement(pos + 48);
1059
+ return node;
1060
+ }
1061
+ function deserializeForStatementLeft(pos) {
1062
+ switch (uint8[pos]) {
1063
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
1064
+ case 1: return deserializeBoxTSAsExpression(pos + 8);
1065
+ case 2: return deserializeBoxTSSatisfiesExpression(pos + 8);
1066
+ case 3: return deserializeBoxTSNonNullExpression(pos + 8);
1067
+ case 4: return deserializeBoxTSTypeAssertion(pos + 8);
1068
+ case 8: return deserializeBoxArrayAssignmentTarget(pos + 8);
1069
+ case 9: return deserializeBoxObjectAssignmentTarget(pos + 8);
1070
+ case 16: return deserializeBoxVariableDeclaration(pos + 8);
1071
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
1072
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
1073
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
1074
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ForStatementLeft`);
1075
+ }
1076
+ }
1077
+ function deserializeForOfStatement(pos) {
1078
+ let node = {
1079
+ type: "ForOfStatement",
1080
+ await: deserializeBool(pos + 64),
1081
+ left: null,
1082
+ right: null,
1083
+ body: null,
1084
+ start: deserializeI32(pos),
1085
+ end: deserializeI32(pos + 4)
1086
+ };
1087
+ node.left = deserializeForStatementLeft(pos + 16);
1088
+ node.right = deserializeExpression(pos + 32);
1089
+ node.body = deserializeStatement(pos + 48);
1090
+ return node;
1091
+ }
1092
+ function deserializeContinueStatement(pos) {
1093
+ let node = {
1094
+ type: "ContinueStatement",
1095
+ label: null,
1096
+ start: deserializeI32(pos),
1097
+ end: deserializeI32(pos + 4)
1098
+ };
1099
+ node.label = deserializeOptionLabelIdentifier(pos + 16);
1100
+ return node;
1101
+ }
1102
+ function deserializeBreakStatement(pos) {
1103
+ let node = {
1104
+ type: "BreakStatement",
1105
+ label: null,
1106
+ start: deserializeI32(pos),
1107
+ end: deserializeI32(pos + 4)
1108
+ };
1109
+ node.label = deserializeOptionLabelIdentifier(pos + 16);
1110
+ return node;
1111
+ }
1112
+ function deserializeReturnStatement(pos) {
1113
+ let node = {
1114
+ type: "ReturnStatement",
1115
+ argument: null,
1116
+ start: deserializeI32(pos),
1117
+ end: deserializeI32(pos + 4)
1118
+ };
1119
+ node.argument = deserializeOptionExpression(pos + 16);
1120
+ return node;
1121
+ }
1122
+ function deserializeWithStatement(pos) {
1123
+ let node = {
1124
+ type: "WithStatement",
1125
+ object: null,
1126
+ body: null,
1127
+ start: deserializeI32(pos),
1128
+ end: deserializeI32(pos + 4)
1129
+ };
1130
+ node.object = deserializeExpression(pos + 16);
1131
+ node.body = deserializeStatement(pos + 32);
1132
+ return node;
1133
+ }
1134
+ function deserializeSwitchStatement(pos) {
1135
+ let node = {
1136
+ type: "SwitchStatement",
1137
+ discriminant: null,
1138
+ cases: null,
1139
+ start: deserializeI32(pos),
1140
+ end: deserializeI32(pos + 4)
1141
+ };
1142
+ node.discriminant = deserializeExpression(pos + 16);
1143
+ node.cases = deserializeVecSwitchCase(pos + 32);
1144
+ return node;
1145
+ }
1146
+ function deserializeSwitchCase(pos) {
1147
+ let node = {
1148
+ type: "SwitchCase",
1149
+ test: null,
1150
+ consequent: null,
1151
+ start: deserializeI32(pos),
1152
+ end: deserializeI32(pos + 4)
1153
+ };
1154
+ node.test = deserializeOptionExpression(pos + 16);
1155
+ node.consequent = deserializeVecStatement(pos + 32);
1156
+ return node;
1157
+ }
1158
+ function deserializeLabeledStatement(pos) {
1159
+ let node = {
1160
+ type: "LabeledStatement",
1161
+ label: null,
1162
+ body: null,
1163
+ start: deserializeI32(pos),
1164
+ end: deserializeI32(pos + 4)
1165
+ };
1166
+ node.label = deserializeLabelIdentifier(pos + 16);
1167
+ node.body = deserializeStatement(pos + 48);
1168
+ return node;
1169
+ }
1170
+ function deserializeThrowStatement(pos) {
1171
+ let node = {
1172
+ type: "ThrowStatement",
1173
+ argument: null,
1174
+ start: deserializeI32(pos),
1175
+ end: deserializeI32(pos + 4)
1176
+ };
1177
+ node.argument = deserializeExpression(pos + 16);
1178
+ return node;
1179
+ }
1180
+ function deserializeTryStatement(pos) {
1181
+ let node = {
1182
+ type: "TryStatement",
1183
+ block: null,
1184
+ handler: null,
1185
+ finalizer: null,
1186
+ start: deserializeI32(pos),
1187
+ end: deserializeI32(pos + 4)
1188
+ };
1189
+ node.block = deserializeBoxBlockStatement(pos + 16);
1190
+ node.handler = deserializeOptionBoxCatchClause(pos + 24);
1191
+ node.finalizer = deserializeOptionBoxBlockStatement(pos + 32);
1192
+ return node;
1193
+ }
1194
+ function deserializeCatchClause(pos) {
1195
+ let node = {
1196
+ type: "CatchClause",
1197
+ param: null,
1198
+ body: null,
1199
+ start: deserializeI32(pos),
1200
+ end: deserializeI32(pos + 4)
1201
+ };
1202
+ node.param = deserializeOptionCatchParameter(pos + 16);
1203
+ node.body = deserializeBoxBlockStatement(pos + 56);
1204
+ return node;
1205
+ }
1206
+ function deserializeCatchParameter(pos) {
1207
+ return deserializeBindingPattern(pos + 16);
1208
+ }
1209
+ function deserializeDebuggerStatement(pos) {
1210
+ return {
1211
+ type: "DebuggerStatement",
1212
+ start: deserializeI32(pos),
1213
+ end: deserializeI32(pos + 4)
1214
+ };
1215
+ }
1216
+ function deserializeBindingPattern(pos) {
1217
+ switch (uint8[pos]) {
1218
+ case 0: return deserializeBoxBindingIdentifier(pos + 8);
1219
+ case 1: return deserializeBoxObjectPattern(pos + 8);
1220
+ case 2: return deserializeBoxArrayPattern(pos + 8);
1221
+ case 3: return deserializeBoxAssignmentPattern(pos + 8);
1222
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for BindingPattern`);
1223
+ }
1224
+ }
1225
+ function deserializeAssignmentPattern(pos) {
1226
+ let node = {
1227
+ type: "AssignmentPattern",
1228
+ left: null,
1229
+ right: null,
1230
+ start: deserializeI32(pos),
1231
+ end: deserializeI32(pos + 4)
1232
+ };
1233
+ node.left = deserializeBindingPattern(pos + 16);
1234
+ node.right = deserializeExpression(pos + 32);
1235
+ return node;
1236
+ }
1237
+ function deserializeObjectPattern(pos) {
1238
+ let node = {
1239
+ type: "ObjectPattern",
1240
+ properties: null,
1241
+ start: deserializeI32(pos),
1242
+ end: deserializeI32(pos + 4)
1243
+ }, properties = deserializeVecBindingProperty(pos + 16), rest = deserializeOptionBoxBindingRestElement(pos + 40);
1244
+ rest !== null && properties.push(rest);
1245
+ node.properties = properties;
1246
+ return node;
1247
+ }
1248
+ function deserializeBindingProperty(pos) {
1249
+ let node = {
1250
+ type: "Property",
1251
+ kind: "init",
1252
+ key: null,
1253
+ value: null,
1254
+ method: false,
1255
+ shorthand: deserializeBool(pos + 12),
1256
+ computed: deserializeBool(pos + 13),
1257
+ start: deserializeI32(pos),
1258
+ end: deserializeI32(pos + 4)
1259
+ };
1260
+ node.key = deserializePropertyKey(pos + 16);
1261
+ node.value = deserializeBindingPattern(pos + 32);
1262
+ return node;
1263
+ }
1264
+ function deserializeArrayPattern(pos) {
1265
+ let node = {
1266
+ type: "ArrayPattern",
1267
+ elements: null,
1268
+ start: deserializeI32(pos),
1269
+ end: deserializeI32(pos + 4)
1270
+ }, elements = deserializeVecOptionBindingPattern(pos + 16), rest = deserializeOptionBoxBindingRestElement(pos + 40);
1271
+ rest !== null && elements.push(rest);
1272
+ node.elements = elements;
1273
+ return node;
1274
+ }
1275
+ function deserializeBindingRestElement(pos) {
1276
+ let node = {
1277
+ type: "RestElement",
1278
+ argument: null,
1279
+ start: deserializeI32(pos),
1280
+ end: deserializeI32(pos + 4)
1281
+ };
1282
+ node.argument = deserializeBindingPattern(pos + 16);
1283
+ return node;
1284
+ }
1285
+ function deserializeFunction(pos) {
1286
+ let node = {
1287
+ type: deserializeFunctionType(pos + 88),
1288
+ id: null,
1289
+ generator: deserializeBool(pos + 89),
1290
+ async: deserializeBool(pos + 90),
1291
+ params: null,
1292
+ body: null,
1293
+ expression: false,
1294
+ start: deserializeI32(pos),
1295
+ end: deserializeI32(pos + 4)
1296
+ }, params = deserializeBoxFormalParameters(pos + 64);
1297
+ node.id = deserializeOptionBindingIdentifier(pos + 16);
1298
+ node.params = params;
1299
+ node.body = deserializeOptionBoxFunctionBody(pos + 80);
1300
+ return node;
1301
+ }
1302
+ function deserializeFunctionType(pos) {
1303
+ switch (uint8[pos]) {
1304
+ case 0: return "FunctionDeclaration";
1305
+ case 1: return "FunctionExpression";
1306
+ case 2: return "TSDeclareFunction";
1307
+ case 3: return "TSEmptyBodyFunctionExpression";
1308
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for FunctionType`);
1309
+ }
1310
+ }
1311
+ function deserializeFormalParameters(pos) {
1312
+ let params = deserializeVecFormalParameter(pos + 16), restFieldPos32 = (pos >> 2) + 10;
1313
+ if (int32[restFieldPos32] !== 0 && int32[restFieldPos32 + 1] !== 0) {
1314
+ pos = int32[restFieldPos32];
1315
+ let rest = {
1316
+ type: "RestElement",
1317
+ argument: null,
1318
+ start: deserializeI32(pos + 40),
1319
+ end: deserializeI32(pos + 44)
1320
+ };
1321
+ rest.argument = deserializeBindingPattern(pos + 56);
1322
+ params.push(rest);
1323
+ }
1324
+ return params;
1325
+ }
1326
+ function deserializeFormalParameter(pos) {
1327
+ let param, initializerFieldPos32 = (pos >> 2) + 16;
1328
+ if (int32[initializerFieldPos32] !== 0 && int32[initializerFieldPos32 + 1] !== 0) {
1329
+ param = {
1330
+ type: "AssignmentPattern",
1331
+ left: null,
1332
+ right: null,
1333
+ start: deserializeI32(pos),
1334
+ end: deserializeI32(pos + 4)
1335
+ };
1336
+ param.left = deserializeBindingPattern(pos + 40);
1337
+ param.right = deserializeOptionBoxExpression(pos + 64);
1338
+ } else param = deserializeBindingPattern(pos + 40);
1339
+ return param;
1340
+ }
1341
+ function deserializeFunctionBody(pos) {
1342
+ let node = {
1343
+ type: "BlockStatement",
1344
+ body: null,
1345
+ start: deserializeI32(pos),
1346
+ end: deserializeI32(pos + 4)
1347
+ }, body = deserializeVecDirective(pos + 16);
1348
+ body.push(...deserializeVecStatement(pos + 40));
1349
+ node.body = body;
1350
+ return node;
1351
+ }
1352
+ function deserializeArrowFunctionBody(pos) {
1353
+ switch (uint8[pos]) {
1354
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
1355
+ case 1: return deserializeBoxNullLiteral(pos + 8);
1356
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
1357
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
1358
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
1359
+ case 5: return deserializeBoxStringLiteral(pos + 8);
1360
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
1361
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
1362
+ case 8: return deserializeBoxSuper(pos + 8);
1363
+ case 9: return deserializeBoxArrayExpression(pos + 8);
1364
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
1365
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
1366
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
1367
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
1368
+ case 14: return deserializeBoxCallExpression(pos + 8);
1369
+ case 15: return deserializeBoxChainExpression(pos + 8);
1370
+ case 16: return deserializeBoxClass(pos + 8);
1371
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
1372
+ case 18: return deserializeBoxFunction(pos + 8);
1373
+ case 19: return deserializeBoxImportExpression(pos + 8);
1374
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
1375
+ case 21: return deserializeBoxNewExpression(pos + 8);
1376
+ case 22: return deserializeBoxObjectExpression(pos + 8);
1377
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
1378
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
1379
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
1380
+ case 26: return deserializeBoxThisExpression(pos + 8);
1381
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
1382
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
1383
+ case 29: return deserializeBoxYieldExpression(pos + 8);
1384
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
1385
+ case 31: return deserializeBoxImportMeta(pos + 8);
1386
+ case 32: return deserializeBoxNewTarget(pos + 8);
1387
+ case 33: return deserializeBoxJSXElement(pos + 8);
1388
+ case 34: return deserializeBoxJSXFragment(pos + 8);
1389
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
1390
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
1391
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
1392
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
1393
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
1394
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
1395
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
1396
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
1397
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
1398
+ case 64: return deserializeBoxFunctionBody(pos + 8);
1399
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ArrowFunctionBody`);
1400
+ }
1401
+ }
1402
+ function deserializeArrowFunctionExpression(pos) {
1403
+ let node = {
1404
+ type: "ArrowFunctionExpression",
1405
+ expression: uint8[pos + 40] !== 64,
1406
+ async: deserializeBool(pos + 56),
1407
+ params: null,
1408
+ body: null,
1409
+ id: null,
1410
+ generator: false,
1411
+ start: deserializeI32(pos),
1412
+ end: deserializeI32(pos + 4)
1413
+ };
1414
+ node.params = deserializeBoxFormalParameters(pos + 24);
1415
+ node.body = deserializeArrowFunctionBody(pos + 40);
1416
+ return node;
1417
+ }
1418
+ function deserializeYieldExpression(pos) {
1419
+ let node = {
1420
+ type: "YieldExpression",
1421
+ delegate: deserializeBool(pos + 12),
1422
+ argument: null,
1423
+ start: deserializeI32(pos),
1424
+ end: deserializeI32(pos + 4)
1425
+ };
1426
+ node.argument = deserializeOptionExpression(pos + 16);
1427
+ return node;
1428
+ }
1429
+ function deserializeClass(pos) {
1430
+ let node = {
1431
+ type: deserializeClassType(pos + 136),
1432
+ decorators: null,
1433
+ id: null,
1434
+ superClass: null,
1435
+ body: null,
1436
+ start: deserializeI32(pos),
1437
+ end: deserializeI32(pos + 4)
1438
+ }, superClass = deserializeOptionExpression(pos + 80);
1439
+ node.decorators = deserializeVecDecorator(pos + 16);
1440
+ node.id = deserializeOptionBindingIdentifier(pos + 40);
1441
+ node.superClass = superClass;
1442
+ node.body = deserializeBoxClassBody(pos + 128);
1443
+ return node;
1444
+ }
1445
+ function deserializeClassType(pos) {
1446
+ switch (uint8[pos]) {
1447
+ case 0: return "ClassDeclaration";
1448
+ case 1: return "ClassExpression";
1449
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ClassType`);
1450
+ }
1451
+ }
1452
+ function deserializeClassBody(pos) {
1453
+ let node = {
1454
+ type: "ClassBody",
1455
+ body: null,
1456
+ start: deserializeI32(pos),
1457
+ end: deserializeI32(pos + 4)
1458
+ };
1459
+ node.body = deserializeVecClassElement(pos + 16);
1460
+ return node;
1461
+ }
1462
+ function deserializeClassElement(pos) {
1463
+ switch (uint8[pos]) {
1464
+ case 0: return deserializeBoxStaticBlock(pos + 8);
1465
+ case 1: return deserializeBoxMethodDefinition(pos + 8);
1466
+ case 2: return deserializeBoxPropertyDefinition(pos + 8);
1467
+ case 3: return deserializeBoxAccessorProperty(pos + 8);
1468
+ case 4: return deserializeBoxTSIndexSignature(pos + 8);
1469
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ClassElement`);
1470
+ }
1471
+ }
1472
+ function deserializeMethodDefinition(pos) {
1473
+ let node = {
1474
+ type: deserializeMethodDefinitionType(pos + 12),
1475
+ decorators: null,
1476
+ key: null,
1477
+ value: null,
1478
+ kind: deserializeMethodDefinitionKind(pos + 13),
1479
+ computed: deserializeBool(pos + 14),
1480
+ static: deserializeBool(pos + 15),
1481
+ start: deserializeI32(pos),
1482
+ end: deserializeI32(pos + 4)
1483
+ };
1484
+ node.decorators = deserializeVecDecorator(pos + 16);
1485
+ node.key = deserializePropertyKey(pos + 40);
1486
+ node.value = deserializeBoxFunction(pos + 56);
1487
+ return node;
1488
+ }
1489
+ function deserializeMethodDefinitionType(pos) {
1490
+ switch (uint8[pos]) {
1491
+ case 0: return "MethodDefinition";
1492
+ case 1: return "TSAbstractMethodDefinition";
1493
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionType`);
1494
+ }
1495
+ }
1496
+ function deserializePropertyDefinition(pos) {
1497
+ let node = {
1498
+ type: deserializePropertyDefinitionType(pos + 12),
1499
+ decorators: null,
1500
+ key: null,
1501
+ value: null,
1502
+ computed: deserializeBool(pos + 13),
1503
+ static: deserializeBool(pos + 14),
1504
+ start: deserializeI32(pos),
1505
+ end: deserializeI32(pos + 4)
1506
+ };
1507
+ node.decorators = deserializeVecDecorator(pos + 16);
1508
+ node.key = deserializePropertyKey(pos + 40);
1509
+ node.value = deserializeOptionExpression(pos + 64);
1510
+ return node;
1511
+ }
1512
+ function deserializePropertyDefinitionType(pos) {
1513
+ switch (uint8[pos]) {
1514
+ case 0: return "PropertyDefinition";
1515
+ case 1: return "TSAbstractPropertyDefinition";
1516
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for PropertyDefinitionType`);
1517
+ }
1518
+ }
1519
+ function deserializeMethodDefinitionKind(pos) {
1520
+ switch (uint8[pos]) {
1521
+ case 0: return "constructor";
1522
+ case 1: return "method";
1523
+ case 2: return "get";
1524
+ case 3: return "set";
1525
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionKind`);
1526
+ }
1527
+ }
1528
+ function deserializePrivateIdentifier(pos) {
1529
+ return {
1530
+ type: "PrivateIdentifier",
1531
+ name: deserializeStr(pos + 16),
1532
+ start: deserializeI32(pos),
1533
+ end: deserializeI32(pos + 4)
1534
+ };
1535
+ }
1536
+ function deserializeStaticBlock(pos) {
1537
+ let node = {
1538
+ type: "StaticBlock",
1539
+ body: null,
1540
+ start: deserializeI32(pos),
1541
+ end: deserializeI32(pos + 4)
1542
+ };
1543
+ node.body = deserializeVecStatement(pos + 16);
1544
+ return node;
1545
+ }
1546
+ function deserializeAccessorPropertyType(pos) {
1547
+ switch (uint8[pos]) {
1548
+ case 0: return "AccessorProperty";
1549
+ case 1: return "TSAbstractAccessorProperty";
1550
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for AccessorPropertyType`);
1551
+ }
1552
+ }
1553
+ function deserializeAccessorProperty(pos) {
1554
+ let node = {
1555
+ type: deserializeAccessorPropertyType(pos + 12),
1556
+ decorators: null,
1557
+ key: null,
1558
+ value: null,
1559
+ computed: deserializeBool(pos + 13),
1560
+ static: deserializeBool(pos + 14),
1561
+ start: deserializeI32(pos),
1562
+ end: deserializeI32(pos + 4)
1563
+ };
1564
+ node.decorators = deserializeVecDecorator(pos + 16);
1565
+ node.key = deserializePropertyKey(pos + 40);
1566
+ node.value = deserializeOptionExpression(pos + 64);
1567
+ return node;
1568
+ }
1569
+ function deserializeImportExpression(pos) {
1570
+ let node = {
1571
+ type: "ImportExpression",
1572
+ source: null,
1573
+ options: null,
1574
+ phase: deserializeOptionImportPhase(pos + 12),
1575
+ start: deserializeI32(pos),
1576
+ end: deserializeI32(pos + 4)
1577
+ };
1578
+ node.source = deserializeExpression(pos + 16);
1579
+ node.options = deserializeOptionExpression(pos + 32);
1580
+ return node;
1581
+ }
1582
+ function deserializeImportDeclaration(pos) {
1583
+ let node = {
1584
+ type: "ImportDeclaration",
1585
+ specifiers: null,
1586
+ source: null,
1587
+ phase: deserializeOptionImportPhase(pos + 12),
1588
+ attributes: null,
1589
+ start: deserializeI32(pos),
1590
+ end: deserializeI32(pos + 4)
1591
+ }, specifiers = deserializeOptionVecImportDeclarationSpecifier(pos + 16);
1592
+ specifiers === null && (specifiers = []);
1593
+ let withClause = deserializeOptionBoxWithClause(pos + 88);
1594
+ node.specifiers = specifiers;
1595
+ node.source = deserializeStringLiteral(pos + 40);
1596
+ node.attributes = withClause === null ? [] : withClause.attributes;
1597
+ return node;
1598
+ }
1599
+ function deserializeImportPhase(pos) {
1600
+ switch (uint8[pos]) {
1601
+ case 0: return "source";
1602
+ case 1: return "defer";
1603
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ImportPhase`);
1604
+ }
1605
+ }
1606
+ function deserializeImportDeclarationSpecifier(pos) {
1607
+ switch (uint8[pos]) {
1608
+ case 0: return deserializeBoxImportSpecifier(pos + 8);
1609
+ case 1: return deserializeBoxImportDefaultSpecifier(pos + 8);
1610
+ case 2: return deserializeBoxImportNamespaceSpecifier(pos + 8);
1611
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ImportDeclarationSpecifier`);
1612
+ }
1613
+ }
1614
+ function deserializeImportSpecifier(pos) {
1615
+ let node = {
1616
+ type: "ImportSpecifier",
1617
+ imported: null,
1618
+ local: null,
1619
+ start: deserializeI32(pos),
1620
+ end: deserializeI32(pos + 4)
1621
+ };
1622
+ node.imported = deserializeModuleExportName(pos + 16);
1623
+ node.local = deserializeBindingIdentifier(pos + 72);
1624
+ return node;
1625
+ }
1626
+ function deserializeImportDefaultSpecifier(pos) {
1627
+ let node = {
1628
+ type: "ImportDefaultSpecifier",
1629
+ local: null,
1630
+ start: deserializeI32(pos),
1631
+ end: deserializeI32(pos + 4)
1632
+ };
1633
+ node.local = deserializeBindingIdentifier(pos + 16);
1634
+ return node;
1635
+ }
1636
+ function deserializeImportNamespaceSpecifier(pos) {
1637
+ let node = {
1638
+ type: "ImportNamespaceSpecifier",
1639
+ local: null,
1640
+ start: deserializeI32(pos),
1641
+ end: deserializeI32(pos + 4)
1642
+ };
1643
+ node.local = deserializeBindingIdentifier(pos + 16);
1644
+ return node;
1645
+ }
1646
+ function deserializeWithClause(pos) {
1647
+ return { attributes: deserializeVecImportAttribute(pos + 16) };
1648
+ }
1649
+ function deserializeImportAttribute(pos) {
1650
+ let node = {
1651
+ type: "ImportAttribute",
1652
+ key: null,
1653
+ value: null,
1654
+ start: deserializeI32(pos),
1655
+ end: deserializeI32(pos + 4)
1656
+ };
1657
+ node.key = deserializeImportAttributeKey(pos + 16);
1658
+ node.value = deserializeStringLiteral(pos + 72);
1659
+ return node;
1660
+ }
1661
+ function deserializeImportAttributeKey(pos) {
1662
+ switch (uint8[pos]) {
1663
+ case 0: return deserializeIdentifierName(pos + 8);
1664
+ case 1: return deserializeStringLiteral(pos + 8);
1665
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ImportAttributeKey`);
1666
+ }
1667
+ }
1668
+ function deserializeExportDeclaration(pos) {
1669
+ let node = {
1670
+ type: "ExportNamedDeclaration",
1671
+ declaration: null,
1672
+ specifiers: [],
1673
+ source: null,
1674
+ attributes: [],
1675
+ start: deserializeI32(pos),
1676
+ end: deserializeI32(pos + 4)
1677
+ };
1678
+ node.declaration = deserializeDeclaration(pos + 16);
1679
+ return node;
1680
+ }
1681
+ function deserializeExportNamedDeclaration(pos) {
1682
+ let node = {
1683
+ type: "ExportNamedDeclaration",
1684
+ declaration: null,
1685
+ specifiers: null,
1686
+ source: null,
1687
+ attributes: [],
1688
+ start: deserializeI32(pos),
1689
+ end: deserializeI32(pos + 4)
1690
+ };
1691
+ node.specifiers = deserializeVecExportSpecifier(pos + 16);
1692
+ return node;
1693
+ }
1694
+ function deserializeExportFromDeclaration(pos) {
1695
+ let node = {
1696
+ type: "ExportNamedDeclaration",
1697
+ declaration: null,
1698
+ specifiers: null,
1699
+ source: null,
1700
+ attributes: null,
1701
+ start: deserializeI32(pos),
1702
+ end: deserializeI32(pos + 4)
1703
+ }, withClause = deserializeOptionBoxWithClause(pos + 88);
1704
+ node.specifiers = deserializeVecExportSpecifier(pos + 16);
1705
+ node.source = deserializeStringLiteral(pos + 40);
1706
+ node.attributes = withClause === null ? [] : withClause.attributes;
1707
+ return node;
1708
+ }
1709
+ function deserializeExportDefaultDeclaration(pos) {
1710
+ let node = {
1711
+ type: "ExportDefaultDeclaration",
1712
+ declaration: null,
1713
+ start: deserializeI32(pos),
1714
+ end: deserializeI32(pos + 4)
1715
+ };
1716
+ node.declaration = deserializeExportDefaultDeclarationKind(pos + 16);
1717
+ return node;
1718
+ }
1719
+ function deserializeExportAllDeclaration(pos) {
1720
+ let node = {
1721
+ type: "ExportAllDeclaration",
1722
+ exported: null,
1723
+ source: null,
1724
+ attributes: null,
1725
+ start: deserializeI32(pos),
1726
+ end: deserializeI32(pos + 4)
1727
+ }, withClause = deserializeOptionBoxWithClause(pos + 120);
1728
+ node.exported = deserializeOptionModuleExportName(pos + 16);
1729
+ node.source = deserializeStringLiteral(pos + 72);
1730
+ node.attributes = withClause === null ? [] : withClause.attributes;
1731
+ return node;
1732
+ }
1733
+ function deserializeExportSpecifier(pos) {
1734
+ let node = {
1735
+ type: "ExportSpecifier",
1736
+ local: null,
1737
+ exported: null,
1738
+ start: deserializeI32(pos),
1739
+ end: deserializeI32(pos + 4)
1740
+ };
1741
+ node.local = deserializeModuleExportName(pos + 16);
1742
+ node.exported = deserializeModuleExportName(pos + 72);
1743
+ return node;
1744
+ }
1745
+ function deserializeExportDefaultDeclarationKind(pos) {
1746
+ switch (uint8[pos]) {
1747
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
1748
+ case 1: return deserializeBoxNullLiteral(pos + 8);
1749
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
1750
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
1751
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
1752
+ case 5: return deserializeBoxStringLiteral(pos + 8);
1753
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
1754
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
1755
+ case 8: return deserializeBoxSuper(pos + 8);
1756
+ case 9: return deserializeBoxArrayExpression(pos + 8);
1757
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
1758
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
1759
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
1760
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
1761
+ case 14: return deserializeBoxCallExpression(pos + 8);
1762
+ case 15: return deserializeBoxChainExpression(pos + 8);
1763
+ case 16: return deserializeBoxClass(pos + 8);
1764
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
1765
+ case 18: return deserializeBoxFunction(pos + 8);
1766
+ case 19: return deserializeBoxImportExpression(pos + 8);
1767
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
1768
+ case 21: return deserializeBoxNewExpression(pos + 8);
1769
+ case 22: return deserializeBoxObjectExpression(pos + 8);
1770
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
1771
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
1772
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
1773
+ case 26: return deserializeBoxThisExpression(pos + 8);
1774
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
1775
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
1776
+ case 29: return deserializeBoxYieldExpression(pos + 8);
1777
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
1778
+ case 31: return deserializeBoxImportMeta(pos + 8);
1779
+ case 32: return deserializeBoxNewTarget(pos + 8);
1780
+ case 33: return deserializeBoxJSXElement(pos + 8);
1781
+ case 34: return deserializeBoxJSXFragment(pos + 8);
1782
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
1783
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
1784
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
1785
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
1786
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
1787
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
1788
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
1789
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
1790
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
1791
+ case 64: return deserializeBoxFunction(pos + 8);
1792
+ case 65: return deserializeBoxClass(pos + 8);
1793
+ case 66: return deserializeBoxTSInterfaceDeclaration(pos + 8);
1794
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ExportDefaultDeclarationKind`);
1795
+ }
1796
+ }
1797
+ function deserializeModuleExportName(pos) {
1798
+ switch (uint8[pos]) {
1799
+ case 0: return deserializeIdentifierName(pos + 8);
1800
+ case 1: return deserializeIdentifierReference(pos + 8);
1801
+ case 2: return deserializeStringLiteral(pos + 8);
1802
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ModuleExportName`);
1803
+ }
1804
+ }
1805
+ function deserializeV8IntrinsicExpression(pos) {
1806
+ let node = {
1807
+ type: "V8IntrinsicExpression",
1808
+ name: null,
1809
+ arguments: null,
1810
+ start: deserializeI32(pos),
1811
+ end: deserializeI32(pos + 4)
1812
+ };
1813
+ node.name = deserializeIdentifierName(pos + 16);
1814
+ node.arguments = deserializeVecArgument(pos + 48);
1815
+ return node;
1816
+ }
1817
+ function deserializeBooleanLiteral(pos) {
1818
+ let value = deserializeBool(pos + 12), start = deserializeI32(pos), end = deserializeI32(pos + 4), node = {
1819
+ type: "Literal",
1820
+ value,
1821
+ raw: null,
1822
+ start,
1823
+ end
1824
+ };
1825
+ node.raw = start === 0 && end === 0 ? null : value + "";
1826
+ return node;
1827
+ }
1828
+ function deserializeNullLiteral(pos) {
1829
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4);
1830
+ return {
1831
+ type: "Literal",
1832
+ value: null,
1833
+ raw: start === 0 && end === 0 ? null : "null",
1834
+ start,
1835
+ end
1836
+ };
1837
+ }
1838
+ function deserializeNumericLiteral(pos) {
1839
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4);
1840
+ return {
1841
+ type: "Literal",
1842
+ value: deserializeF64(pos + 32),
1843
+ raw: int32[(pos >> 2) + 4] === 0 && int32[(pos >> 2) + 5] === 0 ? null : sourceText.slice(start, end),
1844
+ start,
1845
+ end
1846
+ };
1847
+ }
1848
+ function deserializeStringLiteral(pos) {
1849
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), node = {
1850
+ type: "Literal",
1851
+ value: null,
1852
+ raw: int32[(pos >> 2) + 8] === 0 && int32[(pos >> 2) + 9] === 0 ? null : sourceText.slice(start, end),
1853
+ start,
1854
+ end
1855
+ }, value = deserializeStr(pos + 16);
1856
+ deserializeBool(pos + 12) && (value = value.replace(/\uFFFD(.{4})/g, (_, hex) => String.fromCodePoint(parseInt(hex, 16))));
1857
+ node.value = value;
1858
+ return node;
1859
+ }
1860
+ function deserializeBigIntLiteral(pos) {
1861
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), bigint = deserializeStr(pos + 16);
1862
+ return {
1863
+ type: "Literal",
1864
+ value: BigInt(bigint),
1865
+ raw: int32[(pos >> 2) + 8] === 0 && int32[(pos >> 2) + 9] === 0 ? null : sourceText.slice(start, end),
1866
+ bigint,
1867
+ start,
1868
+ end
1869
+ };
1870
+ }
1871
+ function deserializeRegExpLiteral(pos) {
1872
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), node = {
1873
+ type: "Literal",
1874
+ value: null,
1875
+ raw: int32[(pos >> 2) + 12] === 0 && int32[(pos >> 2) + 13] === 0 ? null : sourceText.slice(start, end),
1876
+ regex: null,
1877
+ start,
1878
+ end
1879
+ }, regex = deserializeRegExp(pos + 16), value = null;
1880
+ try {
1881
+ value = new RegExp(regex.pattern, regex.flags);
1882
+ } catch {}
1883
+ node.value = value;
1884
+ node.regex = regex;
1885
+ return node;
1886
+ }
1887
+ function deserializeRegExp(pos) {
1888
+ return {
1889
+ pattern: deserializeStr(pos),
1890
+ flags: deserializeRegExpFlags(pos + 24)
1891
+ };
1892
+ }
1893
+ function deserializeRegExpFlags(pos) {
1894
+ let flagBits = deserializeU8(pos), flags = "";
1895
+ flagBits & 64 && (flags += "d");
1896
+ flagBits & 1 && (flags += "g");
1897
+ flagBits & 2 && (flags += "i");
1898
+ flagBits & 4 && (flags += "m");
1899
+ flagBits & 8 && (flags += "s");
1900
+ flagBits & 16 && (flags += "u");
1901
+ flagBits & 128 && (flags += "v");
1902
+ flagBits & 32 && (flags += "y");
1903
+ return flags;
1904
+ }
1905
+ function deserializeJSXElement(pos) {
1906
+ let node = {
1907
+ type: "JSXElement",
1908
+ openingElement: null,
1909
+ children: null,
1910
+ closingElement: null,
1911
+ start: deserializeI32(pos),
1912
+ end: deserializeI32(pos + 4)
1913
+ }, closingElement = deserializeOptionBoxJSXClosingElement(pos + 48), openingElement = deserializeBoxJSXOpeningElement(pos + 16);
1914
+ closingElement === null && (openingElement.selfClosing = true);
1915
+ node.openingElement = openingElement;
1916
+ node.children = deserializeVecJSXChild(pos + 24);
1917
+ node.closingElement = closingElement;
1918
+ return node;
1919
+ }
1920
+ function deserializeJSXOpeningElement(pos) {
1921
+ let node = {
1922
+ type: "JSXOpeningElement",
1923
+ name: null,
1924
+ attributes: null,
1925
+ selfClosing: false,
1926
+ start: deserializeI32(pos),
1927
+ end: deserializeI32(pos + 4)
1928
+ };
1929
+ node.name = deserializeJSXElementName(pos + 16);
1930
+ node.attributes = deserializeVecJSXAttributeItem(pos + 40);
1931
+ return node;
1932
+ }
1933
+ function deserializeJSXClosingElement(pos) {
1934
+ let node = {
1935
+ type: "JSXClosingElement",
1936
+ name: null,
1937
+ start: deserializeI32(pos),
1938
+ end: deserializeI32(pos + 4)
1939
+ };
1940
+ node.name = deserializeJSXElementName(pos + 16);
1941
+ return node;
1942
+ }
1943
+ function deserializeJSXFragment(pos) {
1944
+ let node = {
1945
+ type: "JSXFragment",
1946
+ openingFragment: null,
1947
+ children: null,
1948
+ closingFragment: null,
1949
+ start: deserializeI32(pos),
1950
+ end: deserializeI32(pos + 4)
1951
+ };
1952
+ node.openingFragment = deserializeJSXOpeningFragment(pos + 16);
1953
+ node.children = deserializeVecJSXChild(pos + 32);
1954
+ node.closingFragment = deserializeJSXClosingFragment(pos + 56);
1955
+ return node;
1956
+ }
1957
+ function deserializeJSXOpeningFragment(pos) {
1958
+ return {
1959
+ type: "JSXOpeningFragment",
1960
+ attributes: [],
1961
+ selfClosing: false,
1962
+ start: deserializeI32(pos),
1963
+ end: deserializeI32(pos + 4)
1964
+ };
1965
+ }
1966
+ function deserializeJSXClosingFragment(pos) {
1967
+ return {
1968
+ type: "JSXClosingFragment",
1969
+ start: deserializeI32(pos),
1970
+ end: deserializeI32(pos + 4)
1971
+ };
1972
+ }
1973
+ function deserializeJSXElementName(pos) {
1974
+ switch (uint8[pos]) {
1975
+ case 0: return deserializeBoxJSXIdentifier(pos + 8);
1976
+ case 1:
1977
+ let ident = deserializeBoxIdentifierReference(pos + 8);
1978
+ return {
1979
+ type: "JSXIdentifier",
1980
+ name: ident.name,
1981
+ start: ident.start,
1982
+ end: ident.end
1983
+ };
1984
+ case 2: return deserializeBoxJSXNamespacedName(pos + 8);
1985
+ case 3: return deserializeBoxJSXMemberExpression(pos + 8);
1986
+ case 4:
1987
+ let thisExpr = deserializeBoxThisExpression(pos + 8);
1988
+ return {
1989
+ type: "JSXIdentifier",
1990
+ name: "this",
1991
+ start: thisExpr.start,
1992
+ end: thisExpr.end
1993
+ };
1994
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXElementName`);
1995
+ }
1996
+ }
1997
+ function deserializeJSXNamespacedName(pos) {
1998
+ let node = {
1999
+ type: "JSXNamespacedName",
2000
+ namespace: null,
2001
+ name: null,
2002
+ start: deserializeI32(pos),
2003
+ end: deserializeI32(pos + 4)
2004
+ };
2005
+ node.namespace = deserializeJSXIdentifier(pos + 16);
2006
+ node.name = deserializeJSXIdentifier(pos + 48);
2007
+ return node;
2008
+ }
2009
+ function deserializeJSXMemberExpression(pos) {
2010
+ let node = {
2011
+ type: "JSXMemberExpression",
2012
+ object: null,
2013
+ property: null,
2014
+ start: deserializeI32(pos),
2015
+ end: deserializeI32(pos + 4)
2016
+ };
2017
+ node.object = deserializeJSXMemberExpressionObject(pos + 16);
2018
+ node.property = deserializeJSXIdentifier(pos + 32);
2019
+ return node;
2020
+ }
2021
+ function deserializeJSXMemberExpressionObject(pos) {
2022
+ switch (uint8[pos]) {
2023
+ case 0:
2024
+ let ident = deserializeBoxIdentifierReference(pos + 8);
2025
+ return {
2026
+ type: "JSXIdentifier",
2027
+ name: ident.name,
2028
+ start: ident.start,
2029
+ end: ident.end
2030
+ };
2031
+ case 1: return deserializeBoxJSXMemberExpression(pos + 8);
2032
+ case 2:
2033
+ let thisExpr = deserializeBoxThisExpression(pos + 8);
2034
+ return {
2035
+ type: "JSXIdentifier",
2036
+ name: "this",
2037
+ start: thisExpr.start,
2038
+ end: thisExpr.end
2039
+ };
2040
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXMemberExpressionObject`);
2041
+ }
2042
+ }
2043
+ function deserializeJSXExpressionContainer(pos) {
2044
+ let node = {
2045
+ type: "JSXExpressionContainer",
2046
+ expression: null,
2047
+ start: deserializeI32(pos),
2048
+ end: deserializeI32(pos + 4)
2049
+ };
2050
+ node.expression = deserializeJSXExpression(pos + 16);
2051
+ return node;
2052
+ }
2053
+ function deserializeJSXExpression(pos) {
2054
+ switch (uint8[pos]) {
2055
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
2056
+ case 1: return deserializeBoxNullLiteral(pos + 8);
2057
+ case 2: return deserializeBoxNumericLiteral(pos + 8);
2058
+ case 3: return deserializeBoxBigIntLiteral(pos + 8);
2059
+ case 4: return deserializeBoxRegExpLiteral(pos + 8);
2060
+ case 5: return deserializeBoxStringLiteral(pos + 8);
2061
+ case 6: return deserializeBoxTemplateLiteral(pos + 8);
2062
+ case 7: return deserializeBoxIdentifierReference(pos + 8);
2063
+ case 8: return deserializeBoxSuper(pos + 8);
2064
+ case 9: return deserializeBoxArrayExpression(pos + 8);
2065
+ case 10: return deserializeBoxArrowFunctionExpression(pos + 8);
2066
+ case 11: return deserializeBoxAssignmentExpression(pos + 8);
2067
+ case 12: return deserializeBoxAwaitExpression(pos + 8);
2068
+ case 13: return deserializeBoxBinaryExpression(pos + 8);
2069
+ case 14: return deserializeBoxCallExpression(pos + 8);
2070
+ case 15: return deserializeBoxChainExpression(pos + 8);
2071
+ case 16: return deserializeBoxClass(pos + 8);
2072
+ case 17: return deserializeBoxConditionalExpression(pos + 8);
2073
+ case 18: return deserializeBoxFunction(pos + 8);
2074
+ case 19: return deserializeBoxImportExpression(pos + 8);
2075
+ case 20: return deserializeBoxLogicalExpression(pos + 8);
2076
+ case 21: return deserializeBoxNewExpression(pos + 8);
2077
+ case 22: return deserializeBoxObjectExpression(pos + 8);
2078
+ case 23: return deserializeBoxParenthesizedExpression(pos + 8);
2079
+ case 24: return deserializeBoxSequenceExpression(pos + 8);
2080
+ case 25: return deserializeBoxTaggedTemplateExpression(pos + 8);
2081
+ case 26: return deserializeBoxThisExpression(pos + 8);
2082
+ case 27: return deserializeBoxUnaryExpression(pos + 8);
2083
+ case 28: return deserializeBoxUpdateExpression(pos + 8);
2084
+ case 29: return deserializeBoxYieldExpression(pos + 8);
2085
+ case 30: return deserializeBoxPrivateInExpression(pos + 8);
2086
+ case 31: return deserializeBoxImportMeta(pos + 8);
2087
+ case 32: return deserializeBoxNewTarget(pos + 8);
2088
+ case 33: return deserializeBoxJSXElement(pos + 8);
2089
+ case 34: return deserializeBoxJSXFragment(pos + 8);
2090
+ case 35: return deserializeBoxTSAsExpression(pos + 8);
2091
+ case 36: return deserializeBoxTSSatisfiesExpression(pos + 8);
2092
+ case 37: return deserializeBoxTSTypeAssertion(pos + 8);
2093
+ case 38: return deserializeBoxTSNonNullExpression(pos + 8);
2094
+ case 39: return deserializeBoxTSInstantiationExpression(pos + 8);
2095
+ case 40: return deserializeBoxV8IntrinsicExpression(pos + 8);
2096
+ case 48: return deserializeBoxComputedMemberExpression(pos + 8);
2097
+ case 49: return deserializeBoxStaticMemberExpression(pos + 8);
2098
+ case 50: return deserializeBoxPrivateFieldExpression(pos + 8);
2099
+ case 64: return deserializeBoxJSXEmptyExpression(pos + 8);
2100
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXExpression`);
2101
+ }
2102
+ }
2103
+ function deserializeJSXEmptyExpression(pos) {
2104
+ return {
2105
+ type: "JSXEmptyExpression",
2106
+ start: deserializeI32(pos),
2107
+ end: deserializeI32(pos + 4)
2108
+ };
2109
+ }
2110
+ function deserializeJSXAttributeItem(pos) {
2111
+ switch (uint8[pos]) {
2112
+ case 0: return deserializeBoxJSXAttribute(pos + 8);
2113
+ case 1: return deserializeBoxJSXSpreadAttribute(pos + 8);
2114
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeItem`);
2115
+ }
2116
+ }
2117
+ function deserializeJSXAttribute(pos) {
2118
+ let node = {
2119
+ type: "JSXAttribute",
2120
+ name: null,
2121
+ value: null,
2122
+ start: deserializeI32(pos),
2123
+ end: deserializeI32(pos + 4)
2124
+ };
2125
+ node.name = deserializeJSXAttributeName(pos + 16);
2126
+ node.value = deserializeOptionJSXAttributeValue(pos + 32);
2127
+ return node;
2128
+ }
2129
+ function deserializeJSXSpreadAttribute(pos) {
2130
+ let node = {
2131
+ type: "JSXSpreadAttribute",
2132
+ argument: null,
2133
+ start: deserializeI32(pos),
2134
+ end: deserializeI32(pos + 4)
2135
+ };
2136
+ node.argument = deserializeExpression(pos + 16);
2137
+ return node;
2138
+ }
2139
+ function deserializeJSXAttributeName(pos) {
2140
+ switch (uint8[pos]) {
2141
+ case 0: return deserializeBoxJSXIdentifier(pos + 8);
2142
+ case 1: return deserializeBoxJSXNamespacedName(pos + 8);
2143
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeName`);
2144
+ }
2145
+ }
2146
+ function deserializeJSXAttributeValue(pos) {
2147
+ switch (uint8[pos]) {
2148
+ case 0: return deserializeBoxStringLiteral(pos + 8);
2149
+ case 1: return deserializeBoxJSXExpressionContainer(pos + 8);
2150
+ case 2: return deserializeBoxJSXElement(pos + 8);
2151
+ case 3: return deserializeBoxJSXFragment(pos + 8);
2152
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeValue`);
2153
+ }
2154
+ }
2155
+ function deserializeJSXIdentifier(pos) {
2156
+ return {
2157
+ type: "JSXIdentifier",
2158
+ name: deserializeStr(pos + 16),
2159
+ start: deserializeI32(pos),
2160
+ end: deserializeI32(pos + 4)
2161
+ };
2162
+ }
2163
+ function deserializeJSXChild(pos) {
2164
+ switch (uint8[pos]) {
2165
+ case 0: return deserializeBoxJSXText(pos + 8);
2166
+ case 1: return deserializeBoxJSXElement(pos + 8);
2167
+ case 2: return deserializeBoxJSXFragment(pos + 8);
2168
+ case 3: return deserializeBoxJSXExpressionContainer(pos + 8);
2169
+ case 4: return deserializeBoxJSXSpreadChild(pos + 8);
2170
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for JSXChild`);
2171
+ }
2172
+ }
2173
+ function deserializeJSXSpreadChild(pos) {
2174
+ let node = {
2175
+ type: "JSXSpreadChild",
2176
+ expression: null,
2177
+ start: deserializeI32(pos),
2178
+ end: deserializeI32(pos + 4)
2179
+ };
2180
+ node.expression = deserializeExpression(pos + 16);
2181
+ return node;
2182
+ }
2183
+ function deserializeJSXText(pos) {
2184
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4);
2185
+ return {
2186
+ type: "JSXText",
2187
+ value: deserializeStr(pos + 16),
2188
+ raw: int32[(pos >> 2) + 8] === 0 && int32[(pos >> 2) + 9] === 0 ? null : sourceText.slice(start, end),
2189
+ start,
2190
+ end
2191
+ };
2192
+ }
2193
+ function deserializeTSThisParameter(pos) {
2194
+ let node = {
2195
+ type: "Identifier",
2196
+ decorators: [],
2197
+ name: "this",
2198
+ optional: false,
2199
+ typeAnnotation: null,
2200
+ start: deserializeI32(pos),
2201
+ end: deserializeI32(pos + 4)
2202
+ };
2203
+ node.typeAnnotation = deserializeOptionBoxTSTypeAnnotation(pos + 24);
2204
+ return node;
2205
+ }
2206
+ function deserializeTSEnumDeclaration(pos) {
2207
+ let node = {
2208
+ type: "TSEnumDeclaration",
2209
+ id: null,
2210
+ body: null,
2211
+ const: deserializeBool(pos + 12),
2212
+ declare: deserializeBool(pos + 13),
2213
+ start: deserializeI32(pos),
2214
+ end: deserializeI32(pos + 4)
2215
+ };
2216
+ node.id = deserializeBindingIdentifier(pos + 16);
2217
+ node.body = deserializeTSEnumBody(pos + 48);
2218
+ return node;
2219
+ }
2220
+ function deserializeTSEnumBody(pos) {
2221
+ let node = {
2222
+ type: "TSEnumBody",
2223
+ members: null,
2224
+ start: deserializeI32(pos),
2225
+ end: deserializeI32(pos + 4)
2226
+ };
2227
+ node.members = deserializeVecTSEnumMember(pos + 16);
2228
+ return node;
2229
+ }
2230
+ function deserializeTSEnumMember(pos) {
2231
+ let node = {
2232
+ type: "TSEnumMember",
2233
+ id: null,
2234
+ initializer: null,
2235
+ computed: deserializeU8(pos + 16) > 1,
2236
+ start: deserializeI32(pos),
2237
+ end: deserializeI32(pos + 4)
2238
+ };
2239
+ node.id = deserializeTSEnumMemberName(pos + 16);
2240
+ node.initializer = deserializeOptionExpression(pos + 32);
2241
+ return node;
2242
+ }
2243
+ function deserializeTSEnumMemberName(pos) {
2244
+ switch (uint8[pos]) {
2245
+ case 0: return deserializeBoxIdentifierName(pos + 8);
2246
+ case 1: return deserializeBoxStringLiteral(pos + 8);
2247
+ case 2: return deserializeBoxStringLiteral(pos + 8);
2248
+ case 3: return deserializeBoxTemplateLiteral(pos + 8);
2249
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSEnumMemberName`);
2250
+ }
2251
+ }
2252
+ function deserializeTSTypeAnnotation(pos) {
2253
+ let node = {
2254
+ type: "TSTypeAnnotation",
2255
+ typeAnnotation: null,
2256
+ start: deserializeI32(pos),
2257
+ end: deserializeI32(pos + 4)
2258
+ };
2259
+ node.typeAnnotation = deserializeTSType(pos + 16);
2260
+ return node;
2261
+ }
2262
+ function deserializeTSLiteralType(pos) {
2263
+ let node = {
2264
+ type: "TSLiteralType",
2265
+ literal: null,
2266
+ start: deserializeI32(pos),
2267
+ end: deserializeI32(pos + 4)
2268
+ };
2269
+ node.literal = deserializeTSLiteral(pos + 16);
2270
+ return node;
2271
+ }
2272
+ function deserializeTSLiteral(pos) {
2273
+ switch (uint8[pos]) {
2274
+ case 0: return deserializeBoxBooleanLiteral(pos + 8);
2275
+ case 1: return deserializeBoxNumericLiteral(pos + 8);
2276
+ case 2: return deserializeBoxBigIntLiteral(pos + 8);
2277
+ case 3: return deserializeBoxStringLiteral(pos + 8);
2278
+ case 4: return deserializeBoxTemplateLiteral(pos + 8);
2279
+ case 5: return deserializeBoxUnaryExpression(pos + 8);
2280
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSLiteral`);
2281
+ }
2282
+ }
2283
+ function deserializeTSType(pos) {
2284
+ switch (uint8[pos]) {
2285
+ case 0: return deserializeBoxTSAnyKeyword(pos + 8);
2286
+ case 1: return deserializeBoxTSBigIntKeyword(pos + 8);
2287
+ case 2: return deserializeBoxTSBooleanKeyword(pos + 8);
2288
+ case 3: return deserializeBoxTSIntrinsicKeyword(pos + 8);
2289
+ case 4: return deserializeBoxTSNeverKeyword(pos + 8);
2290
+ case 5: return deserializeBoxTSNullKeyword(pos + 8);
2291
+ case 6: return deserializeBoxTSNumberKeyword(pos + 8);
2292
+ case 7: return deserializeBoxTSObjectKeyword(pos + 8);
2293
+ case 8: return deserializeBoxTSStringKeyword(pos + 8);
2294
+ case 9: return deserializeBoxTSSymbolKeyword(pos + 8);
2295
+ case 10: return deserializeBoxTSThisType(pos + 8);
2296
+ case 11: return deserializeBoxTSUndefinedKeyword(pos + 8);
2297
+ case 12: return deserializeBoxTSUnknownKeyword(pos + 8);
2298
+ case 13: return deserializeBoxTSVoidKeyword(pos + 8);
2299
+ case 14: return deserializeBoxTSArrayType(pos + 8);
2300
+ case 15: return deserializeBoxTSConditionalType(pos + 8);
2301
+ case 16: return deserializeBoxTSConstructorType(pos + 8);
2302
+ case 17: return deserializeBoxTSFunctionType(pos + 8);
2303
+ case 18: return deserializeBoxTSImportType(pos + 8);
2304
+ case 19: return deserializeBoxTSIndexedAccessType(pos + 8);
2305
+ case 20: return deserializeBoxTSInferType(pos + 8);
2306
+ case 21: return deserializeBoxTSIntersectionType(pos + 8);
2307
+ case 22: return deserializeBoxTSLiteralType(pos + 8);
2308
+ case 23: return deserializeBoxTSMappedType(pos + 8);
2309
+ case 24: return deserializeBoxTSNamedTupleMember(pos + 8);
2310
+ case 26: return deserializeBoxTSTemplateLiteralType(pos + 8);
2311
+ case 27: return deserializeBoxTSTupleType(pos + 8);
2312
+ case 28: return deserializeBoxTSTypeLiteral(pos + 8);
2313
+ case 29: return deserializeBoxTSTypeOperator(pos + 8);
2314
+ case 30: return deserializeBoxTSTypePredicate(pos + 8);
2315
+ case 31: return deserializeBoxTSTypeQuery(pos + 8);
2316
+ case 32: return deserializeBoxTSTypeReference(pos + 8);
2317
+ case 33: return deserializeBoxTSUnionType(pos + 8);
2318
+ case 34: return deserializeBoxTSParenthesizedType(pos + 8);
2319
+ case 35: return deserializeBoxJSDocNullableType(pos + 8);
2320
+ case 36: return deserializeBoxJSDocNonNullableType(pos + 8);
2321
+ case 37: return deserializeBoxJSDocUnknownType(pos + 8);
2322
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSType`);
2323
+ }
2324
+ }
2325
+ function deserializeTSConditionalType(pos) {
2326
+ let node = {
2327
+ type: "TSConditionalType",
2328
+ checkType: null,
2329
+ extendsType: null,
2330
+ trueType: null,
2331
+ falseType: null,
2332
+ start: deserializeI32(pos),
2333
+ end: deserializeI32(pos + 4)
2334
+ };
2335
+ node.checkType = deserializeTSType(pos + 16);
2336
+ node.extendsType = deserializeTSType(pos + 32);
2337
+ node.trueType = deserializeTSType(pos + 48);
2338
+ node.falseType = deserializeTSType(pos + 64);
2339
+ return node;
2340
+ }
2341
+ function deserializeTSUnionType(pos) {
2342
+ let node = {
2343
+ type: "TSUnionType",
2344
+ types: null,
2345
+ start: deserializeI32(pos),
2346
+ end: deserializeI32(pos + 4)
2347
+ };
2348
+ node.types = deserializeVecTSType(pos + 16);
2349
+ return node;
2350
+ }
2351
+ function deserializeTSIntersectionType(pos) {
2352
+ let node = {
2353
+ type: "TSIntersectionType",
2354
+ types: null,
2355
+ start: deserializeI32(pos),
2356
+ end: deserializeI32(pos + 4)
2357
+ };
2358
+ node.types = deserializeVecTSType(pos + 16);
2359
+ return node;
2360
+ }
2361
+ function deserializeTSParenthesizedType(pos) {
2362
+ let node;
2363
+ node = {
2364
+ type: "TSParenthesizedType",
2365
+ typeAnnotation: null,
2366
+ start: deserializeI32(pos),
2367
+ end: deserializeI32(pos + 4)
2368
+ };
2369
+ node.typeAnnotation = deserializeTSType(pos + 16);
2370
+ return node;
2371
+ }
2372
+ function deserializeTSTypeOperator(pos) {
2373
+ let node = {
2374
+ type: "TSTypeOperator",
2375
+ operator: deserializeTSTypeOperatorOperator(pos + 12),
2376
+ typeAnnotation: null,
2377
+ start: deserializeI32(pos),
2378
+ end: deserializeI32(pos + 4)
2379
+ };
2380
+ node.typeAnnotation = deserializeTSType(pos + 16);
2381
+ return node;
2382
+ }
2383
+ function deserializeTSTypeOperatorOperator(pos) {
2384
+ switch (uint8[pos]) {
2385
+ case 0: return "keyof";
2386
+ case 1: return "unique";
2387
+ case 2: return "readonly";
2388
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSTypeOperatorOperator`);
2389
+ }
2390
+ }
2391
+ function deserializeTSArrayType(pos) {
2392
+ let node = {
2393
+ type: "TSArrayType",
2394
+ elementType: null,
2395
+ start: deserializeI32(pos),
2396
+ end: deserializeI32(pos + 4)
2397
+ };
2398
+ node.elementType = deserializeTSType(pos + 16);
2399
+ return node;
2400
+ }
2401
+ function deserializeTSIndexedAccessType(pos) {
2402
+ let node = {
2403
+ type: "TSIndexedAccessType",
2404
+ objectType: null,
2405
+ indexType: null,
2406
+ start: deserializeI32(pos),
2407
+ end: deserializeI32(pos + 4)
2408
+ };
2409
+ node.objectType = deserializeTSType(pos + 16);
2410
+ node.indexType = deserializeTSType(pos + 32);
2411
+ return node;
2412
+ }
2413
+ function deserializeTSTupleType(pos) {
2414
+ let node = {
2415
+ type: "TSTupleType",
2416
+ elementTypes: null,
2417
+ start: deserializeI32(pos),
2418
+ end: deserializeI32(pos + 4)
2419
+ };
2420
+ node.elementTypes = deserializeVecTSTupleElement(pos + 16);
2421
+ return node;
2422
+ }
2423
+ function deserializeTSNamedTupleMember(pos) {
2424
+ let node = {
2425
+ type: "TSNamedTupleMember",
2426
+ label: null,
2427
+ elementType: null,
2428
+ optional: deserializeBool(pos + 12),
2429
+ start: deserializeI32(pos),
2430
+ end: deserializeI32(pos + 4)
2431
+ };
2432
+ node.label = deserializeIdentifierName(pos + 16);
2433
+ node.elementType = deserializeTSTupleElement(pos + 48);
2434
+ return node;
2435
+ }
2436
+ function deserializeTSOptionalType(pos) {
2437
+ let node = {
2438
+ type: "TSOptionalType",
2439
+ typeAnnotation: null,
2440
+ start: deserializeI32(pos),
2441
+ end: deserializeI32(pos + 4)
2442
+ };
2443
+ node.typeAnnotation = deserializeTSType(pos + 16);
2444
+ return node;
2445
+ }
2446
+ function deserializeTSRestType(pos) {
2447
+ let node = {
2448
+ type: "TSRestType",
2449
+ typeAnnotation: null,
2450
+ start: deserializeI32(pos),
2451
+ end: deserializeI32(pos + 4)
2452
+ };
2453
+ node.typeAnnotation = deserializeTSType(pos + 16);
2454
+ return node;
2455
+ }
2456
+ function deserializeTSTupleElement(pos) {
2457
+ switch (uint8[pos]) {
2458
+ case 0: return deserializeBoxTSAnyKeyword(pos + 8);
2459
+ case 1: return deserializeBoxTSBigIntKeyword(pos + 8);
2460
+ case 2: return deserializeBoxTSBooleanKeyword(pos + 8);
2461
+ case 3: return deserializeBoxTSIntrinsicKeyword(pos + 8);
2462
+ case 4: return deserializeBoxTSNeverKeyword(pos + 8);
2463
+ case 5: return deserializeBoxTSNullKeyword(pos + 8);
2464
+ case 6: return deserializeBoxTSNumberKeyword(pos + 8);
2465
+ case 7: return deserializeBoxTSObjectKeyword(pos + 8);
2466
+ case 8: return deserializeBoxTSStringKeyword(pos + 8);
2467
+ case 9: return deserializeBoxTSSymbolKeyword(pos + 8);
2468
+ case 10: return deserializeBoxTSThisType(pos + 8);
2469
+ case 11: return deserializeBoxTSUndefinedKeyword(pos + 8);
2470
+ case 12: return deserializeBoxTSUnknownKeyword(pos + 8);
2471
+ case 13: return deserializeBoxTSVoidKeyword(pos + 8);
2472
+ case 14: return deserializeBoxTSArrayType(pos + 8);
2473
+ case 15: return deserializeBoxTSConditionalType(pos + 8);
2474
+ case 16: return deserializeBoxTSConstructorType(pos + 8);
2475
+ case 17: return deserializeBoxTSFunctionType(pos + 8);
2476
+ case 18: return deserializeBoxTSImportType(pos + 8);
2477
+ case 19: return deserializeBoxTSIndexedAccessType(pos + 8);
2478
+ case 20: return deserializeBoxTSInferType(pos + 8);
2479
+ case 21: return deserializeBoxTSIntersectionType(pos + 8);
2480
+ case 22: return deserializeBoxTSLiteralType(pos + 8);
2481
+ case 23: return deserializeBoxTSMappedType(pos + 8);
2482
+ case 24: return deserializeBoxTSNamedTupleMember(pos + 8);
2483
+ case 26: return deserializeBoxTSTemplateLiteralType(pos + 8);
2484
+ case 27: return deserializeBoxTSTupleType(pos + 8);
2485
+ case 28: return deserializeBoxTSTypeLiteral(pos + 8);
2486
+ case 29: return deserializeBoxTSTypeOperator(pos + 8);
2487
+ case 30: return deserializeBoxTSTypePredicate(pos + 8);
2488
+ case 31: return deserializeBoxTSTypeQuery(pos + 8);
2489
+ case 32: return deserializeBoxTSTypeReference(pos + 8);
2490
+ case 33: return deserializeBoxTSUnionType(pos + 8);
2491
+ case 34: return deserializeBoxTSParenthesizedType(pos + 8);
2492
+ case 35: return deserializeBoxJSDocNullableType(pos + 8);
2493
+ case 36: return deserializeBoxJSDocNonNullableType(pos + 8);
2494
+ case 37: return deserializeBoxJSDocUnknownType(pos + 8);
2495
+ case 64: return deserializeBoxTSOptionalType(pos + 8);
2496
+ case 65: return deserializeBoxTSRestType(pos + 8);
2497
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSTupleElement`);
2498
+ }
2499
+ }
2500
+ function deserializeTSAnyKeyword(pos) {
2501
+ return {
2502
+ type: "TSAnyKeyword",
2503
+ start: deserializeI32(pos),
2504
+ end: deserializeI32(pos + 4)
2505
+ };
2506
+ }
2507
+ function deserializeTSStringKeyword(pos) {
2508
+ return {
2509
+ type: "TSStringKeyword",
2510
+ start: deserializeI32(pos),
2511
+ end: deserializeI32(pos + 4)
2512
+ };
2513
+ }
2514
+ function deserializeTSBooleanKeyword(pos) {
2515
+ return {
2516
+ type: "TSBooleanKeyword",
2517
+ start: deserializeI32(pos),
2518
+ end: deserializeI32(pos + 4)
2519
+ };
2520
+ }
2521
+ function deserializeTSNumberKeyword(pos) {
2522
+ return {
2523
+ type: "TSNumberKeyword",
2524
+ start: deserializeI32(pos),
2525
+ end: deserializeI32(pos + 4)
2526
+ };
2527
+ }
2528
+ function deserializeTSNeverKeyword(pos) {
2529
+ return {
2530
+ type: "TSNeverKeyword",
2531
+ start: deserializeI32(pos),
2532
+ end: deserializeI32(pos + 4)
2533
+ };
2534
+ }
2535
+ function deserializeTSIntrinsicKeyword(pos) {
2536
+ return {
2537
+ type: "TSIntrinsicKeyword",
2538
+ start: deserializeI32(pos),
2539
+ end: deserializeI32(pos + 4)
2540
+ };
2541
+ }
2542
+ function deserializeTSUnknownKeyword(pos) {
2543
+ return {
2544
+ type: "TSUnknownKeyword",
2545
+ start: deserializeI32(pos),
2546
+ end: deserializeI32(pos + 4)
2547
+ };
2548
+ }
2549
+ function deserializeTSNullKeyword(pos) {
2550
+ return {
2551
+ type: "TSNullKeyword",
2552
+ start: deserializeI32(pos),
2553
+ end: deserializeI32(pos + 4)
2554
+ };
2555
+ }
2556
+ function deserializeTSUndefinedKeyword(pos) {
2557
+ return {
2558
+ type: "TSUndefinedKeyword",
2559
+ start: deserializeI32(pos),
2560
+ end: deserializeI32(pos + 4)
2561
+ };
2562
+ }
2563
+ function deserializeTSVoidKeyword(pos) {
2564
+ return {
2565
+ type: "TSVoidKeyword",
2566
+ start: deserializeI32(pos),
2567
+ end: deserializeI32(pos + 4)
2568
+ };
2569
+ }
2570
+ function deserializeTSSymbolKeyword(pos) {
2571
+ return {
2572
+ type: "TSSymbolKeyword",
2573
+ start: deserializeI32(pos),
2574
+ end: deserializeI32(pos + 4)
2575
+ };
2576
+ }
2577
+ function deserializeTSThisType(pos) {
2578
+ return {
2579
+ type: "TSThisType",
2580
+ start: deserializeI32(pos),
2581
+ end: deserializeI32(pos + 4)
2582
+ };
2583
+ }
2584
+ function deserializeTSObjectKeyword(pos) {
2585
+ return {
2586
+ type: "TSObjectKeyword",
2587
+ start: deserializeI32(pos),
2588
+ end: deserializeI32(pos + 4)
2589
+ };
2590
+ }
2591
+ function deserializeTSBigIntKeyword(pos) {
2592
+ return {
2593
+ type: "TSBigIntKeyword",
2594
+ start: deserializeI32(pos),
2595
+ end: deserializeI32(pos + 4)
2596
+ };
2597
+ }
2598
+ function deserializeTSTypeReference(pos) {
2599
+ let node = {
2600
+ type: "TSTypeReference",
2601
+ typeName: null,
2602
+ typeArguments: null,
2603
+ start: deserializeI32(pos),
2604
+ end: deserializeI32(pos + 4)
2605
+ };
2606
+ node.typeName = deserializeTSTypeName(pos + 16);
2607
+ node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 32);
2608
+ return node;
2609
+ }
2610
+ function deserializeTSTypeName(pos) {
2611
+ switch (uint8[pos]) {
2612
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
2613
+ case 1: return deserializeBoxTSQualifiedName(pos + 8);
2614
+ case 2: return deserializeBoxThisExpression(pos + 8);
2615
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSTypeName`);
2616
+ }
2617
+ }
2618
+ function deserializeTSQualifiedName(pos) {
2619
+ let node = {
2620
+ type: "TSQualifiedName",
2621
+ left: null,
2622
+ right: null,
2623
+ start: deserializeI32(pos),
2624
+ end: deserializeI32(pos + 4)
2625
+ };
2626
+ node.left = deserializeTSTypeName(pos + 16);
2627
+ node.right = deserializeIdentifierName(pos + 32);
2628
+ return node;
2629
+ }
2630
+ function deserializeTSTypeParameterInstantiation(pos) {
2631
+ let node = {
2632
+ type: "TSTypeParameterInstantiation",
2633
+ params: null,
2634
+ start: deserializeI32(pos),
2635
+ end: deserializeI32(pos + 4)
2636
+ };
2637
+ node.params = deserializeVecTSType(pos + 16);
2638
+ return node;
2639
+ }
2640
+ function deserializeTSTypeParameter(pos) {
2641
+ let node = {
2642
+ type: "TSTypeParameter",
2643
+ name: null,
2644
+ constraint: null,
2645
+ default: null,
2646
+ in: deserializeBool(pos + 12),
2647
+ out: deserializeBool(pos + 13),
2648
+ const: deserializeBool(pos + 14),
2649
+ start: deserializeI32(pos),
2650
+ end: deserializeI32(pos + 4)
2651
+ };
2652
+ node.name = deserializeBindingIdentifier(pos + 16);
2653
+ node.constraint = deserializeOptionTSType(pos + 48);
2654
+ node.default = deserializeOptionTSType(pos + 64);
2655
+ return node;
2656
+ }
2657
+ function deserializeTSTypeParameterDeclaration(pos) {
2658
+ let node = {
2659
+ type: "TSTypeParameterDeclaration",
2660
+ params: null,
2661
+ start: deserializeI32(pos),
2662
+ end: deserializeI32(pos + 4)
2663
+ };
2664
+ node.params = deserializeVecTSTypeParameter(pos + 16);
2665
+ return node;
2666
+ }
2667
+ function deserializeTSTypeAliasDeclaration(pos) {
2668
+ let node = {
2669
+ type: "TSTypeAliasDeclaration",
2670
+ id: null,
2671
+ typeParameters: null,
2672
+ typeAnnotation: null,
2673
+ declare: deserializeBool(pos + 72),
2674
+ start: deserializeI32(pos),
2675
+ end: deserializeI32(pos + 4)
2676
+ };
2677
+ node.id = deserializeBindingIdentifier(pos + 16);
2678
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 48);
2679
+ node.typeAnnotation = deserializeTSType(pos + 56);
2680
+ return node;
2681
+ }
2682
+ function deserializeTSInterfaceDeclaration(pos) {
2683
+ let node = {
2684
+ type: "TSInterfaceDeclaration",
2685
+ id: null,
2686
+ typeParameters: null,
2687
+ extends: null,
2688
+ body: null,
2689
+ declare: deserializeBool(pos + 88),
2690
+ start: deserializeI32(pos),
2691
+ end: deserializeI32(pos + 4)
2692
+ };
2693
+ node.id = deserializeBindingIdentifier(pos + 16);
2694
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 48);
2695
+ node.extends = deserializeVecTSInterfaceHeritage(pos + 56);
2696
+ node.body = deserializeBoxTSInterfaceBody(pos + 80);
2697
+ return node;
2698
+ }
2699
+ function deserializeTSInterfaceBody(pos) {
2700
+ let node = {
2701
+ type: "TSInterfaceBody",
2702
+ body: null,
2703
+ start: deserializeI32(pos),
2704
+ end: deserializeI32(pos + 4)
2705
+ };
2706
+ node.body = deserializeVecTSSignature(pos + 16);
2707
+ return node;
2708
+ }
2709
+ function deserializeTSPropertySignature(pos) {
2710
+ let node = {
2711
+ type: "TSPropertySignature",
2712
+ computed: deserializeBool(pos + 12),
2713
+ optional: deserializeBool(pos + 13),
2714
+ readonly: deserializeBool(pos + 14),
2715
+ key: null,
2716
+ typeAnnotation: null,
2717
+ accessibility: null,
2718
+ static: false,
2719
+ start: deserializeI32(pos),
2720
+ end: deserializeI32(pos + 4)
2721
+ };
2722
+ node.key = deserializePropertyKey(pos + 16);
2723
+ node.typeAnnotation = deserializeOptionBoxTSTypeAnnotation(pos + 32);
2724
+ return node;
2725
+ }
2726
+ function deserializeTSSignature(pos) {
2727
+ switch (uint8[pos]) {
2728
+ case 0: return deserializeBoxTSIndexSignature(pos + 8);
2729
+ case 1: return deserializeBoxTSPropertySignature(pos + 8);
2730
+ case 2: return deserializeBoxTSCallSignatureDeclaration(pos + 8);
2731
+ case 3: return deserializeBoxTSConstructSignatureDeclaration(pos + 8);
2732
+ case 4: return deserializeBoxTSMethodSignature(pos + 8);
2733
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSSignature`);
2734
+ }
2735
+ }
2736
+ function deserializeTSIndexSignature(pos) {
2737
+ let node = {
2738
+ type: "TSIndexSignature",
2739
+ parameters: null,
2740
+ typeAnnotation: null,
2741
+ readonly: deserializeBool(pos + 12),
2742
+ static: deserializeBool(pos + 13),
2743
+ accessibility: null,
2744
+ start: deserializeI32(pos),
2745
+ end: deserializeI32(pos + 4)
2746
+ };
2747
+ node.parameters = [deserializeTSIndexSignatureName(pos + 16)];
2748
+ node.typeAnnotation = deserializeBoxTSTypeAnnotation(pos + 56);
2749
+ return node;
2750
+ }
2751
+ function deserializeTSCallSignatureDeclaration(pos) {
2752
+ let node = {
2753
+ type: "TSCallSignatureDeclaration",
2754
+ typeParameters: null,
2755
+ params: null,
2756
+ returnType: null,
2757
+ start: deserializeI32(pos),
2758
+ end: deserializeI32(pos + 4)
2759
+ }, params = deserializeBoxFormalParameters(pos + 32), thisParam = deserializeOptionBoxTSThisParameter(pos + 24);
2760
+ thisParam !== null && params.unshift(thisParam);
2761
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 16);
2762
+ node.params = params;
2763
+ node.returnType = deserializeOptionBoxTSTypeAnnotation(pos + 40);
2764
+ return node;
2765
+ }
2766
+ function deserializeTSMethodSignatureKind(pos) {
2767
+ switch (uint8[pos]) {
2768
+ case 0: return "method";
2769
+ case 1: return "get";
2770
+ case 2: return "set";
2771
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSMethodSignatureKind`);
2772
+ }
2773
+ }
2774
+ function deserializeTSMethodSignature(pos) {
2775
+ let node = {
2776
+ type: "TSMethodSignature",
2777
+ key: null,
2778
+ computed: deserializeBool(pos + 64),
2779
+ optional: deserializeBool(pos + 65),
2780
+ kind: deserializeTSMethodSignatureKind(pos + 66),
2781
+ typeParameters: null,
2782
+ params: null,
2783
+ returnType: null,
2784
+ accessibility: null,
2785
+ readonly: false,
2786
+ static: false,
2787
+ start: deserializeI32(pos),
2788
+ end: deserializeI32(pos + 4)
2789
+ }, params = deserializeBoxFormalParameters(pos + 48), thisParam = deserializeOptionBoxTSThisParameter(pos + 40);
2790
+ thisParam !== null && params.unshift(thisParam);
2791
+ node.key = deserializePropertyKey(pos + 16);
2792
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 32);
2793
+ node.params = params;
2794
+ node.returnType = deserializeOptionBoxTSTypeAnnotation(pos + 56);
2795
+ return node;
2796
+ }
2797
+ function deserializeTSConstructSignatureDeclaration(pos) {
2798
+ let node = {
2799
+ type: "TSConstructSignatureDeclaration",
2800
+ typeParameters: null,
2801
+ params: null,
2802
+ returnType: null,
2803
+ start: deserializeI32(pos),
2804
+ end: deserializeI32(pos + 4)
2805
+ };
2806
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 16);
2807
+ node.params = deserializeBoxFormalParameters(pos + 24);
2808
+ node.returnType = deserializeOptionBoxTSTypeAnnotation(pos + 32);
2809
+ return node;
2810
+ }
2811
+ function deserializeTSIndexSignatureName(pos) {
2812
+ let node = {
2813
+ type: "Identifier",
2814
+ decorators: [],
2815
+ name: deserializeStr(pos + 16),
2816
+ optional: false,
2817
+ typeAnnotation: null,
2818
+ start: deserializeI32(pos),
2819
+ end: deserializeI32(pos + 4)
2820
+ };
2821
+ node.typeAnnotation = deserializeBoxTSTypeAnnotation(pos + 32);
2822
+ return node;
2823
+ }
2824
+ function deserializeTSInterfaceHeritage(pos) {
2825
+ let node = {
2826
+ type: "TSInterfaceHeritage",
2827
+ expression: null,
2828
+ typeArguments: null,
2829
+ start: deserializeI32(pos),
2830
+ end: deserializeI32(pos + 4)
2831
+ }, expression = deserializeTSTypeName(pos + 16);
2832
+ if (expression.type === "TSQualifiedName") {
2833
+ let object = expression.left, { right } = expression, previous = expression = {
2834
+ type: "MemberExpression",
2835
+ object,
2836
+ property: right,
2837
+ optional: false,
2838
+ computed: false,
2839
+ start: expression.start,
2840
+ end: expression.end
2841
+ };
2842
+ for (; object.type === "TSQualifiedName";) {
2843
+ let { left, right } = object;
2844
+ previous = previous.object = {
2845
+ type: "MemberExpression",
2846
+ object: left,
2847
+ property: right,
2848
+ optional: false,
2849
+ computed: false,
2850
+ start: object.start,
2851
+ end: object.end
2852
+ };
2853
+ object = left;
2854
+ }
2855
+ }
2856
+ node.expression = expression;
2857
+ node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 32);
2858
+ return node;
2859
+ }
2860
+ function deserializeTSTypePredicate(pos) {
2861
+ let node = {
2862
+ type: "TSTypePredicate",
2863
+ parameterName: null,
2864
+ asserts: deserializeBool(pos + 12),
2865
+ typeAnnotation: null,
2866
+ start: deserializeI32(pos),
2867
+ end: deserializeI32(pos + 4)
2868
+ };
2869
+ node.parameterName = deserializeTSTypePredicateName(pos + 16);
2870
+ node.typeAnnotation = deserializeOptionBoxTSTypeAnnotation(pos + 32);
2871
+ return node;
2872
+ }
2873
+ function deserializeTSTypePredicateName(pos) {
2874
+ switch (uint8[pos]) {
2875
+ case 0: return deserializeBoxIdentifierName(pos + 8);
2876
+ case 1: return deserializeBoxTSThisType(pos + 8);
2877
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSTypePredicateName`);
2878
+ }
2879
+ }
2880
+ function deserializeTSExternalModuleDeclaration(pos) {
2881
+ let start = deserializeI32(pos), end = deserializeI32(pos + 4), declare = deserializeBool(pos + 72), body = deserializeOptionBoxTSModuleBlock(pos + 64), node = {
2882
+ type: "TSModuleDeclaration",
2883
+ id: null,
2884
+ ...body !== null && { body },
2885
+ kind: "module",
2886
+ declare,
2887
+ global: false,
2888
+ start,
2889
+ end
2890
+ };
2891
+ node.id = deserializeStringLiteral(pos + 16);
2892
+ return node;
2893
+ }
2894
+ function deserializeTSNamespaceDeclaration(pos) {
2895
+ let kind = deserializeTSNamespaceDeclarationKind(pos + 64), start = deserializeI32(pos), end = deserializeI32(pos + 4), declare = deserializeBool(pos + 65), body = deserializeTSNamespaceDeclarationBody(pos + 48), node = {
2896
+ type: "TSModuleDeclaration",
2897
+ id: null,
2898
+ body,
2899
+ kind,
2900
+ declare,
2901
+ global: false,
2902
+ start,
2903
+ end
2904
+ }, id = deserializeBindingIdentifier(pos + 16);
2905
+ if (body.type === "TSModuleBlock") node.id = id;
2906
+ else {
2907
+ let innerId = body.id;
2908
+ if (innerId.type === "Identifier") node.id = {
2909
+ type: "TSQualifiedName",
2910
+ left: id,
2911
+ right: innerId,
2912
+ start: id.start,
2913
+ end: innerId.end
2914
+ };
2915
+ else {
2916
+ node.id = innerId;
2917
+ let { start } = id;
2918
+ for (;;) {
2919
+ innerId.start = start;
2920
+ if (innerId.left.type === "Identifier") break;
2921
+ innerId = innerId.left;
2922
+ }
2923
+ let right = innerId.left;
2924
+ innerId.left = {
2925
+ type: "TSQualifiedName",
2926
+ left: id,
2927
+ right,
2928
+ start,
2929
+ end: right.end
2930
+ };
2931
+ }
2932
+ body = body.body;
2933
+ node.body = body;
2934
+ }
2935
+ return node;
2936
+ }
2937
+ function deserializeTSNamespaceDeclarationKind(pos) {
2938
+ switch (uint8[pos]) {
2939
+ case 0: return "module";
2940
+ case 1: return "namespace";
2941
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSNamespaceDeclarationKind`);
2942
+ }
2943
+ }
2944
+ function deserializeTSNamespaceDeclarationBody(pos) {
2945
+ switch (uint8[pos]) {
2946
+ case 0: return deserializeBoxTSNamespaceDeclaration(pos + 8);
2947
+ case 1: return deserializeBoxTSModuleBlock(pos + 8);
2948
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSNamespaceDeclarationBody`);
2949
+ }
2950
+ }
2951
+ function deserializeTSGlobalDeclaration(pos) {
2952
+ let node = {
2953
+ type: "TSModuleDeclaration",
2954
+ id: null,
2955
+ body: null,
2956
+ kind: "global",
2957
+ declare: deserializeBool(pos + 88),
2958
+ global: true,
2959
+ start: deserializeI32(pos),
2960
+ end: deserializeI32(pos + 4)
2961
+ };
2962
+ node.id = {
2963
+ type: "Identifier",
2964
+ name: "global",
2965
+ start: deserializeI32(pos + 16),
2966
+ end: deserializeI32(pos + 20)
2967
+ };
2968
+ node.body = deserializeTSModuleBlock(pos + 24);
2969
+ return node;
2970
+ }
2971
+ function deserializeTSModuleBlock(pos) {
2972
+ let node = {
2973
+ type: "TSModuleBlock",
2974
+ body: null,
2975
+ start: deserializeI32(pos),
2976
+ end: deserializeI32(pos + 4)
2977
+ }, body = deserializeVecDirective(pos + 16);
2978
+ body.push(...deserializeVecStatement(pos + 40));
2979
+ node.body = body;
2980
+ return node;
2981
+ }
2982
+ function deserializeTSTypeLiteral(pos) {
2983
+ let node = {
2984
+ type: "TSTypeLiteral",
2985
+ members: null,
2986
+ start: deserializeI32(pos),
2987
+ end: deserializeI32(pos + 4)
2988
+ };
2989
+ node.members = deserializeVecTSSignature(pos + 16);
2990
+ return node;
2991
+ }
2992
+ function deserializeTSInferType(pos) {
2993
+ let node = {
2994
+ type: "TSInferType",
2995
+ typeParameter: null,
2996
+ start: deserializeI32(pos),
2997
+ end: deserializeI32(pos + 4)
2998
+ };
2999
+ node.typeParameter = deserializeBoxTSTypeParameter(pos + 16);
3000
+ return node;
3001
+ }
3002
+ function deserializeTSTypeQuery(pos) {
3003
+ let node = {
3004
+ type: "TSTypeQuery",
3005
+ exprName: null,
3006
+ typeArguments: null,
3007
+ start: deserializeI32(pos),
3008
+ end: deserializeI32(pos + 4)
3009
+ };
3010
+ node.exprName = deserializeTSTypeQueryExprName(pos + 16);
3011
+ node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 32);
3012
+ return node;
3013
+ }
3014
+ function deserializeTSTypeQueryExprName(pos) {
3015
+ switch (uint8[pos]) {
3016
+ case 0: return deserializeBoxIdentifierReference(pos + 8);
3017
+ case 1: return deserializeBoxTSQualifiedName(pos + 8);
3018
+ case 2: return deserializeBoxThisExpression(pos + 8);
3019
+ case 3: return deserializeBoxTSImportType(pos + 8);
3020
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSTypeQueryExprName`);
3021
+ }
3022
+ }
3023
+ function deserializeTSImportType(pos) {
3024
+ let node = {
3025
+ type: "TSImportType",
3026
+ source: null,
3027
+ options: null,
3028
+ qualifier: null,
3029
+ typeArguments: null,
3030
+ start: deserializeI32(pos),
3031
+ end: deserializeI32(pos + 4)
3032
+ };
3033
+ node.source = deserializeStringLiteral(pos + 16);
3034
+ node.options = deserializeOptionBoxObjectExpression(pos + 64);
3035
+ node.qualifier = deserializeOptionTSImportTypeQualifier(pos + 72);
3036
+ node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 88);
3037
+ return node;
3038
+ }
3039
+ function deserializeTSImportTypeQualifier(pos) {
3040
+ switch (uint8[pos]) {
3041
+ case 0: return deserializeBoxIdentifierName(pos + 8);
3042
+ case 1: return deserializeBoxTSImportTypeQualifiedName(pos + 8);
3043
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSImportTypeQualifier`);
3044
+ }
3045
+ }
3046
+ function deserializeTSImportTypeQualifiedName(pos) {
3047
+ let node = {
3048
+ type: "TSQualifiedName",
3049
+ left: null,
3050
+ right: null,
3051
+ start: deserializeI32(pos),
3052
+ end: deserializeI32(pos + 4)
3053
+ };
3054
+ node.left = deserializeTSImportTypeQualifier(pos + 16);
3055
+ node.right = deserializeIdentifierName(pos + 32);
3056
+ return node;
3057
+ }
3058
+ function deserializeTSFunctionType(pos) {
3059
+ let node = {
3060
+ type: "TSFunctionType",
3061
+ typeParameters: null,
3062
+ params: null,
3063
+ returnType: null,
3064
+ start: deserializeI32(pos),
3065
+ end: deserializeI32(pos + 4)
3066
+ }, params = deserializeBoxFormalParameters(pos + 32), thisParam = deserializeOptionBoxTSThisParameter(pos + 24);
3067
+ thisParam !== null && params.unshift(thisParam);
3068
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 16);
3069
+ node.params = params;
3070
+ node.returnType = deserializeBoxTSTypeAnnotation(pos + 40);
3071
+ return node;
3072
+ }
3073
+ function deserializeTSConstructorType(pos) {
3074
+ let node = {
3075
+ type: "TSConstructorType",
3076
+ abstract: deserializeBool(pos + 40),
3077
+ typeParameters: null,
3078
+ params: null,
3079
+ returnType: null,
3080
+ start: deserializeI32(pos),
3081
+ end: deserializeI32(pos + 4)
3082
+ };
3083
+ node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 16);
3084
+ node.params = deserializeBoxFormalParameters(pos + 24);
3085
+ node.returnType = deserializeBoxTSTypeAnnotation(pos + 32);
3086
+ return node;
3087
+ }
3088
+ function deserializeTSMappedType(pos) {
3089
+ let node = {
3090
+ type: "TSMappedType",
3091
+ key: null,
3092
+ constraint: null,
3093
+ nameType: null,
3094
+ typeAnnotation: null,
3095
+ optional: null,
3096
+ readonly: deserializeOptionTSMappedTypeModifierOperator(pos + 97),
3097
+ start: deserializeI32(pos),
3098
+ end: deserializeI32(pos + 4)
3099
+ }, optional = deserializeOptionTSMappedTypeModifierOperator(pos + 96);
3100
+ optional === null && (optional = false);
3101
+ node.key = deserializeBindingIdentifier(pos + 16);
3102
+ node.constraint = deserializeTSType(pos + 48);
3103
+ node.nameType = deserializeOptionTSType(pos + 64);
3104
+ node.typeAnnotation = deserializeOptionTSType(pos + 80);
3105
+ node.optional = optional;
3106
+ return node;
3107
+ }
3108
+ function deserializeTSMappedTypeModifierOperator(pos) {
3109
+ switch (uint8[pos]) {
3110
+ case 0: return true;
3111
+ case 1: return "+";
3112
+ case 2: return "-";
3113
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSMappedTypeModifierOperator`);
3114
+ }
3115
+ }
3116
+ function deserializeTSTemplateLiteralType(pos) {
3117
+ let node = {
3118
+ type: "TSTemplateLiteralType",
3119
+ quasis: null,
3120
+ types: null,
3121
+ start: deserializeI32(pos),
3122
+ end: deserializeI32(pos + 4)
3123
+ };
3124
+ node.quasis = deserializeVecTemplateElement(pos + 16);
3125
+ node.types = deserializeVecTSType(pos + 40);
3126
+ return node;
3127
+ }
3128
+ function deserializeTSAsExpression(pos) {
3129
+ let node = {
3130
+ type: "TSAsExpression",
3131
+ expression: null,
3132
+ typeAnnotation: null,
3133
+ start: deserializeI32(pos),
3134
+ end: deserializeI32(pos + 4)
3135
+ };
3136
+ node.expression = deserializeExpression(pos + 16);
3137
+ node.typeAnnotation = deserializeTSType(pos + 32);
3138
+ return node;
3139
+ }
3140
+ function deserializeTSSatisfiesExpression(pos) {
3141
+ let node = {
3142
+ type: "TSSatisfiesExpression",
3143
+ expression: null,
3144
+ typeAnnotation: null,
3145
+ start: deserializeI32(pos),
3146
+ end: deserializeI32(pos + 4)
3147
+ };
3148
+ node.expression = deserializeExpression(pos + 16);
3149
+ node.typeAnnotation = deserializeTSType(pos + 32);
3150
+ return node;
3151
+ }
3152
+ function deserializeTSTypeAssertion(pos) {
3153
+ let node = {
3154
+ type: "TSTypeAssertion",
3155
+ typeAnnotation: null,
3156
+ expression: null,
3157
+ start: deserializeI32(pos),
3158
+ end: deserializeI32(pos + 4)
3159
+ };
3160
+ node.typeAnnotation = deserializeTSType(pos + 16);
3161
+ node.expression = deserializeExpression(pos + 32);
3162
+ return node;
3163
+ }
3164
+ function deserializeTSImportEqualsDeclaration(pos) {
3165
+ let node = {
3166
+ type: "TSImportEqualsDeclaration",
3167
+ id: null,
3168
+ moduleReference: null,
3169
+ importKind: deserializeImportOrExportKind(pos + 12),
3170
+ start: deserializeI32(pos),
3171
+ end: deserializeI32(pos + 4)
3172
+ };
3173
+ node.id = deserializeBindingIdentifier(pos + 16);
3174
+ node.moduleReference = deserializeTSModuleReference(pos + 48);
3175
+ return node;
3176
+ }
3177
+ function deserializeTSModuleReference(pos) {
3178
+ switch (uint8[pos]) {
3179
+ case 0: return deserializeBoxTSExternalModuleReference(pos + 8);
3180
+ case 1: return deserializeBoxIdentifierReference(pos + 8);
3181
+ case 2: return deserializeBoxTSQualifiedName(pos + 8);
3182
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for TSModuleReference`);
3183
+ }
3184
+ }
3185
+ function deserializeTSExternalModuleReference(pos) {
3186
+ let node = {
3187
+ type: "TSExternalModuleReference",
3188
+ expression: null,
3189
+ start: deserializeI32(pos),
3190
+ end: deserializeI32(pos + 4)
3191
+ };
3192
+ node.expression = deserializeStringLiteral(pos + 16);
3193
+ return node;
3194
+ }
3195
+ function deserializeTSNonNullExpression(pos) {
3196
+ let node = {
3197
+ type: "TSNonNullExpression",
3198
+ expression: null,
3199
+ start: deserializeI32(pos),
3200
+ end: deserializeI32(pos + 4)
3201
+ };
3202
+ node.expression = deserializeExpression(pos + 16);
3203
+ return node;
3204
+ }
3205
+ function deserializeDecorator(pos) {
3206
+ let node = {
3207
+ type: "Decorator",
3208
+ expression: null,
3209
+ start: deserializeI32(pos),
3210
+ end: deserializeI32(pos + 4)
3211
+ };
3212
+ node.expression = deserializeExpression(pos + 16);
3213
+ return node;
3214
+ }
3215
+ function deserializeTSExportAssignment(pos) {
3216
+ let node = {
3217
+ type: "TSExportAssignment",
3218
+ expression: null,
3219
+ start: deserializeI32(pos),
3220
+ end: deserializeI32(pos + 4)
3221
+ };
3222
+ node.expression = deserializeExpression(pos + 16);
3223
+ return node;
3224
+ }
3225
+ function deserializeTSNamespaceExportDeclaration(pos) {
3226
+ let node = {
3227
+ type: "TSNamespaceExportDeclaration",
3228
+ id: null,
3229
+ start: deserializeI32(pos),
3230
+ end: deserializeI32(pos + 4)
3231
+ };
3232
+ node.id = deserializeIdentifierName(pos + 16);
3233
+ return node;
3234
+ }
3235
+ function deserializeTSInstantiationExpression(pos) {
3236
+ let node = {
3237
+ type: "TSInstantiationExpression",
3238
+ expression: null,
3239
+ typeArguments: null,
3240
+ start: deserializeI32(pos),
3241
+ end: deserializeI32(pos + 4)
3242
+ };
3243
+ node.expression = deserializeExpression(pos + 16);
3244
+ node.typeArguments = deserializeBoxTSTypeParameterInstantiation(pos + 32);
3245
+ return node;
3246
+ }
3247
+ function deserializeImportOrExportKind(pos) {
3248
+ switch (uint8[pos]) {
3249
+ case 0: return "value";
3250
+ case 1: return "type";
3251
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ImportOrExportKind`);
3252
+ }
3253
+ }
3254
+ function deserializeJSDocNullableType(pos) {
3255
+ let node = {
3256
+ type: "TSJSDocNullableType",
3257
+ typeAnnotation: null,
3258
+ postfix: deserializeBool(pos + 12),
3259
+ start: deserializeI32(pos),
3260
+ end: deserializeI32(pos + 4)
3261
+ };
3262
+ node.typeAnnotation = deserializeTSType(pos + 16);
3263
+ return node;
3264
+ }
3265
+ function deserializeJSDocNonNullableType(pos) {
3266
+ let node = {
3267
+ type: "TSJSDocNonNullableType",
3268
+ typeAnnotation: null,
3269
+ postfix: deserializeBool(pos + 12),
3270
+ start: deserializeI32(pos),
3271
+ end: deserializeI32(pos + 4)
3272
+ };
3273
+ node.typeAnnotation = deserializeTSType(pos + 16);
3274
+ return node;
3275
+ }
3276
+ function deserializeJSDocUnknownType(pos) {
3277
+ return {
3278
+ type: "TSJSDocUnknownType",
3279
+ start: deserializeI32(pos),
3280
+ end: deserializeI32(pos + 4)
3281
+ };
3282
+ }
3283
+ function deserializeCommentKind(pos) {
3284
+ switch (uint8[pos]) {
3285
+ case 0: return "Line";
3286
+ case 1: return "Block";
3287
+ case 2: return "Block";
3288
+ case 3: return "Line";
3289
+ case 4: return "Line";
3290
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for CommentKind`);
3291
+ }
3292
+ }
3293
+ function deserializeComment(pos) {
3294
+ let type = deserializeCommentKind(pos + 17), start = deserializeI32(pos), end = deserializeI32(pos + 4), kind = deserializeU8(pos + 17);
3295
+ return {
3296
+ type,
3297
+ value: sourceText.slice(start + (kind < 3 ? 2 : kind), end - (type === "Line" ? 0 : 2)),
3298
+ start,
3299
+ end
3300
+ };
3301
+ }
3302
+ function deserializeModuleKind(pos) {
3303
+ switch (uint8[pos]) {
3304
+ case 0: return "script";
3305
+ case 1: return "module";
3306
+ case 3: return "commonjs";
3307
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ModuleKind`);
3308
+ }
3309
+ }
3310
+ function deserializeSpan(pos) {
3311
+ return {
3312
+ start: deserializeI32(pos),
3313
+ end: deserializeI32(pos + 4)
3314
+ };
3315
+ }
3316
+ function deserializeNameSpan(pos) {
3317
+ return {
3318
+ value: deserializeStr(pos + 8),
3319
+ start: deserializeI32(pos),
3320
+ end: deserializeI32(pos + 4)
3321
+ };
3322
+ }
3323
+ function deserializeImportEntry(pos) {
3324
+ return {
3325
+ importName: deserializeImportImportName(pos + 32),
3326
+ localName: deserializeNameSpan(pos + 64),
3327
+ isType: deserializeBool(pos + 88)
3328
+ };
3329
+ }
3330
+ function deserializeImportImportName(pos) {
3331
+ switch (uint8[pos]) {
3332
+ case 0:
3333
+ var nameSpan = deserializeNameSpan(pos + 8);
3334
+ return {
3335
+ kind: "Name",
3336
+ name: nameSpan.value,
3337
+ start: nameSpan.start,
3338
+ end: nameSpan.end
3339
+ };
3340
+ case 1: return {
3341
+ kind: "NamespaceObject",
3342
+ name: null,
3343
+ start: null,
3344
+ end: null
3345
+ };
3346
+ case 2:
3347
+ var { start, end } = deserializeSpan(pos + 8);
3348
+ return {
3349
+ kind: "Default",
3350
+ name: null,
3351
+ start,
3352
+ end
3353
+ };
3354
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ImportImportName`);
3355
+ }
3356
+ }
3357
+ function deserializeExportEntry(pos) {
3358
+ return {
3359
+ moduleRequest: deserializeOptionNameSpan(pos + 16),
3360
+ importName: deserializeExportImportName(pos + 40),
3361
+ exportName: deserializeExportExportName(pos + 72),
3362
+ localName: deserializeExportLocalName(pos + 104),
3363
+ isType: deserializeBool(pos + 136),
3364
+ start: deserializeI32(pos),
3365
+ end: deserializeI32(pos + 4)
3366
+ };
3367
+ }
3368
+ function deserializeExportImportName(pos) {
3369
+ switch (uint8[pos]) {
3370
+ case 0:
3371
+ var nameSpan = deserializeNameSpan(pos + 8);
3372
+ return {
3373
+ kind: "Name",
3374
+ name: nameSpan.value,
3375
+ start: nameSpan.start,
3376
+ end: nameSpan.end
3377
+ };
3378
+ case 1: return {
3379
+ kind: "All",
3380
+ name: null,
3381
+ start: null,
3382
+ end: null
3383
+ };
3384
+ case 2: return {
3385
+ kind: "AllButDefault",
3386
+ name: null,
3387
+ start: null,
3388
+ end: null
3389
+ };
3390
+ case 3: return {
3391
+ kind: "None",
3392
+ name: null,
3393
+ start: null,
3394
+ end: null
3395
+ };
3396
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ExportImportName`);
3397
+ }
3398
+ }
3399
+ function deserializeExportExportName(pos) {
3400
+ switch (uint8[pos]) {
3401
+ case 0:
3402
+ var nameSpan = deserializeNameSpan(pos + 8);
3403
+ return {
3404
+ kind: "Name",
3405
+ name: nameSpan.value,
3406
+ start: nameSpan.start,
3407
+ end: nameSpan.end
3408
+ };
3409
+ case 1:
3410
+ var { start, end } = deserializeSpan(pos + 8);
3411
+ return {
3412
+ kind: "Default",
3413
+ name: null,
3414
+ start,
3415
+ end
3416
+ };
3417
+ case 2: return {
3418
+ kind: "None",
3419
+ name: null,
3420
+ start: null,
3421
+ end: null
3422
+ };
3423
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ExportExportName`);
3424
+ }
3425
+ }
3426
+ function deserializeExportLocalName(pos) {
3427
+ switch (uint8[pos]) {
3428
+ case 0:
3429
+ var nameSpan = deserializeNameSpan(pos + 8);
3430
+ return {
3431
+ kind: "Name",
3432
+ name: nameSpan.value,
3433
+ start: nameSpan.start,
3434
+ end: nameSpan.end
3435
+ };
3436
+ case 1:
3437
+ var nameSpan = deserializeNameSpan(pos + 8);
3438
+ return {
3439
+ kind: "Default",
3440
+ name: nameSpan.value,
3441
+ start: nameSpan.start,
3442
+ end: nameSpan.end
3443
+ };
3444
+ case 2: return {
3445
+ kind: "None",
3446
+ name: null,
3447
+ start: null,
3448
+ end: null
3449
+ };
3450
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ExportLocalName`);
3451
+ }
3452
+ }
3453
+ function deserializeDynamicImport(pos) {
3454
+ return {
3455
+ moduleRequest: deserializeSpan(pos + 8),
3456
+ start: deserializeI32(pos),
3457
+ end: deserializeI32(pos + 4)
3458
+ };
3459
+ }
3460
+ function deserializeAssignmentOperator(pos) {
3461
+ switch (uint8[pos]) {
3462
+ case 0: return "=";
3463
+ case 1: return "+=";
3464
+ case 2: return "-=";
3465
+ case 3: return "*=";
3466
+ case 4: return "/=";
3467
+ case 5: return "%=";
3468
+ case 6: return "**=";
3469
+ case 7: return "<<=";
3470
+ case 8: return ">>=";
3471
+ case 9: return ">>>=";
3472
+ case 10: return "|=";
3473
+ case 11: return "^=";
3474
+ case 12: return "&=";
3475
+ case 13: return "||=";
3476
+ case 14: return "&&=";
3477
+ case 15: return "??=";
3478
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for AssignmentOperator`);
3479
+ }
3480
+ }
3481
+ function deserializeBinaryOperator(pos) {
3482
+ switch (uint8[pos]) {
3483
+ case 0: return "==";
3484
+ case 1: return "!=";
3485
+ case 2: return "===";
3486
+ case 3: return "!==";
3487
+ case 4: return "<";
3488
+ case 5: return "<=";
3489
+ case 6: return ">";
3490
+ case 7: return ">=";
3491
+ case 8: return "+";
3492
+ case 9: return "-";
3493
+ case 10: return "*";
3494
+ case 11: return "/";
3495
+ case 12: return "%";
3496
+ case 13: return "**";
3497
+ case 14: return "<<";
3498
+ case 15: return ">>";
3499
+ case 16: return ">>>";
3500
+ case 17: return "|";
3501
+ case 18: return "^";
3502
+ case 19: return "&";
3503
+ case 20: return "in";
3504
+ case 21: return "instanceof";
3505
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for BinaryOperator`);
3506
+ }
3507
+ }
3508
+ function deserializeLogicalOperator(pos) {
3509
+ switch (uint8[pos]) {
3510
+ case 0: return "||";
3511
+ case 1: return "&&";
3512
+ case 2: return "??";
3513
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for LogicalOperator`);
3514
+ }
3515
+ }
3516
+ function deserializeUnaryOperator(pos) {
3517
+ switch (uint8[pos]) {
3518
+ case 0: return "+";
3519
+ case 1: return "-";
3520
+ case 2: return "!";
3521
+ case 3: return "~";
3522
+ case 4: return "typeof";
3523
+ case 5: return "void";
3524
+ case 6: return "delete";
3525
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for UnaryOperator`);
3526
+ }
3527
+ }
3528
+ function deserializeUpdateOperator(pos) {
3529
+ switch (uint8[pos]) {
3530
+ case 0: return "++";
3531
+ case 1: return "--";
3532
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for UpdateOperator`);
3533
+ }
3534
+ }
3535
+ function deserializeRawTransferData(pos) {
3536
+ return {
3537
+ program: deserializeProgram(pos),
3538
+ comments: deserializeVecComment(pos + 144),
3539
+ module: deserializeEcmaScriptModule(pos + 168),
3540
+ errors: deserializeVecError(pos + 272)
3541
+ };
3542
+ }
3543
+ function deserializeError(pos) {
3544
+ return {
3545
+ severity: deserializeErrorSeverity(pos + 72),
3546
+ message: deserializeStr(pos),
3547
+ labels: deserializeVecErrorLabel(pos + 16),
3548
+ helpMessage: deserializeOptionStr(pos + 40),
3549
+ codeframe: deserializeStr(pos + 56)
3550
+ };
3551
+ }
3552
+ function deserializeErrorSeverity(pos) {
3553
+ switch (uint8[pos]) {
3554
+ case 0: return "Error";
3555
+ case 1: return "Warning";
3556
+ case 2: return "Advice";
3557
+ default: throw Error(`Unexpected discriminant ${uint8[pos]} for ErrorSeverity`);
3558
+ }
3559
+ }
3560
+ function deserializeErrorLabel(pos) {
3561
+ return {
3562
+ message: deserializeOptionStr(pos + 8),
3563
+ start: deserializeI32(pos),
3564
+ end: deserializeI32(pos + 4)
3565
+ };
3566
+ }
3567
+ function deserializeEcmaScriptModule(pos) {
3568
+ return {
3569
+ hasModuleSyntax: deserializeBool(pos + 96),
3570
+ staticImports: deserializeVecStaticImport(pos),
3571
+ staticExports: deserializeVecStaticExport(pos + 24),
3572
+ dynamicImports: deserializeVecDynamicImport(pos + 48),
3573
+ importMetas: deserializeVecSpan(pos + 72)
3574
+ };
3575
+ }
3576
+ function deserializeStaticImport(pos) {
3577
+ return {
3578
+ moduleRequest: deserializeNameSpan(pos + 8),
3579
+ entries: deserializeVecImportEntry(pos + 32),
3580
+ start: deserializeI32(pos),
3581
+ end: deserializeI32(pos + 4)
3582
+ };
3583
+ }
3584
+ function deserializeStaticExport(pos) {
3585
+ return {
3586
+ entries: deserializeVecExportEntry(pos + 8),
3587
+ start: deserializeI32(pos),
3588
+ end: deserializeI32(pos + 4)
3589
+ };
3590
+ }
3591
+ function deserializeStr(pos) {
3592
+ let pos32 = pos >> 2, len = int32[pos32 + 2];
3593
+ if (len === 0) return "";
3594
+ pos = int32[pos32];
3595
+ let end = pos + len, isInSourceRegion = pos >= sourceStartPos;
3596
+ if (isInSourceRegion && end <= firstNonAsciiPos) return sourceTextLatin.substr(pos - sourceStartPos, len);
3597
+ if (len > 64) return utf8Slice.call(uint8, pos, end);
3598
+ if (isInSourceRegion) {
3599
+ for (let i = pos; i < end; i++) if (uint8[i] >= 128) return utf8Slice.call(uint8, pos, end);
3600
+ return sourceTextLatin.substr(pos - sourceStartPos, len);
3601
+ }
3602
+ let arr = stringDecodeArrays[len];
3603
+ for (let i = 0; i < len; i++) {
3604
+ let b = uint8[pos + i];
3605
+ if (b >= 128) return utf8Slice.call(uint8, pos, end);
3606
+ arr[i] = b;
3607
+ }
3608
+ return fromCharCode.apply(null, arr);
3609
+ }
3610
+ function deserializeVecComment(pos) {
3611
+ let arr = [], pos32 = pos >> 2;
3612
+ pos = int32[pos32];
3613
+ let endPos = pos + int32[pos32 + 2] * 24;
3614
+ for (; pos !== endPos;) {
3615
+ arr.push(deserializeComment(pos));
3616
+ pos += 24;
3617
+ }
3618
+ return arr;
3619
+ }
3620
+ function deserializeOptionHashbang(pos) {
3621
+ return int32[(pos >> 2) + 4] === 0 && int32[(pos >> 2) + 5] === 0 ? null : deserializeHashbang(pos);
3622
+ }
3623
+ function deserializeVecDirective(pos) {
3624
+ let arr = [], pos32 = pos >> 2;
3625
+ pos = int32[pos32];
3626
+ let endPos = pos + int32[pos32 + 2] * 80;
3627
+ for (; pos !== endPos;) {
3628
+ arr.push(deserializeDirective(pos));
3629
+ pos += 80;
3630
+ }
3631
+ return arr;
3632
+ }
3633
+ function deserializeVecStatement(pos) {
3634
+ let arr = [], pos32 = pos >> 2;
3635
+ pos = int32[pos32];
3636
+ let endPos = pos + (int32[pos32 + 2] << 4);
3637
+ for (; pos !== endPos;) {
3638
+ arr.push(deserializeStatement(pos));
3639
+ pos += 16;
3640
+ }
3641
+ return arr;
3642
+ }
3643
+ function deserializeBoxBooleanLiteral(pos) {
3644
+ return deserializeBooleanLiteral(int32[pos >> 2]);
3645
+ }
3646
+ function deserializeBoxNullLiteral(pos) {
3647
+ return deserializeNullLiteral(int32[pos >> 2]);
3648
+ }
3649
+ function deserializeBoxNumericLiteral(pos) {
3650
+ return deserializeNumericLiteral(int32[pos >> 2]);
3651
+ }
3652
+ function deserializeBoxBigIntLiteral(pos) {
3653
+ return deserializeBigIntLiteral(int32[pos >> 2]);
3654
+ }
3655
+ function deserializeBoxRegExpLiteral(pos) {
3656
+ return deserializeRegExpLiteral(int32[pos >> 2]);
3657
+ }
3658
+ function deserializeBoxStringLiteral(pos) {
3659
+ return deserializeStringLiteral(int32[pos >> 2]);
3660
+ }
3661
+ function deserializeBoxTemplateLiteral(pos) {
3662
+ return deserializeTemplateLiteral(int32[pos >> 2]);
3663
+ }
3664
+ function deserializeBoxIdentifierReference(pos) {
3665
+ return deserializeIdentifierReference(int32[pos >> 2]);
3666
+ }
3667
+ function deserializeBoxSuper(pos) {
3668
+ return deserializeSuper(int32[pos >> 2]);
3669
+ }
3670
+ function deserializeBoxArrayExpression(pos) {
3671
+ return deserializeArrayExpression(int32[pos >> 2]);
3672
+ }
3673
+ function deserializeBoxArrowFunctionExpression(pos) {
3674
+ return deserializeArrowFunctionExpression(int32[pos >> 2]);
3675
+ }
3676
+ function deserializeBoxAssignmentExpression(pos) {
3677
+ return deserializeAssignmentExpression(int32[pos >> 2]);
3678
+ }
3679
+ function deserializeBoxAwaitExpression(pos) {
3680
+ return deserializeAwaitExpression(int32[pos >> 2]);
3681
+ }
3682
+ function deserializeBoxBinaryExpression(pos) {
3683
+ return deserializeBinaryExpression(int32[pos >> 2]);
3684
+ }
3685
+ function deserializeBoxCallExpression(pos) {
3686
+ return deserializeCallExpression(int32[pos >> 2]);
3687
+ }
3688
+ function deserializeBoxChainExpression(pos) {
3689
+ return deserializeChainExpression(int32[pos >> 2]);
3690
+ }
3691
+ function deserializeBoxClass(pos) {
3692
+ return deserializeClass(int32[pos >> 2]);
3693
+ }
3694
+ function deserializeBoxConditionalExpression(pos) {
3695
+ return deserializeConditionalExpression(int32[pos >> 2]);
3696
+ }
3697
+ function deserializeBoxFunction(pos) {
3698
+ return deserializeFunction(int32[pos >> 2]);
3699
+ }
3700
+ function deserializeBoxImportExpression(pos) {
3701
+ return deserializeImportExpression(int32[pos >> 2]);
3702
+ }
3703
+ function deserializeBoxLogicalExpression(pos) {
3704
+ return deserializeLogicalExpression(int32[pos >> 2]);
3705
+ }
3706
+ function deserializeBoxNewExpression(pos) {
3707
+ return deserializeNewExpression(int32[pos >> 2]);
3708
+ }
3709
+ function deserializeBoxObjectExpression(pos) {
3710
+ return deserializeObjectExpression(int32[pos >> 2]);
3711
+ }
3712
+ function deserializeBoxParenthesizedExpression(pos) {
3713
+ return deserializeParenthesizedExpression(int32[pos >> 2]);
3714
+ }
3715
+ function deserializeBoxSequenceExpression(pos) {
3716
+ return deserializeSequenceExpression(int32[pos >> 2]);
3717
+ }
3718
+ function deserializeBoxTaggedTemplateExpression(pos) {
3719
+ return deserializeTaggedTemplateExpression(int32[pos >> 2]);
3720
+ }
3721
+ function deserializeBoxThisExpression(pos) {
3722
+ return deserializeThisExpression(int32[pos >> 2]);
3723
+ }
3724
+ function deserializeBoxUnaryExpression(pos) {
3725
+ return deserializeUnaryExpression(int32[pos >> 2]);
3726
+ }
3727
+ function deserializeBoxUpdateExpression(pos) {
3728
+ return deserializeUpdateExpression(int32[pos >> 2]);
3729
+ }
3730
+ function deserializeBoxYieldExpression(pos) {
3731
+ return deserializeYieldExpression(int32[pos >> 2]);
3732
+ }
3733
+ function deserializeBoxPrivateInExpression(pos) {
3734
+ return deserializePrivateInExpression(int32[pos >> 2]);
3735
+ }
3736
+ function deserializeBoxImportMeta(pos) {
3737
+ return deserializeImportMeta(int32[pos >> 2]);
3738
+ }
3739
+ function deserializeBoxNewTarget(pos) {
3740
+ return deserializeNewTarget(int32[pos >> 2]);
3741
+ }
3742
+ function deserializeBoxJSXElement(pos) {
3743
+ return deserializeJSXElement(int32[pos >> 2]);
3744
+ }
3745
+ function deserializeBoxJSXFragment(pos) {
3746
+ return deserializeJSXFragment(int32[pos >> 2]);
3747
+ }
3748
+ function deserializeBoxTSAsExpression(pos) {
3749
+ return deserializeTSAsExpression(int32[pos >> 2]);
3750
+ }
3751
+ function deserializeBoxTSSatisfiesExpression(pos) {
3752
+ return deserializeTSSatisfiesExpression(int32[pos >> 2]);
3753
+ }
3754
+ function deserializeBoxTSTypeAssertion(pos) {
3755
+ return deserializeTSTypeAssertion(int32[pos >> 2]);
3756
+ }
3757
+ function deserializeBoxTSNonNullExpression(pos) {
3758
+ return deserializeTSNonNullExpression(int32[pos >> 2]);
3759
+ }
3760
+ function deserializeBoxTSInstantiationExpression(pos) {
3761
+ return deserializeTSInstantiationExpression(int32[pos >> 2]);
3762
+ }
3763
+ function deserializeBoxV8IntrinsicExpression(pos) {
3764
+ return deserializeV8IntrinsicExpression(int32[pos >> 2]);
3765
+ }
3766
+ function deserializeVecArrayExpressionElement(pos) {
3767
+ let arr = [], pos32 = pos >> 2;
3768
+ pos = int32[pos32];
3769
+ let endPos = pos + (int32[pos32 + 2] << 4);
3770
+ for (; pos !== endPos;) {
3771
+ arr.push(deserializeArrayExpressionElement(pos));
3772
+ pos += 16;
3773
+ }
3774
+ return arr;
3775
+ }
3776
+ function deserializeBoxSpreadElement(pos) {
3777
+ return deserializeSpreadElement(int32[pos >> 2]);
3778
+ }
3779
+ function deserializeBoxElision(pos) {
3780
+ return deserializeElision(int32[pos >> 2]);
3781
+ }
3782
+ function deserializeVecObjectPropertyKind(pos) {
3783
+ let arr = [], pos32 = pos >> 2;
3784
+ pos = int32[pos32];
3785
+ let endPos = pos + (int32[pos32 + 2] << 4);
3786
+ for (; pos !== endPos;) {
3787
+ arr.push(deserializeObjectPropertyKind(pos));
3788
+ pos += 16;
3789
+ }
3790
+ return arr;
3791
+ }
3792
+ function deserializeBoxObjectProperty(pos) {
3793
+ return deserializeObjectProperty(int32[pos >> 2]);
3794
+ }
3795
+ function deserializeBool(pos) {
3796
+ return uint8[pos] === 1;
3797
+ }
3798
+ function deserializeBoxIdentifierName(pos) {
3799
+ return deserializeIdentifierName(int32[pos >> 2]);
3800
+ }
3801
+ function deserializeBoxPrivateIdentifier(pos) {
3802
+ return deserializePrivateIdentifier(int32[pos >> 2]);
3803
+ }
3804
+ function deserializeVecTemplateElement(pos) {
3805
+ let arr = [], pos32 = pos >> 2;
3806
+ pos = int32[pos32];
3807
+ let endPos = pos + int32[pos32 + 2] * 48;
3808
+ for (; pos !== endPos;) {
3809
+ arr.push(deserializeTemplateElement(pos));
3810
+ pos += 48;
3811
+ }
3812
+ return arr;
3813
+ }
3814
+ function deserializeVecExpression(pos) {
3815
+ let arr = [], pos32 = pos >> 2;
3816
+ pos = int32[pos32];
3817
+ let endPos = pos + (int32[pos32 + 2] << 4);
3818
+ for (; pos !== endPos;) {
3819
+ arr.push(deserializeExpression(pos));
3820
+ pos += 16;
3821
+ }
3822
+ return arr;
3823
+ }
3824
+ function deserializeBoxTSTypeParameterInstantiation(pos) {
3825
+ return deserializeTSTypeParameterInstantiation(int32[pos >> 2]);
3826
+ }
3827
+ function deserializeOptionBoxTSTypeParameterInstantiation(pos) {
3828
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxTSTypeParameterInstantiation(pos);
3829
+ }
3830
+ function deserializeOptionStr(pos) {
3831
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeStr(pos);
3832
+ }
3833
+ function deserializeBoxComputedMemberExpression(pos) {
3834
+ return deserializeComputedMemberExpression(int32[pos >> 2]);
3835
+ }
3836
+ function deserializeBoxStaticMemberExpression(pos) {
3837
+ return deserializeStaticMemberExpression(int32[pos >> 2]);
3838
+ }
3839
+ function deserializeBoxPrivateFieldExpression(pos) {
3840
+ return deserializePrivateFieldExpression(int32[pos >> 2]);
3841
+ }
3842
+ function deserializeVecArgument(pos) {
3843
+ let arr = [], pos32 = pos >> 2;
3844
+ pos = int32[pos32];
3845
+ let endPos = pos + (int32[pos32 + 2] << 4);
3846
+ for (; pos !== endPos;) {
3847
+ arr.push(deserializeArgument(pos));
3848
+ pos += 16;
3849
+ }
3850
+ return arr;
3851
+ }
3852
+ function deserializeBoxArrayAssignmentTarget(pos) {
3853
+ return deserializeArrayAssignmentTarget(int32[pos >> 2]);
3854
+ }
3855
+ function deserializeBoxObjectAssignmentTarget(pos) {
3856
+ return deserializeObjectAssignmentTarget(int32[pos >> 2]);
3857
+ }
3858
+ function deserializeOptionAssignmentTargetMaybeDefault(pos) {
3859
+ return uint8[pos] === 255 ? null : deserializeAssignmentTargetMaybeDefault(pos);
3860
+ }
3861
+ function deserializeVecOptionAssignmentTargetMaybeDefault(pos) {
3862
+ let arr = [], pos32 = pos >> 2;
3863
+ pos = int32[pos32];
3864
+ let endPos = pos + (int32[pos32 + 2] << 4);
3865
+ for (; pos !== endPos;) {
3866
+ arr.push(deserializeOptionAssignmentTargetMaybeDefault(pos));
3867
+ pos += 16;
3868
+ }
3869
+ return arr;
3870
+ }
3871
+ function deserializeBoxAssignmentTargetRest(pos) {
3872
+ return deserializeAssignmentTargetRest(int32[pos >> 2]);
3873
+ }
3874
+ function deserializeOptionBoxAssignmentTargetRest(pos) {
3875
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxAssignmentTargetRest(pos);
3876
+ }
3877
+ function deserializeVecAssignmentTargetProperty(pos) {
3878
+ let arr = [], pos32 = pos >> 2;
3879
+ pos = int32[pos32];
3880
+ let endPos = pos + (int32[pos32 + 2] << 4);
3881
+ for (; pos !== endPos;) {
3882
+ arr.push(deserializeAssignmentTargetProperty(pos));
3883
+ pos += 16;
3884
+ }
3885
+ return arr;
3886
+ }
3887
+ function deserializeBoxAssignmentTargetWithDefault(pos) {
3888
+ return deserializeAssignmentTargetWithDefault(int32[pos >> 2]);
3889
+ }
3890
+ function deserializeBoxAssignmentTargetPropertyIdentifier(pos) {
3891
+ return deserializeAssignmentTargetPropertyIdentifier(int32[pos >> 2]);
3892
+ }
3893
+ function deserializeBoxAssignmentTargetPropertyProperty(pos) {
3894
+ return deserializeAssignmentTargetPropertyProperty(int32[pos >> 2]);
3895
+ }
3896
+ function deserializeOptionExpression(pos) {
3897
+ return uint8[pos] === 255 ? null : deserializeExpression(pos);
3898
+ }
3899
+ function deserializeBoxBlockStatement(pos) {
3900
+ return deserializeBlockStatement(int32[pos >> 2]);
3901
+ }
3902
+ function deserializeBoxBreakStatement(pos) {
3903
+ return deserializeBreakStatement(int32[pos >> 2]);
3904
+ }
3905
+ function deserializeBoxContinueStatement(pos) {
3906
+ return deserializeContinueStatement(int32[pos >> 2]);
3907
+ }
3908
+ function deserializeBoxDebuggerStatement(pos) {
3909
+ return deserializeDebuggerStatement(int32[pos >> 2]);
3910
+ }
3911
+ function deserializeBoxDoWhileStatement(pos) {
3912
+ return deserializeDoWhileStatement(int32[pos >> 2]);
3913
+ }
3914
+ function deserializeBoxEmptyStatement(pos) {
3915
+ return deserializeEmptyStatement(int32[pos >> 2]);
3916
+ }
3917
+ function deserializeBoxExpressionStatement(pos) {
3918
+ return deserializeExpressionStatement(int32[pos >> 2]);
3919
+ }
3920
+ function deserializeBoxForInStatement(pos) {
3921
+ return deserializeForInStatement(int32[pos >> 2]);
3922
+ }
3923
+ function deserializeBoxForOfStatement(pos) {
3924
+ return deserializeForOfStatement(int32[pos >> 2]);
3925
+ }
3926
+ function deserializeBoxForStatement(pos) {
3927
+ return deserializeForStatement(int32[pos >> 2]);
3928
+ }
3929
+ function deserializeBoxIfStatement(pos) {
3930
+ return deserializeIfStatement(int32[pos >> 2]);
3931
+ }
3932
+ function deserializeBoxLabeledStatement(pos) {
3933
+ return deserializeLabeledStatement(int32[pos >> 2]);
3934
+ }
3935
+ function deserializeBoxReturnStatement(pos) {
3936
+ return deserializeReturnStatement(int32[pos >> 2]);
3937
+ }
3938
+ function deserializeBoxSwitchStatement(pos) {
3939
+ return deserializeSwitchStatement(int32[pos >> 2]);
3940
+ }
3941
+ function deserializeBoxThrowStatement(pos) {
3942
+ return deserializeThrowStatement(int32[pos >> 2]);
3943
+ }
3944
+ function deserializeBoxTryStatement(pos) {
3945
+ return deserializeTryStatement(int32[pos >> 2]);
3946
+ }
3947
+ function deserializeBoxWhileStatement(pos) {
3948
+ return deserializeWhileStatement(int32[pos >> 2]);
3949
+ }
3950
+ function deserializeBoxWithStatement(pos) {
3951
+ return deserializeWithStatement(int32[pos >> 2]);
3952
+ }
3953
+ function deserializeBoxVariableDeclaration(pos) {
3954
+ return deserializeVariableDeclaration(int32[pos >> 2]);
3955
+ }
3956
+ function deserializeBoxTSTypeAliasDeclaration(pos) {
3957
+ return deserializeTSTypeAliasDeclaration(int32[pos >> 2]);
3958
+ }
3959
+ function deserializeBoxTSInterfaceDeclaration(pos) {
3960
+ return deserializeTSInterfaceDeclaration(int32[pos >> 2]);
3961
+ }
3962
+ function deserializeBoxTSEnumDeclaration(pos) {
3963
+ return deserializeTSEnumDeclaration(int32[pos >> 2]);
3964
+ }
3965
+ function deserializeBoxTSExternalModuleDeclaration(pos) {
3966
+ return deserializeTSExternalModuleDeclaration(int32[pos >> 2]);
3967
+ }
3968
+ function deserializeBoxTSNamespaceDeclaration(pos) {
3969
+ return deserializeTSNamespaceDeclaration(int32[pos >> 2]);
3970
+ }
3971
+ function deserializeBoxTSGlobalDeclaration(pos) {
3972
+ return deserializeTSGlobalDeclaration(int32[pos >> 2]);
3973
+ }
3974
+ function deserializeBoxTSImportEqualsDeclaration(pos) {
3975
+ return deserializeTSImportEqualsDeclaration(int32[pos >> 2]);
3976
+ }
3977
+ function deserializeVecVariableDeclarator(pos) {
3978
+ let arr = [], pos32 = pos >> 2;
3979
+ pos = int32[pos32];
3980
+ let endPos = pos + int32[pos32 + 2] * 56;
3981
+ for (; pos !== endPos;) {
3982
+ arr.push(deserializeVariableDeclarator(pos));
3983
+ pos += 56;
3984
+ }
3985
+ return arr;
3986
+ }
3987
+ function deserializeBoxTSTypeAnnotation(pos) {
3988
+ return deserializeTSTypeAnnotation(int32[pos >> 2]);
3989
+ }
3990
+ function deserializeOptionBoxTSTypeAnnotation(pos) {
3991
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxTSTypeAnnotation(pos);
3992
+ }
3993
+ function deserializeOptionStatement(pos) {
3994
+ return uint8[pos] === 255 ? null : deserializeStatement(pos);
3995
+ }
3996
+ function deserializeOptionForStatementInit(pos) {
3997
+ return uint8[pos] === 255 ? null : deserializeForStatementInit(pos);
3998
+ }
3999
+ function deserializeOptionLabelIdentifier(pos) {
4000
+ return int32[(pos >> 2) + 4] === 0 && int32[(pos >> 2) + 5] === 0 ? null : deserializeLabelIdentifier(pos);
4001
+ }
4002
+ function deserializeVecSwitchCase(pos) {
4003
+ let arr = [], pos32 = pos >> 2;
4004
+ pos = int32[pos32];
4005
+ let endPos = pos + int32[pos32 + 2] * 56;
4006
+ for (; pos !== endPos;) {
4007
+ arr.push(deserializeSwitchCase(pos));
4008
+ pos += 56;
4009
+ }
4010
+ return arr;
4011
+ }
4012
+ function deserializeBoxCatchClause(pos) {
4013
+ return deserializeCatchClause(int32[pos >> 2]);
4014
+ }
4015
+ function deserializeOptionBoxCatchClause(pos) {
4016
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxCatchClause(pos);
4017
+ }
4018
+ function deserializeOptionBoxBlockStatement(pos) {
4019
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxBlockStatement(pos);
4020
+ }
4021
+ function deserializeOptionCatchParameter(pos) {
4022
+ return uint8[pos + 16] === 255 ? null : deserializeCatchParameter(pos);
4023
+ }
4024
+ function deserializeBoxBindingIdentifier(pos) {
4025
+ return deserializeBindingIdentifier(int32[pos >> 2]);
4026
+ }
4027
+ function deserializeBoxObjectPattern(pos) {
4028
+ return deserializeObjectPattern(int32[pos >> 2]);
4029
+ }
4030
+ function deserializeBoxArrayPattern(pos) {
4031
+ return deserializeArrayPattern(int32[pos >> 2]);
4032
+ }
4033
+ function deserializeBoxAssignmentPattern(pos) {
4034
+ return deserializeAssignmentPattern(int32[pos >> 2]);
4035
+ }
4036
+ function deserializeVecBindingProperty(pos) {
4037
+ let arr = [], pos32 = pos >> 2;
4038
+ pos = int32[pos32];
4039
+ let endPos = pos + int32[pos32 + 2] * 48;
4040
+ for (; pos !== endPos;) {
4041
+ arr.push(deserializeBindingProperty(pos));
4042
+ pos += 48;
4043
+ }
4044
+ return arr;
4045
+ }
4046
+ function deserializeBoxBindingRestElement(pos) {
4047
+ return deserializeBindingRestElement(int32[pos >> 2]);
4048
+ }
4049
+ function deserializeOptionBoxBindingRestElement(pos) {
4050
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxBindingRestElement(pos);
4051
+ }
4052
+ function deserializeOptionBindingPattern(pos) {
4053
+ return uint8[pos] === 255 ? null : deserializeBindingPattern(pos);
4054
+ }
4055
+ function deserializeVecOptionBindingPattern(pos) {
4056
+ let arr = [], pos32 = pos >> 2;
4057
+ pos = int32[pos32];
4058
+ let endPos = pos + (int32[pos32 + 2] << 4);
4059
+ for (; pos !== endPos;) {
4060
+ arr.push(deserializeOptionBindingPattern(pos));
4061
+ pos += 16;
4062
+ }
4063
+ return arr;
4064
+ }
4065
+ function deserializeOptionBindingIdentifier(pos) {
4066
+ return int32[(pos >> 2) + 4] === 0 && int32[(pos >> 2) + 5] === 0 ? null : deserializeBindingIdentifier(pos);
4067
+ }
4068
+ function deserializeBoxTSTypeParameterDeclaration(pos) {
4069
+ return deserializeTSTypeParameterDeclaration(int32[pos >> 2]);
4070
+ }
4071
+ function deserializeOptionBoxTSTypeParameterDeclaration(pos) {
4072
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxTSTypeParameterDeclaration(pos);
4073
+ }
4074
+ function deserializeBoxTSThisParameter(pos) {
4075
+ return deserializeTSThisParameter(int32[pos >> 2]);
4076
+ }
4077
+ function deserializeOptionBoxTSThisParameter(pos) {
4078
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxTSThisParameter(pos);
4079
+ }
4080
+ function deserializeBoxFormalParameters(pos) {
4081
+ return deserializeFormalParameters(int32[pos >> 2]);
4082
+ }
4083
+ function deserializeBoxFunctionBody(pos) {
4084
+ return deserializeFunctionBody(int32[pos >> 2]);
4085
+ }
4086
+ function deserializeOptionBoxFunctionBody(pos) {
4087
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxFunctionBody(pos);
4088
+ }
4089
+ function deserializeVecFormalParameter(pos) {
4090
+ let arr = [], pos32 = pos >> 2;
4091
+ pos = int32[pos32];
4092
+ let endPos = pos + int32[pos32 + 2] * 72;
4093
+ for (; pos !== endPos;) {
4094
+ arr.push(deserializeFormalParameter(pos));
4095
+ pos += 72;
4096
+ }
4097
+ return arr;
4098
+ }
4099
+ function deserializeVecDecorator(pos) {
4100
+ let arr = [], pos32 = pos >> 2;
4101
+ pos = int32[pos32];
4102
+ let endPos = pos + (int32[pos32 + 2] << 5);
4103
+ for (; pos !== endPos;) {
4104
+ arr.push(deserializeDecorator(pos));
4105
+ pos += 32;
4106
+ }
4107
+ return arr;
4108
+ }
4109
+ function deserializeBoxExpression(pos) {
4110
+ return deserializeExpression(int32[pos >> 2]);
4111
+ }
4112
+ function deserializeOptionBoxExpression(pos) {
4113
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxExpression(pos);
4114
+ }
4115
+ function deserializeBoxClassBody(pos) {
4116
+ return deserializeClassBody(int32[pos >> 2]);
4117
+ }
4118
+ function deserializeVecClassElement(pos) {
4119
+ let arr = [], pos32 = pos >> 2;
4120
+ pos = int32[pos32];
4121
+ let endPos = pos + (int32[pos32 + 2] << 4);
4122
+ for (; pos !== endPos;) {
4123
+ arr.push(deserializeClassElement(pos));
4124
+ pos += 16;
4125
+ }
4126
+ return arr;
4127
+ }
4128
+ function deserializeBoxStaticBlock(pos) {
4129
+ return deserializeStaticBlock(int32[pos >> 2]);
4130
+ }
4131
+ function deserializeBoxMethodDefinition(pos) {
4132
+ return deserializeMethodDefinition(int32[pos >> 2]);
4133
+ }
4134
+ function deserializeBoxPropertyDefinition(pos) {
4135
+ return deserializePropertyDefinition(int32[pos >> 2]);
4136
+ }
4137
+ function deserializeBoxAccessorProperty(pos) {
4138
+ return deserializeAccessorProperty(int32[pos >> 2]);
4139
+ }
4140
+ function deserializeBoxTSIndexSignature(pos) {
4141
+ return deserializeTSIndexSignature(int32[pos >> 2]);
4142
+ }
4143
+ function deserializeBoxImportDeclaration(pos) {
4144
+ return deserializeImportDeclaration(int32[pos >> 2]);
4145
+ }
4146
+ function deserializeBoxExportAllDeclaration(pos) {
4147
+ return deserializeExportAllDeclaration(int32[pos >> 2]);
4148
+ }
4149
+ function deserializeBoxExportDefaultDeclaration(pos) {
4150
+ return deserializeExportDefaultDeclaration(int32[pos >> 2]);
4151
+ }
4152
+ function deserializeBoxExportDeclaration(pos) {
4153
+ return deserializeExportDeclaration(int32[pos >> 2]);
4154
+ }
4155
+ function deserializeBoxExportNamedDeclaration(pos) {
4156
+ return deserializeExportNamedDeclaration(int32[pos >> 2]);
4157
+ }
4158
+ function deserializeBoxExportFromDeclaration(pos) {
4159
+ return deserializeExportFromDeclaration(int32[pos >> 2]);
4160
+ }
4161
+ function deserializeBoxTSExportAssignment(pos) {
4162
+ return deserializeTSExportAssignment(int32[pos >> 2]);
4163
+ }
4164
+ function deserializeBoxTSNamespaceExportDeclaration(pos) {
4165
+ return deserializeTSNamespaceExportDeclaration(int32[pos >> 2]);
4166
+ }
4167
+ function deserializeOptionImportPhase(pos) {
4168
+ return uint8[pos] === 2 ? null : deserializeImportPhase(pos);
4169
+ }
4170
+ function deserializeVecImportDeclarationSpecifier(pos) {
4171
+ let arr = [], pos32 = pos >> 2;
4172
+ pos = int32[pos32];
4173
+ let endPos = pos + (int32[pos32 + 2] << 4);
4174
+ for (; pos !== endPos;) {
4175
+ arr.push(deserializeImportDeclarationSpecifier(pos));
4176
+ pos += 16;
4177
+ }
4178
+ return arr;
4179
+ }
4180
+ function deserializeOptionVecImportDeclarationSpecifier(pos) {
4181
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeVecImportDeclarationSpecifier(pos);
4182
+ }
4183
+ function deserializeBoxWithClause(pos) {
4184
+ return deserializeWithClause(int32[pos >> 2]);
4185
+ }
4186
+ function deserializeOptionBoxWithClause(pos) {
4187
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxWithClause(pos);
4188
+ }
4189
+ function deserializeBoxImportSpecifier(pos) {
4190
+ return deserializeImportSpecifier(int32[pos >> 2]);
4191
+ }
4192
+ function deserializeBoxImportDefaultSpecifier(pos) {
4193
+ return deserializeImportDefaultSpecifier(int32[pos >> 2]);
4194
+ }
4195
+ function deserializeBoxImportNamespaceSpecifier(pos) {
4196
+ return deserializeImportNamespaceSpecifier(int32[pos >> 2]);
4197
+ }
4198
+ function deserializeVecImportAttribute(pos) {
4199
+ let arr = [], pos32 = pos >> 2;
4200
+ pos = int32[pos32];
4201
+ let endPos = pos + int32[pos32 + 2] * 120;
4202
+ for (; pos !== endPos;) {
4203
+ arr.push(deserializeImportAttribute(pos));
4204
+ pos += 120;
4205
+ }
4206
+ return arr;
4207
+ }
4208
+ function deserializeVecExportSpecifier(pos) {
4209
+ let arr = [], pos32 = pos >> 2;
4210
+ pos = int32[pos32];
4211
+ let endPos = pos + (int32[pos32 + 2] << 7);
4212
+ for (; pos !== endPos;) {
4213
+ arr.push(deserializeExportSpecifier(pos));
4214
+ pos += 128;
4215
+ }
4216
+ return arr;
4217
+ }
4218
+ function deserializeOptionModuleExportName(pos) {
4219
+ return uint8[pos] === 255 ? null : deserializeModuleExportName(pos);
4220
+ }
4221
+ function deserializeF64(pos) {
4222
+ return float64[pos >> 3];
4223
+ }
4224
+ function deserializeU8(pos) {
4225
+ return uint8[pos];
4226
+ }
4227
+ function deserializeBoxJSXOpeningElement(pos) {
4228
+ return deserializeJSXOpeningElement(int32[pos >> 2]);
4229
+ }
4230
+ function deserializeVecJSXChild(pos) {
4231
+ let arr = [], pos32 = pos >> 2;
4232
+ pos = int32[pos32];
4233
+ let endPos = pos + (int32[pos32 + 2] << 4);
4234
+ for (; pos !== endPos;) {
4235
+ arr.push(deserializeJSXChild(pos));
4236
+ pos += 16;
4237
+ }
4238
+ return arr;
4239
+ }
4240
+ function deserializeBoxJSXClosingElement(pos) {
4241
+ return deserializeJSXClosingElement(int32[pos >> 2]);
4242
+ }
4243
+ function deserializeOptionBoxJSXClosingElement(pos) {
4244
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxJSXClosingElement(pos);
4245
+ }
4246
+ function deserializeVecJSXAttributeItem(pos) {
4247
+ let arr = [], pos32 = pos >> 2;
4248
+ pos = int32[pos32];
4249
+ let endPos = pos + (int32[pos32 + 2] << 4);
4250
+ for (; pos !== endPos;) {
4251
+ arr.push(deserializeJSXAttributeItem(pos));
4252
+ pos += 16;
4253
+ }
4254
+ return arr;
4255
+ }
4256
+ function deserializeBoxJSXIdentifier(pos) {
4257
+ return deserializeJSXIdentifier(int32[pos >> 2]);
4258
+ }
4259
+ function deserializeBoxJSXNamespacedName(pos) {
4260
+ return deserializeJSXNamespacedName(int32[pos >> 2]);
4261
+ }
4262
+ function deserializeBoxJSXMemberExpression(pos) {
4263
+ return deserializeJSXMemberExpression(int32[pos >> 2]);
4264
+ }
4265
+ function deserializeBoxJSXEmptyExpression(pos) {
4266
+ return deserializeJSXEmptyExpression(int32[pos >> 2]);
4267
+ }
4268
+ function deserializeBoxJSXAttribute(pos) {
4269
+ return deserializeJSXAttribute(int32[pos >> 2]);
4270
+ }
4271
+ function deserializeBoxJSXSpreadAttribute(pos) {
4272
+ return deserializeJSXSpreadAttribute(int32[pos >> 2]);
4273
+ }
4274
+ function deserializeOptionJSXAttributeValue(pos) {
4275
+ return uint8[pos] === 255 ? null : deserializeJSXAttributeValue(pos);
4276
+ }
4277
+ function deserializeBoxJSXExpressionContainer(pos) {
4278
+ return deserializeJSXExpressionContainer(int32[pos >> 2]);
4279
+ }
4280
+ function deserializeBoxJSXText(pos) {
4281
+ return deserializeJSXText(int32[pos >> 2]);
4282
+ }
4283
+ function deserializeBoxJSXSpreadChild(pos) {
4284
+ return deserializeJSXSpreadChild(int32[pos >> 2]);
4285
+ }
4286
+ function deserializeVecTSEnumMember(pos) {
4287
+ let arr = [], pos32 = pos >> 2;
4288
+ pos = int32[pos32];
4289
+ let endPos = pos + int32[pos32 + 2] * 48;
4290
+ for (; pos !== endPos;) {
4291
+ arr.push(deserializeTSEnumMember(pos));
4292
+ pos += 48;
4293
+ }
4294
+ return arr;
4295
+ }
4296
+ function deserializeBoxTSAnyKeyword(pos) {
4297
+ return deserializeTSAnyKeyword(int32[pos >> 2]);
4298
+ }
4299
+ function deserializeBoxTSBigIntKeyword(pos) {
4300
+ return deserializeTSBigIntKeyword(int32[pos >> 2]);
4301
+ }
4302
+ function deserializeBoxTSBooleanKeyword(pos) {
4303
+ return deserializeTSBooleanKeyword(int32[pos >> 2]);
4304
+ }
4305
+ function deserializeBoxTSIntrinsicKeyword(pos) {
4306
+ return deserializeTSIntrinsicKeyword(int32[pos >> 2]);
4307
+ }
4308
+ function deserializeBoxTSNeverKeyword(pos) {
4309
+ return deserializeTSNeverKeyword(int32[pos >> 2]);
4310
+ }
4311
+ function deserializeBoxTSNullKeyword(pos) {
4312
+ return deserializeTSNullKeyword(int32[pos >> 2]);
4313
+ }
4314
+ function deserializeBoxTSNumberKeyword(pos) {
4315
+ return deserializeTSNumberKeyword(int32[pos >> 2]);
4316
+ }
4317
+ function deserializeBoxTSObjectKeyword(pos) {
4318
+ return deserializeTSObjectKeyword(int32[pos >> 2]);
4319
+ }
4320
+ function deserializeBoxTSStringKeyword(pos) {
4321
+ return deserializeTSStringKeyword(int32[pos >> 2]);
4322
+ }
4323
+ function deserializeBoxTSSymbolKeyword(pos) {
4324
+ return deserializeTSSymbolKeyword(int32[pos >> 2]);
4325
+ }
4326
+ function deserializeBoxTSUndefinedKeyword(pos) {
4327
+ return deserializeTSUndefinedKeyword(int32[pos >> 2]);
4328
+ }
4329
+ function deserializeBoxTSUnknownKeyword(pos) {
4330
+ return deserializeTSUnknownKeyword(int32[pos >> 2]);
4331
+ }
4332
+ function deserializeBoxTSVoidKeyword(pos) {
4333
+ return deserializeTSVoidKeyword(int32[pos >> 2]);
4334
+ }
4335
+ function deserializeBoxTSArrayType(pos) {
4336
+ return deserializeTSArrayType(int32[pos >> 2]);
4337
+ }
4338
+ function deserializeBoxTSConditionalType(pos) {
4339
+ return deserializeTSConditionalType(int32[pos >> 2]);
4340
+ }
4341
+ function deserializeBoxTSConstructorType(pos) {
4342
+ return deserializeTSConstructorType(int32[pos >> 2]);
4343
+ }
4344
+ function deserializeBoxTSFunctionType(pos) {
4345
+ return deserializeTSFunctionType(int32[pos >> 2]);
4346
+ }
4347
+ function deserializeBoxTSImportType(pos) {
4348
+ return deserializeTSImportType(int32[pos >> 2]);
4349
+ }
4350
+ function deserializeBoxTSIndexedAccessType(pos) {
4351
+ return deserializeTSIndexedAccessType(int32[pos >> 2]);
4352
+ }
4353
+ function deserializeBoxTSInferType(pos) {
4354
+ return deserializeTSInferType(int32[pos >> 2]);
4355
+ }
4356
+ function deserializeBoxTSIntersectionType(pos) {
4357
+ return deserializeTSIntersectionType(int32[pos >> 2]);
4358
+ }
4359
+ function deserializeBoxTSLiteralType(pos) {
4360
+ return deserializeTSLiteralType(int32[pos >> 2]);
4361
+ }
4362
+ function deserializeBoxTSMappedType(pos) {
4363
+ return deserializeTSMappedType(int32[pos >> 2]);
4364
+ }
4365
+ function deserializeBoxTSNamedTupleMember(pos) {
4366
+ return deserializeTSNamedTupleMember(int32[pos >> 2]);
4367
+ }
4368
+ function deserializeBoxTSTemplateLiteralType(pos) {
4369
+ return deserializeTSTemplateLiteralType(int32[pos >> 2]);
4370
+ }
4371
+ function deserializeBoxTSThisType(pos) {
4372
+ return deserializeTSThisType(int32[pos >> 2]);
4373
+ }
4374
+ function deserializeBoxTSTupleType(pos) {
4375
+ return deserializeTSTupleType(int32[pos >> 2]);
4376
+ }
4377
+ function deserializeBoxTSTypeLiteral(pos) {
4378
+ return deserializeTSTypeLiteral(int32[pos >> 2]);
4379
+ }
4380
+ function deserializeBoxTSTypeOperator(pos) {
4381
+ return deserializeTSTypeOperator(int32[pos >> 2]);
4382
+ }
4383
+ function deserializeBoxTSTypePredicate(pos) {
4384
+ return deserializeTSTypePredicate(int32[pos >> 2]);
4385
+ }
4386
+ function deserializeBoxTSTypeQuery(pos) {
4387
+ return deserializeTSTypeQuery(int32[pos >> 2]);
4388
+ }
4389
+ function deserializeBoxTSTypeReference(pos) {
4390
+ return deserializeTSTypeReference(int32[pos >> 2]);
4391
+ }
4392
+ function deserializeBoxTSUnionType(pos) {
4393
+ return deserializeTSUnionType(int32[pos >> 2]);
4394
+ }
4395
+ function deserializeBoxTSParenthesizedType(pos) {
4396
+ return deserializeTSParenthesizedType(int32[pos >> 2]);
4397
+ }
4398
+ function deserializeBoxJSDocNullableType(pos) {
4399
+ return deserializeJSDocNullableType(int32[pos >> 2]);
4400
+ }
4401
+ function deserializeBoxJSDocNonNullableType(pos) {
4402
+ return deserializeJSDocNonNullableType(int32[pos >> 2]);
4403
+ }
4404
+ function deserializeBoxJSDocUnknownType(pos) {
4405
+ return deserializeJSDocUnknownType(int32[pos >> 2]);
4406
+ }
4407
+ function deserializeVecTSType(pos) {
4408
+ let arr = [], pos32 = pos >> 2;
4409
+ pos = int32[pos32];
4410
+ let endPos = pos + (int32[pos32 + 2] << 4);
4411
+ for (; pos !== endPos;) {
4412
+ arr.push(deserializeTSType(pos));
4413
+ pos += 16;
4414
+ }
4415
+ return arr;
4416
+ }
4417
+ function deserializeVecTSTupleElement(pos) {
4418
+ let arr = [], pos32 = pos >> 2;
4419
+ pos = int32[pos32];
4420
+ let endPos = pos + (int32[pos32 + 2] << 4);
4421
+ for (; pos !== endPos;) {
4422
+ arr.push(deserializeTSTupleElement(pos));
4423
+ pos += 16;
4424
+ }
4425
+ return arr;
4426
+ }
4427
+ function deserializeBoxTSOptionalType(pos) {
4428
+ return deserializeTSOptionalType(int32[pos >> 2]);
4429
+ }
4430
+ function deserializeBoxTSRestType(pos) {
4431
+ return deserializeTSRestType(int32[pos >> 2]);
4432
+ }
4433
+ function deserializeBoxTSQualifiedName(pos) {
4434
+ return deserializeTSQualifiedName(int32[pos >> 2]);
4435
+ }
4436
+ function deserializeOptionTSType(pos) {
4437
+ return uint8[pos] === 255 ? null : deserializeTSType(pos);
4438
+ }
4439
+ function deserializeVecTSTypeParameter(pos) {
4440
+ let arr = [], pos32 = pos >> 2;
4441
+ pos = int32[pos32];
4442
+ let endPos = pos + int32[pos32 + 2] * 80;
4443
+ for (; pos !== endPos;) {
4444
+ arr.push(deserializeTSTypeParameter(pos));
4445
+ pos += 80;
4446
+ }
4447
+ return arr;
4448
+ }
4449
+ function deserializeVecTSInterfaceHeritage(pos) {
4450
+ let arr = [], pos32 = pos >> 2;
4451
+ pos = int32[pos32];
4452
+ let endPos = pos + int32[pos32 + 2] * 40;
4453
+ for (; pos !== endPos;) {
4454
+ arr.push(deserializeTSInterfaceHeritage(pos));
4455
+ pos += 40;
4456
+ }
4457
+ return arr;
4458
+ }
4459
+ function deserializeBoxTSInterfaceBody(pos) {
4460
+ return deserializeTSInterfaceBody(int32[pos >> 2]);
4461
+ }
4462
+ function deserializeVecTSSignature(pos) {
4463
+ let arr = [], pos32 = pos >> 2;
4464
+ pos = int32[pos32];
4465
+ let endPos = pos + (int32[pos32 + 2] << 4);
4466
+ for (; pos !== endPos;) {
4467
+ arr.push(deserializeTSSignature(pos));
4468
+ pos += 16;
4469
+ }
4470
+ return arr;
4471
+ }
4472
+ function deserializeBoxTSPropertySignature(pos) {
4473
+ return deserializeTSPropertySignature(int32[pos >> 2]);
4474
+ }
4475
+ function deserializeBoxTSCallSignatureDeclaration(pos) {
4476
+ return deserializeTSCallSignatureDeclaration(int32[pos >> 2]);
4477
+ }
4478
+ function deserializeBoxTSConstructSignatureDeclaration(pos) {
4479
+ return deserializeTSConstructSignatureDeclaration(int32[pos >> 2]);
4480
+ }
4481
+ function deserializeBoxTSMethodSignature(pos) {
4482
+ return deserializeTSMethodSignature(int32[pos >> 2]);
4483
+ }
4484
+ function deserializeBoxTSModuleBlock(pos) {
4485
+ return deserializeTSModuleBlock(int32[pos >> 2]);
4486
+ }
4487
+ function deserializeOptionBoxTSModuleBlock(pos) {
4488
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxTSModuleBlock(pos);
4489
+ }
4490
+ function deserializeBoxTSTypeParameter(pos) {
4491
+ return deserializeTSTypeParameter(int32[pos >> 2]);
4492
+ }
4493
+ function deserializeOptionBoxObjectExpression(pos) {
4494
+ return int32[pos >> 2] === 0 && int32[(pos >> 2) + 1] === 0 ? null : deserializeBoxObjectExpression(pos);
4495
+ }
4496
+ function deserializeOptionTSImportTypeQualifier(pos) {
4497
+ return uint8[pos] === 2 ? null : deserializeTSImportTypeQualifier(pos);
4498
+ }
4499
+ function deserializeBoxTSImportTypeQualifiedName(pos) {
4500
+ return deserializeTSImportTypeQualifiedName(int32[pos >> 2]);
4501
+ }
4502
+ function deserializeOptionTSMappedTypeModifierOperator(pos) {
4503
+ return uint8[pos] === 255 ? null : deserializeTSMappedTypeModifierOperator(pos);
4504
+ }
4505
+ function deserializeBoxTSExternalModuleReference(pos) {
4506
+ return deserializeTSExternalModuleReference(int32[pos >> 2]);
4507
+ }
4508
+ function deserializeI32(pos) {
4509
+ return int32[pos >> 2];
4510
+ }
4511
+ function deserializeOptionNameSpan(pos) {
4512
+ return int32[(pos >> 2) + 2] === 0 && int32[(pos >> 2) + 3] === 0 ? null : deserializeNameSpan(pos);
4513
+ }
4514
+ function deserializeVecError(pos) {
4515
+ let arr = [], pos32 = pos >> 2;
4516
+ pos = int32[pos32];
4517
+ let endPos = pos + int32[pos32 + 2] * 80;
4518
+ for (; pos !== endPos;) {
4519
+ arr.push(deserializeError(pos));
4520
+ pos += 80;
4521
+ }
4522
+ return arr;
4523
+ }
4524
+ function deserializeVecErrorLabel(pos) {
4525
+ let arr = [], pos32 = pos >> 2;
4526
+ pos = int32[pos32];
4527
+ let endPos = pos + int32[pos32 + 2] * 24;
4528
+ for (; pos !== endPos;) {
4529
+ arr.push(deserializeErrorLabel(pos));
4530
+ pos += 24;
4531
+ }
4532
+ return arr;
4533
+ }
4534
+ function deserializeVecStaticImport(pos) {
4535
+ let arr = [], pos32 = pos >> 2;
4536
+ pos = int32[pos32];
4537
+ let endPos = pos + int32[pos32 + 2] * 56;
4538
+ for (; pos !== endPos;) {
4539
+ arr.push(deserializeStaticImport(pos));
4540
+ pos += 56;
4541
+ }
4542
+ return arr;
4543
+ }
4544
+ function deserializeVecStaticExport(pos) {
4545
+ let arr = [], pos32 = pos >> 2;
4546
+ pos = int32[pos32];
4547
+ let endPos = pos + (int32[pos32 + 2] << 5);
4548
+ for (; pos !== endPos;) {
4549
+ arr.push(deserializeStaticExport(pos));
4550
+ pos += 32;
4551
+ }
4552
+ return arr;
4553
+ }
4554
+ function deserializeVecDynamicImport(pos) {
4555
+ let arr = [], pos32 = pos >> 2;
4556
+ pos = int32[pos32];
4557
+ let endPos = pos + (int32[pos32 + 2] << 4);
4558
+ for (; pos !== endPos;) {
4559
+ arr.push(deserializeDynamicImport(pos));
4560
+ pos += 16;
4561
+ }
4562
+ return arr;
4563
+ }
4564
+ function deserializeVecSpan(pos) {
4565
+ let arr = [], pos32 = pos >> 2;
4566
+ pos = int32[pos32];
4567
+ let endPos = pos + (int32[pos32 + 2] << 3);
4568
+ for (; pos !== endPos;) {
4569
+ arr.push(deserializeSpan(pos));
4570
+ pos += 8;
4571
+ }
4572
+ return arr;
4573
+ }
4574
+ function deserializeVecImportEntry(pos) {
4575
+ let arr = [], pos32 = pos >> 2;
4576
+ pos = int32[pos32];
4577
+ let endPos = pos + int32[pos32 + 2] * 96;
4578
+ for (; pos !== endPos;) {
4579
+ arr.push(deserializeImportEntry(pos));
4580
+ pos += 96;
4581
+ }
4582
+ return arr;
4583
+ }
4584
+ function deserializeVecExportEntry(pos) {
4585
+ let arr = [], pos32 = pos >> 2;
4586
+ pos = int32[pos32];
4587
+ let endPos = pos + int32[pos32 + 2] * 144;
4588
+ for (; pos !== endPos;) {
4589
+ arr.push(deserializeExportEntry(pos));
4590
+ pos += 144;
4591
+ }
4592
+ return arr;
4593
+ }
4594
+ //#endregion
4595
+ //#region src/core/extract/raw.ts
4596
+ /**
4597
+ * Raw-transfer parsing (PLAN §9, spike S7, §6 D104): the Oxc binding Vite
4598
+ * ships writes the AST into a shared buffer (`parseRawSync`) and a generated
4599
+ * JavaScript deserializer reads it, which skips `parseSync`'s JSON round
4600
+ * trip (about 60 % of a parse; 2.5–3.9× faster per parse once warm).
4601
+ *
4602
+ * The deserializer comes from the `oxc-parser` devDependency and is bundled
4603
+ * into the packed plugin, so users install nothing for it. It must read the
4604
+ * buffer layout of the Oxc version inside the installed Vite: `parser.ts`
4605
+ * only calls {@link createRawParser} for a binding whose Oxc version is in
4606
+ * {@link LAYOUT_VERSIONS}, and the parser checks itself against `parseSync`
4607
+ * once before it is used. Loaded with `import()` by `enableRawParsing`, so
4608
+ * nothing pays for the deserializers until enough parses ask (§6 D104);
4609
+ * the TypeScript one loads apart, on the first TypeScript parse.
4610
+ */
4611
+ /**
4612
+ * Oxc versions whose raw AST layout the bundled deserializer (0.154.0)
4613
+ * reads: 0.154.0 alone. Its comments are 24 bytes with the kind at offset
4614
+ * 17, where 0.153.0's were 16 bytes with the kind at 12, so no earlier
4615
+ * version's buffer reads correctly. A Vite on any other Oxc parses with
4616
+ * `parseSync` until this list (and the devDependency) moves with it.
4617
+ */
4618
+ const LAYOUT_VERSIONS = /* @__PURE__ */ new Set(["0.154.0"]);
4619
+ /**
4620
+ * Sources that touch what differs between ESTree paths most easily: JSX,
4621
+ * TypeScript, non-ASCII text (byte vs UTF-16 offsets), regular expressions,
4622
+ * bigints, templates, a hashbang and comments.
4623
+ */
4624
+ const CANARIES = {
4625
+ js: ["#!/usr/bin/env node\n/* ä */ import { t } from \"@menapo/vi18n\";\nexport const A = () => <p title={t(`Grüße ${n} 🎉`)}>{t('Hello {name}', { name })}</p>;\nconst r = /ä+(?<x>b)/giu, big = 10n, o = { ...a, [k]: void 0 }; label: for (;;) break label;\n", "jsx"],
4626
+ ts: ["enum E { A = 1 }\nexport abstract class C<T extends object = {}> implements I {\n declare x?: T; #p = 1; static { this.y = <const>[1]; }\n constructor(private readonly z: number) { f.call(window); }\n}\nexport function f(this: Window, ...rest: Array<string | undefined>): asserts rest is string[] {\n return (rest as never)!satisfies unknown;\n}\nnamespace N.M { export type T = keyof typeof f }\n", "ts"]
4627
+ };
4628
+ /**
4629
+ * A raw-transfer `parseSync` over `binding`, or null when this platform or
4630
+ * runtime cannot hold the buffer (32-bit, big-endian, Node < 22, a virtual
4631
+ * memory limit below its 6 GiB reservation) or the parser disagrees with
4632
+ * `parseSync` on the JavaScript canary. TypeScript parses with `parseSync`
4633
+ * until its deserializer has loaded and passed its own canary: the plugin's
4634
+ * post pass sees JavaScript only, so a build never pays for it.
4635
+ */
4636
+ function createRawParser(binding, parseSync) {
4637
+ let buffer;
4638
+ try {
4639
+ if (!binding.rawTransferSupported()) return null;
4640
+ const memory = /* @__PURE__ */ new ArrayBuffer(6442450928);
4641
+ const offset = binding.getBufferOffset(new Uint8Array(memory));
4642
+ buffer = Object.assign(new Uint8Array(memory, offset, BUFFER_SIZE), {
4643
+ int32: new Int32Array(memory, offset, BUFFER_SIZE / 4),
4644
+ float64: new Float64Array(memory, offset, BUFFER_SIZE / 8),
4645
+ block: new Uint8Array(memory, offset, BLOCK_SIZE)
4646
+ });
4647
+ } catch {
4648
+ return null;
4649
+ }
4650
+ const encoder = new TextEncoder();
4651
+ let deserializeTs = null;
4652
+ let tsLoad = null;
4653
+ const rawParse = (deserialize$1, filename, code, options) => {
4654
+ const reserved = code.length * 3;
4655
+ if (reserved > 1073741780) return parseSync(filename, code, options);
4656
+ const start = ACTIVE_SIZE - reserved;
4657
+ const { written } = encoder.encodeInto(code, new Uint8Array(buffer.buffer, buffer.byteOffset + start, reserved));
4658
+ binding.parseRawSync(filename, buffer.block, start, written, options);
4659
+ if (buffer[2147483572] !== 0 !== (deserialize$1 !== deserialize)) return parseSync(filename, code, options);
4660
+ const data = deserialize$1(buffer, code, start, written);
4661
+ return {
4662
+ program: data.program,
4663
+ comments: data.comments,
4664
+ errors: data.errors
4665
+ };
4666
+ };
4667
+ const ts = () => tsLoad ??= import("./ts-BaU5yOf0.js").then((mod) => {
4668
+ const candidate = mod.deserialize;
4669
+ if (!agrees(CANARIES.ts, (f, c, o) => rawParse(candidate, f, c, o), parseSync)) return false;
4670
+ deserializeTs = candidate;
4671
+ return true;
4672
+ }, () => false);
4673
+ const parse = ((filename, code, options) => {
4674
+ if (options.lang === "ts" || options.lang === "tsx") {
4675
+ if (deserializeTs === null) {
4676
+ ts();
4677
+ return parseSync(filename, code, options);
4678
+ }
4679
+ return rawParse(deserializeTs, filename, code, options);
4680
+ }
4681
+ return rawParse(deserialize, filename, code, options);
4682
+ });
4683
+ parse.ts = ts;
4684
+ return agrees(CANARIES.js, parse, parseSync) ? parse : null;
4685
+ }
4686
+ /** Whether `parse` gives `parseSync`'s tree for `canary`; a throw counts as no. */
4687
+ function agrees(canary, parse, parseSync) {
4688
+ const [code, lang] = canary;
4689
+ const options = {
4690
+ lang,
4691
+ sourceType: "module",
4692
+ preserveParens: false
4693
+ };
4694
+ try {
4695
+ const expected = parseSync(`canary.${lang}`, code, options);
4696
+ const actual = parse(`canary.${lang}`, code, options);
4697
+ return expected.errors.length === 0 && sameTree(expected.program, actual.program);
4698
+ } catch {
4699
+ return false;
4700
+ }
4701
+ }
4702
+ /** Deep equality as JSON, with the two literal values JSON cannot carry spelled out. */
4703
+ function sameTree(a, b) {
4704
+ const replacer = (_key, value) => typeof value === "bigint" ? `${value}n` : value instanceof RegExp ? `/${value.source}/${value.flags}` : value;
4705
+ return JSON.stringify(a, replacer) === JSON.stringify(b, replacer);
4706
+ }
4707
+ //#endregion
4708
+ export { LAYOUT_VERSIONS, createRawParser };