@rolldown/browser 1.0.0-beta.9-commit.0ec9e7d → 1.0.0-rc.10

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 (82) hide show
  1. package/dist/cli.mjs +961 -1551
  2. package/dist/config.d.mts +9 -6
  3. package/dist/config.mjs +9 -11
  4. package/dist/constructors-DsfxKD6A.js +68 -0
  5. package/dist/error-BeZaDkS8.js +157 -0
  6. package/dist/experimental-index.browser.mjs +278 -44
  7. package/dist/experimental-index.d.mts +228 -68
  8. package/dist/experimental-index.mjs +274 -55
  9. package/dist/experimental-runtime-types.d.ts +98 -0
  10. package/dist/filter-index.d.mts +104 -2
  11. package/dist/filter-index.mjs +144 -5
  12. package/dist/get-log-filter.d.mts +3 -0
  13. package/dist/get-log-filter.mjs +68 -0
  14. package/dist/index.browser.mjs +238 -3
  15. package/dist/index.d.mts +4 -3
  16. package/dist/index.mjs +53 -6
  17. package/dist/{shared/parse-ast-index-BHaE0ECV.cjs → normalize-string-or-regex-TtAGUp42.js} +74 -147
  18. package/dist/parallel-plugin-worker.mjs +27 -35
  19. package/dist/parallel-plugin.d.mts +7 -7
  20. package/dist/parallel-plugin.mjs +1 -2
  21. package/dist/parse-ast-index.d.mts +28 -5
  22. package/dist/parse-ast-index.mjs +60 -4
  23. package/dist/plugins-index.browser.mjs +40 -0
  24. package/dist/plugins-index.d.mts +33 -0
  25. package/dist/plugins-index.mjs +40 -0
  26. package/dist/resolve-tsconfig-DThkUPSZ.js +112 -0
  27. package/dist/rolldown-binding.wasi-browser.js +46 -24
  28. package/dist/rolldown-binding.wasi.cjs +67 -24
  29. package/dist/rolldown-binding.wasm32-wasi.wasm +0 -0
  30. package/dist/rolldown-build-Chx5S-TB.js +5349 -0
  31. package/dist/shared/bindingify-input-options-Czbczr8Z.mjs +2168 -0
  32. package/dist/shared/composable-filters-B2ByPP8y.mjs +224 -0
  33. package/dist/shared/constructors-BVnf_fH1.d.mts +37 -0
  34. package/dist/shared/constructors-CemeNi29.mjs +68 -0
  35. package/dist/shared/define-config-DJOr6Iwt.mjs +6 -0
  36. package/dist/shared/define-config-i6TWE2hm.d.mts +3855 -0
  37. package/dist/shared/error-CQ6njWsV.mjs +86 -0
  38. package/dist/shared/get-log-filter-semyr3Lj.d.mts +35 -0
  39. package/dist/shared/{load-config-D7UduHRZ.mjs → load-config-CxvL5JxT.mjs} +32 -36
  40. package/dist/shared/logging-C6h4g8dA.d.mts +50 -0
  41. package/dist/shared/{parse-ast-index-vu376yZ1.mjs → logs-D80CXhvg.mjs} +25 -123
  42. package/dist/shared/normalize-string-or-regex-CF3Uz6aU.mjs +57 -0
  43. package/dist/shared/parse-CRhjbrcT.mjs +73 -0
  44. package/dist/shared/{prompt-CxjDC0Gn.cjs → prompt-BYQIwEjg.mjs} +301 -310
  45. package/dist/shared/resolve-tsconfig-Cwoo4h_o.mjs +112 -0
  46. package/dist/shared/rolldown-C3wFxOwq.mjs +40 -0
  47. package/dist/shared/rolldown-build-ChZOz6BP.mjs +3318 -0
  48. package/dist/shared/transform-DEgNAQOQ.d.mts +149 -0
  49. package/dist/shared/types-Cx3HYorz.d.mts +1302 -0
  50. package/dist/shared/utils-6wxe_LMG.d.mts +22 -0
  51. package/dist/shared/watch-C1jC1oFT.mjs +373 -0
  52. package/dist/utils-index.browser.mjs +2414 -0
  53. package/dist/utils-index.d.mts +374 -0
  54. package/dist/utils-index.mjs +2415 -0
  55. package/package.json +33 -38
  56. package/dist/cli.cjs +0 -1748
  57. package/dist/cli.d.cts +0 -1
  58. package/dist/config.cjs +0 -12
  59. package/dist/config.d.cts +0 -11
  60. package/dist/experimental-index.cjs +0 -129
  61. package/dist/experimental-index.d.cts +0 -96
  62. package/dist/filter-index.cjs +0 -53
  63. package/dist/filter-index.d.cts +0 -3
  64. package/dist/index.cjs +0 -9
  65. package/dist/index.d.cts +0 -3
  66. package/dist/parallel-plugin-worker.cjs +0 -33
  67. package/dist/parallel-plugin-worker.d.cts +0 -1
  68. package/dist/parallel-plugin.cjs +0 -8
  69. package/dist/parallel-plugin.d.cts +0 -14
  70. package/dist/parse-ast-index.cjs +0 -4
  71. package/dist/parse-ast-index.d.cts +0 -9
  72. package/dist/shared/chunk-DDkG_k5U.cjs +0 -39
  73. package/dist/shared/chunk-DSsiIF1Z.mjs +0 -30
  74. package/dist/shared/define-config.d-D4lKXE9V.d.cts +0 -1165
  75. package/dist/shared/define-config.d-Dm9iNdt9.d.mts +0 -1165
  76. package/dist/shared/dist-BMVjvV-v.cjs +0 -249
  77. package/dist/shared/dist-CAn6dxW6.mjs +0 -153
  78. package/dist/shared/load-config-CtKjQ8Mn.cjs +0 -125
  79. package/dist/shared/prompt-GFYxfPw7.mjs +0 -854
  80. package/dist/shared/src-D0nc44MQ.mjs +0 -4691
  81. package/dist/shared/src-s89s870G.cjs +0 -4647
  82. package/dist/src-CeWghjQt.js +0 -4329
