oxc-parser 0.98.0 → 0.101.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.
@@ -3,7 +3,7 @@
3
3
 
4
4
  let uint8, uint32, float64, sourceText, sourceIsAscii, sourceByteLen;
5
5
 
6
- const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true }),
6
+ const textDecoder = new TextDecoder("utf-8", { ignoreBOM: true }),
7
7
  decodeStr = textDecoder.decode.bind(textDecoder),
8
8
  { fromCodePoint } = String;
9
9
 
@@ -32,7 +32,7 @@ function deserializeProgram(pos) {
32
32
  let start = deserializeU32(pos),
33
33
  end = deserializeU32(pos + 4),
34
34
  program = {
35
- type: 'Program',
35
+ type: "Program",
36
36
  body: null,
37
37
  sourceType: deserializeModuleKind(pos + 125),
38
38
  hashbang: null,
@@ -142,7 +142,7 @@ function deserializeIdentifierName(pos) {
142
142
  let start = deserializeU32(pos),
143
143
  end = deserializeU32(pos + 4);
144
144
  return {
145
- type: 'Identifier',
145
+ type: "Identifier",
146
146
  name: deserializeStr(pos + 8),
147
147
  start,
148
148
  end,
@@ -154,7 +154,7 @@ function deserializeIdentifierReference(pos) {
154
154
  let start = deserializeU32(pos),
155
155
  end = deserializeU32(pos + 4);
156
156
  return {
157
- type: 'Identifier',
157
+ type: "Identifier",
158
158
  name: deserializeStr(pos + 8),
159
159
  start,
160
160
  end,
@@ -166,7 +166,7 @@ function deserializeBindingIdentifier(pos) {
166
166
  let start = deserializeU32(pos),
167
167
  end = deserializeU32(pos + 4);
168
168
  return {
169
- type: 'Identifier',
169
+ type: "Identifier",
170
170
  name: deserializeStr(pos + 8),
171
171
  start,
172
172
  end,
@@ -178,7 +178,7 @@ function deserializeLabelIdentifier(pos) {
178
178
  let start = deserializeU32(pos),
179
179
  end = deserializeU32(pos + 4);
180
180
  return {
181
- type: 'Identifier',
181
+ type: "Identifier",
182
182
  name: deserializeStr(pos + 8),
183
183
  start,
184
184
  end,
@@ -190,7 +190,7 @@ function deserializeThisExpression(pos) {
190
190
  let start = deserializeU32(pos),
191
191
  end = deserializeU32(pos + 4);
192
192
  return {
193
- type: 'ThisExpression',
193
+ type: "ThisExpression",
194
194
  start,
195
195
  end,
196
196
  range: [start, end],
@@ -201,7 +201,7 @@ function deserializeArrayExpression(pos) {
201
201
  let start = deserializeU32(pos),
202
202
  end = deserializeU32(pos + 4),
203
203
  node = {
204
- type: 'ArrayExpression',
204
+ type: "ArrayExpression",
205
205
  elements: null,
206
206
  start,
207
207
  end,
@@ -316,7 +316,7 @@ function deserializeObjectExpression(pos) {
316
316
  let start = deserializeU32(pos),
317
317
  end = deserializeU32(pos + 4),
318
318
  node = {
319
- type: 'ObjectExpression',
319
+ type: "ObjectExpression",
320
320
  properties: null,
321
321
  start,
322
322
  end,
@@ -341,7 +341,7 @@ function deserializeObjectProperty(pos) {
341
341
  let start = deserializeU32(pos),
342
342
  end = deserializeU32(pos + 4),
343
343
  node = {
344
- type: 'Property',
344
+ type: "Property",
345
345
  kind: deserializePropertyKind(pos + 40),
346
346
  key: null,
347
347
  value: null,
@@ -457,11 +457,11 @@ function deserializePropertyKey(pos) {
457
457
  function deserializePropertyKind(pos) {
458
458
  switch (uint8[pos]) {
459
459
  case 0:
460
- return 'init';
460
+ return "init";
461
461
  case 1:
462
- return 'get';
462
+ return "get";
463
463
  case 2:
464
- return 'set';
464
+ return "set";
465
465
  default:
466
466
  throw Error(`Unexpected discriminant ${uint8[pos]} for PropertyKind`);
467
467
  }
@@ -471,7 +471,7 @@ function deserializeTemplateLiteral(pos) {
471
471
  let start = deserializeU32(pos),
472
472
  end = deserializeU32(pos + 4),
473
473
  node = {
474
- type: 'TemplateLiteral',
474
+ type: "TemplateLiteral",
475
475
  quasis: null,
476
476
  expressions: null,
477
477
  start,
@@ -487,7 +487,7 @@ function deserializeTaggedTemplateExpression(pos) {
487
487
  let start = deserializeU32(pos),
488
488
  end = deserializeU32(pos + 4),
489
489
  node = {
490
- type: 'TaggedTemplateExpression',
490
+ type: "TaggedTemplateExpression",
491
491
  tag: null,
492
492
  quasi: null,
493
493
  start,
@@ -506,9 +506,11 @@ function deserializeTemplateElement(pos) {
506
506
  value = deserializeTemplateElementValue(pos + 8);
507
507
  value.cooked !== null &&
508
508
  deserializeBool(pos + 41) &&
509
- (value.cooked = value.cooked.replace(/\uFFFD(.{4})/g, (_, hex) => String.fromCodePoint(parseInt(hex, 16))));
509
+ (value.cooked = value.cooked.replace(/\uFFFD(.{4})/g, (_, hex) =>
510
+ String.fromCodePoint(parseInt(hex, 16)),
511
+ ));
510
512
  return {
511
- type: 'TemplateElement',
513
+ type: "TemplateElement",
512
514
  value,
513
515
  tail,
514
516
  start,
@@ -528,7 +530,7 @@ function deserializeComputedMemberExpression(pos) {
528
530
  let start = deserializeU32(pos),
529
531
  end = deserializeU32(pos + 4),
530
532
  node = {
531
- type: 'MemberExpression',
533
+ type: "MemberExpression",
532
534
  object: null,
533
535
  property: null,
534
536
  optional: deserializeBool(pos + 40),
@@ -547,7 +549,7 @@ function deserializeStaticMemberExpression(pos) {
547
549
  let start = deserializeU32(pos),
548
550
  end = deserializeU32(pos + 4),
549
551
  node = {
550
- type: 'MemberExpression',
552
+ type: "MemberExpression",
551
553
  object: null,
552
554
  property: null,
553
555
  optional: deserializeBool(pos + 48),
@@ -566,7 +568,7 @@ function deserializePrivateFieldExpression(pos) {
566
568
  let start = deserializeU32(pos),
567
569
  end = deserializeU32(pos + 4),
568
570
  node = {
569
- type: 'MemberExpression',
571
+ type: "MemberExpression",
570
572
  object: null,
571
573
  property: null,
572
574
  optional: deserializeBool(pos + 48),
@@ -585,7 +587,7 @@ function deserializeCallExpression(pos) {
585
587
  let start = deserializeU32(pos),
586
588
  end = deserializeU32(pos + 4),
587
589
  node = {
588
- type: 'CallExpression',
590
+ type: "CallExpression",
589
591
  callee: null,
590
592
  arguments: null,
591
593
  optional: deserializeBool(pos + 56),
@@ -602,7 +604,7 @@ function deserializeNewExpression(pos) {
602
604
  let start = deserializeU32(pos),
603
605
  end = deserializeU32(pos + 4),
604
606
  node = {
605
- type: 'NewExpression',
607
+ type: "NewExpression",
606
608
  callee: null,
607
609
  arguments: null,
608
610
  start,
@@ -618,7 +620,7 @@ function deserializeMetaProperty(pos) {
618
620
  let start = deserializeU32(pos),
619
621
  end = deserializeU32(pos + 4),
620
622
  node = {
621
- type: 'MetaProperty',
623
+ type: "MetaProperty",
622
624
  meta: null,
623
625
  property: null,
624
626
  start,
@@ -634,7 +636,7 @@ function deserializeSpreadElement(pos) {
634
636
  let start = deserializeU32(pos),
635
637
  end = deserializeU32(pos + 4),
636
638
  node = {
637
- type: 'SpreadElement',
639
+ type: "SpreadElement",
638
640
  argument: null,
639
641
  start,
640
642
  end,
@@ -743,7 +745,7 @@ function deserializeUpdateExpression(pos) {
743
745
  let start = deserializeU32(pos),
744
746
  end = deserializeU32(pos + 4),
745
747
  node = {
746
- type: 'UpdateExpression',
748
+ type: "UpdateExpression",
747
749
  operator: deserializeUpdateOperator(pos + 24),
748
750
  prefix: deserializeBool(pos + 25),
749
751
  argument: null,
@@ -759,7 +761,7 @@ function deserializeUnaryExpression(pos) {
759
761
  let start = deserializeU32(pos),
760
762
  end = deserializeU32(pos + 4),
761
763
  node = {
762
- type: 'UnaryExpression',
764
+ type: "UnaryExpression",
763
765
  operator: deserializeUnaryOperator(pos + 24),
764
766
  argument: null,
765
767
  prefix: null,
@@ -776,7 +778,7 @@ function deserializeBinaryExpression(pos) {
776
778
  let start = deserializeU32(pos),
777
779
  end = deserializeU32(pos + 4),
778
780
  node = {
779
- type: 'BinaryExpression',
781
+ type: "BinaryExpression",
780
782
  left: null,
781
783
  operator: deserializeBinaryOperator(pos + 40),
782
784
  right: null,
@@ -793,7 +795,7 @@ function deserializePrivateInExpression(pos) {
793
795
  let start = deserializeU32(pos),
794
796
  end = deserializeU32(pos + 4),
795
797
  node = {
796
- type: 'BinaryExpression',
798
+ type: "BinaryExpression",
797
799
  left: null,
798
800
  operator: null,
799
801
  right: null,
@@ -802,7 +804,7 @@ function deserializePrivateInExpression(pos) {
802
804
  range: [start, end],
803
805
  };
804
806
  node.left = deserializePrivateIdentifier(pos + 8);
805
- node.operator = 'in';
807
+ node.operator = "in";
806
808
  node.right = deserializeExpression(pos + 32);
807
809
  return node;
808
810
  }
@@ -811,7 +813,7 @@ function deserializeLogicalExpression(pos) {
811
813
  let start = deserializeU32(pos),
812
814
  end = deserializeU32(pos + 4),
813
815
  node = {
814
- type: 'LogicalExpression',
816
+ type: "LogicalExpression",
815
817
  left: null,
816
818
  operator: deserializeLogicalOperator(pos + 40),
817
819
  right: null,
@@ -828,7 +830,7 @@ function deserializeConditionalExpression(pos) {
828
830
  let start = deserializeU32(pos),
829
831
  end = deserializeU32(pos + 4),
830
832
  node = {
831
- type: 'ConditionalExpression',
833
+ type: "ConditionalExpression",
832
834
  test: null,
833
835
  consequent: null,
834
836
  alternate: null,
@@ -846,7 +848,7 @@ function deserializeAssignmentExpression(pos) {
846
848
  let start = deserializeU32(pos),
847
849
  end = deserializeU32(pos + 4),
848
850
  node = {
849
- type: 'AssignmentExpression',
851
+ type: "AssignmentExpression",
850
852
  operator: deserializeAssignmentOperator(pos + 40),
851
853
  left: null,
852
854
  right: null,
@@ -913,7 +915,7 @@ function deserializeArrayAssignmentTarget(pos) {
913
915
  let start = deserializeU32(pos),
914
916
  end = deserializeU32(pos + 4),
915
917
  node = {
916
- type: 'ArrayPattern',
918
+ type: "ArrayPattern",
917
919
  elements: null,
918
920
  start,
919
921
  end,
@@ -930,7 +932,7 @@ function deserializeObjectAssignmentTarget(pos) {
930
932
  let start = deserializeU32(pos),
931
933
  end = deserializeU32(pos + 4),
932
934
  node = {
933
- type: 'ObjectPattern',
935
+ type: "ObjectPattern",
934
936
  properties: null,
935
937
  start,
936
938
  end,
@@ -947,7 +949,7 @@ function deserializeAssignmentTargetRest(pos) {
947
949
  let start = deserializeU32(pos),
948
950
  end = deserializeU32(pos + 4),
949
951
  node = {
950
- type: 'RestElement',
952
+ type: "RestElement",
951
953
  argument: null,
952
954
  start,
953
955
  end,
@@ -990,7 +992,7 @@ function deserializeAssignmentTargetWithDefault(pos) {
990
992
  let start = deserializeU32(pos),
991
993
  end = deserializeU32(pos + 4),
992
994
  node = {
993
- type: 'AssignmentPattern',
995
+ type: "AssignmentPattern",
994
996
  left: null,
995
997
  right: null,
996
998
  start,
@@ -1017,7 +1019,7 @@ function deserializeAssignmentTargetPropertyIdentifier(pos) {
1017
1019
  let start = deserializeU32(pos),
1018
1020
  end = deserializeU32(pos + 4),
1019
1021
  node = {
1020
- type: 'Property',
1022
+ type: "Property",
1021
1023
  kind: null,
1022
1024
  key: null,
1023
1025
  value: null,
@@ -1032,7 +1034,7 @@ function deserializeAssignmentTargetPropertyIdentifier(pos) {
1032
1034
  keyStart,
1033
1035
  keyEnd,
1034
1036
  value = {
1035
- type: 'Identifier',
1037
+ type: "Identifier",
1036
1038
  name: key.name,
1037
1039
  start: (keyStart = key.start),
1038
1040
  end: (keyEnd = key.end),
@@ -1041,14 +1043,14 @@ function deserializeAssignmentTargetPropertyIdentifier(pos) {
1041
1043
  init = deserializeOptionExpression(pos + 40);
1042
1044
  init !== null &&
1043
1045
  (value = {
1044
- type: 'AssignmentPattern',
1046
+ type: "AssignmentPattern",
1045
1047
  left: value,
1046
1048
  right: init,
1047
1049
  start,
1048
1050
  end,
1049
1051
  range: [start, end],
1050
1052
  });
1051
- node.kind = 'init';
1053
+ node.kind = "init";
1052
1054
  node.key = key;
1053
1055
  node.value = value;
1054
1056
  node.method = false;
@@ -1061,7 +1063,7 @@ function deserializeAssignmentTargetPropertyProperty(pos) {
1061
1063
  let start = deserializeU32(pos),
1062
1064
  end = deserializeU32(pos + 4),
1063
1065
  node = {
1064
- type: 'Property',
1066
+ type: "Property",
1065
1067
  kind: null,
1066
1068
  key: null,
1067
1069
  value: null,
@@ -1072,7 +1074,7 @@ function deserializeAssignmentTargetPropertyProperty(pos) {
1072
1074
  end,
1073
1075
  range: [start, end],
1074
1076
  };
1075
- node.kind = 'init';
1077
+ node.kind = "init";
1076
1078
  node.key = deserializePropertyKey(pos + 8);
1077
1079
  node.value = deserializeAssignmentTargetMaybeDefault(pos + 24);
1078
1080
  node.method = false;
@@ -1084,7 +1086,7 @@ function deserializeSequenceExpression(pos) {
1084
1086
  let start = deserializeU32(pos),
1085
1087
  end = deserializeU32(pos + 4),
1086
1088
  node = {
1087
- type: 'SequenceExpression',
1089
+ type: "SequenceExpression",
1088
1090
  expressions: null,
1089
1091
  start,
1090
1092
  end,
@@ -1098,7 +1100,7 @@ function deserializeSuper(pos) {
1098
1100
  let start = deserializeU32(pos),
1099
1101
  end = deserializeU32(pos + 4);
1100
1102
  return {
1101
- type: 'Super',
1103
+ type: "Super",
1102
1104
  start,
1103
1105
  end,
1104
1106
  range: [start, end],
@@ -1109,7 +1111,7 @@ function deserializeAwaitExpression(pos) {
1109
1111
  let start = deserializeU32(pos),
1110
1112
  end = deserializeU32(pos + 4),
1111
1113
  node = {
1112
- type: 'AwaitExpression',
1114
+ type: "AwaitExpression",
1113
1115
  argument: null,
1114
1116
  start,
1115
1117
  end,
@@ -1123,7 +1125,7 @@ function deserializeChainExpression(pos) {
1123
1125
  let start = deserializeU32(pos),
1124
1126
  end = deserializeU32(pos + 4),
1125
1127
  node = {
1126
- type: 'ChainExpression',
1128
+ type: "ChainExpression",
1127
1129
  expression: null,
1128
1130
  start,
1129
1131
  end,
@@ -1155,7 +1157,7 @@ function deserializeParenthesizedExpression(pos) {
1155
1157
  {
1156
1158
  let start, end;
1157
1159
  node = {
1158
- type: 'ParenthesizedExpression',
1160
+ type: "ParenthesizedExpression",
1159
1161
  expression: null,
1160
1162
  start: (start = deserializeU32(pos)),
1161
1163
  end: (end = deserializeU32(pos + 4)),
@@ -1219,6 +1221,8 @@ function deserializeStatement(pos) {
1219
1221
  case 38:
1220
1222
  return deserializeBoxTSModuleDeclaration(pos + 8);
1221
1223
  case 39:
1224
+ return deserializeBoxTSGlobalDeclaration(pos + 8);
1225
+ case 40:
1222
1226
  return deserializeBoxTSImportEqualsDeclaration(pos + 8);
1223
1227
  case 64:
1224
1228
  return deserializeBoxImportDeclaration(pos + 8);
@@ -1241,7 +1245,7 @@ function deserializeDirective(pos) {
1241
1245
  let start = deserializeU32(pos),
1242
1246
  end = deserializeU32(pos + 4),
1243
1247
  node = {
1244
- type: 'ExpressionStatement',
1248
+ type: "ExpressionStatement",
1245
1249
  expression: null,
1246
1250
  directive: deserializeStr(pos + 56),
1247
1251
  start,
@@ -1256,7 +1260,7 @@ function deserializeHashbang(pos) {
1256
1260
  let start = deserializeU32(pos),
1257
1261
  end = deserializeU32(pos + 4);
1258
1262
  return {
1259
- type: 'Hashbang',
1263
+ type: "Hashbang",
1260
1264
  value: deserializeStr(pos + 8),
1261
1265
  start,
1262
1266
  end,
@@ -1268,7 +1272,7 @@ function deserializeBlockStatement(pos) {
1268
1272
  let start = deserializeU32(pos),
1269
1273
  end = deserializeU32(pos + 4),
1270
1274
  node = {
1271
- type: 'BlockStatement',
1275
+ type: "BlockStatement",
1272
1276
  body: null,
1273
1277
  start,
1274
1278
  end,
@@ -1295,6 +1299,8 @@ function deserializeDeclaration(pos) {
1295
1299
  case 38:
1296
1300
  return deserializeBoxTSModuleDeclaration(pos + 8);
1297
1301
  case 39:
1302
+ return deserializeBoxTSGlobalDeclaration(pos + 8);
1303
+ case 40:
1298
1304
  return deserializeBoxTSImportEqualsDeclaration(pos + 8);
1299
1305
  default:
1300
1306
  throw Error(`Unexpected discriminant ${uint8[pos]} for Declaration`);
@@ -1305,7 +1311,7 @@ function deserializeVariableDeclaration(pos) {
1305
1311
  let start = deserializeU32(pos),
1306
1312
  end = deserializeU32(pos + 4),
1307
1313
  node = {
1308
- type: 'VariableDeclaration',
1314
+ type: "VariableDeclaration",
1309
1315
  kind: deserializeVariableDeclarationKind(pos + 32),
1310
1316
  declarations: null,
1311
1317
  start,
@@ -1319,15 +1325,15 @@ function deserializeVariableDeclaration(pos) {
1319
1325
  function deserializeVariableDeclarationKind(pos) {
1320
1326
  switch (uint8[pos]) {
1321
1327
  case 0:
1322
- return 'var';
1328
+ return "var";
1323
1329
  case 1:
1324
- return 'let';
1330
+ return "let";
1325
1331
  case 2:
1326
- return 'const';
1332
+ return "const";
1327
1333
  case 3:
1328
- return 'using';
1334
+ return "using";
1329
1335
  case 4:
1330
- return 'await using';
1336
+ return "await using";
1331
1337
  default:
1332
1338
  throw Error(`Unexpected discriminant ${uint8[pos]} for VariableDeclarationKind`);
1333
1339
  }
@@ -1337,7 +1343,7 @@ function deserializeVariableDeclarator(pos) {
1337
1343
  let start = deserializeU32(pos),
1338
1344
  end = deserializeU32(pos + 4),
1339
1345
  node = {
1340
- type: 'VariableDeclarator',
1346
+ type: "VariableDeclarator",
1341
1347
  id: null,
1342
1348
  init: null,
1343
1349
  start,
@@ -1353,7 +1359,7 @@ function deserializeEmptyStatement(pos) {
1353
1359
  let start = deserializeU32(pos),
1354
1360
  end = deserializeU32(pos + 4);
1355
1361
  return {
1356
- type: 'EmptyStatement',
1362
+ type: "EmptyStatement",
1357
1363
  start,
1358
1364
  end,
1359
1365
  range: [start, end],
@@ -1364,7 +1370,7 @@ function deserializeExpressionStatement(pos) {
1364
1370
  let start = deserializeU32(pos),
1365
1371
  end = deserializeU32(pos + 4),
1366
1372
  node = {
1367
- type: 'ExpressionStatement',
1373
+ type: "ExpressionStatement",
1368
1374
  expression: null,
1369
1375
  start,
1370
1376
  end,
@@ -1378,7 +1384,7 @@ function deserializeIfStatement(pos) {
1378
1384
  let start = deserializeU32(pos),
1379
1385
  end = deserializeU32(pos + 4),
1380
1386
  node = {
1381
- type: 'IfStatement',
1387
+ type: "IfStatement",
1382
1388
  test: null,
1383
1389
  consequent: null,
1384
1390
  alternate: null,
@@ -1396,7 +1402,7 @@ function deserializeDoWhileStatement(pos) {
1396
1402
  let start = deserializeU32(pos),
1397
1403
  end = deserializeU32(pos + 4),
1398
1404
  node = {
1399
- type: 'DoWhileStatement',
1405
+ type: "DoWhileStatement",
1400
1406
  body: null,
1401
1407
  test: null,
1402
1408
  start,
@@ -1412,7 +1418,7 @@ function deserializeWhileStatement(pos) {
1412
1418
  let start = deserializeU32(pos),
1413
1419
  end = deserializeU32(pos + 4),
1414
1420
  node = {
1415
- type: 'WhileStatement',
1421
+ type: "WhileStatement",
1416
1422
  test: null,
1417
1423
  body: null,
1418
1424
  start,
@@ -1428,7 +1434,7 @@ function deserializeForStatement(pos) {
1428
1434
  let start = deserializeU32(pos),
1429
1435
  end = deserializeU32(pos + 4),
1430
1436
  node = {
1431
- type: 'ForStatement',
1437
+ type: "ForStatement",
1432
1438
  init: null,
1433
1439
  test: null,
1434
1440
  update: null,
@@ -1543,7 +1549,7 @@ function deserializeForInStatement(pos) {
1543
1549
  let start = deserializeU32(pos),
1544
1550
  end = deserializeU32(pos + 4),
1545
1551
  node = {
1546
- type: 'ForInStatement',
1552
+ type: "ForInStatement",
1547
1553
  left: null,
1548
1554
  right: null,
1549
1555
  body: null,
@@ -1590,7 +1596,7 @@ function deserializeForOfStatement(pos) {
1590
1596
  let start = deserializeU32(pos),
1591
1597
  end = deserializeU32(pos + 4),
1592
1598
  node = {
1593
- type: 'ForOfStatement',
1599
+ type: "ForOfStatement",
1594
1600
  await: deserializeBool(pos + 60),
1595
1601
  left: null,
1596
1602
  right: null,
@@ -1609,7 +1615,7 @@ function deserializeContinueStatement(pos) {
1609
1615
  let start = deserializeU32(pos),
1610
1616
  end = deserializeU32(pos + 4),
1611
1617
  node = {
1612
- type: 'ContinueStatement',
1618
+ type: "ContinueStatement",
1613
1619
  label: null,
1614
1620
  start,
1615
1621
  end,
@@ -1623,7 +1629,7 @@ function deserializeBreakStatement(pos) {
1623
1629
  let start = deserializeU32(pos),
1624
1630
  end = deserializeU32(pos + 4),
1625
1631
  node = {
1626
- type: 'BreakStatement',
1632
+ type: "BreakStatement",
1627
1633
  label: null,
1628
1634
  start,
1629
1635
  end,
@@ -1637,7 +1643,7 @@ function deserializeReturnStatement(pos) {
1637
1643
  let start = deserializeU32(pos),
1638
1644
  end = deserializeU32(pos + 4),
1639
1645
  node = {
1640
- type: 'ReturnStatement',
1646
+ type: "ReturnStatement",
1641
1647
  argument: null,
1642
1648
  start,
1643
1649
  end,
@@ -1651,7 +1657,7 @@ function deserializeWithStatement(pos) {
1651
1657
  let start = deserializeU32(pos),
1652
1658
  end = deserializeU32(pos + 4),
1653
1659
  node = {
1654
- type: 'WithStatement',
1660
+ type: "WithStatement",
1655
1661
  object: null,
1656
1662
  body: null,
1657
1663
  start,
@@ -1667,7 +1673,7 @@ function deserializeSwitchStatement(pos) {
1667
1673
  let start = deserializeU32(pos),
1668
1674
  end = deserializeU32(pos + 4),
1669
1675
  node = {
1670
- type: 'SwitchStatement',
1676
+ type: "SwitchStatement",
1671
1677
  discriminant: null,
1672
1678
  cases: null,
1673
1679
  start,
@@ -1683,7 +1689,7 @@ function deserializeSwitchCase(pos) {
1683
1689
  let start = deserializeU32(pos),
1684
1690
  end = deserializeU32(pos + 4),
1685
1691
  node = {
1686
- type: 'SwitchCase',
1692
+ type: "SwitchCase",
1687
1693
  test: null,
1688
1694
  consequent: null,
1689
1695
  start,
@@ -1699,7 +1705,7 @@ function deserializeLabeledStatement(pos) {
1699
1705
  let start = deserializeU32(pos),
1700
1706
  end = deserializeU32(pos + 4),
1701
1707
  node = {
1702
- type: 'LabeledStatement',
1708
+ type: "LabeledStatement",
1703
1709
  label: null,
1704
1710
  body: null,
1705
1711
  start,
@@ -1715,7 +1721,7 @@ function deserializeThrowStatement(pos) {
1715
1721
  let start = deserializeU32(pos),
1716
1722
  end = deserializeU32(pos + 4),
1717
1723
  node = {
1718
- type: 'ThrowStatement',
1724
+ type: "ThrowStatement",
1719
1725
  argument: null,
1720
1726
  start,
1721
1727
  end,
@@ -1729,7 +1735,7 @@ function deserializeTryStatement(pos) {
1729
1735
  let start = deserializeU32(pos),
1730
1736
  end = deserializeU32(pos + 4),
1731
1737
  node = {
1732
- type: 'TryStatement',
1738
+ type: "TryStatement",
1733
1739
  block: null,
1734
1740
  handler: null,
1735
1741
  finalizer: null,
@@ -1747,7 +1753,7 @@ function deserializeCatchClause(pos) {
1747
1753
  let start = deserializeU32(pos),
1748
1754
  end = deserializeU32(pos + 4),
1749
1755
  node = {
1750
- type: 'CatchClause',
1756
+ type: "CatchClause",
1751
1757
  param: null,
1752
1758
  body: null,
1753
1759
  start,
@@ -1767,7 +1773,7 @@ function deserializeDebuggerStatement(pos) {
1767
1773
  let start = deserializeU32(pos),
1768
1774
  end = deserializeU32(pos + 4);
1769
1775
  return {
1770
- type: 'DebuggerStatement',
1776
+ type: "DebuggerStatement",
1771
1777
  start,
1772
1778
  end,
1773
1779
  range: [start, end],
@@ -1797,7 +1803,7 @@ function deserializeAssignmentPattern(pos) {
1797
1803
  let start = deserializeU32(pos),
1798
1804
  end = deserializeU32(pos + 4),
1799
1805
  node = {
1800
- type: 'AssignmentPattern',
1806
+ type: "AssignmentPattern",
1801
1807
  left: null,
1802
1808
  right: null,
1803
1809
  start,
@@ -1813,7 +1819,7 @@ function deserializeObjectPattern(pos) {
1813
1819
  let start = deserializeU32(pos),
1814
1820
  end = deserializeU32(pos + 4),
1815
1821
  node = {
1816
- type: 'ObjectPattern',
1822
+ type: "ObjectPattern",
1817
1823
  properties: null,
1818
1824
  start,
1819
1825
  end,
@@ -1830,7 +1836,7 @@ function deserializeBindingProperty(pos) {
1830
1836
  let start = deserializeU32(pos),
1831
1837
  end = deserializeU32(pos + 4),
1832
1838
  node = {
1833
- type: 'Property',
1839
+ type: "Property",
1834
1840
  kind: null,
1835
1841
  key: null,
1836
1842
  value: null,
@@ -1841,7 +1847,7 @@ function deserializeBindingProperty(pos) {
1841
1847
  end,
1842
1848
  range: [start, end],
1843
1849
  };
1844
- node.kind = 'init';
1850
+ node.kind = "init";
1845
1851
  node.key = deserializePropertyKey(pos + 8);
1846
1852
  node.value = deserializeBindingPattern(pos + 24);
1847
1853
  node.method = false;
@@ -1852,7 +1858,7 @@ function deserializeArrayPattern(pos) {
1852
1858
  let start = deserializeU32(pos),
1853
1859
  end = deserializeU32(pos + 4),
1854
1860
  node = {
1855
- type: 'ArrayPattern',
1861
+ type: "ArrayPattern",
1856
1862
  elements: null,
1857
1863
  start,
1858
1864
  end,
@@ -1869,7 +1875,7 @@ function deserializeBindingRestElement(pos) {
1869
1875
  let start = deserializeU32(pos),
1870
1876
  end = deserializeU32(pos + 4),
1871
1877
  node = {
1872
- type: 'RestElement',
1878
+ type: "RestElement",
1873
1879
  argument: null,
1874
1880
  start,
1875
1881
  end,
@@ -1905,13 +1911,13 @@ function deserializeFunction(pos) {
1905
1911
  function deserializeFunctionType(pos) {
1906
1912
  switch (uint8[pos]) {
1907
1913
  case 0:
1908
- return 'FunctionDeclaration';
1914
+ return "FunctionDeclaration";
1909
1915
  case 1:
1910
- return 'FunctionExpression';
1916
+ return "FunctionExpression";
1911
1917
  case 2:
1912
- return 'TSDeclareFunction';
1918
+ return "TSDeclareFunction";
1913
1919
  case 3:
1914
- return 'TSEmptyBodyFunctionExpression';
1920
+ return "TSEmptyBodyFunctionExpression";
1915
1921
  default:
1916
1922
  throw Error(`Unexpected discriminant ${uint8[pos]} for FunctionType`);
1917
1923
  }
@@ -1924,7 +1930,7 @@ function deserializeFormalParameters(pos) {
1924
1930
  let start,
1925
1931
  end,
1926
1932
  rest = {
1927
- type: 'RestElement',
1933
+ type: "RestElement",
1928
1934
  argument: null,
1929
1935
  start: (start = deserializeU32(pos)),
1930
1936
  end: (end = deserializeU32(pos + 4)),
@@ -1946,7 +1952,7 @@ function deserializeFunctionBody(pos) {
1946
1952
  let start = deserializeU32(pos),
1947
1953
  end = deserializeU32(pos + 4),
1948
1954
  node = {
1949
- type: 'BlockStatement',
1955
+ type: "BlockStatement",
1950
1956
  body: null,
1951
1957
  start,
1952
1958
  end,
@@ -1963,7 +1969,7 @@ function deserializeArrowFunctionExpression(pos) {
1963
1969
  start = deserializeU32(pos),
1964
1970
  end = deserializeU32(pos + 4),
1965
1971
  node = {
1966
- type: 'ArrowFunctionExpression',
1972
+ type: "ArrowFunctionExpression",
1967
1973
  expression,
1968
1974
  async: deserializeBool(pos + 45),
1969
1975
  params: null,
@@ -1986,7 +1992,7 @@ function deserializeYieldExpression(pos) {
1986
1992
  let start = deserializeU32(pos),
1987
1993
  end = deserializeU32(pos + 4),
1988
1994
  node = {
1989
- type: 'YieldExpression',
1995
+ type: "YieldExpression",
1990
1996
  delegate: deserializeBool(pos + 24),
1991
1997
  argument: null,
1992
1998
  start,
@@ -2020,9 +2026,9 @@ function deserializeClass(pos) {
2020
2026
  function deserializeClassType(pos) {
2021
2027
  switch (uint8[pos]) {
2022
2028
  case 0:
2023
- return 'ClassDeclaration';
2029
+ return "ClassDeclaration";
2024
2030
  case 1:
2025
- return 'ClassExpression';
2031
+ return "ClassExpression";
2026
2032
  default:
2027
2033
  throw Error(`Unexpected discriminant ${uint8[pos]} for ClassType`);
2028
2034
  }
@@ -2032,7 +2038,7 @@ function deserializeClassBody(pos) {
2032
2038
  let start = deserializeU32(pos),
2033
2039
  end = deserializeU32(pos + 4),
2034
2040
  node = {
2035
- type: 'ClassBody',
2041
+ type: "ClassBody",
2036
2042
  body: null,
2037
2043
  start,
2038
2044
  end,
@@ -2083,9 +2089,9 @@ function deserializeMethodDefinition(pos) {
2083
2089
  function deserializeMethodDefinitionType(pos) {
2084
2090
  switch (uint8[pos]) {
2085
2091
  case 0:
2086
- return 'MethodDefinition';
2092
+ return "MethodDefinition";
2087
2093
  case 1:
2088
- return 'TSAbstractMethodDefinition';
2094
+ return "TSAbstractMethodDefinition";
2089
2095
  default:
2090
2096
  throw Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionType`);
2091
2097
  }
@@ -2114,9 +2120,9 @@ function deserializePropertyDefinition(pos) {
2114
2120
  function deserializePropertyDefinitionType(pos) {
2115
2121
  switch (uint8[pos]) {
2116
2122
  case 0:
2117
- return 'PropertyDefinition';
2123
+ return "PropertyDefinition";
2118
2124
  case 1:
2119
- return 'TSAbstractPropertyDefinition';
2125
+ return "TSAbstractPropertyDefinition";
2120
2126
  default:
2121
2127
  throw Error(`Unexpected discriminant ${uint8[pos]} for PropertyDefinitionType`);
2122
2128
  }
@@ -2125,13 +2131,13 @@ function deserializePropertyDefinitionType(pos) {
2125
2131
  function deserializeMethodDefinitionKind(pos) {
2126
2132
  switch (uint8[pos]) {
2127
2133
  case 0:
2128
- return 'constructor';
2134
+ return "constructor";
2129
2135
  case 1:
2130
- return 'method';
2136
+ return "method";
2131
2137
  case 2:
2132
- return 'get';
2138
+ return "get";
2133
2139
  case 3:
2134
- return 'set';
2140
+ return "set";
2135
2141
  default:
2136
2142
  throw Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionKind`);
2137
2143
  }
@@ -2141,7 +2147,7 @@ function deserializePrivateIdentifier(pos) {
2141
2147
  let start = deserializeU32(pos),
2142
2148
  end = deserializeU32(pos + 4);
2143
2149
  return {
2144
- type: 'PrivateIdentifier',
2150
+ type: "PrivateIdentifier",
2145
2151
  name: deserializeStr(pos + 8),
2146
2152
  start,
2147
2153
  end,
@@ -2153,7 +2159,7 @@ function deserializeStaticBlock(pos) {
2153
2159
  let start = deserializeU32(pos),
2154
2160
  end = deserializeU32(pos + 4),
2155
2161
  node = {
2156
- type: 'StaticBlock',
2162
+ type: "StaticBlock",
2157
2163
  body: null,
2158
2164
  start,
2159
2165
  end,
@@ -2166,9 +2172,9 @@ function deserializeStaticBlock(pos) {
2166
2172
  function deserializeAccessorPropertyType(pos) {
2167
2173
  switch (uint8[pos]) {
2168
2174
  case 0:
2169
- return 'AccessorProperty';
2175
+ return "AccessorProperty";
2170
2176
  case 1:
2171
- return 'TSAbstractAccessorProperty';
2177
+ return "TSAbstractAccessorProperty";
2172
2178
  default:
2173
2179
  throw Error(`Unexpected discriminant ${uint8[pos]} for AccessorPropertyType`);
2174
2180
  }
@@ -2198,7 +2204,7 @@ function deserializeImportExpression(pos) {
2198
2204
  let start = deserializeU32(pos),
2199
2205
  end = deserializeU32(pos + 4),
2200
2206
  node = {
2201
- type: 'ImportExpression',
2207
+ type: "ImportExpression",
2202
2208
  source: null,
2203
2209
  options: null,
2204
2210
  phase: deserializeOptionImportPhase(pos + 40),
@@ -2215,7 +2221,7 @@ function deserializeImportDeclaration(pos) {
2215
2221
  let start = deserializeU32(pos),
2216
2222
  end = deserializeU32(pos + 4),
2217
2223
  node = {
2218
- type: 'ImportDeclaration',
2224
+ type: "ImportDeclaration",
2219
2225
  specifiers: null,
2220
2226
  source: null,
2221
2227
  phase: deserializeOptionImportPhase(pos + 88),
@@ -2236,9 +2242,9 @@ function deserializeImportDeclaration(pos) {
2236
2242
  function deserializeImportPhase(pos) {
2237
2243
  switch (uint8[pos]) {
2238
2244
  case 0:
2239
- return 'source';
2245
+ return "source";
2240
2246
  case 1:
2241
- return 'defer';
2247
+ return "defer";
2242
2248
  default:
2243
2249
  throw Error(`Unexpected discriminant ${uint8[pos]} for ImportPhase`);
2244
2250
  }
@@ -2261,7 +2267,7 @@ function deserializeImportSpecifier(pos) {
2261
2267
  let start = deserializeU32(pos),
2262
2268
  end = deserializeU32(pos + 4),
2263
2269
  node = {
2264
- type: 'ImportSpecifier',
2270
+ type: "ImportSpecifier",
2265
2271
  imported: null,
2266
2272
  local: null,
2267
2273
  start,
@@ -2277,7 +2283,7 @@ function deserializeImportDefaultSpecifier(pos) {
2277
2283
  let start = deserializeU32(pos),
2278
2284
  end = deserializeU32(pos + 4),
2279
2285
  node = {
2280
- type: 'ImportDefaultSpecifier',
2286
+ type: "ImportDefaultSpecifier",
2281
2287
  local: null,
2282
2288
  start,
2283
2289
  end,
@@ -2291,7 +2297,7 @@ function deserializeImportNamespaceSpecifier(pos) {
2291
2297
  let start = deserializeU32(pos),
2292
2298
  end = deserializeU32(pos + 4),
2293
2299
  node = {
2294
- type: 'ImportNamespaceSpecifier',
2300
+ type: "ImportNamespaceSpecifier",
2295
2301
  local: null,
2296
2302
  start,
2297
2303
  end,
@@ -2309,7 +2315,7 @@ function deserializeImportAttribute(pos) {
2309
2315
  let start = deserializeU32(pos),
2310
2316
  end = deserializeU32(pos + 4),
2311
2317
  node = {
2312
- type: 'ImportAttribute',
2318
+ type: "ImportAttribute",
2313
2319
  key: null,
2314
2320
  value: null,
2315
2321
  start,
@@ -2336,7 +2342,7 @@ function deserializeExportNamedDeclaration(pos) {
2336
2342
  let start = deserializeU32(pos),
2337
2343
  end = deserializeU32(pos + 4),
2338
2344
  node = {
2339
- type: 'ExportNamedDeclaration',
2345
+ type: "ExportNamedDeclaration",
2340
2346
  declaration: null,
2341
2347
  specifiers: null,
2342
2348
  source: null,
@@ -2357,7 +2363,7 @@ function deserializeExportDefaultDeclaration(pos) {
2357
2363
  let start = deserializeU32(pos),
2358
2364
  end = deserializeU32(pos + 4),
2359
2365
  node = {
2360
- type: 'ExportDefaultDeclaration',
2366
+ type: "ExportDefaultDeclaration",
2361
2367
  declaration: null,
2362
2368
  start,
2363
2369
  end,
@@ -2371,7 +2377,7 @@ function deserializeExportAllDeclaration(pos) {
2371
2377
  let start = deserializeU32(pos),
2372
2378
  end = deserializeU32(pos + 4),
2373
2379
  node = {
2374
- type: 'ExportAllDeclaration',
2380
+ type: "ExportAllDeclaration",
2375
2381
  exported: null,
2376
2382
  source: null,
2377
2383
  attributes: null,
@@ -2390,7 +2396,7 @@ function deserializeExportSpecifier(pos) {
2390
2396
  let start = deserializeU32(pos),
2391
2397
  end = deserializeU32(pos + 4),
2392
2398
  node = {
2393
- type: 'ExportSpecifier',
2399
+ type: "ExportSpecifier",
2394
2400
  local: null,
2395
2401
  exported: null,
2396
2402
  start,
@@ -2518,7 +2524,7 @@ function deserializeV8IntrinsicExpression(pos) {
2518
2524
  let start = deserializeU32(pos),
2519
2525
  end = deserializeU32(pos + 4),
2520
2526
  node = {
2521
- type: 'V8IntrinsicExpression',
2527
+ type: "V8IntrinsicExpression",
2522
2528
  name: null,
2523
2529
  arguments: null,
2524
2530
  start,
@@ -2535,14 +2541,14 @@ function deserializeBooleanLiteral(pos) {
2535
2541
  start = deserializeU32(pos),
2536
2542
  end = deserializeU32(pos + 4),
2537
2543
  node = {
2538
- type: 'Literal',
2544
+ type: "Literal",
2539
2545
  value,
2540
2546
  raw: null,
2541
2547
  start,
2542
2548
  end,
2543
2549
  range: [start, end],
2544
2550
  };
2545
- node.raw = start === 0 && end === 0 ? null : value + '';
2551
+ node.raw = start === 0 && end === 0 ? null : value + "";
2546
2552
  return node;
2547
2553
  }
2548
2554
 
@@ -2550,14 +2556,14 @@ function deserializeNullLiteral(pos) {
2550
2556
  let start = deserializeU32(pos),
2551
2557
  end = deserializeU32(pos + 4),
2552
2558
  node = {
2553
- type: 'Literal',
2559
+ type: "Literal",
2554
2560
  value: null,
2555
2561
  raw: null,
2556
2562
  start,
2557
2563
  end,
2558
2564
  range: [start, end],
2559
2565
  };
2560
- node.raw = start === 0 && end === 0 ? null : 'null';
2566
+ node.raw = start === 0 && end === 0 ? null : "null";
2561
2567
  return node;
2562
2568
  }
2563
2569
 
@@ -2565,7 +2571,7 @@ function deserializeNumericLiteral(pos) {
2565
2571
  let start = deserializeU32(pos),
2566
2572
  end = deserializeU32(pos + 4);
2567
2573
  return {
2568
- type: 'Literal',
2574
+ type: "Literal",
2569
2575
  value: deserializeF64(pos + 8),
2570
2576
  raw: deserializeOptionStr(pos + 16),
2571
2577
  start,
@@ -2578,7 +2584,7 @@ function deserializeStringLiteral(pos) {
2578
2584
  let start = deserializeU32(pos),
2579
2585
  end = deserializeU32(pos + 4),
2580
2586
  node = {
2581
- type: 'Literal',
2587
+ type: "Literal",
2582
2588
  value: null,
2583
2589
  raw: deserializeOptionStr(pos + 24),
2584
2590
  start,
@@ -2596,7 +2602,7 @@ function deserializeBigIntLiteral(pos) {
2596
2602
  let start = deserializeU32(pos),
2597
2603
  end = deserializeU32(pos + 4),
2598
2604
  node = {
2599
- type: 'Literal',
2605
+ type: "Literal",
2600
2606
  value: null,
2601
2607
  raw: deserializeOptionStr(pos + 24),
2602
2608
  bigint: null,
@@ -2614,7 +2620,7 @@ function deserializeRegExpLiteral(pos) {
2614
2620
  let start = deserializeU32(pos),
2615
2621
  end = deserializeU32(pos + 4),
2616
2622
  node = {
2617
- type: 'Literal',
2623
+ type: "Literal",
2618
2624
  value: null,
2619
2625
  raw: deserializeOptionStr(pos + 40),
2620
2626
  regex: null,
@@ -2641,16 +2647,16 @@ function deserializeRegExp(pos) {
2641
2647
 
2642
2648
  function deserializeRegExpFlags(pos) {
2643
2649
  let flagBits = deserializeU8(pos),
2644
- flags = '';
2650
+ flags = "";
2645
2651
  // Alphabetical order
2646
- flagBits & 64 && (flags += 'd');
2647
- flagBits & 1 && (flags += 'g');
2648
- flagBits & 2 && (flags += 'i');
2649
- flagBits & 4 && (flags += 'm');
2650
- flagBits & 8 && (flags += 's');
2651
- flagBits & 16 && (flags += 'u');
2652
- flagBits & 128 && (flags += 'v');
2653
- flagBits & 32 && (flags += 'y');
2652
+ flagBits & 64 && (flags += "d");
2653
+ flagBits & 1 && (flags += "g");
2654
+ flagBits & 2 && (flags += "i");
2655
+ flagBits & 4 && (flags += "m");
2656
+ flagBits & 8 && (flags += "s");
2657
+ flagBits & 16 && (flags += "u");
2658
+ flagBits & 128 && (flags += "v");
2659
+ flagBits & 32 && (flags += "y");
2654
2660
  return flags;
2655
2661
  }
2656
2662
 
@@ -2658,7 +2664,7 @@ function deserializeJSXElement(pos) {
2658
2664
  let start = deserializeU32(pos),
2659
2665
  end = deserializeU32(pos + 4),
2660
2666
  node = {
2661
- type: 'JSXElement',
2667
+ type: "JSXElement",
2662
2668
  openingElement: null,
2663
2669
  children: null,
2664
2670
  closingElement: null,
@@ -2679,7 +2685,7 @@ function deserializeJSXOpeningElement(pos) {
2679
2685
  let start = deserializeU32(pos),
2680
2686
  end = deserializeU32(pos + 4),
2681
2687
  node = {
2682
- type: 'JSXOpeningElement',
2688
+ type: "JSXOpeningElement",
2683
2689
  name: null,
2684
2690
  attributes: null,
2685
2691
  selfClosing: null,
@@ -2697,7 +2703,7 @@ function deserializeJSXClosingElement(pos) {
2697
2703
  let start = deserializeU32(pos),
2698
2704
  end = deserializeU32(pos + 4),
2699
2705
  node = {
2700
- type: 'JSXClosingElement',
2706
+ type: "JSXClosingElement",
2701
2707
  name: null,
2702
2708
  start,
2703
2709
  end,
@@ -2711,7 +2717,7 @@ function deserializeJSXFragment(pos) {
2711
2717
  let start = deserializeU32(pos),
2712
2718
  end = deserializeU32(pos + 4),
2713
2719
  node = {
2714
- type: 'JSXFragment',
2720
+ type: "JSXFragment",
2715
2721
  openingFragment: null,
2716
2722
  children: null,
2717
2723
  closingFragment: null,
@@ -2729,7 +2735,7 @@ function deserializeJSXOpeningFragment(pos) {
2729
2735
  let start = deserializeU32(pos),
2730
2736
  end = deserializeU32(pos + 4),
2731
2737
  node = {
2732
- type: 'JSXOpeningFragment',
2738
+ type: "JSXOpeningFragment",
2733
2739
  attributes: null,
2734
2740
  selfClosing: null,
2735
2741
  start,
@@ -2745,7 +2751,7 @@ function deserializeJSXClosingFragment(pos) {
2745
2751
  let start = deserializeU32(pos),
2746
2752
  end = deserializeU32(pos + 4);
2747
2753
  return {
2748
- type: 'JSXClosingFragment',
2754
+ type: "JSXClosingFragment",
2749
2755
  start,
2750
2756
  end,
2751
2757
  range: [start, end],
@@ -2759,7 +2765,7 @@ function deserializeJSXElementName(pos) {
2759
2765
  case 1:
2760
2766
  let ident = deserializeBoxIdentifierReference(pos + 8);
2761
2767
  return {
2762
- type: 'JSXIdentifier',
2768
+ type: "JSXIdentifier",
2763
2769
  name: ident.name,
2764
2770
  start: ident.start,
2765
2771
  end: ident.end,
@@ -2772,8 +2778,8 @@ function deserializeJSXElementName(pos) {
2772
2778
  case 4:
2773
2779
  let thisExpr = deserializeBoxThisExpression(pos + 8);
2774
2780
  return {
2775
- type: 'JSXIdentifier',
2776
- name: 'this',
2781
+ type: "JSXIdentifier",
2782
+ name: "this",
2777
2783
  start: thisExpr.start,
2778
2784
  end: thisExpr.end,
2779
2785
  range: thisExpr.range,
@@ -2787,7 +2793,7 @@ function deserializeJSXNamespacedName(pos) {
2787
2793
  let start = deserializeU32(pos),
2788
2794
  end = deserializeU32(pos + 4),
2789
2795
  node = {
2790
- type: 'JSXNamespacedName',
2796
+ type: "JSXNamespacedName",
2791
2797
  namespace: null,
2792
2798
  name: null,
2793
2799
  start,
@@ -2803,7 +2809,7 @@ function deserializeJSXMemberExpression(pos) {
2803
2809
  let start = deserializeU32(pos),
2804
2810
  end = deserializeU32(pos + 4),
2805
2811
  node = {
2806
- type: 'JSXMemberExpression',
2812
+ type: "JSXMemberExpression",
2807
2813
  object: null,
2808
2814
  property: null,
2809
2815
  start,
@@ -2820,7 +2826,7 @@ function deserializeJSXMemberExpressionObject(pos) {
2820
2826
  case 0:
2821
2827
  let ident = deserializeBoxIdentifierReference(pos + 8);
2822
2828
  return {
2823
- type: 'JSXIdentifier',
2829
+ type: "JSXIdentifier",
2824
2830
  name: ident.name,
2825
2831
  start: ident.start,
2826
2832
  end: ident.end,
@@ -2831,8 +2837,8 @@ function deserializeJSXMemberExpressionObject(pos) {
2831
2837
  case 2:
2832
2838
  let thisExpr = deserializeBoxThisExpression(pos + 8);
2833
2839
  return {
2834
- type: 'JSXIdentifier',
2835
- name: 'this',
2840
+ type: "JSXIdentifier",
2841
+ name: "this",
2836
2842
  start: thisExpr.start,
2837
2843
  end: thisExpr.end,
2838
2844
  range: thisExpr.range,
@@ -2846,7 +2852,7 @@ function deserializeJSXExpressionContainer(pos) {
2846
2852
  let start = deserializeU32(pos),
2847
2853
  end = deserializeU32(pos + 4),
2848
2854
  node = {
2849
- type: 'JSXExpressionContainer',
2855
+ type: "JSXExpressionContainer",
2850
2856
  expression: null,
2851
2857
  start,
2852
2858
  end,
@@ -2955,7 +2961,7 @@ function deserializeJSXEmptyExpression(pos) {
2955
2961
  let start = deserializeU32(pos),
2956
2962
  end = deserializeU32(pos + 4);
2957
2963
  return {
2958
- type: 'JSXEmptyExpression',
2964
+ type: "JSXEmptyExpression",
2959
2965
  start,
2960
2966
  end,
2961
2967
  range: [start, end],
@@ -2977,7 +2983,7 @@ function deserializeJSXAttribute(pos) {
2977
2983
  let start = deserializeU32(pos),
2978
2984
  end = deserializeU32(pos + 4),
2979
2985
  node = {
2980
- type: 'JSXAttribute',
2986
+ type: "JSXAttribute",
2981
2987
  name: null,
2982
2988
  value: null,
2983
2989
  start,
@@ -2993,7 +2999,7 @@ function deserializeJSXSpreadAttribute(pos) {
2993
2999
  let start = deserializeU32(pos),
2994
3000
  end = deserializeU32(pos + 4),
2995
3001
  node = {
2996
- type: 'JSXSpreadAttribute',
3002
+ type: "JSXSpreadAttribute",
2997
3003
  argument: null,
2998
3004
  start,
2999
3005
  end,
@@ -3033,7 +3039,7 @@ function deserializeJSXIdentifier(pos) {
3033
3039
  let start = deserializeU32(pos),
3034
3040
  end = deserializeU32(pos + 4);
3035
3041
  return {
3036
- type: 'JSXIdentifier',
3042
+ type: "JSXIdentifier",
3037
3043
  name: deserializeStr(pos + 8),
3038
3044
  start,
3039
3045
  end,
@@ -3062,7 +3068,7 @@ function deserializeJSXSpreadChild(pos) {
3062
3068
  let start = deserializeU32(pos),
3063
3069
  end = deserializeU32(pos + 4),
3064
3070
  node = {
3065
- type: 'JSXSpreadChild',
3071
+ type: "JSXSpreadChild",
3066
3072
  expression: null,
3067
3073
  start,
3068
3074
  end,
@@ -3076,7 +3082,7 @@ function deserializeJSXText(pos) {
3076
3082
  let start = deserializeU32(pos),
3077
3083
  end = deserializeU32(pos + 4);
3078
3084
  return {
3079
- type: 'JSXText',
3085
+ type: "JSXText",
3080
3086
  value: deserializeStr(pos + 8),
3081
3087
  raw: deserializeOptionStr(pos + 24),
3082
3088
  start,
@@ -3089,7 +3095,7 @@ function deserializeTSThisParameter(pos) {
3089
3095
  let start = deserializeU32(pos),
3090
3096
  end = deserializeU32(pos + 4),
3091
3097
  node = {
3092
- type: 'Identifier',
3098
+ type: "Identifier",
3093
3099
  decorators: null,
3094
3100
  name: null,
3095
3101
  optional: null,
@@ -3099,7 +3105,7 @@ function deserializeTSThisParameter(pos) {
3099
3105
  range: [start, end],
3100
3106
  };
3101
3107
  node.decorators = [];
3102
- node.name = 'this';
3108
+ node.name = "this";
3103
3109
  node.optional = false;
3104
3110
  node.typeAnnotation = deserializeOptionBoxTSTypeAnnotation(pos + 16);
3105
3111
  return node;
@@ -3109,7 +3115,7 @@ function deserializeTSEnumDeclaration(pos) {
3109
3115
  let start = deserializeU32(pos),
3110
3116
  end = deserializeU32(pos + 4),
3111
3117
  node = {
3112
- type: 'TSEnumDeclaration',
3118
+ type: "TSEnumDeclaration",
3113
3119
  id: null,
3114
3120
  body: null,
3115
3121
  const: deserializeBool(pos + 76),
@@ -3127,7 +3133,7 @@ function deserializeTSEnumBody(pos) {
3127
3133
  let start = deserializeU32(pos),
3128
3134
  end = deserializeU32(pos + 4),
3129
3135
  node = {
3130
- type: 'TSEnumBody',
3136
+ type: "TSEnumBody",
3131
3137
  members: null,
3132
3138
  start,
3133
3139
  end,
@@ -3141,7 +3147,7 @@ function deserializeTSEnumMember(pos) {
3141
3147
  let start = deserializeU32(pos),
3142
3148
  end = deserializeU32(pos + 4),
3143
3149
  node = {
3144
- type: 'TSEnumMember',
3150
+ type: "TSEnumMember",
3145
3151
  id: null,
3146
3152
  initializer: null,
3147
3153
  computed: null,
@@ -3174,7 +3180,7 @@ function deserializeTSTypeAnnotation(pos) {
3174
3180
  let start = deserializeU32(pos),
3175
3181
  end = deserializeU32(pos + 4),
3176
3182
  node = {
3177
- type: 'TSTypeAnnotation',
3183
+ type: "TSTypeAnnotation",
3178
3184
  typeAnnotation: null,
3179
3185
  start,
3180
3186
  end,
@@ -3188,7 +3194,7 @@ function deserializeTSLiteralType(pos) {
3188
3194
  let start = deserializeU32(pos),
3189
3195
  end = deserializeU32(pos + 4),
3190
3196
  node = {
3191
- type: 'TSLiteralType',
3197
+ type: "TSLiteralType",
3192
3198
  literal: null,
3193
3199
  start,
3194
3200
  end,
@@ -3302,7 +3308,7 @@ function deserializeTSConditionalType(pos) {
3302
3308
  let start = deserializeU32(pos),
3303
3309
  end = deserializeU32(pos + 4),
3304
3310
  node = {
3305
- type: 'TSConditionalType',
3311
+ type: "TSConditionalType",
3306
3312
  checkType: null,
3307
3313
  extendsType: null,
3308
3314
  trueType: null,
@@ -3322,7 +3328,7 @@ function deserializeTSUnionType(pos) {
3322
3328
  let start = deserializeU32(pos),
3323
3329
  end = deserializeU32(pos + 4),
3324
3330
  node = {
3325
- type: 'TSUnionType',
3331
+ type: "TSUnionType",
3326
3332
  types: null,
3327
3333
  start,
3328
3334
  end,
@@ -3336,7 +3342,7 @@ function deserializeTSIntersectionType(pos) {
3336
3342
  let start = deserializeU32(pos),
3337
3343
  end = deserializeU32(pos + 4),
3338
3344
  node = {
3339
- type: 'TSIntersectionType',
3345
+ type: "TSIntersectionType",
3340
3346
  types: null,
3341
3347
  start,
3342
3348
  end,
@@ -3351,7 +3357,7 @@ function deserializeTSParenthesizedType(pos) {
3351
3357
  {
3352
3358
  let start, end;
3353
3359
  node = {
3354
- type: 'TSParenthesizedType',
3360
+ type: "TSParenthesizedType",
3355
3361
  typeAnnotation: null,
3356
3362
  start: (start = deserializeU32(pos)),
3357
3363
  end: (end = deserializeU32(pos + 4)),
@@ -3366,7 +3372,7 @@ function deserializeTSTypeOperator(pos) {
3366
3372
  let start = deserializeU32(pos),
3367
3373
  end = deserializeU32(pos + 4),
3368
3374
  node = {
3369
- type: 'TSTypeOperator',
3375
+ type: "TSTypeOperator",
3370
3376
  operator: deserializeTSTypeOperatorOperator(pos + 24),
3371
3377
  typeAnnotation: null,
3372
3378
  start,
@@ -3380,11 +3386,11 @@ function deserializeTSTypeOperator(pos) {
3380
3386
  function deserializeTSTypeOperatorOperator(pos) {
3381
3387
  switch (uint8[pos]) {
3382
3388
  case 0:
3383
- return 'keyof';
3389
+ return "keyof";
3384
3390
  case 1:
3385
- return 'unique';
3391
+ return "unique";
3386
3392
  case 2:
3387
- return 'readonly';
3393
+ return "readonly";
3388
3394
  default:
3389
3395
  throw Error(`Unexpected discriminant ${uint8[pos]} for TSTypeOperatorOperator`);
3390
3396
  }
@@ -3394,7 +3400,7 @@ function deserializeTSArrayType(pos) {
3394
3400
  let start = deserializeU32(pos),
3395
3401
  end = deserializeU32(pos + 4),
3396
3402
  node = {
3397
- type: 'TSArrayType',
3403
+ type: "TSArrayType",
3398
3404
  elementType: null,
3399
3405
  start,
3400
3406
  end,
@@ -3408,7 +3414,7 @@ function deserializeTSIndexedAccessType(pos) {
3408
3414
  let start = deserializeU32(pos),
3409
3415
  end = deserializeU32(pos + 4),
3410
3416
  node = {
3411
- type: 'TSIndexedAccessType',
3417
+ type: "TSIndexedAccessType",
3412
3418
  objectType: null,
3413
3419
  indexType: null,
3414
3420
  start,
@@ -3424,7 +3430,7 @@ function deserializeTSTupleType(pos) {
3424
3430
  let start = deserializeU32(pos),
3425
3431
  end = deserializeU32(pos + 4),
3426
3432
  node = {
3427
- type: 'TSTupleType',
3433
+ type: "TSTupleType",
3428
3434
  elementTypes: null,
3429
3435
  start,
3430
3436
  end,
@@ -3438,7 +3444,7 @@ function deserializeTSNamedTupleMember(pos) {
3438
3444
  let start = deserializeU32(pos),
3439
3445
  end = deserializeU32(pos + 4),
3440
3446
  node = {
3441
- type: 'TSNamedTupleMember',
3447
+ type: "TSNamedTupleMember",
3442
3448
  label: null,
3443
3449
  elementType: null,
3444
3450
  optional: deserializeBool(pos + 48),
@@ -3455,7 +3461,7 @@ function deserializeTSOptionalType(pos) {
3455
3461
  let start = deserializeU32(pos),
3456
3462
  end = deserializeU32(pos + 4),
3457
3463
  node = {
3458
- type: 'TSOptionalType',
3464
+ type: "TSOptionalType",
3459
3465
  typeAnnotation: null,
3460
3466
  start,
3461
3467
  end,
@@ -3469,7 +3475,7 @@ function deserializeTSRestType(pos) {
3469
3475
  let start = deserializeU32(pos),
3470
3476
  end = deserializeU32(pos + 4),
3471
3477
  node = {
3472
- type: 'TSRestType',
3478
+ type: "TSRestType",
3473
3479
  typeAnnotation: null,
3474
3480
  start,
3475
3481
  end,
@@ -3568,7 +3574,7 @@ function deserializeTSAnyKeyword(pos) {
3568
3574
  let start = deserializeU32(pos),
3569
3575
  end = deserializeU32(pos + 4);
3570
3576
  return {
3571
- type: 'TSAnyKeyword',
3577
+ type: "TSAnyKeyword",
3572
3578
  start,
3573
3579
  end,
3574
3580
  range: [start, end],
@@ -3579,7 +3585,7 @@ function deserializeTSStringKeyword(pos) {
3579
3585
  let start = deserializeU32(pos),
3580
3586
  end = deserializeU32(pos + 4);
3581
3587
  return {
3582
- type: 'TSStringKeyword',
3588
+ type: "TSStringKeyword",
3583
3589
  start,
3584
3590
  end,
3585
3591
  range: [start, end],
@@ -3590,7 +3596,7 @@ function deserializeTSBooleanKeyword(pos) {
3590
3596
  let start = deserializeU32(pos),
3591
3597
  end = deserializeU32(pos + 4);
3592
3598
  return {
3593
- type: 'TSBooleanKeyword',
3599
+ type: "TSBooleanKeyword",
3594
3600
  start,
3595
3601
  end,
3596
3602
  range: [start, end],
@@ -3601,7 +3607,7 @@ function deserializeTSNumberKeyword(pos) {
3601
3607
  let start = deserializeU32(pos),
3602
3608
  end = deserializeU32(pos + 4);
3603
3609
  return {
3604
- type: 'TSNumberKeyword',
3610
+ type: "TSNumberKeyword",
3605
3611
  start,
3606
3612
  end,
3607
3613
  range: [start, end],
@@ -3612,7 +3618,7 @@ function deserializeTSNeverKeyword(pos) {
3612
3618
  let start = deserializeU32(pos),
3613
3619
  end = deserializeU32(pos + 4);
3614
3620
  return {
3615
- type: 'TSNeverKeyword',
3621
+ type: "TSNeverKeyword",
3616
3622
  start,
3617
3623
  end,
3618
3624
  range: [start, end],
@@ -3623,7 +3629,7 @@ function deserializeTSIntrinsicKeyword(pos) {
3623
3629
  let start = deserializeU32(pos),
3624
3630
  end = deserializeU32(pos + 4);
3625
3631
  return {
3626
- type: 'TSIntrinsicKeyword',
3632
+ type: "TSIntrinsicKeyword",
3627
3633
  start,
3628
3634
  end,
3629
3635
  range: [start, end],
@@ -3634,7 +3640,7 @@ function deserializeTSUnknownKeyword(pos) {
3634
3640
  let start = deserializeU32(pos),
3635
3641
  end = deserializeU32(pos + 4);
3636
3642
  return {
3637
- type: 'TSUnknownKeyword',
3643
+ type: "TSUnknownKeyword",
3638
3644
  start,
3639
3645
  end,
3640
3646
  range: [start, end],
@@ -3645,7 +3651,7 @@ function deserializeTSNullKeyword(pos) {
3645
3651
  let start = deserializeU32(pos),
3646
3652
  end = deserializeU32(pos + 4);
3647
3653
  return {
3648
- type: 'TSNullKeyword',
3654
+ type: "TSNullKeyword",
3649
3655
  start,
3650
3656
  end,
3651
3657
  range: [start, end],
@@ -3656,7 +3662,7 @@ function deserializeTSUndefinedKeyword(pos) {
3656
3662
  let start = deserializeU32(pos),
3657
3663
  end = deserializeU32(pos + 4);
3658
3664
  return {
3659
- type: 'TSUndefinedKeyword',
3665
+ type: "TSUndefinedKeyword",
3660
3666
  start,
3661
3667
  end,
3662
3668
  range: [start, end],
@@ -3667,7 +3673,7 @@ function deserializeTSVoidKeyword(pos) {
3667
3673
  let start = deserializeU32(pos),
3668
3674
  end = deserializeU32(pos + 4);
3669
3675
  return {
3670
- type: 'TSVoidKeyword',
3676
+ type: "TSVoidKeyword",
3671
3677
  start,
3672
3678
  end,
3673
3679
  range: [start, end],
@@ -3678,7 +3684,7 @@ function deserializeTSSymbolKeyword(pos) {
3678
3684
  let start = deserializeU32(pos),
3679
3685
  end = deserializeU32(pos + 4);
3680
3686
  return {
3681
- type: 'TSSymbolKeyword',
3687
+ type: "TSSymbolKeyword",
3682
3688
  start,
3683
3689
  end,
3684
3690
  range: [start, end],
@@ -3689,7 +3695,7 @@ function deserializeTSThisType(pos) {
3689
3695
  let start = deserializeU32(pos),
3690
3696
  end = deserializeU32(pos + 4);
3691
3697
  return {
3692
- type: 'TSThisType',
3698
+ type: "TSThisType",
3693
3699
  start,
3694
3700
  end,
3695
3701
  range: [start, end],
@@ -3700,7 +3706,7 @@ function deserializeTSObjectKeyword(pos) {
3700
3706
  let start = deserializeU32(pos),
3701
3707
  end = deserializeU32(pos + 4);
3702
3708
  return {
3703
- type: 'TSObjectKeyword',
3709
+ type: "TSObjectKeyword",
3704
3710
  start,
3705
3711
  end,
3706
3712
  range: [start, end],
@@ -3711,7 +3717,7 @@ function deserializeTSBigIntKeyword(pos) {
3711
3717
  let start = deserializeU32(pos),
3712
3718
  end = deserializeU32(pos + 4);
3713
3719
  return {
3714
- type: 'TSBigIntKeyword',
3720
+ type: "TSBigIntKeyword",
3715
3721
  start,
3716
3722
  end,
3717
3723
  range: [start, end],
@@ -3722,7 +3728,7 @@ function deserializeTSTypeReference(pos) {
3722
3728
  let start = deserializeU32(pos),
3723
3729
  end = deserializeU32(pos + 4),
3724
3730
  node = {
3725
- type: 'TSTypeReference',
3731
+ type: "TSTypeReference",
3726
3732
  typeName: null,
3727
3733
  typeArguments: null,
3728
3734
  start,
@@ -3751,7 +3757,7 @@ function deserializeTSQualifiedName(pos) {
3751
3757
  let start = deserializeU32(pos),
3752
3758
  end = deserializeU32(pos + 4),
3753
3759
  node = {
3754
- type: 'TSQualifiedName',
3760
+ type: "TSQualifiedName",
3755
3761
  left: null,
3756
3762
  right: null,
3757
3763
  start,
@@ -3767,7 +3773,7 @@ function deserializeTSTypeParameterInstantiation(pos) {
3767
3773
  let start = deserializeU32(pos),
3768
3774
  end = deserializeU32(pos + 4),
3769
3775
  node = {
3770
- type: 'TSTypeParameterInstantiation',
3776
+ type: "TSTypeParameterInstantiation",
3771
3777
  params: null,
3772
3778
  start,
3773
3779
  end,
@@ -3781,7 +3787,7 @@ function deserializeTSTypeParameter(pos) {
3781
3787
  let start = deserializeU32(pos),
3782
3788
  end = deserializeU32(pos + 4),
3783
3789
  node = {
3784
- type: 'TSTypeParameter',
3790
+ type: "TSTypeParameter",
3785
3791
  name: null,
3786
3792
  constraint: null,
3787
3793
  default: null,
@@ -3802,7 +3808,7 @@ function deserializeTSTypeParameterDeclaration(pos) {
3802
3808
  let start = deserializeU32(pos),
3803
3809
  end = deserializeU32(pos + 4),
3804
3810
  node = {
3805
- type: 'TSTypeParameterDeclaration',
3811
+ type: "TSTypeParameterDeclaration",
3806
3812
  params: null,
3807
3813
  start,
3808
3814
  end,
@@ -3816,7 +3822,7 @@ function deserializeTSTypeAliasDeclaration(pos) {
3816
3822
  let start = deserializeU32(pos),
3817
3823
  end = deserializeU32(pos + 4),
3818
3824
  node = {
3819
- type: 'TSTypeAliasDeclaration',
3825
+ type: "TSTypeAliasDeclaration",
3820
3826
  id: null,
3821
3827
  typeParameters: null,
3822
3828
  typeAnnotation: null,
@@ -3835,7 +3841,7 @@ function deserializeTSInterfaceDeclaration(pos) {
3835
3841
  let start = deserializeU32(pos),
3836
3842
  end = deserializeU32(pos + 4),
3837
3843
  node = {
3838
- type: 'TSInterfaceDeclaration',
3844
+ type: "TSInterfaceDeclaration",
3839
3845
  id: null,
3840
3846
  typeParameters: null,
3841
3847
  extends: null,
@@ -3856,7 +3862,7 @@ function deserializeTSInterfaceBody(pos) {
3856
3862
  let start = deserializeU32(pos),
3857
3863
  end = deserializeU32(pos + 4),
3858
3864
  node = {
3859
- type: 'TSInterfaceBody',
3865
+ type: "TSInterfaceBody",
3860
3866
  body: null,
3861
3867
  start,
3862
3868
  end,
@@ -3870,7 +3876,7 @@ function deserializeTSPropertySignature(pos) {
3870
3876
  let start = deserializeU32(pos),
3871
3877
  end = deserializeU32(pos + 4),
3872
3878
  node = {
3873
- type: 'TSPropertySignature',
3879
+ type: "TSPropertySignature",
3874
3880
  computed: deserializeBool(pos + 32),
3875
3881
  optional: deserializeBool(pos + 33),
3876
3882
  readonly: deserializeBool(pos + 34),
@@ -3909,7 +3915,7 @@ function deserializeTSIndexSignature(pos) {
3909
3915
  let start = deserializeU32(pos),
3910
3916
  end = deserializeU32(pos + 4),
3911
3917
  node = {
3912
- type: 'TSIndexSignature',
3918
+ type: "TSIndexSignature",
3913
3919
  parameters: null,
3914
3920
  typeAnnotation: null,
3915
3921
  readonly: deserializeBool(pos + 40),
@@ -3928,7 +3934,7 @@ function deserializeTSCallSignatureDeclaration(pos) {
3928
3934
  let start = deserializeU32(pos),
3929
3935
  end = deserializeU32(pos + 4),
3930
3936
  node = {
3931
- type: 'TSCallSignatureDeclaration',
3937
+ type: "TSCallSignatureDeclaration",
3932
3938
  typeParameters: null,
3933
3939
  params: null,
3934
3940
  returnType: null,
@@ -3948,11 +3954,11 @@ function deserializeTSCallSignatureDeclaration(pos) {
3948
3954
  function deserializeTSMethodSignatureKind(pos) {
3949
3955
  switch (uint8[pos]) {
3950
3956
  case 0:
3951
- return 'method';
3957
+ return "method";
3952
3958
  case 1:
3953
- return 'get';
3959
+ return "get";
3954
3960
  case 2:
3955
- return 'set';
3961
+ return "set";
3956
3962
  default:
3957
3963
  throw Error(`Unexpected discriminant ${uint8[pos]} for TSMethodSignatureKind`);
3958
3964
  }
@@ -3962,7 +3968,7 @@ function deserializeTSMethodSignature(pos) {
3962
3968
  let start = deserializeU32(pos),
3963
3969
  end = deserializeU32(pos + 4),
3964
3970
  node = {
3965
- type: 'TSMethodSignature',
3971
+ type: "TSMethodSignature",
3966
3972
  key: null,
3967
3973
  computed: deserializeBool(pos + 60),
3968
3974
  optional: deserializeBool(pos + 61),
@@ -3993,7 +3999,7 @@ function deserializeTSConstructSignatureDeclaration(pos) {
3993
3999
  let start = deserializeU32(pos),
3994
4000
  end = deserializeU32(pos + 4),
3995
4001
  node = {
3996
- type: 'TSConstructSignatureDeclaration',
4002
+ type: "TSConstructSignatureDeclaration",
3997
4003
  typeParameters: null,
3998
4004
  params: null,
3999
4005
  returnType: null,
@@ -4011,7 +4017,7 @@ function deserializeTSIndexSignatureName(pos) {
4011
4017
  let start = deserializeU32(pos),
4012
4018
  end = deserializeU32(pos + 4),
4013
4019
  node = {
4014
- type: 'Identifier',
4020
+ type: "Identifier",
4015
4021
  decorators: null,
4016
4022
  name: deserializeStr(pos + 8),
4017
4023
  optional: null,
@@ -4030,7 +4036,7 @@ function deserializeTSInterfaceHeritage(pos) {
4030
4036
  let start = deserializeU32(pos),
4031
4037
  end = deserializeU32(pos + 4),
4032
4038
  node = {
4033
- type: 'TSInterfaceHeritage',
4039
+ type: "TSInterfaceHeritage",
4034
4040
  expression: null,
4035
4041
  typeArguments: null,
4036
4042
  start,
@@ -4046,7 +4052,7 @@ function deserializeTSTypePredicate(pos) {
4046
4052
  let start = deserializeU32(pos),
4047
4053
  end = deserializeU32(pos + 4),
4048
4054
  node = {
4049
- type: 'TSTypePredicate',
4055
+ type: "TSTypePredicate",
4050
4056
  parameterName: null,
4051
4057
  asserts: deserializeBool(pos + 32),
4052
4058
  typeAnnotation: null,
@@ -4072,7 +4078,6 @@ function deserializeTSTypePredicateName(pos) {
4072
4078
 
4073
4079
  function deserializeTSModuleDeclaration(pos) {
4074
4080
  let kind = deserializeTSModuleDeclarationKind(pos + 84),
4075
- global = kind === 'global',
4076
4081
  start = deserializeU32(pos),
4077
4082
  end = deserializeU32(pos + 4),
4078
4083
  declare = deserializeBool(pos + 85),
@@ -4080,11 +4085,11 @@ function deserializeTSModuleDeclaration(pos) {
4080
4085
  body = deserializeOptionTSModuleDeclarationBody(pos + 64);
4081
4086
  if (body === null) {
4082
4087
  node = {
4083
- type: 'TSModuleDeclaration',
4088
+ type: "TSModuleDeclaration",
4084
4089
  id: null,
4085
4090
  kind,
4086
4091
  declare,
4087
- global,
4092
+ global: false,
4088
4093
  start,
4089
4094
  end,
4090
4095
  range: [start, end],
@@ -4092,24 +4097,24 @@ function deserializeTSModuleDeclaration(pos) {
4092
4097
  node.id = deserializeTSModuleDeclarationName(pos + 8);
4093
4098
  } else {
4094
4099
  node = {
4095
- type: 'TSModuleDeclaration',
4100
+ type: "TSModuleDeclaration",
4096
4101
  id: null,
4097
4102
  body,
4098
4103
  kind,
4099
4104
  declare,
4100
- global,
4105
+ global: false,
4101
4106
  start,
4102
4107
  end,
4103
4108
  range: [start, end],
4104
4109
  };
4105
4110
  let id = deserializeTSModuleDeclarationName(pos + 8);
4106
- if (body.type === 'TSModuleBlock') node.id = id;
4111
+ if (body.type === "TSModuleBlock") node.id = id;
4107
4112
  else {
4108
4113
  let innerId = body.id;
4109
- if (innerId.type === 'Identifier') {
4114
+ if (innerId.type === "Identifier") {
4110
4115
  let start, end;
4111
4116
  node.id = {
4112
- type: 'TSQualifiedName',
4117
+ type: "TSQualifiedName",
4113
4118
  left: id,
4114
4119
  right: innerId,
4115
4120
  start: (start = id.start),
@@ -4123,13 +4128,13 @@ function deserializeTSModuleDeclaration(pos) {
4123
4128
  let { start } = id;
4124
4129
  for (;;) {
4125
4130
  innerId.start = innerId.range[0] = start;
4126
- if (innerId.left.type === 'Identifier') break;
4131
+ if (innerId.left.type === "Identifier") break;
4127
4132
  innerId = innerId.left;
4128
4133
  }
4129
4134
  let end,
4130
4135
  right = innerId.left;
4131
4136
  innerId.left = {
4132
- type: 'TSQualifiedName',
4137
+ type: "TSQualifiedName",
4133
4138
  left: id,
4134
4139
  right,
4135
4140
  start,
@@ -4137,7 +4142,7 @@ function deserializeTSModuleDeclaration(pos) {
4137
4142
  range: [start, end],
4138
4143
  };
4139
4144
  }
4140
- if (Object.hasOwn(body, 'body')) {
4145
+ if (Object.hasOwn(body, "body")) {
4141
4146
  body = body.body;
4142
4147
  node.body = body;
4143
4148
  } else body = null;
@@ -4149,11 +4154,9 @@ function deserializeTSModuleDeclaration(pos) {
4149
4154
  function deserializeTSModuleDeclarationKind(pos) {
4150
4155
  switch (uint8[pos]) {
4151
4156
  case 0:
4152
- return 'global';
4157
+ return "module";
4153
4158
  case 1:
4154
- return 'module';
4155
- case 2:
4156
- return 'namespace';
4159
+ return "namespace";
4157
4160
  default:
4158
4161
  throw Error(`Unexpected discriminant ${uint8[pos]} for TSModuleDeclarationKind`);
4159
4162
  }
@@ -4181,11 +4184,40 @@ function deserializeTSModuleDeclarationBody(pos) {
4181
4184
  }
4182
4185
  }
4183
4186
 
4187
+ function deserializeTSGlobalDeclaration(pos) {
4188
+ let start = deserializeU32(pos),
4189
+ end = deserializeU32(pos + 4),
4190
+ node = {
4191
+ type: "TSModuleDeclaration",
4192
+ id: null,
4193
+ body: null,
4194
+ kind: null,
4195
+ declare: deserializeBool(pos + 76),
4196
+ global: null,
4197
+ start,
4198
+ end,
4199
+ range: [start, end],
4200
+ },
4201
+ keywordStart,
4202
+ keywordEnd;
4203
+ node.id = {
4204
+ type: "Identifier",
4205
+ name: "global",
4206
+ start: (keywordStart = deserializeU32(pos + 8)),
4207
+ end: (keywordEnd = deserializeU32(pos + 12)),
4208
+ range: [keywordStart, keywordEnd],
4209
+ };
4210
+ node.body = deserializeTSModuleBlock(pos + 16);
4211
+ node.kind = "global";
4212
+ node.global = true;
4213
+ return node;
4214
+ }
4215
+
4184
4216
  function deserializeTSModuleBlock(pos) {
4185
4217
  let start = deserializeU32(pos),
4186
4218
  end = deserializeU32(pos + 4),
4187
4219
  node = {
4188
- type: 'TSModuleBlock',
4220
+ type: "TSModuleBlock",
4189
4221
  body: null,
4190
4222
  start,
4191
4223
  end,
@@ -4201,7 +4233,7 @@ function deserializeTSTypeLiteral(pos) {
4201
4233
  let start = deserializeU32(pos),
4202
4234
  end = deserializeU32(pos + 4),
4203
4235
  node = {
4204
- type: 'TSTypeLiteral',
4236
+ type: "TSTypeLiteral",
4205
4237
  members: null,
4206
4238
  start,
4207
4239
  end,
@@ -4215,7 +4247,7 @@ function deserializeTSInferType(pos) {
4215
4247
  let start = deserializeU32(pos),
4216
4248
  end = deserializeU32(pos + 4),
4217
4249
  node = {
4218
- type: 'TSInferType',
4250
+ type: "TSInferType",
4219
4251
  typeParameter: null,
4220
4252
  start,
4221
4253
  end,
@@ -4229,7 +4261,7 @@ function deserializeTSTypeQuery(pos) {
4229
4261
  let start = deserializeU32(pos),
4230
4262
  end = deserializeU32(pos + 4),
4231
4263
  node = {
4232
- type: 'TSTypeQuery',
4264
+ type: "TSTypeQuery",
4233
4265
  exprName: null,
4234
4266
  typeArguments: null,
4235
4267
  start,
@@ -4260,8 +4292,8 @@ function deserializeTSImportType(pos) {
4260
4292
  let start = deserializeU32(pos),
4261
4293
  end = deserializeU32(pos + 4),
4262
4294
  node = {
4263
- type: 'TSImportType',
4264
- argument: null,
4295
+ type: "TSImportType",
4296
+ source: null,
4265
4297
  options: null,
4266
4298
  qualifier: null,
4267
4299
  typeArguments: null,
@@ -4269,10 +4301,10 @@ function deserializeTSImportType(pos) {
4269
4301
  end,
4270
4302
  range: [start, end],
4271
4303
  };
4272
- node.argument = deserializeTSType(pos + 8);
4273
- node.options = deserializeOptionBoxObjectExpression(pos + 24);
4274
- node.qualifier = deserializeOptionTSImportTypeQualifier(pos + 32);
4275
- node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 48);
4304
+ node.source = deserializeStringLiteral(pos + 8);
4305
+ node.options = deserializeOptionBoxObjectExpression(pos + 56);
4306
+ node.qualifier = deserializeOptionTSImportTypeQualifier(pos + 64);
4307
+ node.typeArguments = deserializeOptionBoxTSTypeParameterInstantiation(pos + 80);
4276
4308
  return node;
4277
4309
  }
4278
4310
 
@@ -4291,7 +4323,7 @@ function deserializeTSImportTypeQualifiedName(pos) {
4291
4323
  let start = deserializeU32(pos),
4292
4324
  end = deserializeU32(pos + 4),
4293
4325
  node = {
4294
- type: 'TSQualifiedName',
4326
+ type: "TSQualifiedName",
4295
4327
  left: null,
4296
4328
  right: null,
4297
4329
  start,
@@ -4307,7 +4339,7 @@ function deserializeTSFunctionType(pos) {
4307
4339
  let start = deserializeU32(pos),
4308
4340
  end = deserializeU32(pos + 4),
4309
4341
  node = {
4310
- type: 'TSFunctionType',
4342
+ type: "TSFunctionType",
4311
4343
  typeParameters: null,
4312
4344
  params: null,
4313
4345
  returnType: null,
@@ -4328,7 +4360,7 @@ function deserializeTSConstructorType(pos) {
4328
4360
  let start = deserializeU32(pos),
4329
4361
  end = deserializeU32(pos + 4),
4330
4362
  node = {
4331
- type: 'TSConstructorType',
4363
+ type: "TSConstructorType",
4332
4364
  abstract: deserializeBool(pos + 36),
4333
4365
  typeParameters: null,
4334
4366
  params: null,
@@ -4347,7 +4379,7 @@ function deserializeTSMappedType(pos) {
4347
4379
  let start = deserializeU32(pos),
4348
4380
  end = deserializeU32(pos + 4),
4349
4381
  node = {
4350
- type: 'TSMappedType',
4382
+ type: "TSMappedType",
4351
4383
  key: null,
4352
4384
  constraint: null,
4353
4385
  nameType: null,
@@ -4376,9 +4408,9 @@ function deserializeTSMappedTypeModifierOperator(pos) {
4376
4408
  case 0:
4377
4409
  return true;
4378
4410
  case 1:
4379
- return '+';
4411
+ return "+";
4380
4412
  case 2:
4381
- return '-';
4413
+ return "-";
4382
4414
  default:
4383
4415
  throw Error(`Unexpected discriminant ${uint8[pos]} for TSMappedTypeModifierOperator`);
4384
4416
  }
@@ -4388,7 +4420,7 @@ function deserializeTSTemplateLiteralType(pos) {
4388
4420
  let start = deserializeU32(pos),
4389
4421
  end = deserializeU32(pos + 4),
4390
4422
  node = {
4391
- type: 'TSTemplateLiteralType',
4423
+ type: "TSTemplateLiteralType",
4392
4424
  quasis: null,
4393
4425
  types: null,
4394
4426
  start,
@@ -4404,7 +4436,7 @@ function deserializeTSAsExpression(pos) {
4404
4436
  let start = deserializeU32(pos),
4405
4437
  end = deserializeU32(pos + 4),
4406
4438
  node = {
4407
- type: 'TSAsExpression',
4439
+ type: "TSAsExpression",
4408
4440
  expression: null,
4409
4441
  typeAnnotation: null,
4410
4442
  start,
@@ -4420,7 +4452,7 @@ function deserializeTSSatisfiesExpression(pos) {
4420
4452
  let start = deserializeU32(pos),
4421
4453
  end = deserializeU32(pos + 4),
4422
4454
  node = {
4423
- type: 'TSSatisfiesExpression',
4455
+ type: "TSSatisfiesExpression",
4424
4456
  expression: null,
4425
4457
  typeAnnotation: null,
4426
4458
  start,
@@ -4436,7 +4468,7 @@ function deserializeTSTypeAssertion(pos) {
4436
4468
  let start = deserializeU32(pos),
4437
4469
  end = deserializeU32(pos + 4),
4438
4470
  node = {
4439
- type: 'TSTypeAssertion',
4471
+ type: "TSTypeAssertion",
4440
4472
  typeAnnotation: null,
4441
4473
  expression: null,
4442
4474
  start,
@@ -4452,7 +4484,7 @@ function deserializeTSImportEqualsDeclaration(pos) {
4452
4484
  let start = deserializeU32(pos),
4453
4485
  end = deserializeU32(pos + 4),
4454
4486
  node = {
4455
- type: 'TSImportEqualsDeclaration',
4487
+ type: "TSImportEqualsDeclaration",
4456
4488
  id: null,
4457
4489
  moduleReference: null,
4458
4490
  importKind: deserializeImportOrExportKind(pos + 56),
@@ -4484,7 +4516,7 @@ function deserializeTSExternalModuleReference(pos) {
4484
4516
  let start = deserializeU32(pos),
4485
4517
  end = deserializeU32(pos + 4),
4486
4518
  node = {
4487
- type: 'TSExternalModuleReference',
4519
+ type: "TSExternalModuleReference",
4488
4520
  expression: null,
4489
4521
  start,
4490
4522
  end,
@@ -4498,7 +4530,7 @@ function deserializeTSNonNullExpression(pos) {
4498
4530
  let start = deserializeU32(pos),
4499
4531
  end = deserializeU32(pos + 4),
4500
4532
  node = {
4501
- type: 'TSNonNullExpression',
4533
+ type: "TSNonNullExpression",
4502
4534
  expression: null,
4503
4535
  start,
4504
4536
  end,
@@ -4512,7 +4544,7 @@ function deserializeDecorator(pos) {
4512
4544
  let start = deserializeU32(pos),
4513
4545
  end = deserializeU32(pos + 4),
4514
4546
  node = {
4515
- type: 'Decorator',
4547
+ type: "Decorator",
4516
4548
  expression: null,
4517
4549
  start,
4518
4550
  end,
@@ -4526,7 +4558,7 @@ function deserializeTSExportAssignment(pos) {
4526
4558
  let start = deserializeU32(pos),
4527
4559
  end = deserializeU32(pos + 4),
4528
4560
  node = {
4529
- type: 'TSExportAssignment',
4561
+ type: "TSExportAssignment",
4530
4562
  expression: null,
4531
4563
  start,
4532
4564
  end,
@@ -4540,7 +4572,7 @@ function deserializeTSNamespaceExportDeclaration(pos) {
4540
4572
  let start = deserializeU32(pos),
4541
4573
  end = deserializeU32(pos + 4),
4542
4574
  node = {
4543
- type: 'TSNamespaceExportDeclaration',
4575
+ type: "TSNamespaceExportDeclaration",
4544
4576
  id: null,
4545
4577
  start,
4546
4578
  end,
@@ -4554,7 +4586,7 @@ function deserializeTSInstantiationExpression(pos) {
4554
4586
  let start = deserializeU32(pos),
4555
4587
  end = deserializeU32(pos + 4),
4556
4588
  node = {
4557
- type: 'TSInstantiationExpression',
4589
+ type: "TSInstantiationExpression",
4558
4590
  expression: null,
4559
4591
  typeArguments: null,
4560
4592
  start,
@@ -4569,9 +4601,9 @@ function deserializeTSInstantiationExpression(pos) {
4569
4601
  function deserializeImportOrExportKind(pos) {
4570
4602
  switch (uint8[pos]) {
4571
4603
  case 0:
4572
- return 'value';
4604
+ return "value";
4573
4605
  case 1:
4574
- return 'type';
4606
+ return "type";
4575
4607
  default:
4576
4608
  throw Error(`Unexpected discriminant ${uint8[pos]} for ImportOrExportKind`);
4577
4609
  }
@@ -4581,7 +4613,7 @@ function deserializeJSDocNullableType(pos) {
4581
4613
  let start = deserializeU32(pos),
4582
4614
  end = deserializeU32(pos + 4),
4583
4615
  node = {
4584
- type: 'TSJSDocNullableType',
4616
+ type: "TSJSDocNullableType",
4585
4617
  typeAnnotation: null,
4586
4618
  postfix: deserializeBool(pos + 24),
4587
4619
  start,
@@ -4596,7 +4628,7 @@ function deserializeJSDocNonNullableType(pos) {
4596
4628
  let start = deserializeU32(pos),
4597
4629
  end = deserializeU32(pos + 4),
4598
4630
  node = {
4599
- type: 'TSJSDocNonNullableType',
4631
+ type: "TSJSDocNonNullableType",
4600
4632
  typeAnnotation: null,
4601
4633
  postfix: deserializeBool(pos + 24),
4602
4634
  start,
@@ -4611,7 +4643,7 @@ function deserializeJSDocUnknownType(pos) {
4611
4643
  let start = deserializeU32(pos),
4612
4644
  end = deserializeU32(pos + 4);
4613
4645
  return {
4614
- type: 'TSJSDocUnknownType',
4646
+ type: "TSJSDocUnknownType",
4615
4647
  start,
4616
4648
  end,
4617
4649
  range: [start, end],
@@ -4621,9 +4653,9 @@ function deserializeJSDocUnknownType(pos) {
4621
4653
  function deserializeCommentKind(pos) {
4622
4654
  switch (uint8[pos]) {
4623
4655
  case 0:
4624
- return 'Line';
4656
+ return "Line";
4625
4657
  case 1:
4626
- return 'Block';
4658
+ return "Block";
4627
4659
  default:
4628
4660
  throw Error(`Unexpected discriminant ${uint8[pos]} for CommentKind`);
4629
4661
  }
@@ -4635,7 +4667,7 @@ function deserializeComment(pos) {
4635
4667
  end = deserializeU32(pos + 4);
4636
4668
  return {
4637
4669
  type,
4638
- value: sourceText.slice(start + 2, end - (type === 'Line' ? 0 : 2)),
4670
+ value: sourceText.slice(start + 2, end - (type === "Line" ? 0 : 2)),
4639
4671
  start,
4640
4672
  end,
4641
4673
  range: [start, end],
@@ -4666,7 +4698,7 @@ function deserializeImportImportName(pos) {
4666
4698
  case 0:
4667
4699
  var nameSpan = deserializeNameSpan(pos + 8);
4668
4700
  return {
4669
- kind: 'Name',
4701
+ kind: "Name",
4670
4702
  name: nameSpan.value,
4671
4703
  start: nameSpan.start,
4672
4704
  end: nameSpan.end,
@@ -4674,7 +4706,7 @@ function deserializeImportImportName(pos) {
4674
4706
  };
4675
4707
  case 1:
4676
4708
  return {
4677
- kind: 'NamespaceObject',
4709
+ kind: "NamespaceObject",
4678
4710
  name: null,
4679
4711
  start: null,
4680
4712
  end: null,
@@ -4683,7 +4715,7 @@ function deserializeImportImportName(pos) {
4683
4715
  case 2:
4684
4716
  var { start, end } = deserializeSpan(pos + 8);
4685
4717
  return {
4686
- kind: 'Default',
4718
+ kind: "Default",
4687
4719
  name: null,
4688
4720
  start,
4689
4721
  end,
@@ -4714,7 +4746,7 @@ function deserializeExportImportName(pos) {
4714
4746
  case 0:
4715
4747
  var nameSpan = deserializeNameSpan(pos + 8);
4716
4748
  return {
4717
- kind: 'Name',
4749
+ kind: "Name",
4718
4750
  name: nameSpan.value,
4719
4751
  start: nameSpan.start,
4720
4752
  end: nameSpan.end,
@@ -4722,7 +4754,7 @@ function deserializeExportImportName(pos) {
4722
4754
  };
4723
4755
  case 1:
4724
4756
  return {
4725
- kind: 'All',
4757
+ kind: "All",
4726
4758
  name: null,
4727
4759
  start: null,
4728
4760
  end: null,
@@ -4730,7 +4762,7 @@ function deserializeExportImportName(pos) {
4730
4762
  };
4731
4763
  case 2:
4732
4764
  return {
4733
- kind: 'AllButDefault',
4765
+ kind: "AllButDefault",
4734
4766
  name: null,
4735
4767
  start: null,
4736
4768
  end: null,
@@ -4738,7 +4770,7 @@ function deserializeExportImportName(pos) {
4738
4770
  };
4739
4771
  case 3:
4740
4772
  return {
4741
- kind: 'None',
4773
+ kind: "None",
4742
4774
  name: null,
4743
4775
  start: null,
4744
4776
  end: null,
@@ -4754,7 +4786,7 @@ function deserializeExportExportName(pos) {
4754
4786
  case 0:
4755
4787
  var nameSpan = deserializeNameSpan(pos + 8);
4756
4788
  return {
4757
- kind: 'Name',
4789
+ kind: "Name",
4758
4790
  name: nameSpan.value,
4759
4791
  start: nameSpan.start,
4760
4792
  end: nameSpan.end,
@@ -4763,7 +4795,7 @@ function deserializeExportExportName(pos) {
4763
4795
  case 1:
4764
4796
  var { start, end } = deserializeSpan(pos + 8);
4765
4797
  return {
4766
- kind: 'Default',
4798
+ kind: "Default",
4767
4799
  name: null,
4768
4800
  start,
4769
4801
  end,
@@ -4771,7 +4803,7 @@ function deserializeExportExportName(pos) {
4771
4803
  };
4772
4804
  case 2:
4773
4805
  return {
4774
- kind: 'None',
4806
+ kind: "None",
4775
4807
  name: null,
4776
4808
  start: null,
4777
4809
  end: null,
@@ -4787,7 +4819,7 @@ function deserializeExportLocalName(pos) {
4787
4819
  case 0:
4788
4820
  var nameSpan = deserializeNameSpan(pos + 8);
4789
4821
  return {
4790
- kind: 'Name',
4822
+ kind: "Name",
4791
4823
  name: nameSpan.value,
4792
4824
  start: nameSpan.start,
4793
4825
  end: nameSpan.end,
@@ -4796,7 +4828,7 @@ function deserializeExportLocalName(pos) {
4796
4828
  case 1:
4797
4829
  var nameSpan = deserializeNameSpan(pos + 8);
4798
4830
  return {
4799
- kind: 'Default',
4831
+ kind: "Default",
4800
4832
  name: nameSpan.value,
4801
4833
  start: nameSpan.start,
4802
4834
  end: nameSpan.end,
@@ -4804,7 +4836,7 @@ function deserializeExportLocalName(pos) {
4804
4836
  };
4805
4837
  case 2:
4806
4838
  return {
4807
- kind: 'None',
4839
+ kind: "None",
4808
4840
  name: null,
4809
4841
  start: null,
4810
4842
  end: null,
@@ -4829,37 +4861,37 @@ function deserializeDynamicImport(pos) {
4829
4861
  function deserializeAssignmentOperator(pos) {
4830
4862
  switch (uint8[pos]) {
4831
4863
  case 0:
4832
- return '=';
4864
+ return "=";
4833
4865
  case 1:
4834
- return '+=';
4866
+ return "+=";
4835
4867
  case 2:
4836
- return '-=';
4868
+ return "-=";
4837
4869
  case 3:
4838
- return '*=';
4870
+ return "*=";
4839
4871
  case 4:
4840
- return '/=';
4872
+ return "/=";
4841
4873
  case 5:
4842
- return '%=';
4874
+ return "%=";
4843
4875
  case 6:
4844
- return '**=';
4876
+ return "**=";
4845
4877
  case 7:
4846
- return '<<=';
4878
+ return "<<=";
4847
4879
  case 8:
4848
- return '>>=';
4880
+ return ">>=";
4849
4881
  case 9:
4850
- return '>>>=';
4882
+ return ">>>=";
4851
4883
  case 10:
4852
- return '|=';
4884
+ return "|=";
4853
4885
  case 11:
4854
- return '^=';
4886
+ return "^=";
4855
4887
  case 12:
4856
- return '&=';
4888
+ return "&=";
4857
4889
  case 13:
4858
- return '||=';
4890
+ return "||=";
4859
4891
  case 14:
4860
- return '&&=';
4892
+ return "&&=";
4861
4893
  case 15:
4862
- return '??=';
4894
+ return "??=";
4863
4895
  default:
4864
4896
  throw Error(`Unexpected discriminant ${uint8[pos]} for AssignmentOperator`);
4865
4897
  }
@@ -4868,49 +4900,49 @@ function deserializeAssignmentOperator(pos) {
4868
4900
  function deserializeBinaryOperator(pos) {
4869
4901
  switch (uint8[pos]) {
4870
4902
  case 0:
4871
- return '==';
4903
+ return "==";
4872
4904
  case 1:
4873
- return '!=';
4905
+ return "!=";
4874
4906
  case 2:
4875
- return '===';
4907
+ return "===";
4876
4908
  case 3:
4877
- return '!==';
4909
+ return "!==";
4878
4910
  case 4:
4879
- return '<';
4911
+ return "<";
4880
4912
  case 5:
4881
- return '<=';
4913
+ return "<=";
4882
4914
  case 6:
4883
- return '>';
4915
+ return ">";
4884
4916
  case 7:
4885
- return '>=';
4917
+ return ">=";
4886
4918
  case 8:
4887
- return '+';
4919
+ return "+";
4888
4920
  case 9:
4889
- return '-';
4921
+ return "-";
4890
4922
  case 10:
4891
- return '*';
4923
+ return "*";
4892
4924
  case 11:
4893
- return '/';
4925
+ return "/";
4894
4926
  case 12:
4895
- return '%';
4927
+ return "%";
4896
4928
  case 13:
4897
- return '**';
4929
+ return "**";
4898
4930
  case 14:
4899
- return '<<';
4931
+ return "<<";
4900
4932
  case 15:
4901
- return '>>';
4933
+ return ">>";
4902
4934
  case 16:
4903
- return '>>>';
4935
+ return ">>>";
4904
4936
  case 17:
4905
- return '|';
4937
+ return "|";
4906
4938
  case 18:
4907
- return '^';
4939
+ return "^";
4908
4940
  case 19:
4909
- return '&';
4941
+ return "&";
4910
4942
  case 20:
4911
- return 'in';
4943
+ return "in";
4912
4944
  case 21:
4913
- return 'instanceof';
4945
+ return "instanceof";
4914
4946
  default:
4915
4947
  throw Error(`Unexpected discriminant ${uint8[pos]} for BinaryOperator`);
4916
4948
  }
@@ -4919,11 +4951,11 @@ function deserializeBinaryOperator(pos) {
4919
4951
  function deserializeLogicalOperator(pos) {
4920
4952
  switch (uint8[pos]) {
4921
4953
  case 0:
4922
- return '||';
4954
+ return "||";
4923
4955
  case 1:
4924
- return '&&';
4956
+ return "&&";
4925
4957
  case 2:
4926
- return '??';
4958
+ return "??";
4927
4959
  default:
4928
4960
  throw Error(`Unexpected discriminant ${uint8[pos]} for LogicalOperator`);
4929
4961
  }
@@ -4932,19 +4964,19 @@ function deserializeLogicalOperator(pos) {
4932
4964
  function deserializeUnaryOperator(pos) {
4933
4965
  switch (uint8[pos]) {
4934
4966
  case 0:
4935
- return '+';
4967
+ return "+";
4936
4968
  case 1:
4937
- return '-';
4969
+ return "-";
4938
4970
  case 2:
4939
- return '!';
4971
+ return "!";
4940
4972
  case 3:
4941
- return '~';
4973
+ return "~";
4942
4974
  case 4:
4943
- return 'typeof';
4975
+ return "typeof";
4944
4976
  case 5:
4945
- return 'void';
4977
+ return "void";
4946
4978
  case 6:
4947
- return 'delete';
4979
+ return "delete";
4948
4980
  default:
4949
4981
  throw Error(`Unexpected discriminant ${uint8[pos]} for UnaryOperator`);
4950
4982
  }
@@ -4953,9 +4985,9 @@ function deserializeUnaryOperator(pos) {
4953
4985
  function deserializeUpdateOperator(pos) {
4954
4986
  switch (uint8[pos]) {
4955
4987
  case 0:
4956
- return '++';
4988
+ return "++";
4957
4989
  case 1:
4958
- return '--';
4990
+ return "--";
4959
4991
  default:
4960
4992
  throw Error(`Unexpected discriminant ${uint8[pos]} for UpdateOperator`);
4961
4993
  }
@@ -4971,9 +5003,9 @@ function deserializeSpan(pos) {
4971
5003
  function deserializeModuleKind(pos) {
4972
5004
  switch (uint8[pos]) {
4973
5005
  case 0:
4974
- return 'script';
5006
+ return "script";
4975
5007
  case 1:
4976
- return 'module';
5008
+ return "module";
4977
5009
  default:
4978
5010
  throw Error(`Unexpected discriminant ${uint8[pos]} for ModuleKind`);
4979
5011
  }
@@ -5001,11 +5033,11 @@ function deserializeError(pos) {
5001
5033
  function deserializeErrorSeverity(pos) {
5002
5034
  switch (uint8[pos]) {
5003
5035
  case 0:
5004
- return 'Error';
5036
+ return "Error";
5005
5037
  case 1:
5006
- return 'Warning';
5038
+ return "Warning";
5007
5039
  case 2:
5008
- return 'Advice';
5040
+ return "Advice";
5009
5041
  default:
5010
5042
  throw Error(`Unexpected discriminant ${uint8[pos]} for ErrorSeverity`);
5011
5043
  }
@@ -5066,7 +5098,7 @@ function deserializeU8(pos) {
5066
5098
  function deserializeStr(pos) {
5067
5099
  let pos32 = pos >> 2,
5068
5100
  len = uint32[pos32 + 2];
5069
- if (len === 0) return '';
5101
+ if (len === 0) return "";
5070
5102
  pos = uint32[pos32];
5071
5103
  if (sourceIsAscii && pos < sourceByteLen) return sourceText.substr(pos, len);
5072
5104
  // Longer strings use `TextDecoder`
@@ -5074,7 +5106,7 @@ function deserializeStr(pos) {
5074
5106
  let end = pos + len;
5075
5107
  if (len > 50) return decodeStr(uint8.subarray(pos, end));
5076
5108
  // Shorter strings decode by hand to avoid native call
5077
- let out = '',
5109
+ let out = "",
5078
5110
  c;
5079
5111
  do {
5080
5112
  c = uint8[pos++];
@@ -5549,6 +5581,10 @@ function deserializeBoxTSModuleDeclaration(pos) {
5549
5581
  return deserializeTSModuleDeclaration(uint32[pos >> 2]);
5550
5582
  }
5551
5583
 
5584
+ function deserializeBoxTSGlobalDeclaration(pos) {
5585
+ return deserializeTSGlobalDeclaration(uint32[pos >> 2]);
5586
+ }
5587
+
5552
5588
  function deserializeBoxTSImportEqualsDeclaration(pos) {
5553
5589
  return deserializeTSImportEqualsDeclaration(uint32[pos >> 2]);
5554
5590
  }