@@ -0,0 +1,2414 @@
1
+ import { a as parse, o as parseSync } from "./error-BeZaDkS8.js";
2
+ import { a as minify, i as transformSync, o as minifySync, r as transform, t as TsconfigCache } from "./resolve-tsconfig-DThkUPSZ.js";
3
+ //#region ../../node_modules/.pnpm/oxc-parser@0.120.0/node_modules/oxc-parser/src-js/generated/visit/walk.js
4
+ function walkNode(node, visitors) {
5
+ if (node == null) return;
6
+ if (Array.isArray(node)) {
7
+ let len = node.length;
8
+ for (let i = 0; i < len; i++) walkNode(node[i], visitors);
9
+ } else switch (node.type) {
10
+ case "DebuggerStatement":
11
+ walkDebuggerStatement(node, visitors);
12
+ break;
13
+ case "EmptyStatement":
14
+ walkEmptyStatement(node, visitors);
15
+ break;
16
+ case "Literal":
17
+ walkLiteral(node, visitors);
18
+ break;
19
+ case "PrivateIdentifier":
20
+ walkPrivateIdentifier(node, visitors);
21
+ break;
22
+ case "Super":
23
+ walkSuper(node, visitors);
24
+ break;
25
+ case "TemplateElement":
26
+ walkTemplateElement(node, visitors);
27
+ break;
28
+ case "ThisExpression":
29
+ walkThisExpression(node, visitors);
30
+ break;
31
+ case "JSXClosingFragment":
32
+ walkJSXClosingFragment(node, visitors);
33
+ break;
34
+ case "JSXEmptyExpression":
35
+ walkJSXEmptyExpression(node, visitors);
36
+ break;
37
+ case "JSXIdentifier":
38
+ walkJSXIdentifier(node, visitors);
39
+ break;
40
+ case "JSXOpeningFragment":
41
+ walkJSXOpeningFragment(node, visitors);
42
+ break;
43
+ case "JSXText":
44
+ walkJSXText(node, visitors);
45
+ break;
46
+ case "TSAnyKeyword":
47
+ walkTSAnyKeyword(node, visitors);
48
+ break;
49
+ case "TSBigIntKeyword":
50
+ walkTSBigIntKeyword(node, visitors);
51
+ break;
52
+ case "TSBooleanKeyword":
53
+ walkTSBooleanKeyword(node, visitors);
54
+ break;
55
+ case "TSIntrinsicKeyword":
56
+ walkTSIntrinsicKeyword(node, visitors);
57
+ break;
58
+ case "TSJSDocUnknownType":
59
+ walkTSJSDocUnknownType(node, visitors);
60
+ break;
61
+ case "TSNeverKeyword":
62
+ walkTSNeverKeyword(node, visitors);
63
+ break;
64
+ case "TSNullKeyword":
65
+ walkTSNullKeyword(node, visitors);
66
+ break;
67
+ case "TSNumberKeyword":
68
+ walkTSNumberKeyword(node, visitors);
69
+ break;
70
+ case "TSObjectKeyword":
71
+ walkTSObjectKeyword(node, visitors);
72
+ break;
73
+ case "TSStringKeyword":
74
+ walkTSStringKeyword(node, visitors);
75
+ break;
76
+ case "TSSymbolKeyword":
77
+ walkTSSymbolKeyword(node, visitors);
78
+ break;
79
+ case "TSThisType":
80
+ walkTSThisType(node, visitors);
81
+ break;
82
+ case "TSUndefinedKeyword":
83
+ walkTSUndefinedKeyword(node, visitors);
84
+ break;
85
+ case "TSUnknownKeyword":
86
+ walkTSUnknownKeyword(node, visitors);
87
+ break;
88
+ case "TSVoidKeyword":
89
+ walkTSVoidKeyword(node, visitors);
90
+ break;
91
+ case "AccessorProperty":
92
+ walkAccessorProperty(node, visitors);
93
+ break;
94
+ case "ArrayExpression":
95
+ walkArrayExpression(node, visitors);
96
+ break;
97
+ case "ArrayPattern":
98
+ walkArrayPattern(node, visitors);
99
+ break;
100
+ case "ArrowFunctionExpression":
101
+ walkArrowFunctionExpression(node, visitors);
102
+ break;
103
+ case "AssignmentExpression":
104
+ walkAssignmentExpression(node, visitors);
105
+ break;
106
+ case "AssignmentPattern":
107
+ walkAssignmentPattern(node, visitors);
108
+ break;
109
+ case "AwaitExpression":
110
+ walkAwaitExpression(node, visitors);
111
+ break;
112
+ case "BinaryExpression":
113
+ walkBinaryExpression(node, visitors);
114
+ break;
115
+ case "BlockStatement":
116
+ walkBlockStatement(node, visitors);
117
+ break;
118
+ case "BreakStatement":
119
+ walkBreakStatement(node, visitors);
120
+ break;
121
+ case "CallExpression":
122
+ walkCallExpression(node, visitors);
123
+ break;
124
+ case "CatchClause":
125
+ walkCatchClause(node, visitors);
126
+ break;
127
+ case "ChainExpression":
128
+ walkChainExpression(node, visitors);
129
+ break;
130
+ case "ClassBody":
131
+ walkClassBody(node, visitors);
132
+ break;
133
+ case "ClassDeclaration":
134
+ walkClassDeclaration(node, visitors);
135
+ break;
136
+ case "ClassExpression":
137
+ walkClassExpression(node, visitors);
138
+ break;
139
+ case "ConditionalExpression":
140
+ walkConditionalExpression(node, visitors);
141
+ break;
142
+ case "ContinueStatement":
143
+ walkContinueStatement(node, visitors);
144
+ break;
145
+ case "Decorator":
146
+ walkDecorator(node, visitors);
147
+ break;
148
+ case "DoWhileStatement":
149
+ walkDoWhileStatement(node, visitors);
150
+ break;
151
+ case "ExportAllDeclaration":
152
+ walkExportAllDeclaration(node, visitors);
153
+ break;
154
+ case "ExportDefaultDeclaration":
155
+ walkExportDefaultDeclaration(node, visitors);
156
+ break;
157
+ case "ExportNamedDeclaration":
158
+ walkExportNamedDeclaration(node, visitors);
159
+ break;
160
+ case "ExportSpecifier":
161
+ walkExportSpecifier(node, visitors);
162
+ break;
163
+ case "ExpressionStatement":
164
+ walkExpressionStatement(node, visitors);
165
+ break;
166
+ case "ForInStatement":
167
+ walkForInStatement(node, visitors);
168
+ break;
169
+ case "ForOfStatement":
170
+ walkForOfStatement(node, visitors);
171
+ break;
172
+ case "ForStatement":
173
+ walkForStatement(node, visitors);
174
+ break;
175
+ case "FunctionDeclaration":
176
+ walkFunctionDeclaration(node, visitors);
177
+ break;
178
+ case "FunctionExpression":
179
+ walkFunctionExpression(node, visitors);
180
+ break;
181
+ case "Identifier":
182
+ walkIdentifier(node, visitors);
183
+ break;
184
+ case "IfStatement":
185
+ walkIfStatement(node, visitors);
186
+ break;
187
+ case "ImportAttribute":
188
+ walkImportAttribute(node, visitors);
189
+ break;
190
+ case "ImportDeclaration":
191
+ walkImportDeclaration(node, visitors);
192
+ break;
193
+ case "ImportDefaultSpecifier":
194
+ walkImportDefaultSpecifier(node, visitors);
195
+ break;
196
+ case "ImportExpression":
197
+ walkImportExpression(node, visitors);
198
+ break;
199
+ case "ImportNamespaceSpecifier":
200
+ walkImportNamespaceSpecifier(node, visitors);
201
+ break;
202
+ case "ImportSpecifier":
203
+ walkImportSpecifier(node, visitors);
204
+ break;
205
+ case "LabeledStatement":
206
+ walkLabeledStatement(node, visitors);
207
+ break;
208
+ case "LogicalExpression":
209
+ walkLogicalExpression(node, visitors);
210
+ break;
211
+ case "MemberExpression":
212
+ walkMemberExpression(node, visitors);
213
+ break;
214
+ case "MetaProperty":
215
+ walkMetaProperty(node, visitors);
216
+ break;
217
+ case "MethodDefinition":
218
+ walkMethodDefinition(node, visitors);
219
+ break;
220
+ case "NewExpression":
221
+ walkNewExpression(node, visitors);
222
+ break;
223
+ case "ObjectExpression":
224
+ walkObjectExpression(node, visitors);
225
+ break;
226
+ case "ObjectPattern":
227
+ walkObjectPattern(node, visitors);
228
+ break;
229
+ case "ParenthesizedExpression":
230
+ walkParenthesizedExpression(node, visitors);
231
+ break;
232
+ case "Program":
233
+ walkProgram(node, visitors);
234
+ break;
235
+ case "Property":
236
+ walkProperty(node, visitors);
237
+ break;
238
+ case "PropertyDefinition":
239
+ walkPropertyDefinition(node, visitors);
240
+ break;
241
+ case "RestElement":
242
+ walkRestElement(node, visitors);
243
+ break;
244
+ case "ReturnStatement":
245
+ walkReturnStatement(node, visitors);
246
+ break;
247
+ case "SequenceExpression":
248
+ walkSequenceExpression(node, visitors);
249
+ break;
250
+ case "SpreadElement":
251
+ walkSpreadElement(node, visitors);
252
+ break;
253
+ case "StaticBlock":
254
+ walkStaticBlock(node, visitors);
255
+ break;
256
+ case "SwitchCase":
257
+ walkSwitchCase(node, visitors);
258
+ break;
259
+ case "SwitchStatement":
260
+ walkSwitchStatement(node, visitors);
261
+ break;
262
+ case "TaggedTemplateExpression":
263
+ walkTaggedTemplateExpression(node, visitors);
264
+ break;
265
+ case "TemplateLiteral":
266
+ walkTemplateLiteral(node, visitors);
267
+ break;
268
+ case "ThrowStatement":
269
+ walkThrowStatement(node, visitors);
270
+ break;
271
+ case "TryStatement":
272
+ walkTryStatement(node, visitors);
273
+ break;
274
+ case "UnaryExpression":
275
+ walkUnaryExpression(node, visitors);
276
+ break;
277
+ case "UpdateExpression":
278
+ walkUpdateExpression(node, visitors);
279
+ break;
280
+ case "V8IntrinsicExpression":
281
+ walkV8IntrinsicExpression(node, visitors);
282
+ break;
283
+ case "VariableDeclaration":
284
+ walkVariableDeclaration(node, visitors);
285
+ break;
286
+ case "VariableDeclarator":
287
+ walkVariableDeclarator(node, visitors);
288
+ break;
289
+ case "WhileStatement":
290
+ walkWhileStatement(node, visitors);
291
+ break;
292
+ case "WithStatement":
293
+ walkWithStatement(node, visitors);
294
+ break;
295
+ case "YieldExpression":
296
+ walkYieldExpression(node, visitors);
297
+ break;
298
+ case "JSXAttribute":
299
+ walkJSXAttribute(node, visitors);
300
+ break;
301
+ case "JSXClosingElement":
302
+ walkJSXClosingElement(node, visitors);
303
+ break;
304
+ case "JSXElement":
305
+ walkJSXElement(node, visitors);
306
+ break;
307
+ case "JSXExpressionContainer":
308
+ walkJSXExpressionContainer(node, visitors);
309
+ break;
310
+ case "JSXFragment":
311
+ walkJSXFragment(node, visitors);
312
+ break;
313
+ case "JSXMemberExpression":
314
+ walkJSXMemberExpression(node, visitors);
315
+ break;
316
+ case "JSXNamespacedName":
317
+ walkJSXNamespacedName(node, visitors);
318
+ break;
319
+ case "JSXOpeningElement":
320
+ walkJSXOpeningElement(node, visitors);
321
+ break;
322
+ case "JSXSpreadAttribute":
323
+ walkJSXSpreadAttribute(node, visitors);
324
+ break;
325
+ case "JSXSpreadChild":
326
+ walkJSXSpreadChild(node, visitors);
327
+ break;
328
+ case "TSAbstractAccessorProperty":
329
+ walkTSAbstractAccessorProperty(node, visitors);
330
+ break;
331
+ case "TSAbstractMethodDefinition":
332
+ walkTSAbstractMethodDefinition(node, visitors);
333
+ break;
334
+ case "TSAbstractPropertyDefinition":
335
+ walkTSAbstractPropertyDefinition(node, visitors);
336
+ break;
337
+ case "TSArrayType":
338
+ walkTSArrayType(node, visitors);
339
+ break;
340
+ case "TSAsExpression":
341
+ walkTSAsExpression(node, visitors);
342
+ break;
343
+ case "TSCallSignatureDeclaration":
344
+ walkTSCallSignatureDeclaration(node, visitors);
345
+ break;
346
+ case "TSClassImplements":
347
+ walkTSClassImplements(node, visitors);
348
+ break;
349
+ case "TSConditionalType":
350
+ walkTSConditionalType(node, visitors);
351
+ break;
352
+ case "TSConstructSignatureDeclaration":
353
+ walkTSConstructSignatureDeclaration(node, visitors);
354
+ break;
355
+ case "TSConstructorType":
356
+ walkTSConstructorType(node, visitors);
357
+ break;
358
+ case "TSDeclareFunction":
359
+ walkTSDeclareFunction(node, visitors);
360
+ break;
361
+ case "TSEmptyBodyFunctionExpression":
362
+ walkTSEmptyBodyFunctionExpression(node, visitors);
363
+ break;
364
+ case "TSEnumBody":
365
+ walkTSEnumBody(node, visitors);
366
+ break;
367
+ case "TSEnumDeclaration":
368
+ walkTSEnumDeclaration(node, visitors);
369
+ break;
370
+ case "TSEnumMember":
371
+ walkTSEnumMember(node, visitors);
372
+ break;
373
+ case "TSExportAssignment":
374
+ walkTSExportAssignment(node, visitors);
375
+ break;
376
+ case "TSExternalModuleReference":
377
+ walkTSExternalModuleReference(node, visitors);
378
+ break;
379
+ case "TSFunctionType":
380
+ walkTSFunctionType(node, visitors);
381
+ break;
382
+ case "TSImportEqualsDeclaration":
383
+ walkTSImportEqualsDeclaration(node, visitors);
384
+ break;
385
+ case "TSImportType":
386
+ walkTSImportType(node, visitors);
387
+ break;
388
+ case "TSIndexSignature":
389
+ walkTSIndexSignature(node, visitors);
390
+ break;
391
+ case "TSIndexedAccessType":
392
+ walkTSIndexedAccessType(node, visitors);
393
+ break;
394
+ case "TSInferType":
395
+ walkTSInferType(node, visitors);
396
+ break;
397
+ case "TSInstantiationExpression":
398
+ walkTSInstantiationExpression(node, visitors);
399
+ break;
400
+ case "TSInterfaceBody":
401
+ walkTSInterfaceBody(node, visitors);
402
+ break;
403
+ case "TSInterfaceDeclaration":
404
+ walkTSInterfaceDeclaration(node, visitors);
405
+ break;
406
+ case "TSInterfaceHeritage":
407
+ walkTSInterfaceHeritage(node, visitors);
408
+ break;
409
+ case "TSIntersectionType":
410
+ walkTSIntersectionType(node, visitors);
411
+ break;
412
+ case "TSJSDocNonNullableType":
413
+ walkTSJSDocNonNullableType(node, visitors);
414
+ break;
415
+ case "TSJSDocNullableType":
416
+ walkTSJSDocNullableType(node, visitors);
417
+ break;
418
+ case "TSLiteralType":
419
+ walkTSLiteralType(node, visitors);
420
+ break;
421
+ case "TSMappedType":
422
+ walkTSMappedType(node, visitors);
423
+ break;
424
+ case "TSMethodSignature":
425
+ walkTSMethodSignature(node, visitors);
426
+ break;
427
+ case "TSModuleBlock":
428
+ walkTSModuleBlock(node, visitors);
429
+ break;
430
+ case "TSModuleDeclaration":
431
+ walkTSModuleDeclaration(node, visitors);
432
+ break;
433
+ case "TSNamedTupleMember":
434
+ walkTSNamedTupleMember(node, visitors);
435
+ break;
436
+ case "TSNamespaceExportDeclaration":
437
+ walkTSNamespaceExportDeclaration(node, visitors);
438
+ break;
439
+ case "TSNonNullExpression":
440
+ walkTSNonNullExpression(node, visitors);
441
+ break;
442
+ case "TSOptionalType":
443
+ walkTSOptionalType(node, visitors);
444
+ break;
445
+ case "TSParameterProperty":
446
+ walkTSParameterProperty(node, visitors);
447
+ break;
448
+ case "TSParenthesizedType":
449
+ walkTSParenthesizedType(node, visitors);
450
+ break;
451
+ case "TSPropertySignature":
452
+ walkTSPropertySignature(node, visitors);
453
+ break;
454
+ case "TSQualifiedName":
455
+ walkTSQualifiedName(node, visitors);
456
+ break;
457
+ case "TSRestType":
458
+ walkTSRestType(node, visitors);
459
+ break;
460
+ case "TSSatisfiesExpression":
461
+ walkTSSatisfiesExpression(node, visitors);
462
+ break;
463
+ case "TSTemplateLiteralType":
464
+ walkTSTemplateLiteralType(node, visitors);
465
+ break;
466
+ case "TSTupleType":
467
+ walkTSTupleType(node, visitors);
468
+ break;
469
+ case "TSTypeAliasDeclaration":
470
+ walkTSTypeAliasDeclaration(node, visitors);
471
+ break;
472
+ case "TSTypeAnnotation":
473
+ walkTSTypeAnnotation(node, visitors);
474
+ break;
475
+ case "TSTypeAssertion":
476
+ walkTSTypeAssertion(node, visitors);
477
+ break;
478
+ case "TSTypeLiteral":
479
+ walkTSTypeLiteral(node, visitors);
480
+ break;
481
+ case "TSTypeOperator":
482
+ walkTSTypeOperator(node, visitors);
483
+ break;
484
+ case "TSTypeParameter":
485
+ walkTSTypeParameter(node, visitors);
486
+ break;
487
+ case "TSTypeParameterDeclaration":
488
+ walkTSTypeParameterDeclaration(node, visitors);
489
+ break;
490
+ case "TSTypeParameterInstantiation":
491
+ walkTSTypeParameterInstantiation(node, visitors);
492
+ break;
493
+ case "TSTypePredicate":
494
+ walkTSTypePredicate(node, visitors);
495
+ break;
496
+ case "TSTypeQuery":
497
+ walkTSTypeQuery(node, visitors);
498
+ break;
499
+ case "TSTypeReference":
500
+ walkTSTypeReference(node, visitors);
501
+ break;
502
+ case "TSUnionType":
503
+ walkTSUnionType(node, visitors);
504
+ break;
505
+ }
506
+ }
507
+ function walkDebuggerStatement(node, visitors) {
508
+ let visit = visitors[0];
509
+ visit !== null && visit(node);
510
+ }
511
+ function walkEmptyStatement(node, visitors) {
512
+ let visit = visitors[1];
513
+ visit !== null && visit(node);
514
+ }
515
+ function walkLiteral(node, visitors) {
516
+ let visit = visitors[2];
517
+ visit !== null && visit(node);
518
+ }
519
+ function walkPrivateIdentifier(node, visitors) {
520
+ let visit = visitors[3];
521
+ visit !== null && visit(node);
522
+ }
523
+ function walkSuper(node, visitors) {
524
+ let visit = visitors[4];
525
+ visit !== null && visit(node);
526
+ }
527
+ function walkTemplateElement(node, visitors) {
528
+ let visit = visitors[5];
529
+ visit !== null && visit(node);
530
+ }
531
+ function walkThisExpression(node, visitors) {
532
+ let visit = visitors[6];
533
+ visit !== null && visit(node);
534
+ }
535
+ function walkJSXClosingFragment(node, visitors) {
536
+ let visit = visitors[7];
537
+ visit !== null && visit(node);
538
+ }
539
+ function walkJSXEmptyExpression(node, visitors) {
540
+ let visit = visitors[8];
541
+ visit !== null && visit(node);
542
+ }
543
+ function walkJSXIdentifier(node, visitors) {
544
+ let visit = visitors[9];
545
+ visit !== null && visit(node);
546
+ }
547
+ function walkJSXOpeningFragment(node, visitors) {
548
+ let visit = visitors[10];
549
+ visit !== null && visit(node);
550
+ }
551
+ function walkJSXText(node, visitors) {
552
+ let visit = visitors[11];
553
+ visit !== null && visit(node);
554
+ }
555
+ function walkTSAnyKeyword(node, visitors) {
556
+ let visit = visitors[12];
557
+ visit !== null && visit(node);
558
+ }
559
+ function walkTSBigIntKeyword(node, visitors) {
560
+ let visit = visitors[13];
561
+ visit !== null && visit(node);
562
+ }
563
+ function walkTSBooleanKeyword(node, visitors) {
564
+ let visit = visitors[14];
565
+ visit !== null && visit(node);
566
+ }
567
+ function walkTSIntrinsicKeyword(node, visitors) {
568
+ let visit = visitors[15];
569
+ visit !== null && visit(node);
570
+ }
571
+ function walkTSJSDocUnknownType(node, visitors) {
572
+ let visit = visitors[16];
573
+ visit !== null && visit(node);
574
+ }
575
+ function walkTSNeverKeyword(node, visitors) {
576
+ let visit = visitors[17];
577
+ visit !== null && visit(node);
578
+ }
579
+ function walkTSNullKeyword(node, visitors) {
580
+ let visit = visitors[18];
581
+ visit !== null && visit(node);
582
+ }
583
+ function walkTSNumberKeyword(node, visitors) {
584
+ let visit = visitors[19];
585
+ visit !== null && visit(node);
586
+ }
587
+ function walkTSObjectKeyword(node, visitors) {
588
+ let visit = visitors[20];
589
+ visit !== null && visit(node);
590
+ }
591
+ function walkTSStringKeyword(node, visitors) {
592
+ let visit = visitors[21];
593
+ visit !== null && visit(node);
594
+ }
595
+ function walkTSSymbolKeyword(node, visitors) {
596
+ let visit = visitors[22];
597
+ visit !== null && visit(node);
598
+ }
599
+ function walkTSThisType(node, visitors) {
600
+ let visit = visitors[23];
601
+ visit !== null && visit(node);
602
+ }
603
+ function walkTSUndefinedKeyword(node, visitors) {
604
+ let visit = visitors[24];
605
+ visit !== null && visit(node);
606
+ }
607
+ function walkTSUnknownKeyword(node, visitors) {
608
+ let visit = visitors[25];
609
+ visit !== null && visit(node);
610
+ }
611
+ function walkTSVoidKeyword(node, visitors) {
612
+ let visit = visitors[26];
613
+ visit !== null && visit(node);
614
+ }
615
+ function walkAccessorProperty(node, visitors) {
616
+ let enterExit = visitors[27], exit = null, enter;
617
+ if (enterExit !== null) {
618
+ ({enter, exit} = enterExit);
619
+ enter !== null && enter(node);
620
+ }
621
+ walkNode(node.decorators, visitors);
622
+ walkNode(node.key, visitors);
623
+ walkNode(node.typeAnnotation, visitors);
624
+ walkNode(node.value, visitors);
625
+ exit !== null && exit(node);
626
+ }
627
+ function walkArrayExpression(node, visitors) {
628
+ let enterExit = visitors[28], exit = null, enter;
629
+ if (enterExit !== null) {
630
+ ({enter, exit} = enterExit);
631
+ enter !== null && enter(node);
632
+ }
633
+ walkNode(node.elements, visitors);
634
+ exit !== null && exit(node);
635
+ }
636
+ function walkArrayPattern(node, visitors) {
637
+ let enterExit = visitors[29], exit = null, enter;
638
+ if (enterExit !== null) {
639
+ ({enter, exit} = enterExit);
640
+ enter !== null && enter(node);
641
+ }
642
+ walkNode(node.decorators, visitors);
643
+ walkNode(node.elements, visitors);
644
+ walkNode(node.typeAnnotation, visitors);
645
+ exit !== null && exit(node);
646
+ }
647
+ function walkArrowFunctionExpression(node, visitors) {
648
+ let enterExit = visitors[30], exit = null, enter;
649
+ if (enterExit !== null) {
650
+ ({enter, exit} = enterExit);
651
+ enter !== null && enter(node);
652
+ }
653
+ walkNode(node.typeParameters, visitors);
654
+ walkNode(node.params, visitors);
655
+ walkNode(node.returnType, visitors);
656
+ walkNode(node.body, visitors);
657
+ exit !== null && exit(node);
658
+ }
659
+ function walkAssignmentExpression(node, visitors) {
660
+ let enterExit = visitors[31], exit = null, enter;
661
+ if (enterExit !== null) {
662
+ ({enter, exit} = enterExit);
663
+ enter !== null && enter(node);
664
+ }
665
+ walkNode(node.left, visitors);
666
+ walkNode(node.right, visitors);
667
+ exit !== null && exit(node);
668
+ }
669
+ function walkAssignmentPattern(node, visitors) {
670
+ let enterExit = visitors[32], exit = null, enter;
671
+ if (enterExit !== null) {
672
+ ({enter, exit} = enterExit);
673
+ enter !== null && enter(node);
674
+ }
675
+ walkNode(node.decorators, visitors);
676
+ walkNode(node.left, visitors);
677
+ walkNode(node.right, visitors);
678
+ walkNode(node.typeAnnotation, visitors);
679
+ exit !== null && exit(node);
680
+ }
681
+ function walkAwaitExpression(node, visitors) {
682
+ let enterExit = visitors[33], exit = null, enter;
683
+ if (enterExit !== null) {
684
+ ({enter, exit} = enterExit);
685
+ enter !== null && enter(node);
686
+ }
687
+ walkNode(node.argument, visitors);
688
+ exit !== null && exit(node);
689
+ }
690
+ function walkBinaryExpression(node, visitors) {
691
+ let enterExit = visitors[34], exit = null, enter;
692
+ if (enterExit !== null) {
693
+ ({enter, exit} = enterExit);
694
+ enter !== null && enter(node);
695
+ }
696
+ walkNode(node.left, visitors);
697
+ walkNode(node.right, visitors);
698
+ exit !== null && exit(node);
699
+ }
700
+ function walkBlockStatement(node, visitors) {
701
+ let enterExit = visitors[35], exit = null, enter;
702
+ if (enterExit !== null) {
703
+ ({enter, exit} = enterExit);
704
+ enter !== null && enter(node);
705
+ }
706
+ walkNode(node.body, visitors);
707
+ exit !== null && exit(node);
708
+ }
709
+ function walkBreakStatement(node, visitors) {
710
+ let enterExit = visitors[36], exit = null, enter;
711
+ if (enterExit !== null) {
712
+ ({enter, exit} = enterExit);
713
+ enter !== null && enter(node);
714
+ }
715
+ walkNode(node.label, visitors);
716
+ exit !== null && exit(node);
717
+ }
718
+ function walkCallExpression(node, visitors) {
719
+ let enterExit = visitors[37], exit = null, enter;
720
+ if (enterExit !== null) {
721
+ ({enter, exit} = enterExit);
722
+ enter !== null && enter(node);
723
+ }
724
+ walkNode(node.callee, visitors);
725
+ walkNode(node.typeArguments, visitors);
726
+ walkNode(node.arguments, visitors);
727
+ exit !== null && exit(node);
728
+ }
729
+ function walkCatchClause(node, visitors) {
730
+ let enterExit = visitors[38], exit = null, enter;
731
+ if (enterExit !== null) {
732
+ ({enter, exit} = enterExit);
733
+ enter !== null && enter(node);
734
+ }
735
+ walkNode(node.param, visitors);
736
+ walkNode(node.body, visitors);
737
+ exit !== null && exit(node);
738
+ }
739
+ function walkChainExpression(node, visitors) {
740
+ let enterExit = visitors[39], exit = null, enter;
741
+ if (enterExit !== null) {
742
+ ({enter, exit} = enterExit);
743
+ enter !== null && enter(node);
744
+ }
745
+ walkNode(node.expression, visitors);
746
+ exit !== null && exit(node);
747
+ }
748
+ function walkClassBody(node, visitors) {
749
+ let enterExit = visitors[40], exit = null, enter;
750
+ if (enterExit !== null) {
751
+ ({enter, exit} = enterExit);
752
+ enter !== null && enter(node);
753
+ }
754
+ walkNode(node.body, visitors);
755
+ exit !== null && exit(node);
756
+ }
757
+ function walkClassDeclaration(node, visitors) {
758
+ let enterExit = visitors[41], exit = null, enter;
759
+ if (enterExit !== null) {
760
+ ({enter, exit} = enterExit);
761
+ enter !== null && enter(node);
762
+ }
763
+ walkNode(node.decorators, visitors);
764
+ walkNode(node.id, visitors);
765
+ walkNode(node.typeParameters, visitors);
766
+ walkNode(node.superClass, visitors);
767
+ walkNode(node.superTypeArguments, visitors);
768
+ walkNode(node.implements, visitors);
769
+ walkNode(node.body, visitors);
770
+ exit !== null && exit(node);
771
+ }
772
+ function walkClassExpression(node, visitors) {
773
+ let enterExit = visitors[42], exit = null, enter;
774
+ if (enterExit !== null) {
775
+ ({enter, exit} = enterExit);
776
+ enter !== null && enter(node);
777
+ }
778
+ walkNode(node.decorators, visitors);
779
+ walkNode(node.id, visitors);
780
+ walkNode(node.typeParameters, visitors);
781
+ walkNode(node.superClass, visitors);
782
+ walkNode(node.superTypeArguments, visitors);
783
+ walkNode(node.implements, visitors);
784
+ walkNode(node.body, visitors);
785
+ exit !== null && exit(node);
786
+ }
787
+ function walkConditionalExpression(node, visitors) {
788
+ let enterExit = visitors[43], exit = null, enter;
789
+ if (enterExit !== null) {
790
+ ({enter, exit} = enterExit);
791
+ enter !== null && enter(node);
792
+ }
793
+ walkNode(node.test, visitors);
794
+ walkNode(node.consequent, visitors);
795
+ walkNode(node.alternate, visitors);
796
+ exit !== null && exit(node);
797
+ }
798
+ function walkContinueStatement(node, visitors) {
799
+ let enterExit = visitors[44], exit = null, enter;
800
+ if (enterExit !== null) {
801
+ ({enter, exit} = enterExit);
802
+ enter !== null && enter(node);
803
+ }
804
+ walkNode(node.label, visitors);
805
+ exit !== null && exit(node);
806
+ }
807
+ function walkDecorator(node, visitors) {
808
+ let enterExit = visitors[45], exit = null, enter;
809
+ if (enterExit !== null) {
810
+ ({enter, exit} = enterExit);
811
+ enter !== null && enter(node);
812
+ }
813
+ walkNode(node.expression, visitors);
814
+ exit !== null && exit(node);
815
+ }
816
+ function walkDoWhileStatement(node, visitors) {
817
+ let enterExit = visitors[46], exit = null, enter;
818
+ if (enterExit !== null) {
819
+ ({enter, exit} = enterExit);
820
+ enter !== null && enter(node);
821
+ }
822
+ walkNode(node.body, visitors);
823
+ walkNode(node.test, visitors);
824
+ exit !== null && exit(node);
825
+ }
826
+ function walkExportAllDeclaration(node, visitors) {
827
+ let enterExit = visitors[47], exit = null, enter;
828
+ if (enterExit !== null) {
829
+ ({enter, exit} = enterExit);
830
+ enter !== null && enter(node);
831
+ }
832
+ walkNode(node.exported, visitors);
833
+ walkNode(node.source, visitors);
834
+ walkNode(node.attributes, visitors);
835
+ exit !== null && exit(node);
836
+ }
837
+ function walkExportDefaultDeclaration(node, visitors) {
838
+ let enterExit = visitors[48], exit = null, enter;
839
+ if (enterExit !== null) {
840
+ ({enter, exit} = enterExit);
841
+ enter !== null && enter(node);
842
+ }
843
+ walkNode(node.declaration, visitors);
844
+ exit !== null && exit(node);
845
+ }
846
+ function walkExportNamedDeclaration(node, visitors) {
847
+ let enterExit = visitors[49], exit = null, enter;
848
+ if (enterExit !== null) {
849
+ ({enter, exit} = enterExit);
850
+ enter !== null && enter(node);
851
+ }
852
+ walkNode(node.declaration, visitors);
853
+ walkNode(node.specifiers, visitors);
854
+ walkNode(node.source, visitors);
855
+ walkNode(node.attributes, visitors);
856
+ exit !== null && exit(node);
857
+ }
858
+ function walkExportSpecifier(node, visitors) {
859
+ let enterExit = visitors[50], exit = null, enter;
860
+ if (enterExit !== null) {
861
+ ({enter, exit} = enterExit);
862
+ enter !== null && enter(node);
863
+ }
864
+ walkNode(node.local, visitors);
865
+ walkNode(node.exported, visitors);
866
+ exit !== null && exit(node);
867
+ }
868
+ function walkExpressionStatement(node, visitors) {
869
+ let enterExit = visitors[51], exit = null, enter;
870
+ if (enterExit !== null) {
871
+ ({enter, exit} = enterExit);
872
+ enter !== null && enter(node);
873
+ }
874
+ walkNode(node.expression, visitors);
875
+ exit !== null && exit(node);
876
+ }
877
+ function walkForInStatement(node, visitors) {
878
+ let enterExit = visitors[52], exit = null, enter;
879
+ if (enterExit !== null) {
880
+ ({enter, exit} = enterExit);
881
+ enter !== null && enter(node);
882
+ }
883
+ walkNode(node.left, visitors);
884
+ walkNode(node.right, visitors);
885
+ walkNode(node.body, visitors);
886
+ exit !== null && exit(node);
887
+ }
888
+ function walkForOfStatement(node, visitors) {
889
+ let enterExit = visitors[53], exit = null, enter;
890
+ if (enterExit !== null) {
891
+ ({enter, exit} = enterExit);
892
+ enter !== null && enter(node);
893
+ }
894
+ walkNode(node.left, visitors);
895
+ walkNode(node.right, visitors);
896
+ walkNode(node.body, visitors);
897
+ exit !== null && exit(node);
898
+ }
899
+ function walkForStatement(node, visitors) {
900
+ let enterExit = visitors[54], exit = null, enter;
901
+ if (enterExit !== null) {
902
+ ({enter, exit} = enterExit);
903
+ enter !== null && enter(node);
904
+ }
905
+ walkNode(node.init, visitors);
906
+ walkNode(node.test, visitors);
907
+ walkNode(node.update, visitors);
908
+ walkNode(node.body, visitors);
909
+ exit !== null && exit(node);
910
+ }
911
+ function walkFunctionDeclaration(node, visitors) {
912
+ let enterExit = visitors[55], exit = null, enter;
913
+ if (enterExit !== null) {
914
+ ({enter, exit} = enterExit);
915
+ enter !== null && enter(node);
916
+ }
917
+ walkNode(node.id, visitors);
918
+ walkNode(node.typeParameters, visitors);
919
+ walkNode(node.params, visitors);
920
+ walkNode(node.returnType, visitors);
921
+ walkNode(node.body, visitors);
922
+ exit !== null && exit(node);
923
+ }
924
+ function walkFunctionExpression(node, visitors) {
925
+ let enterExit = visitors[56], exit = null, enter;
926
+ if (enterExit !== null) {
927
+ ({enter, exit} = enterExit);
928
+ enter !== null && enter(node);
929
+ }
930
+ walkNode(node.id, visitors);
931
+ walkNode(node.typeParameters, visitors);
932
+ walkNode(node.params, visitors);
933
+ walkNode(node.returnType, visitors);
934
+ walkNode(node.body, visitors);
935
+ exit !== null && exit(node);
936
+ }
937
+ function walkIdentifier(node, visitors) {
938
+ let enterExit = visitors[57], exit = null, enter;
939
+ if (enterExit !== null) {
940
+ ({enter, exit} = enterExit);
941
+ enter !== null && enter(node);
942
+ }
943
+ walkNode(node.decorators, visitors);
944
+ walkNode(node.typeAnnotation, visitors);
945
+ exit !== null && exit(node);
946
+ }
947
+ function walkIfStatement(node, visitors) {
948
+ let enterExit = visitors[58], exit = null, enter;
949
+ if (enterExit !== null) {
950
+ ({enter, exit} = enterExit);
951
+ enter !== null && enter(node);
952
+ }
953
+ walkNode(node.test, visitors);
954
+ walkNode(node.consequent, visitors);
955
+ walkNode(node.alternate, visitors);
956
+ exit !== null && exit(node);
957
+ }
958
+ function walkImportAttribute(node, visitors) {
959
+ let enterExit = visitors[59], exit = null, enter;
960
+ if (enterExit !== null) {
961
+ ({enter, exit} = enterExit);
962
+ enter !== null && enter(node);
963
+ }
964
+ walkNode(node.key, visitors);
965
+ walkNode(node.value, visitors);
966
+ exit !== null && exit(node);
967
+ }
968
+ function walkImportDeclaration(node, visitors) {
969
+ let enterExit = visitors[60], exit = null, enter;
970
+ if (enterExit !== null) {
971
+ ({enter, exit} = enterExit);
972
+ enter !== null && enter(node);
973
+ }
974
+ walkNode(node.specifiers, visitors);
975
+ walkNode(node.source, visitors);
976
+ walkNode(node.attributes, visitors);
977
+ exit !== null && exit(node);
978
+ }
979
+ function walkImportDefaultSpecifier(node, visitors) {
980
+ let enterExit = visitors[61], exit = null, enter;
981
+ if (enterExit !== null) {
982
+ ({enter, exit} = enterExit);
983
+ enter !== null && enter(node);
984
+ }
985
+ walkNode(node.local, visitors);
986
+ exit !== null && exit(node);
987
+ }
988
+ function walkImportExpression(node, visitors) {
989
+ let enterExit = visitors[62], exit = null, enter;
990
+ if (enterExit !== null) {
991
+ ({enter, exit} = enterExit);
992
+ enter !== null && enter(node);
993
+ }
994
+ walkNode(node.source, visitors);
995
+ walkNode(node.options, visitors);
996
+ exit !== null && exit(node);
997
+ }
998
+ function walkImportNamespaceSpecifier(node, visitors) {
999
+ let enterExit = visitors[63], exit = null, enter;
1000
+ if (enterExit !== null) {
1001
+ ({enter, exit} = enterExit);
1002
+ enter !== null && enter(node);
1003
+ }
1004
+ walkNode(node.local, visitors);
1005
+ exit !== null && exit(node);
1006
+ }
1007
+ function walkImportSpecifier(node, visitors) {
1008
+ let enterExit = visitors[64], exit = null, enter;
1009
+ if (enterExit !== null) {
1010
+ ({enter, exit} = enterExit);
1011
+ enter !== null && enter(node);
1012
+ }
1013
+ walkNode(node.imported, visitors);
1014
+ walkNode(node.local, visitors);
1015
+ exit !== null && exit(node);
1016
+ }
1017
+ function walkLabeledStatement(node, visitors) {
1018
+ let enterExit = visitors[65], exit = null, enter;
1019
+ if (enterExit !== null) {
1020
+ ({enter, exit} = enterExit);
1021
+ enter !== null && enter(node);
1022
+ }
1023
+ walkNode(node.label, visitors);
1024
+ walkNode(node.body, visitors);
1025
+ exit !== null && exit(node);
1026
+ }
1027
+ function walkLogicalExpression(node, visitors) {
1028
+ let enterExit = visitors[66], exit = null, enter;
1029
+ if (enterExit !== null) {
1030
+ ({enter, exit} = enterExit);
1031
+ enter !== null && enter(node);
1032
+ }
1033
+ walkNode(node.left, visitors);
1034
+ walkNode(node.right, visitors);
1035
+ exit !== null && exit(node);
1036
+ }
1037
+ function walkMemberExpression(node, visitors) {
1038
+ let enterExit = visitors[67], exit = null, enter;
1039
+ if (enterExit !== null) {
1040
+ ({enter, exit} = enterExit);
1041
+ enter !== null && enter(node);
1042
+ }
1043
+ walkNode(node.object, visitors);
1044
+ walkNode(node.property, visitors);
1045
+ exit !== null && exit(node);
1046
+ }
1047
+ function walkMetaProperty(node, visitors) {
1048
+ let enterExit = visitors[68], exit = null, enter;
1049
+ if (enterExit !== null) {
1050
+ ({enter, exit} = enterExit);
1051
+ enter !== null && enter(node);
1052
+ }
1053
+ walkNode(node.meta, visitors);
1054
+ walkNode(node.property, visitors);
1055
+ exit !== null && exit(node);
1056
+ }
1057
+ function walkMethodDefinition(node, visitors) {
1058
+ let enterExit = visitors[69], exit = null, enter;
1059
+ if (enterExit !== null) {
1060
+ ({enter, exit} = enterExit);
1061
+ enter !== null && enter(node);
1062
+ }
1063
+ walkNode(node.decorators, visitors);
1064
+ walkNode(node.key, visitors);
1065
+ walkNode(node.value, visitors);
1066
+ exit !== null && exit(node);
1067
+ }
1068
+ function walkNewExpression(node, visitors) {
1069
+ let enterExit = visitors[70], exit = null, enter;
1070
+ if (enterExit !== null) {
1071
+ ({enter, exit} = enterExit);
1072
+ enter !== null && enter(node);
1073
+ }
1074
+ walkNode(node.callee, visitors);
1075
+ walkNode(node.typeArguments, visitors);
1076
+ walkNode(node.arguments, visitors);
1077
+ exit !== null && exit(node);
1078
+ }
1079
+ function walkObjectExpression(node, visitors) {
1080
+ let enterExit = visitors[71], exit = null, enter;
1081
+ if (enterExit !== null) {
1082
+ ({enter, exit} = enterExit);
1083
+ enter !== null && enter(node);
1084
+ }
1085
+ walkNode(node.properties, visitors);
1086
+ exit !== null && exit(node);
1087
+ }
1088
+ function walkObjectPattern(node, visitors) {
1089
+ let enterExit = visitors[72], exit = null, enter;
1090
+ if (enterExit !== null) {
1091
+ ({enter, exit} = enterExit);
1092
+ enter !== null && enter(node);
1093
+ }
1094
+ walkNode(node.decorators, visitors);
1095
+ walkNode(node.properties, visitors);
1096
+ walkNode(node.typeAnnotation, visitors);
1097
+ exit !== null && exit(node);
1098
+ }
1099
+ function walkParenthesizedExpression(node, visitors) {
1100
+ let enterExit = visitors[73], exit = null, enter;
1101
+ if (enterExit !== null) {
1102
+ ({enter, exit} = enterExit);
1103
+ enter !== null && enter(node);
1104
+ }
1105
+ walkNode(node.expression, visitors);
1106
+ exit !== null && exit(node);
1107
+ }
1108
+ function walkProgram(node, visitors) {
1109
+ let enterExit = visitors[74], exit = null, enter;
1110
+ if (enterExit !== null) {
1111
+ ({enter, exit} = enterExit);
1112
+ enter !== null && enter(node);
1113
+ }
1114
+ walkNode(node.body, visitors);
1115
+ exit !== null && exit(node);
1116
+ }
1117
+ function walkProperty(node, visitors) {
1118
+ let enterExit = visitors[75], exit = null, enter;
1119
+ if (enterExit !== null) {
1120
+ ({enter, exit} = enterExit);
1121
+ enter !== null && enter(node);
1122
+ }
1123
+ walkNode(node.key, visitors);
1124
+ walkNode(node.value, visitors);
1125
+ exit !== null && exit(node);
1126
+ }
1127
+ function walkPropertyDefinition(node, visitors) {
1128
+ let enterExit = visitors[76], exit = null, enter;
1129
+ if (enterExit !== null) {
1130
+ ({enter, exit} = enterExit);
1131
+ enter !== null && enter(node);
1132
+ }
1133
+ walkNode(node.decorators, visitors);
1134
+ walkNode(node.key, visitors);
1135
+ walkNode(node.typeAnnotation, visitors);
1136
+ walkNode(node.value, visitors);
1137
+ exit !== null && exit(node);
1138
+ }
1139
+ function walkRestElement(node, visitors) {
1140
+ let enterExit = visitors[77], exit = null, enter;
1141
+ if (enterExit !== null) {
1142
+ ({enter, exit} = enterExit);
1143
+ enter !== null && enter(node);
1144
+ }
1145
+ walkNode(node.decorators, visitors);
1146
+ walkNode(node.argument, visitors);
1147
+ walkNode(node.typeAnnotation, visitors);
1148
+ exit !== null && exit(node);
1149
+ }
1150
+ function walkReturnStatement(node, visitors) {
1151
+ let enterExit = visitors[78], exit = null, enter;
1152
+ if (enterExit !== null) {
1153
+ ({enter, exit} = enterExit);
1154
+ enter !== null && enter(node);
1155
+ }
1156
+ walkNode(node.argument, visitors);
1157
+ exit !== null && exit(node);
1158
+ }
1159
+ function walkSequenceExpression(node, visitors) {
1160
+ let enterExit = visitors[79], exit = null, enter;
1161
+ if (enterExit !== null) {
1162
+ ({enter, exit} = enterExit);
1163
+ enter !== null && enter(node);
1164
+ }
1165
+ walkNode(node.expressions, visitors);
1166
+ exit !== null && exit(node);
1167
+ }
1168
+ function walkSpreadElement(node, visitors) {
1169
+ let enterExit = visitors[80], exit = null, enter;
1170
+ if (enterExit !== null) {
1171
+ ({enter, exit} = enterExit);
1172
+ enter !== null && enter(node);
1173
+ }
1174
+ walkNode(node.argument, visitors);
1175
+ exit !== null && exit(node);
1176
+ }
1177
+ function walkStaticBlock(node, visitors) {
1178
+ let enterExit = visitors[81], exit = null, enter;
1179
+ if (enterExit !== null) {
1180
+ ({enter, exit} = enterExit);
1181
+ enter !== null && enter(node);
1182
+ }
1183
+ walkNode(node.body, visitors);
1184
+ exit !== null && exit(node);
1185
+ }
1186
+ function walkSwitchCase(node, visitors) {
1187
+ let enterExit = visitors[82], exit = null, enter;
1188
+ if (enterExit !== null) {
1189
+ ({enter, exit} = enterExit);
1190
+ enter !== null && enter(node);
1191
+ }
1192
+ walkNode(node.test, visitors);
1193
+ walkNode(node.consequent, visitors);
1194
+ exit !== null && exit(node);
1195
+ }
1196
+ function walkSwitchStatement(node, visitors) {
1197
+ let enterExit = visitors[83], exit = null, enter;
1198
+ if (enterExit !== null) {
1199
+ ({enter, exit} = enterExit);
1200
+ enter !== null && enter(node);
1201
+ }
1202
+ walkNode(node.discriminant, visitors);
1203
+ walkNode(node.cases, visitors);
1204
+ exit !== null && exit(node);
1205
+ }
1206
+ function walkTaggedTemplateExpression(node, visitors) {
1207
+ let enterExit = visitors[84], exit = null, enter;
1208
+ if (enterExit !== null) {
1209
+ ({enter, exit} = enterExit);
1210
+ enter !== null && enter(node);
1211
+ }
1212
+ walkNode(node.tag, visitors);
1213
+ walkNode(node.typeArguments, visitors);
1214
+ walkNode(node.quasi, visitors);
1215
+ exit !== null && exit(node);
1216
+ }
1217
+ function walkTemplateLiteral(node, visitors) {
1218
+ let enterExit = visitors[85], exit = null, enter;
1219
+ if (enterExit !== null) {
1220
+ ({enter, exit} = enterExit);
1221
+ enter !== null && enter(node);
1222
+ }
1223
+ walkNode(node.quasis, visitors);
1224
+ walkNode(node.expressions, visitors);
1225
+ exit !== null && exit(node);
1226
+ }
1227
+ function walkThrowStatement(node, visitors) {
1228
+ let enterExit = visitors[86], exit = null, enter;
1229
+ if (enterExit !== null) {
1230
+ ({enter, exit} = enterExit);
1231
+ enter !== null && enter(node);
1232
+ }
1233
+ walkNode(node.argument, visitors);
1234
+ exit !== null && exit(node);
1235
+ }
1236
+ function walkTryStatement(node, visitors) {
1237
+ let enterExit = visitors[87], exit = null, enter;
1238
+ if (enterExit !== null) {
1239
+ ({enter, exit} = enterExit);
1240
+ enter !== null && enter(node);
1241
+ }
1242
+ walkNode(node.block, visitors);
1243
+ walkNode(node.handler, visitors);
1244
+ walkNode(node.finalizer, visitors);
1245
+ exit !== null && exit(node);
1246
+ }
1247
+ function walkUnaryExpression(node, visitors) {
1248
+ let enterExit = visitors[88], exit = null, enter;
1249
+ if (enterExit !== null) {
1250
+ ({enter, exit} = enterExit);
1251
+ enter !== null && enter(node);
1252
+ }
1253
+ walkNode(node.argument, visitors);
1254
+ exit !== null && exit(node);
1255
+ }
1256
+ function walkUpdateExpression(node, visitors) {
1257
+ let enterExit = visitors[89], exit = null, enter;
1258
+ if (enterExit !== null) {
1259
+ ({enter, exit} = enterExit);
1260
+ enter !== null && enter(node);
1261
+ }
1262
+ walkNode(node.argument, visitors);
1263
+ exit !== null && exit(node);
1264
+ }
1265
+ function walkV8IntrinsicExpression(node, visitors) {
1266
+ let enterExit = visitors[90], exit = null, enter;
1267
+ if (enterExit !== null) {
1268
+ ({enter, exit} = enterExit);
1269
+ enter !== null && enter(node);
1270
+ }
1271
+ walkNode(node.name, visitors);
1272
+ walkNode(node.arguments, visitors);
1273
+ exit !== null && exit(node);
1274
+ }
1275
+ function walkVariableDeclaration(node, visitors) {
1276
+ let enterExit = visitors[91], exit = null, enter;
1277
+ if (enterExit !== null) {
1278
+ ({enter, exit} = enterExit);
1279
+ enter !== null && enter(node);
1280
+ }
1281
+ walkNode(node.declarations, visitors);
1282
+ exit !== null && exit(node);
1283
+ }
1284
+ function walkVariableDeclarator(node, visitors) {
1285
+ let enterExit = visitors[92], exit = null, enter;
1286
+ if (enterExit !== null) {
1287
+ ({enter, exit} = enterExit);
1288
+ enter !== null && enter(node);
1289
+ }
1290
+ walkNode(node.id, visitors);
1291
+ walkNode(node.init, visitors);
1292
+ exit !== null && exit(node);
1293
+ }
1294
+ function walkWhileStatement(node, visitors) {
1295
+ let enterExit = visitors[93], exit = null, enter;
1296
+ if (enterExit !== null) {
1297
+ ({enter, exit} = enterExit);
1298
+ enter !== null && enter(node);
1299
+ }
1300
+ walkNode(node.test, visitors);
1301
+ walkNode(node.body, visitors);
1302
+ exit !== null && exit(node);
1303
+ }
1304
+ function walkWithStatement(node, visitors) {
1305
+ let enterExit = visitors[94], exit = null, enter;
1306
+ if (enterExit !== null) {
1307
+ ({enter, exit} = enterExit);
1308
+ enter !== null && enter(node);
1309
+ }
1310
+ walkNode(node.object, visitors);
1311
+ walkNode(node.body, visitors);
1312
+ exit !== null && exit(node);
1313
+ }
1314
+ function walkYieldExpression(node, visitors) {
1315
+ let enterExit = visitors[95], exit = null, enter;
1316
+ if (enterExit !== null) {
1317
+ ({enter, exit} = enterExit);
1318
+ enter !== null && enter(node);
1319
+ }
1320
+ walkNode(node.argument, visitors);
1321
+ exit !== null && exit(node);
1322
+ }
1323
+ function walkJSXAttribute(node, visitors) {
1324
+ let enterExit = visitors[96], exit = null, enter;
1325
+ if (enterExit !== null) {
1326
+ ({enter, exit} = enterExit);
1327
+ enter !== null && enter(node);
1328
+ }
1329
+ walkNode(node.name, visitors);
1330
+ walkNode(node.value, visitors);
1331
+ exit !== null && exit(node);
1332
+ }
1333
+ function walkJSXClosingElement(node, visitors) {
1334
+ let enterExit = visitors[97], exit = null, enter;
1335
+ if (enterExit !== null) {
1336
+ ({enter, exit} = enterExit);
1337
+ enter !== null && enter(node);
1338
+ }
1339
+ walkNode(node.name, visitors);
1340
+ exit !== null && exit(node);
1341
+ }
1342
+ function walkJSXElement(node, visitors) {
1343
+ let enterExit = visitors[98], exit = null, enter;
1344
+ if (enterExit !== null) {
1345
+ ({enter, exit} = enterExit);
1346
+ enter !== null && enter(node);
1347
+ }
1348
+ walkNode(node.openingElement, visitors);
1349
+ walkNode(node.children, visitors);
1350
+ walkNode(node.closingElement, visitors);
1351
+ exit !== null && exit(node);
1352
+ }
1353
+ function walkJSXExpressionContainer(node, visitors) {
1354
+ let enterExit = visitors[99], exit = null, enter;
1355
+ if (enterExit !== null) {
1356
+ ({enter, exit} = enterExit);
1357
+ enter !== null && enter(node);
1358
+ }
1359
+ walkNode(node.expression, visitors);
1360
+ exit !== null && exit(node);
1361
+ }
1362
+ function walkJSXFragment(node, visitors) {
1363
+ let enterExit = visitors[100], exit = null, enter;
1364
+ if (enterExit !== null) {
1365
+ ({enter, exit} = enterExit);
1366
+ enter !== null && enter(node);
1367
+ }
1368
+ walkNode(node.openingFragment, visitors);
1369
+ walkNode(node.children, visitors);
1370
+ walkNode(node.closingFragment, visitors);
1371
+ exit !== null && exit(node);
1372
+ }
1373
+ function walkJSXMemberExpression(node, visitors) {
1374
+ let enterExit = visitors[101], exit = null, enter;
1375
+ if (enterExit !== null) {
1376
+ ({enter, exit} = enterExit);
1377
+ enter !== null && enter(node);
1378
+ }
1379
+ walkNode(node.object, visitors);
1380
+ walkNode(node.property, visitors);
1381
+ exit !== null && exit(node);
1382
+ }
1383
+ function walkJSXNamespacedName(node, visitors) {
1384
+ let enterExit = visitors[102], exit = null, enter;
1385
+ if (enterExit !== null) {
1386
+ ({enter, exit} = enterExit);
1387
+ enter !== null && enter(node);
1388
+ }
1389
+ walkNode(node.namespace, visitors);
1390
+ walkNode(node.name, visitors);
1391
+ exit !== null && exit(node);
1392
+ }
1393
+ function walkJSXOpeningElement(node, visitors) {
1394
+ let enterExit = visitors[103], exit = null, enter;
1395
+ if (enterExit !== null) {
1396
+ ({enter, exit} = enterExit);
1397
+ enter !== null && enter(node);
1398
+ }
1399
+ walkNode(node.name, visitors);
1400
+ walkNode(node.typeArguments, visitors);
1401
+ walkNode(node.attributes, visitors);
1402
+ exit !== null && exit(node);
1403
+ }
1404
+ function walkJSXSpreadAttribute(node, visitors) {
1405
+ let enterExit = visitors[104], exit = null, enter;
1406
+ if (enterExit !== null) {
1407
+ ({enter, exit} = enterExit);
1408
+ enter !== null && enter(node);
1409
+ }
1410
+ walkNode(node.argument, visitors);
1411
+ exit !== null && exit(node);
1412
+ }
1413
+ function walkJSXSpreadChild(node, visitors) {
1414
+ let enterExit = visitors[105], exit = null, enter;
1415
+ if (enterExit !== null) {
1416
+ ({enter, exit} = enterExit);
1417
+ enter !== null && enter(node);
1418
+ }
1419
+ walkNode(node.expression, visitors);
1420
+ exit !== null && exit(node);
1421
+ }
1422
+ function walkTSAbstractAccessorProperty(node, visitors) {
1423
+ let enterExit = visitors[106], exit = null, enter;
1424
+ if (enterExit !== null) {
1425
+ ({enter, exit} = enterExit);
1426
+ enter !== null && enter(node);
1427
+ }
1428
+ walkNode(node.decorators, visitors);
1429
+ walkNode(node.key, visitors);
1430
+ walkNode(node.typeAnnotation, visitors);
1431
+ exit !== null && exit(node);
1432
+ }
1433
+ function walkTSAbstractMethodDefinition(node, visitors) {
1434
+ let enterExit = visitors[107], exit = null, enter;
1435
+ if (enterExit !== null) {
1436
+ ({enter, exit} = enterExit);
1437
+ enter !== null && enter(node);
1438
+ }
1439
+ walkNode(node.key, visitors);
1440
+ walkNode(node.value, visitors);
1441
+ exit !== null && exit(node);
1442
+ }
1443
+ function walkTSAbstractPropertyDefinition(node, visitors) {
1444
+ let enterExit = visitors[108], exit = null, enter;
1445
+ if (enterExit !== null) {
1446
+ ({enter, exit} = enterExit);
1447
+ enter !== null && enter(node);
1448
+ }
1449
+ walkNode(node.decorators, visitors);
1450
+ walkNode(node.key, visitors);
1451
+ walkNode(node.typeAnnotation, visitors);
1452
+ exit !== null && exit(node);
1453
+ }
1454
+ function walkTSArrayType(node, visitors) {
1455
+ let enterExit = visitors[109], exit = null, enter;
1456
+ if (enterExit !== null) {
1457
+ ({enter, exit} = enterExit);
1458
+ enter !== null && enter(node);
1459
+ }
1460
+ walkNode(node.elementType, visitors);
1461
+ exit !== null && exit(node);
1462
+ }
1463
+ function walkTSAsExpression(node, visitors) {
1464
+ let enterExit = visitors[110], exit = null, enter;
1465
+ if (enterExit !== null) {
1466
+ ({enter, exit} = enterExit);
1467
+ enter !== null && enter(node);
1468
+ }
1469
+ walkNode(node.expression, visitors);
1470
+ walkNode(node.typeAnnotation, visitors);
1471
+ exit !== null && exit(node);
1472
+ }
1473
+ function walkTSCallSignatureDeclaration(node, visitors) {
1474
+ let enterExit = visitors[111], exit = null, enter;
1475
+ if (enterExit !== null) {
1476
+ ({enter, exit} = enterExit);
1477
+ enter !== null && enter(node);
1478
+ }
1479
+ walkNode(node.typeParameters, visitors);
1480
+ walkNode(node.params, visitors);
1481
+ walkNode(node.returnType, visitors);
1482
+ exit !== null && exit(node);
1483
+ }
1484
+ function walkTSClassImplements(node, visitors) {
1485
+ let enterExit = visitors[112], exit = null, enter;
1486
+ if (enterExit !== null) {
1487
+ ({enter, exit} = enterExit);
1488
+ enter !== null && enter(node);
1489
+ }
1490
+ walkNode(node.expression, visitors);
1491
+ walkNode(node.typeArguments, visitors);
1492
+ exit !== null && exit(node);
1493
+ }
1494
+ function walkTSConditionalType(node, visitors) {
1495
+ let enterExit = visitors[113], exit = null, enter;
1496
+ if (enterExit !== null) {
1497
+ ({enter, exit} = enterExit);
1498
+ enter !== null && enter(node);
1499
+ }
1500
+ walkNode(node.checkType, visitors);
1501
+ walkNode(node.extendsType, visitors);
1502
+ walkNode(node.trueType, visitors);
1503
+ walkNode(node.falseType, visitors);
1504
+ exit !== null && exit(node);
1505
+ }
1506
+ function walkTSConstructSignatureDeclaration(node, visitors) {
1507
+ let enterExit = visitors[114], exit = null, enter;
1508
+ if (enterExit !== null) {
1509
+ ({enter, exit} = enterExit);
1510
+ enter !== null && enter(node);
1511
+ }
1512
+ walkNode(node.typeParameters, visitors);
1513
+ walkNode(node.params, visitors);
1514
+ walkNode(node.returnType, visitors);
1515
+ exit !== null && exit(node);
1516
+ }
1517
+ function walkTSConstructorType(node, visitors) {
1518
+ let enterExit = visitors[115], exit = null, enter;
1519
+ if (enterExit !== null) {
1520
+ ({enter, exit} = enterExit);
1521
+ enter !== null && enter(node);
1522
+ }
1523
+ walkNode(node.typeParameters, visitors);
1524
+ walkNode(node.params, visitors);
1525
+ walkNode(node.returnType, visitors);
1526
+ exit !== null && exit(node);
1527
+ }
1528
+ function walkTSDeclareFunction(node, visitors) {
1529
+ let enterExit = visitors[116], exit = null, enter;
1530
+ if (enterExit !== null) {
1531
+ ({enter, exit} = enterExit);
1532
+ enter !== null && enter(node);
1533
+ }
1534
+ walkNode(node.id, visitors);
1535
+ walkNode(node.typeParameters, visitors);
1536
+ walkNode(node.params, visitors);
1537
+ walkNode(node.returnType, visitors);
1538
+ walkNode(node.body, visitors);
1539
+ exit !== null && exit(node);
1540
+ }
1541
+ function walkTSEmptyBodyFunctionExpression(node, visitors) {
1542
+ let enterExit = visitors[117], exit = null, enter;
1543
+ if (enterExit !== null) {
1544
+ ({enter, exit} = enterExit);
1545
+ enter !== null && enter(node);
1546
+ }
1547
+ walkNode(node.id, visitors);
1548
+ walkNode(node.typeParameters, visitors);
1549
+ walkNode(node.params, visitors);
1550
+ walkNode(node.returnType, visitors);
1551
+ exit !== null && exit(node);
1552
+ }
1553
+ function walkTSEnumBody(node, visitors) {
1554
+ let enterExit = visitors[118], exit = null, enter;
1555
+ if (enterExit !== null) {
1556
+ ({enter, exit} = enterExit);
1557
+ enter !== null && enter(node);
1558
+ }
1559
+ walkNode(node.members, visitors);
1560
+ exit !== null && exit(node);
1561
+ }
1562
+ function walkTSEnumDeclaration(node, visitors) {
1563
+ let enterExit = visitors[119], exit = null, enter;
1564
+ if (enterExit !== null) {
1565
+ ({enter, exit} = enterExit);
1566
+ enter !== null && enter(node);
1567
+ }
1568
+ walkNode(node.id, visitors);
1569
+ walkNode(node.body, visitors);
1570
+ exit !== null && exit(node);
1571
+ }
1572
+ function walkTSEnumMember(node, visitors) {
1573
+ let enterExit = visitors[120], exit = null, enter;
1574
+ if (enterExit !== null) {
1575
+ ({enter, exit} = enterExit);
1576
+ enter !== null && enter(node);
1577
+ }
1578
+ walkNode(node.id, visitors);
1579
+ walkNode(node.initializer, visitors);
1580
+ exit !== null && exit(node);
1581
+ }
1582
+ function walkTSExportAssignment(node, visitors) {
1583
+ let enterExit = visitors[121], exit = null, enter;
1584
+ if (enterExit !== null) {
1585
+ ({enter, exit} = enterExit);
1586
+ enter !== null && enter(node);
1587
+ }
1588
+ walkNode(node.expression, visitors);
1589
+ exit !== null && exit(node);
1590
+ }
1591
+ function walkTSExternalModuleReference(node, visitors) {
1592
+ let enterExit = visitors[122], exit = null, enter;
1593
+ if (enterExit !== null) {
1594
+ ({enter, exit} = enterExit);
1595
+ enter !== null && enter(node);
1596
+ }
1597
+ walkNode(node.expression, visitors);
1598
+ exit !== null && exit(node);
1599
+ }
1600
+ function walkTSFunctionType(node, visitors) {
1601
+ let enterExit = visitors[123], exit = null, enter;
1602
+ if (enterExit !== null) {
1603
+ ({enter, exit} = enterExit);
1604
+ enter !== null && enter(node);
1605
+ }
1606
+ walkNode(node.typeParameters, visitors);
1607
+ walkNode(node.params, visitors);
1608
+ walkNode(node.returnType, visitors);
1609
+ exit !== null && exit(node);
1610
+ }
1611
+ function walkTSImportEqualsDeclaration(node, visitors) {
1612
+ let enterExit = visitors[124], exit = null, enter;
1613
+ if (enterExit !== null) {
1614
+ ({enter, exit} = enterExit);
1615
+ enter !== null && enter(node);
1616
+ }
1617
+ walkNode(node.id, visitors);
1618
+ walkNode(node.moduleReference, visitors);
1619
+ exit !== null && exit(node);
1620
+ }
1621
+ function walkTSImportType(node, visitors) {
1622
+ let enterExit = visitors[125], exit = null, enter;
1623
+ if (enterExit !== null) {
1624
+ ({enter, exit} = enterExit);
1625
+ enter !== null && enter(node);
1626
+ }
1627
+ walkNode(node.source, visitors);
1628
+ walkNode(node.options, visitors);
1629
+ walkNode(node.qualifier, visitors);
1630
+ walkNode(node.typeArguments, visitors);
1631
+ exit !== null && exit(node);
1632
+ }
1633
+ function walkTSIndexSignature(node, visitors) {
1634
+ let enterExit = visitors[126], exit = null, enter;
1635
+ if (enterExit !== null) {
1636
+ ({enter, exit} = enterExit);
1637
+ enter !== null && enter(node);
1638
+ }
1639
+ walkNode(node.parameters, visitors);
1640
+ walkNode(node.typeAnnotation, visitors);
1641
+ exit !== null && exit(node);
1642
+ }
1643
+ function walkTSIndexedAccessType(node, visitors) {
1644
+ let enterExit = visitors[127], exit = null, enter;
1645
+ if (enterExit !== null) {
1646
+ ({enter, exit} = enterExit);
1647
+ enter !== null && enter(node);
1648
+ }
1649
+ walkNode(node.objectType, visitors);
1650
+ walkNode(node.indexType, visitors);
1651
+ exit !== null && exit(node);
1652
+ }
1653
+ function walkTSInferType(node, visitors) {
1654
+ let enterExit = visitors[128], exit = null, enter;
1655
+ if (enterExit !== null) {
1656
+ ({enter, exit} = enterExit);
1657
+ enter !== null && enter(node);
1658
+ }
1659
+ walkNode(node.typeParameter, visitors);
1660
+ exit !== null && exit(node);
1661
+ }
1662
+ function walkTSInstantiationExpression(node, visitors) {
1663
+ let enterExit = visitors[129], exit = null, enter;
1664
+ if (enterExit !== null) {
1665
+ ({enter, exit} = enterExit);
1666
+ enter !== null && enter(node);
1667
+ }
1668
+ walkNode(node.expression, visitors);
1669
+ walkNode(node.typeArguments, visitors);
1670
+ exit !== null && exit(node);
1671
+ }
1672
+ function walkTSInterfaceBody(node, visitors) {
1673
+ let enterExit = visitors[130], exit = null, enter;
1674
+ if (enterExit !== null) {
1675
+ ({enter, exit} = enterExit);
1676
+ enter !== null && enter(node);
1677
+ }
1678
+ walkNode(node.body, visitors);
1679
+ exit !== null && exit(node);
1680
+ }
1681
+ function walkTSInterfaceDeclaration(node, visitors) {
1682
+ let enterExit = visitors[131], exit = null, enter;
1683
+ if (enterExit !== null) {
1684
+ ({enter, exit} = enterExit);
1685
+ enter !== null && enter(node);
1686
+ }
1687
+ walkNode(node.id, visitors);
1688
+ walkNode(node.typeParameters, visitors);
1689
+ walkNode(node.extends, visitors);
1690
+ walkNode(node.body, visitors);
1691
+ exit !== null && exit(node);
1692
+ }
1693
+ function walkTSInterfaceHeritage(node, visitors) {
1694
+ let enterExit = visitors[132], exit = null, enter;
1695
+ if (enterExit !== null) {
1696
+ ({enter, exit} = enterExit);
1697
+ enter !== null && enter(node);
1698
+ }
1699
+ walkNode(node.expression, visitors);
1700
+ walkNode(node.typeArguments, visitors);
1701
+ exit !== null && exit(node);
1702
+ }
1703
+ function walkTSIntersectionType(node, visitors) {
1704
+ let enterExit = visitors[133], exit = null, enter;
1705
+ if (enterExit !== null) {
1706
+ ({enter, exit} = enterExit);
1707
+ enter !== null && enter(node);
1708
+ }
1709
+ walkNode(node.types, visitors);
1710
+ exit !== null && exit(node);
1711
+ }
1712
+ function walkTSJSDocNonNullableType(node, visitors) {
1713
+ let enterExit = visitors[134], exit = null, enter;
1714
+ if (enterExit !== null) {
1715
+ ({enter, exit} = enterExit);
1716
+ enter !== null && enter(node);
1717
+ }
1718
+ walkNode(node.typeAnnotation, visitors);
1719
+ exit !== null && exit(node);
1720
+ }
1721
+ function walkTSJSDocNullableType(node, visitors) {
1722
+ let enterExit = visitors[135], exit = null, enter;
1723
+ if (enterExit !== null) {
1724
+ ({enter, exit} = enterExit);
1725
+ enter !== null && enter(node);
1726
+ }
1727
+ walkNode(node.typeAnnotation, visitors);
1728
+ exit !== null && exit(node);
1729
+ }
1730
+ function walkTSLiteralType(node, visitors) {
1731
+ let enterExit = visitors[136], exit = null, enter;
1732
+ if (enterExit !== null) {
1733
+ ({enter, exit} = enterExit);
1734
+ enter !== null && enter(node);
1735
+ }
1736
+ walkNode(node.literal, visitors);
1737
+ exit !== null && exit(node);
1738
+ }
1739
+ function walkTSMappedType(node, visitors) {
1740
+ let enterExit = visitors[137], exit = null, enter;
1741
+ if (enterExit !== null) {
1742
+ ({enter, exit} = enterExit);
1743
+ enter !== null && enter(node);
1744
+ }
1745
+ walkNode(node.key, visitors);
1746
+ walkNode(node.constraint, visitors);
1747
+ walkNode(node.nameType, visitors);
1748
+ walkNode(node.typeAnnotation, visitors);
1749
+ exit !== null && exit(node);
1750
+ }
1751
+ function walkTSMethodSignature(node, visitors) {
1752
+ let enterExit = visitors[138], exit = null, enter;
1753
+ if (enterExit !== null) {
1754
+ ({enter, exit} = enterExit);
1755
+ enter !== null && enter(node);
1756
+ }
1757
+ walkNode(node.key, visitors);
1758
+ walkNode(node.typeParameters, visitors);
1759
+ walkNode(node.params, visitors);
1760
+ walkNode(node.returnType, visitors);
1761
+ exit !== null && exit(node);
1762
+ }
1763
+ function walkTSModuleBlock(node, visitors) {
1764
+ let enterExit = visitors[139], exit = null, enter;
1765
+ if (enterExit !== null) {
1766
+ ({enter, exit} = enterExit);
1767
+ enter !== null && enter(node);
1768
+ }
1769
+ walkNode(node.body, visitors);
1770
+ exit !== null && exit(node);
1771
+ }
1772
+ function walkTSModuleDeclaration(node, visitors) {
1773
+ let enterExit = visitors[140], exit = null, enter;
1774
+ if (enterExit !== null) {
1775
+ ({enter, exit} = enterExit);
1776
+ enter !== null && enter(node);
1777
+ }
1778
+ walkNode(node.id, visitors);
1779
+ walkNode(node.body, visitors);
1780
+ exit !== null && exit(node);
1781
+ }
1782
+ function walkTSNamedTupleMember(node, visitors) {
1783
+ let enterExit = visitors[141], exit = null, enter;
1784
+ if (enterExit !== null) {
1785
+ ({enter, exit} = enterExit);
1786
+ enter !== null && enter(node);
1787
+ }
1788
+ walkNode(node.label, visitors);
1789
+ walkNode(node.elementType, visitors);
1790
+ exit !== null && exit(node);
1791
+ }
1792
+ function walkTSNamespaceExportDeclaration(node, visitors) {
1793
+ let enterExit = visitors[142], exit = null, enter;
1794
+ if (enterExit !== null) {
1795
+ ({enter, exit} = enterExit);
1796
+ enter !== null && enter(node);
1797
+ }
1798
+ walkNode(node.id, visitors);
1799
+ exit !== null && exit(node);
1800
+ }
1801
+ function walkTSNonNullExpression(node, visitors) {
1802
+ let enterExit = visitors[143], exit = null, enter;
1803
+ if (enterExit !== null) {
1804
+ ({enter, exit} = enterExit);
1805
+ enter !== null && enter(node);
1806
+ }
1807
+ walkNode(node.expression, visitors);
1808
+ exit !== null && exit(node);
1809
+ }
1810
+ function walkTSOptionalType(node, visitors) {
1811
+ let enterExit = visitors[144], exit = null, enter;
1812
+ if (enterExit !== null) {
1813
+ ({enter, exit} = enterExit);
1814
+ enter !== null && enter(node);
1815
+ }
1816
+ walkNode(node.typeAnnotation, visitors);
1817
+ exit !== null && exit(node);
1818
+ }
1819
+ function walkTSParameterProperty(node, visitors) {
1820
+ let enterExit = visitors[145], exit = null, enter;
1821
+ if (enterExit !== null) {
1822
+ ({enter, exit} = enterExit);
1823
+ enter !== null && enter(node);
1824
+ }
1825
+ walkNode(node.decorators, visitors);
1826
+ walkNode(node.parameter, visitors);
1827
+ exit !== null && exit(node);
1828
+ }
1829
+ function walkTSParenthesizedType(node, visitors) {
1830
+ let enterExit = visitors[146], exit = null, enter;
1831
+ if (enterExit !== null) {
1832
+ ({enter, exit} = enterExit);
1833
+ enter !== null && enter(node);
1834
+ }
1835
+ walkNode(node.typeAnnotation, visitors);
1836
+ exit !== null && exit(node);
1837
+ }
1838
+ function walkTSPropertySignature(node, visitors) {
1839
+ let enterExit = visitors[147], exit = null, enter;
1840
+ if (enterExit !== null) {
1841
+ ({enter, exit} = enterExit);
1842
+ enter !== null && enter(node);
1843
+ }
1844
+ walkNode(node.key, visitors);
1845
+ walkNode(node.typeAnnotation, visitors);
1846
+ exit !== null && exit(node);
1847
+ }
1848
+ function walkTSQualifiedName(node, visitors) {
1849
+ let enterExit = visitors[148], exit = null, enter;
1850
+ if (enterExit !== null) {
1851
+ ({enter, exit} = enterExit);
1852
+ enter !== null && enter(node);
1853
+ }
1854
+ walkNode(node.left, visitors);
1855
+ walkNode(node.right, visitors);
1856
+ exit !== null && exit(node);
1857
+ }
1858
+ function walkTSRestType(node, visitors) {
1859
+ let enterExit = visitors[149], exit = null, enter;
1860
+ if (enterExit !== null) {
1861
+ ({enter, exit} = enterExit);
1862
+ enter !== null && enter(node);
1863
+ }
1864
+ walkNode(node.typeAnnotation, visitors);
1865
+ exit !== null && exit(node);
1866
+ }
1867
+ function walkTSSatisfiesExpression(node, visitors) {
1868
+ let enterExit = visitors[150], exit = null, enter;
1869
+ if (enterExit !== null) {
1870
+ ({enter, exit} = enterExit);
1871
+ enter !== null && enter(node);
1872
+ }
1873
+ walkNode(node.expression, visitors);
1874
+ walkNode(node.typeAnnotation, visitors);
1875
+ exit !== null && exit(node);
1876
+ }
1877
+ function walkTSTemplateLiteralType(node, visitors) {
1878
+ let enterExit = visitors[151], exit = null, enter;
1879
+ if (enterExit !== null) {
1880
+ ({enter, exit} = enterExit);
1881
+ enter !== null && enter(node);
1882
+ }
1883
+ walkNode(node.quasis, visitors);
1884
+ walkNode(node.types, visitors);
1885
+ exit !== null && exit(node);
1886
+ }
1887
+ function walkTSTupleType(node, visitors) {
1888
+ let enterExit = visitors[152], exit = null, enter;
1889
+ if (enterExit !== null) {
1890
+ ({enter, exit} = enterExit);
1891
+ enter !== null && enter(node);
1892
+ }
1893
+ walkNode(node.elementTypes, visitors);
1894
+ exit !== null && exit(node);
1895
+ }
1896
+ function walkTSTypeAliasDeclaration(node, visitors) {
1897
+ let enterExit = visitors[153], exit = null, enter;
1898
+ if (enterExit !== null) {
1899
+ ({enter, exit} = enterExit);
1900
+ enter !== null && enter(node);
1901
+ }
1902
+ walkNode(node.id, visitors);
1903
+ walkNode(node.typeParameters, visitors);
1904
+ walkNode(node.typeAnnotation, visitors);
1905
+ exit !== null && exit(node);
1906
+ }
1907
+ function walkTSTypeAnnotation(node, visitors) {
1908
+ let enterExit = visitors[154], exit = null, enter;
1909
+ if (enterExit !== null) {
1910
+ ({enter, exit} = enterExit);
1911
+ enter !== null && enter(node);
1912
+ }
1913
+ walkNode(node.typeAnnotation, visitors);
1914
+ exit !== null && exit(node);
1915
+ }
1916
+ function walkTSTypeAssertion(node, visitors) {
1917
+ let enterExit = visitors[155], exit = null, enter;
1918
+ if (enterExit !== null) {
1919
+ ({enter, exit} = enterExit);
1920
+ enter !== null && enter(node);
1921
+ }
1922
+ walkNode(node.typeAnnotation, visitors);
1923
+ walkNode(node.expression, visitors);
1924
+ exit !== null && exit(node);
1925
+ }
1926
+ function walkTSTypeLiteral(node, visitors) {
1927
+ let enterExit = visitors[156], exit = null, enter;
1928
+ if (enterExit !== null) {
1929
+ ({enter, exit} = enterExit);
1930
+ enter !== null && enter(node);
1931
+ }
1932
+ walkNode(node.members, visitors);
1933
+ exit !== null && exit(node);
1934
+ }
1935
+ function walkTSTypeOperator(node, visitors) {
1936
+ let enterExit = visitors[157], exit = null, enter;
1937
+ if (enterExit !== null) {
1938
+ ({enter, exit} = enterExit);
1939
+ enter !== null && enter(node);
1940
+ }
1941
+ walkNode(node.typeAnnotation, visitors);
1942
+ exit !== null && exit(node);
1943
+ }
1944
+ function walkTSTypeParameter(node, visitors) {
1945
+ let enterExit = visitors[158], exit = null, enter;
1946
+ if (enterExit !== null) {
1947
+ ({enter, exit} = enterExit);
1948
+ enter !== null && enter(node);
1949
+ }
1950
+ walkNode(node.name, visitors);
1951
+ walkNode(node.constraint, visitors);
1952
+ walkNode(node.default, visitors);
1953
+ exit !== null && exit(node);
1954
+ }
1955
+ function walkTSTypeParameterDeclaration(node, visitors) {
1956
+ let enterExit = visitors[159], exit = null, enter;
1957
+ if (enterExit !== null) {
1958
+ ({enter, exit} = enterExit);
1959
+ enter !== null && enter(node);
1960
+ }
1961
+ walkNode(node.params, visitors);
1962
+ exit !== null && exit(node);
1963
+ }
1964
+ function walkTSTypeParameterInstantiation(node, visitors) {
1965
+ let enterExit = visitors[160], exit = null, enter;
1966
+ if (enterExit !== null) {
1967
+ ({enter, exit} = enterExit);
1968
+ enter !== null && enter(node);
1969
+ }
1970
+ walkNode(node.params, visitors);
1971
+ exit !== null && exit(node);
1972
+ }
1973
+ function walkTSTypePredicate(node, visitors) {
1974
+ let enterExit = visitors[161], exit = null, enter;
1975
+ if (enterExit !== null) {
1976
+ ({enter, exit} = enterExit);
1977
+ enter !== null && enter(node);
1978
+ }
1979
+ walkNode(node.parameterName, visitors);
1980
+ walkNode(node.typeAnnotation, visitors);
1981
+ exit !== null && exit(node);
1982
+ }
1983
+ function walkTSTypeQuery(node, visitors) {
1984
+ let enterExit = visitors[162], exit = null, enter;
1985
+ if (enterExit !== null) {
1986
+ ({enter, exit} = enterExit);
1987
+ enter !== null && enter(node);
1988
+ }
1989
+ walkNode(node.exprName, visitors);
1990
+ walkNode(node.typeArguments, visitors);
1991
+ exit !== null && exit(node);
1992
+ }
1993
+ function walkTSTypeReference(node, visitors) {
1994
+ let enterExit = visitors[163], exit = null, enter;
1995
+ if (enterExit !== null) {
1996
+ ({enter, exit} = enterExit);
1997
+ enter !== null && enter(node);
1998
+ }
1999
+ walkNode(node.typeName, visitors);
2000
+ walkNode(node.typeArguments, visitors);
2001
+ exit !== null && exit(node);
2002
+ }
2003
+ function walkTSUnionType(node, visitors) {
2004
+ let enterExit = visitors[164], exit = null, enter;
2005
+ if (enterExit !== null) {
2006
+ ({enter, exit} = enterExit);
2007
+ enter !== null && enter(node);
2008
+ }
2009
+ walkNode(node.types, visitors);
2010
+ exit !== null && exit(node);
2011
+ }
2012
+ //#endregion
2013
+ //#region ../../node_modules/.pnpm/oxc-parser@0.120.0/node_modules/oxc-parser/src-js/generated/visit/type_ids.js
2014
+ /** Mapping from node type name to node type ID */
2015
+ const NODE_TYPE_IDS_MAP = new Map([
2016
+ ["DebuggerStatement", 0],
2017
+ ["EmptyStatement", 1],
2018
+ ["Literal", 2],
2019
+ ["PrivateIdentifier", 3],
2020
+ ["Super", 4],
2021
+ ["TemplateElement", 5],
2022
+ ["ThisExpression", 6],
2023
+ ["JSXClosingFragment", 7],
2024
+ ["JSXEmptyExpression", 8],
2025
+ ["JSXIdentifier", 9],
2026
+ ["JSXOpeningFragment", 10],
2027
+ ["JSXText", 11],
2028
+ ["TSAnyKeyword", 12],
2029
+ ["TSBigIntKeyword", 13],
2030
+ ["TSBooleanKeyword", 14],
2031
+ ["TSIntrinsicKeyword", 15],
2032
+ ["TSJSDocUnknownType", 16],
2033
+ ["TSNeverKeyword", 17],
2034
+ ["TSNullKeyword", 18],
2035
+ ["TSNumberKeyword", 19],
2036
+ ["TSObjectKeyword", 20],
2037
+ ["TSStringKeyword", 21],
2038
+ ["TSSymbolKeyword", 22],
2039
+ ["TSThisType", 23],
2040
+ ["TSUndefinedKeyword", 24],
2041
+ ["TSUnknownKeyword", 25],
2042
+ ["TSVoidKeyword", 26],
2043
+ ["AccessorProperty", 27],
2044
+ ["ArrayExpression", 28],
2045
+ ["ArrayPattern", 29],
2046
+ ["ArrowFunctionExpression", 30],
2047
+ ["AssignmentExpression", 31],
2048
+ ["AssignmentPattern", 32],
2049
+ ["AwaitExpression", 33],
2050
+ ["BinaryExpression", 34],
2051
+ ["BlockStatement", 35],
2052
+ ["BreakStatement", 36],
2053
+ ["CallExpression", 37],
2054
+ ["CatchClause", 38],
2055
+ ["ChainExpression", 39],
2056
+ ["ClassBody", 40],
2057
+ ["ClassDeclaration", 41],
2058
+ ["ClassExpression", 42],
2059
+ ["ConditionalExpression", 43],
2060
+ ["ContinueStatement", 44],
2061
+ ["Decorator", 45],
2062
+ ["DoWhileStatement", 46],
2063
+ ["ExportAllDeclaration", 47],
2064
+ ["ExportDefaultDeclaration", 48],
2065
+ ["ExportNamedDeclaration", 49],
2066
+ ["ExportSpecifier", 50],
2067
+ ["ExpressionStatement", 51],
2068
+ ["ForInStatement", 52],
2069
+ ["ForOfStatement", 53],
2070
+ ["ForStatement", 54],
2071
+ ["FunctionDeclaration", 55],
2072
+ ["FunctionExpression", 56],
2073
+ ["Identifier", 57],
2074
+ ["IfStatement", 58],
2075
+ ["ImportAttribute", 59],
2076
+ ["ImportDeclaration", 60],
2077
+ ["ImportDefaultSpecifier", 61],
2078
+ ["ImportExpression", 62],
2079
+ ["ImportNamespaceSpecifier", 63],
2080
+ ["ImportSpecifier", 64],
2081
+ ["LabeledStatement", 65],
2082
+ ["LogicalExpression", 66],
2083
+ ["MemberExpression", 67],
2084
+ ["MetaProperty", 68],
2085
+ ["MethodDefinition", 69],
2086
+ ["NewExpression", 70],
2087
+ ["ObjectExpression", 71],
2088
+ ["ObjectPattern", 72],
2089
+ ["ParenthesizedExpression", 73],
2090
+ ["Program", 74],
2091
+ ["Property", 75],
2092
+ ["PropertyDefinition", 76],
2093
+ ["RestElement", 77],
2094
+ ["ReturnStatement", 78],
2095
+ ["SequenceExpression", 79],
2096
+ ["SpreadElement", 80],
2097
+ ["StaticBlock", 81],
2098
+ ["SwitchCase", 82],
2099
+ ["SwitchStatement", 83],
2100
+ ["TaggedTemplateExpression", 84],
2101
+ ["TemplateLiteral", 85],
2102
+ ["ThrowStatement", 86],
2103
+ ["TryStatement", 87],
2104
+ ["UnaryExpression", 88],
2105
+ ["UpdateExpression", 89],
2106
+ ["V8IntrinsicExpression", 90],
2107
+ ["VariableDeclaration", 91],
2108
+ ["VariableDeclarator", 92],
2109
+ ["WhileStatement", 93],
2110
+ ["WithStatement", 94],
2111
+ ["YieldExpression", 95],
2112
+ ["JSXAttribute", 96],
2113
+ ["JSXClosingElement", 97],
2114
+ ["JSXElement", 98],
2115
+ ["JSXExpressionContainer", 99],
2116
+ ["JSXFragment", 100],
2117
+ ["JSXMemberExpression", 101],
2118
+ ["JSXNamespacedName", 102],
2119
+ ["JSXOpeningElement", 103],
2120
+ ["JSXSpreadAttribute", 104],
2121
+ ["JSXSpreadChild", 105],
2122
+ ["TSAbstractAccessorProperty", 106],
2123
+ ["TSAbstractMethodDefinition", 107],
2124
+ ["TSAbstractPropertyDefinition", 108],
2125
+ ["TSArrayType", 109],
2126
+ ["TSAsExpression", 110],
2127
+ ["TSCallSignatureDeclaration", 111],
2128
+ ["TSClassImplements", 112],
2129
+ ["TSConditionalType", 113],
2130
+ ["TSConstructSignatureDeclaration", 114],
2131
+ ["TSConstructorType", 115],
2132
+ ["TSDeclareFunction", 116],
2133
+ ["TSEmptyBodyFunctionExpression", 117],
2134
+ ["TSEnumBody", 118],
2135
+ ["TSEnumDeclaration", 119],
2136
+ ["TSEnumMember", 120],
2137
+ ["TSExportAssignment", 121],
2138
+ ["TSExternalModuleReference", 122],
2139
+ ["TSFunctionType", 123],
2140
+ ["TSImportEqualsDeclaration", 124],
2141
+ ["TSImportType", 125],
2142
+ ["TSIndexSignature", 126],
2143
+ ["TSIndexedAccessType", 127],
2144
+ ["TSInferType", 128],
2145
+ ["TSInstantiationExpression", 129],
2146
+ ["TSInterfaceBody", 130],
2147
+ ["TSInterfaceDeclaration", 131],
2148
+ ["TSInterfaceHeritage", 132],
2149
+ ["TSIntersectionType", 133],
2150
+ ["TSJSDocNonNullableType", 134],
2151
+ ["TSJSDocNullableType", 135],
2152
+ ["TSLiteralType", 136],
2153
+ ["TSMappedType", 137],
2154
+ ["TSMethodSignature", 138],
2155
+ ["TSModuleBlock", 139],
2156
+ ["TSModuleDeclaration", 140],
2157
+ ["TSNamedTupleMember", 141],
2158
+ ["TSNamespaceExportDeclaration", 142],
2159
+ ["TSNonNullExpression", 143],
2160
+ ["TSOptionalType", 144],
2161
+ ["TSParameterProperty", 145],
2162
+ ["TSParenthesizedType", 146],
2163
+ ["TSPropertySignature", 147],
2164
+ ["TSQualifiedName", 148],
2165
+ ["TSRestType", 149],
2166
+ ["TSSatisfiesExpression", 150],
2167
+ ["TSTemplateLiteralType", 151],
2168
+ ["TSTupleType", 152],
2169
+ ["TSTypeAliasDeclaration", 153],
2170
+ ["TSTypeAnnotation", 154],
2171
+ ["TSTypeAssertion", 155],
2172
+ ["TSTypeLiteral", 156],
2173
+ ["TSTypeOperator", 157],
2174
+ ["TSTypeParameter", 158],
2175
+ ["TSTypeParameterDeclaration", 159],
2176
+ ["TSTypeParameterInstantiation", 160],
2177
+ ["TSTypePredicate", 161],
2178
+ ["TSTypeQuery", 162],
2179
+ ["TSTypeReference", 163],
2180
+ ["TSUnionType", 164]
2181
+ ]);
2182
+ //#endregion
2183
+ //#region ../../node_modules/.pnpm/oxc-parser@0.120.0/node_modules/oxc-parser/src-js/visit/visitor.js
2184
+ let compiledVisitor;
2185
+ function createCompiledVisitor() {
2186
+ compiledVisitor = [];
2187
+ for (let i = 165; i !== 0; i--) compiledVisitor.push(null);
2188
+ return compiledVisitor;
2189
+ }
2190
+ const mergedLeafVisitorTypeIds = [], mergedEnterVisitorTypeIds = [], mergedExitVisitorTypeIds = [];
2191
+ for (let i = 27; i !== 0; i--) mergedLeafVisitorTypeIds.push(0);
2192
+ for (let i = 138; i !== 0; i--) {
2193
+ mergedEnterVisitorTypeIds.push(0);
2194
+ mergedExitVisitorTypeIds.push(0);
2195
+ }
2196
+ mergedLeafVisitorTypeIds.length = 0;
2197
+ mergedEnterVisitorTypeIds.length = 0;
2198
+ mergedExitVisitorTypeIds.length = 0;
2199
+ let hasActiveVisitors = false;
2200
+ const enterExitObjectCache = [];
2201
+ let enterExitObjectCacheNextIndex = 0;
2202
+ function getEnterExitObject() {
2203
+ if (enterExitObjectCacheNextIndex < enterExitObjectCache.length) return enterExitObjectCache[enterExitObjectCacheNextIndex++];
2204
+ const enterExit = {
2205
+ enter: null,
2206
+ exit: null
2207
+ };
2208
+ enterExitObjectCache.push(enterExit);
2209
+ enterExitObjectCacheNextIndex++;
2210
+ return enterExit;
2211
+ }
2212
+ const visitFnArrayCache = [];
2213
+ let visitFnArrayCacheNextIndex = 0;
2214
+ function createVisitFnArray(visit1, visit2) {
2215
+ if (visitFnArrayCacheNextIndex < visitFnArrayCache.length) {
2216
+ const arr = visitFnArrayCache[visitFnArrayCacheNextIndex++];
2217
+ arr.push(visit1, visit2);
2218
+ return arr;
2219
+ }
2220
+ const arr = [visit1, visit2];
2221
+ visitFnArrayCache.push(arr);
2222
+ visitFnArrayCacheNextIndex++;
2223
+ return arr;
2224
+ }
2225
+ /**
2226
+ * Add a visitor to compiled visitor.
2227
+ *
2228
+ * @param visitor - Visitor object
2229
+ */
2230
+ function addVisitorToCompiled(visitor) {
2231
+ if (visitor === null || typeof visitor !== "object") throw new TypeError("Visitor must be an object");
2232
+ const keys = Object.keys(visitor), keysLen = keys.length;
2233
+ if (keysLen === 0) return;
2234
+ hasActiveVisitors = true;
2235
+ for (let i = 0; i < keysLen; i++) {
2236
+ let name = keys[i];
2237
+ const visitFn = visitor[name];
2238
+ if (typeof visitFn !== "function") throw new TypeError(`'${name}' property of visitor object is not a function`);
2239
+ const isExit = name.endsWith(":exit");
2240
+ if (isExit) name = name.slice(0, -5);
2241
+ const typeId = NODE_TYPE_IDS_MAP.get(name);
2242
+ if (typeId === void 0) throw new Error(`Unknown node type '${name}' in visitor object`);
2243
+ const existing = compiledVisitor[typeId];
2244
+ if (typeId < 27) if (existing === null) compiledVisitor[typeId] = visitFn;
2245
+ else if (Array.isArray(existing)) if (isExit) existing.push(visitFn);
2246
+ else existing.splice(existing.length - 1, 0, visitFn);
2247
+ else {
2248
+ compiledVisitor[typeId] = isExit ? createVisitFnArray(existing, visitFn) : createVisitFnArray(visitFn, existing);
2249
+ mergedLeafVisitorTypeIds.push(typeId);
2250
+ }
2251
+ else if (existing === null) {
2252
+ const enterExit = compiledVisitor[typeId] = getEnterExitObject();
2253
+ if (isExit) enterExit.exit = visitFn;
2254
+ else enterExit.enter = visitFn;
2255
+ } else if (isExit) {
2256
+ const { exit } = existing;
2257
+ if (exit === null) existing.exit = visitFn;
2258
+ else if (Array.isArray(exit)) exit.push(visitFn);
2259
+ else {
2260
+ existing.exit = createVisitFnArray(exit, visitFn);
2261
+ mergedExitVisitorTypeIds.push(typeId);
2262
+ }
2263
+ } else {
2264
+ const { enter } = existing;
2265
+ if (enter === null) existing.enter = visitFn;
2266
+ else if (Array.isArray(enter)) enter.push(visitFn);
2267
+ else {
2268
+ existing.enter = createVisitFnArray(enter, visitFn);
2269
+ mergedEnterVisitorTypeIds.push(typeId);
2270
+ }
2271
+ }
2272
+ }
2273
+ }
2274
+ /**
2275
+ * Finalize compiled visitor.
2276
+ *
2277
+ * After calling this function, `compiledVisitor` is ready to be used to walk the AST.
2278
+ *
2279
+ * @returns {boolean} - `true` if compiled visitor visits at least 1 AST type
2280
+ */
2281
+ function finalizeCompiledVisitor() {
2282
+ if (hasActiveVisitors === false) return false;
2283
+ for (let i = mergedLeafVisitorTypeIds.length - 1; i >= 0; i--) {
2284
+ const typeId = mergedLeafVisitorTypeIds[i];
2285
+ compiledVisitor[typeId] = mergeVisitFns(compiledVisitor[typeId]);
2286
+ }
2287
+ for (let i = mergedEnterVisitorTypeIds.length - 1; i >= 0; i--) {
2288
+ const typeId = mergedEnterVisitorTypeIds[i];
2289
+ const enterExit = compiledVisitor[typeId];
2290
+ enterExit.enter = mergeVisitFns(enterExit.enter);
2291
+ }
2292
+ for (let i = mergedExitVisitorTypeIds.length - 1; i >= 0; i--) {
2293
+ const typeId = mergedExitVisitorTypeIds[i];
2294
+ const enterExit = compiledVisitor[typeId];
2295
+ enterExit.exit = mergeVisitFns(enterExit.exit);
2296
+ }
2297
+ mergedLeafVisitorTypeIds.length = 0;
2298
+ mergedEnterVisitorTypeIds.length = 0;
2299
+ mergedExitVisitorTypeIds.length = 0;
2300
+ visitFnArrayCacheNextIndex = 0;
2301
+ hasActiveVisitors = false;
2302
+ return true;
2303
+ }
2304
+ /**
2305
+ * Merge array of visit functions into a single function, which calls each of input functions in turn.
2306
+ *
2307
+ * The array passed is cleared (length set to 0), so the array can be reused.
2308
+ *
2309
+ * The merged function is statically defined and does not contain a loop, to hopefully allow
2310
+ * JS engine to heavily optimize it.
2311
+ *
2312
+ * `mergers` contains pre-defined functions to merge up to 5 visit functions.
2313
+ * Merger functions for merging more than 5 visit functions are created dynamically on demand.
2314
+ *
2315
+ * @param visitFns - Array of visit functions
2316
+ * @returns Function which calls all of `visitFns` in turn.
2317
+ */
2318
+ function mergeVisitFns(visitFns) {
2319
+ const numVisitFns = visitFns.length;
2320
+ let merger;
2321
+ if (mergers.length <= numVisitFns) {
2322
+ while (mergers.length < numVisitFns) mergers.push(null);
2323
+ merger = createMerger(numVisitFns);
2324
+ mergers.push(merger);
2325
+ } else {
2326
+ merger = mergers[numVisitFns];
2327
+ if (merger === null) merger = mergers[numVisitFns] = createMerger(numVisitFns);
2328
+ }
2329
+ const mergedFn = merger(...visitFns);
2330
+ visitFns.length = 0;
2331
+ return mergedFn;
2332
+ }
2333
+ /**
2334
+ * Create a merger function that merges `fnCount` functions.
2335
+ *
2336
+ * @param fnCount - Number of functions to be merged
2337
+ * @returns Function to merge `fnCount` functions
2338
+ */
2339
+ function createMerger(fnCount) {
2340
+ const args = [];
2341
+ let body = "return node=>{";
2342
+ for (let i = 1; i <= fnCount; i++) {
2343
+ args.push(`visit${i}`);
2344
+ body += `visit${i}(node);`;
2345
+ }
2346
+ body += "}";
2347
+ args.push(body);
2348
+ return new Function(...args);
2349
+ }
2350
+ const mergers = [
2351
+ null,
2352
+ null,
2353
+ (visit1, visit2) => (node) => {
2354
+ visit1(node);
2355
+ visit2(node);
2356
+ },
2357
+ (visit1, visit2, visit3) => (node) => {
2358
+ visit1(node);
2359
+ visit2(node);
2360
+ visit3(node);
2361
+ },
2362
+ (visit1, visit2, visit3, visit4) => (node) => {
2363
+ visit1(node);
2364
+ visit2(node);
2365
+ visit3(node);
2366
+ visit4(node);
2367
+ },
2368
+ (visit1, visit2, visit3, visit4, visit5) => (node) => {
2369
+ visit1(node);
2370
+ visit2(node);
2371
+ visit3(node);
2372
+ visit4(node);
2373
+ visit5(node);
2374
+ }
2375
+ ];
2376
+ //#endregion
2377
+ //#region src/utils/visitor.ts
2378
+ /**
2379
+ * Visitor class for traversing AST.
2380
+ *
2381
+ * @example
2382
+ * ```ts
2383
+ * import { Visitor } from 'rolldown/utils';
2384
+ * import { parseSync } from 'rolldown/utils';
2385
+ *
2386
+ * const result = parseSync(...);
2387
+ * const visitor = new Visitor({
2388
+ * VariableDeclaration(path) {
2389
+ * // Do something with the variable declaration
2390
+ * },
2391
+ * "VariableDeclaration:exit"(path) {
2392
+ * // Do something after visiting the variable declaration
2393
+ * }
2394
+ * });
2395
+ * visitor.visit(result.program);
2396
+ * ```
2397
+ *
2398
+ * @category Utilities
2399
+ * @experimental
2400
+ */
2401
+ var Visitor = class {
2402
+ #compiledVisitor = null;
2403
+ constructor(visitor) {
2404
+ const compiledVisitor = createCompiledVisitor();
2405
+ addVisitorToCompiled(visitor);
2406
+ if (finalizeCompiledVisitor()) this.#compiledVisitor = compiledVisitor;
2407
+ }
2408
+ visit(program) {
2409
+ const compiledVisitor = this.#compiledVisitor;
2410
+ if (compiledVisitor !== null) walkProgram(program, compiledVisitor);
2411
+ }
2412
+ };
2413
+ //#endregion
2414
+ export { TsconfigCache, Visitor, minify, minifySync, parse, parseSync, transform, transformSync };