oxc-parser 0.110.0 → 0.111.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.
@@ -1,24 +1,24 @@
1
1
  // Auto-generated code, DO NOT EDIT DIRECTLY!
2
2
  // To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer.rs`.
3
3
 
4
- let uint8, uint32, float64, sourceText, sourceIsAscii, sourceByteLen;
4
+ let uint8, uint32, float64, sourceText, sourceIsAscii, sourceEndPos;
5
5
 
6
6
  const textDecoder = new TextDecoder("utf-8", { ignoreBOM: true }),
7
7
  decodeStr = textDecoder.decode.bind(textDecoder),
8
8
  { fromCodePoint } = String;
9
9
 
10
10
  export function deserialize(buffer, sourceText, sourceByteLen) {
11
+ sourceEndPos = sourceByteLen;
11
12
  let data = deserializeWith(buffer, sourceText, sourceByteLen, null, deserializeRawTransferData);
12
13
  resetBuffer();
13
14
  return data;
14
15
  }
15
16
 
16
- function deserializeWith(buffer, sourceTextInput, sourceByteLenInput, getLocInput, deserialize) {
17
+ function deserializeWith(buffer, sourceTextInput, sourceByteLen, getLocInput, deserialize) {
17
18
  uint8 = buffer;
18
19
  uint32 = buffer.uint32;
19
20
  float64 = buffer.float64;
20
21
  sourceText = sourceTextInput;
21
- sourceByteLen = sourceByteLenInput;
22
22
  sourceIsAscii = sourceText.length === sourceByteLen;
23
23
  return deserialize(uint32[536870902]);
24
24
  }
@@ -139,72 +139,67 @@ function deserializeExpression(pos) {
139
139
  }
140
140
 
141
141
  function deserializeIdentifierName(pos) {
142
- let start = deserializeU32(pos),
143
- end = deserializeU32(pos + 4);
142
+ let start, end;
144
143
  return {
145
144
  type: "Identifier",
146
145
  name: deserializeStr(pos + 8),
147
- start,
148
- end,
146
+ start: (start = deserializeU32(pos)),
147
+ end: (end = deserializeU32(pos + 4)),
149
148
  range: [start, end],
150
149
  };
151
150
  }
152
151
 
153
152
  function deserializeIdentifierReference(pos) {
154
- let start = deserializeU32(pos),
155
- end = deserializeU32(pos + 4);
153
+ let start, end;
156
154
  return {
157
155
  type: "Identifier",
158
156
  name: deserializeStr(pos + 8),
159
- start,
160
- end,
157
+ start: (start = deserializeU32(pos)),
158
+ end: (end = deserializeU32(pos + 4)),
161
159
  range: [start, end],
162
160
  };
163
161
  }
164
162
 
165
163
  function deserializeBindingIdentifier(pos) {
166
- let start = deserializeU32(pos),
167
- end = deserializeU32(pos + 4);
164
+ let start, end;
168
165
  return {
169
166
  type: "Identifier",
170
167
  name: deserializeStr(pos + 8),
171
- start,
172
- end,
168
+ start: (start = deserializeU32(pos)),
169
+ end: (end = deserializeU32(pos + 4)),
173
170
  range: [start, end],
174
171
  };
175
172
  }
176
173
 
177
174
  function deserializeLabelIdentifier(pos) {
178
- let start = deserializeU32(pos),
179
- end = deserializeU32(pos + 4);
175
+ let start, end;
180
176
  return {
181
177
  type: "Identifier",
182
178
  name: deserializeStr(pos + 8),
183
- start,
184
- end,
179
+ start: (start = deserializeU32(pos)),
180
+ end: (end = deserializeU32(pos + 4)),
185
181
  range: [start, end],
186
182
  };
187
183
  }
188
184
 
189
185
  function deserializeThisExpression(pos) {
190
- let start = deserializeU32(pos),
191
- end = deserializeU32(pos + 4);
186
+ let start, end;
192
187
  return {
193
188
  type: "ThisExpression",
194
- start,
195
- end,
189
+ start: (start = deserializeU32(pos)),
190
+ end: (end = deserializeU32(pos + 4)),
196
191
  range: [start, end],
197
192
  };
198
193
  }
199
194
 
200
195
  function deserializeArrayExpression(pos) {
201
- let start = deserializeU32(pos),
202
- end = deserializeU32(pos + 4),
196
+ let start,
197
+ end,
203
198
  node = {
204
199
  type: "ArrayExpression",
205
200
  elements: null,
206
- start,
207
- end,
201
+ start: (start = deserializeU32(pos)),
202
+ end: (end = deserializeU32(pos + 4)),
208
203
  range: [start, end],
209
204
  };
210
205
  node.elements = deserializeVecArrayExpressionElement(pos + 8);
@@ -313,13 +308,13 @@ function deserializeElision(pos) {
313
308
  }
314
309
 
315
310
  function deserializeObjectExpression(pos) {
316
- let start = deserializeU32(pos),
317
- end = deserializeU32(pos + 4),
311
+ let start,
312
+ end,
318
313
  node = {
319
314
  type: "ObjectExpression",
320
315
  properties: null,
321
- start,
322
- end,
316
+ start: (start = deserializeU32(pos)),
317
+ end: (end = deserializeU32(pos + 4)),
323
318
  range: [start, end],
324
319
  };
325
320
  node.properties = deserializeVecObjectPropertyKind(pos + 8);
@@ -338,8 +333,8 @@ function deserializeObjectPropertyKind(pos) {
338
333
  }
339
334
 
340
335
  function deserializeObjectProperty(pos) {
341
- let start = deserializeU32(pos),
342
- end = deserializeU32(pos + 4),
336
+ let start,
337
+ end,
343
338
  node = {
344
339
  type: "Property",
345
340
  kind: deserializePropertyKind(pos + 40),
@@ -348,8 +343,8 @@ function deserializeObjectProperty(pos) {
348
343
  method: deserializeBool(pos + 41),
349
344
  shorthand: deserializeBool(pos + 42),
350
345
  computed: deserializeBool(pos + 43),
351
- start,
352
- end,
346
+ start: (start = deserializeU32(pos)),
347
+ end: (end = deserializeU32(pos + 4)),
353
348
  range: [start, end],
354
349
  };
355
350
  node.key = deserializePropertyKey(pos + 8);
@@ -468,14 +463,14 @@ function deserializePropertyKind(pos) {
468
463
  }
469
464
 
470
465
  function deserializeTemplateLiteral(pos) {
471
- let start = deserializeU32(pos),
472
- end = deserializeU32(pos + 4),
466
+ let start,
467
+ end,
473
468
  node = {
474
469
  type: "TemplateLiteral",
475
470
  quasis: null,
476
471
  expressions: null,
477
- start,
478
- end,
472
+ start: (start = deserializeU32(pos)),
473
+ end: (end = deserializeU32(pos + 4)),
479
474
  range: [start, end],
480
475
  };
481
476
  node.quasis = deserializeVecTemplateElement(pos + 8);
@@ -484,14 +479,14 @@ function deserializeTemplateLiteral(pos) {
484
479
  }
485
480
 
486
481
  function deserializeTaggedTemplateExpression(pos) {
487
- let start = deserializeU32(pos),
488
- end = deserializeU32(pos + 4),
482
+ let start,
483
+ end,
489
484
  node = {
490
485
  type: "TaggedTemplateExpression",
491
486
  tag: null,
492
487
  quasi: null,
493
- start,
494
- end,
488
+ start: (start = deserializeU32(pos)),
489
+ end: (end = deserializeU32(pos + 4)),
495
490
  range: [start, end],
496
491
  };
497
492
  node.tag = deserializeExpression(pos + 8);
@@ -527,16 +522,16 @@ function deserializeTemplateElementValue(pos) {
527
522
  }
528
523
 
529
524
  function deserializeComputedMemberExpression(pos) {
530
- let start = deserializeU32(pos),
531
- end = deserializeU32(pos + 4),
525
+ let start,
526
+ end,
532
527
  node = {
533
528
  type: "MemberExpression",
534
529
  object: null,
535
530
  property: null,
536
531
  optional: deserializeBool(pos + 40),
537
532
  computed: null,
538
- start,
539
- end,
533
+ start: (start = deserializeU32(pos)),
534
+ end: (end = deserializeU32(pos + 4)),
540
535
  range: [start, end],
541
536
  };
542
537
  node.object = deserializeExpression(pos + 8);
@@ -546,16 +541,16 @@ function deserializeComputedMemberExpression(pos) {
546
541
  }
547
542
 
548
543
  function deserializeStaticMemberExpression(pos) {
549
- let start = deserializeU32(pos),
550
- end = deserializeU32(pos + 4),
544
+ let start,
545
+ end,
551
546
  node = {
552
547
  type: "MemberExpression",
553
548
  object: null,
554
549
  property: null,
555
550
  optional: deserializeBool(pos + 48),
556
551
  computed: null,
557
- start,
558
- end,
552
+ start: (start = deserializeU32(pos)),
553
+ end: (end = deserializeU32(pos + 4)),
559
554
  range: [start, end],
560
555
  };
561
556
  node.object = deserializeExpression(pos + 8);
@@ -565,16 +560,16 @@ function deserializeStaticMemberExpression(pos) {
565
560
  }
566
561
 
567
562
  function deserializePrivateFieldExpression(pos) {
568
- let start = deserializeU32(pos),
569
- end = deserializeU32(pos + 4),
563
+ let start,
564
+ end,
570
565
  node = {
571
566
  type: "MemberExpression",
572
567
  object: null,
573
568
  property: null,
574
569
  optional: deserializeBool(pos + 48),
575
570
  computed: null,
576
- start,
577
- end,
571
+ start: (start = deserializeU32(pos)),
572
+ end: (end = deserializeU32(pos + 4)),
578
573
  range: [start, end],
579
574
  };
580
575
  node.object = deserializeExpression(pos + 8);
@@ -584,15 +579,15 @@ function deserializePrivateFieldExpression(pos) {
584
579
  }
585
580
 
586
581
  function deserializeCallExpression(pos) {
587
- let start = deserializeU32(pos),
588
- end = deserializeU32(pos + 4),
582
+ let start,
583
+ end,
589
584
  node = {
590
585
  type: "CallExpression",
591
586
  callee: null,
592
587
  arguments: null,
593
588
  optional: deserializeBool(pos + 56),
594
- start,
595
- end,
589
+ start: (start = deserializeU32(pos)),
590
+ end: (end = deserializeU32(pos + 4)),
596
591
  range: [start, end],
597
592
  };
598
593
  node.callee = deserializeExpression(pos + 8);
@@ -601,14 +596,14 @@ function deserializeCallExpression(pos) {
601
596
  }
602
597
 
603
598
  function deserializeNewExpression(pos) {
604
- let start = deserializeU32(pos),
605
- end = deserializeU32(pos + 4),
599
+ let start,
600
+ end,
606
601
  node = {
607
602
  type: "NewExpression",
608
603
  callee: null,
609
604
  arguments: null,
610
- start,
611
- end,
605
+ start: (start = deserializeU32(pos)),
606
+ end: (end = deserializeU32(pos + 4)),
612
607
  range: [start, end],
613
608
  };
614
609
  node.callee = deserializeExpression(pos + 8);
@@ -617,14 +612,14 @@ function deserializeNewExpression(pos) {
617
612
  }
618
613
 
619
614
  function deserializeMetaProperty(pos) {
620
- let start = deserializeU32(pos),
621
- end = deserializeU32(pos + 4),
615
+ let start,
616
+ end,
622
617
  node = {
623
618
  type: "MetaProperty",
624
619
  meta: null,
625
620
  property: null,
626
- start,
627
- end,
621
+ start: (start = deserializeU32(pos)),
622
+ end: (end = deserializeU32(pos + 4)),
628
623
  range: [start, end],
629
624
  };
630
625
  node.meta = deserializeIdentifierName(pos + 8);
@@ -633,13 +628,13 @@ function deserializeMetaProperty(pos) {
633
628
  }
634
629
 
635
630
  function deserializeSpreadElement(pos) {
636
- let start = deserializeU32(pos),
637
- end = deserializeU32(pos + 4),
631
+ let start,
632
+ end,
638
633
  node = {
639
634
  type: "SpreadElement",
640
635
  argument: null,
641
- start,
642
- end,
636
+ start: (start = deserializeU32(pos)),
637
+ end: (end = deserializeU32(pos + 4)),
643
638
  range: [start, end],
644
639
  };
645
640
  node.argument = deserializeExpression(pos + 8);
@@ -742,15 +737,15 @@ function deserializeArgument(pos) {
742
737
  }
743
738
 
744
739
  function deserializeUpdateExpression(pos) {
745
- let start = deserializeU32(pos),
746
- end = deserializeU32(pos + 4),
740
+ let start,
741
+ end,
747
742
  node = {
748
743
  type: "UpdateExpression",
749
744
  operator: deserializeUpdateOperator(pos + 24),
750
745
  prefix: deserializeBool(pos + 25),
751
746
  argument: null,
752
- start,
753
- end,
747
+ start: (start = deserializeU32(pos)),
748
+ end: (end = deserializeU32(pos + 4)),
754
749
  range: [start, end],
755
750
  };
756
751
  node.argument = deserializeSimpleAssignmentTarget(pos + 8);
@@ -758,15 +753,15 @@ function deserializeUpdateExpression(pos) {
758
753
  }
759
754
 
760
755
  function deserializeUnaryExpression(pos) {
761
- let start = deserializeU32(pos),
762
- end = deserializeU32(pos + 4),
756
+ let start,
757
+ end,
763
758
  node = {
764
759
  type: "UnaryExpression",
765
760
  operator: deserializeUnaryOperator(pos + 24),
766
761
  argument: null,
767
762
  prefix: null,
768
- start,
769
- end,
763
+ start: (start = deserializeU32(pos)),
764
+ end: (end = deserializeU32(pos + 4)),
770
765
  range: [start, end],
771
766
  };
772
767
  node.argument = deserializeExpression(pos + 8);
@@ -775,15 +770,15 @@ function deserializeUnaryExpression(pos) {
775
770
  }
776
771
 
777
772
  function deserializeBinaryExpression(pos) {
778
- let start = deserializeU32(pos),
779
- end = deserializeU32(pos + 4),
773
+ let start,
774
+ end,
780
775
  node = {
781
776
  type: "BinaryExpression",
782
777
  left: null,
783
778
  operator: deserializeBinaryOperator(pos + 40),
784
779
  right: null,
785
- start,
786
- end,
780
+ start: (start = deserializeU32(pos)),
781
+ end: (end = deserializeU32(pos + 4)),
787
782
  range: [start, end],
788
783
  };
789
784
  node.left = deserializeExpression(pos + 8);
@@ -792,15 +787,15 @@ function deserializeBinaryExpression(pos) {
792
787
  }
793
788
 
794
789
  function deserializePrivateInExpression(pos) {
795
- let start = deserializeU32(pos),
796
- end = deserializeU32(pos + 4),
790
+ let start,
791
+ end,
797
792
  node = {
798
793
  type: "BinaryExpression",
799
794
  left: null,
800
795
  operator: null,
801
796
  right: null,
802
- start,
803
- end,
797
+ start: (start = deserializeU32(pos)),
798
+ end: (end = deserializeU32(pos + 4)),
804
799
  range: [start, end],
805
800
  };
806
801
  node.left = deserializePrivateIdentifier(pos + 8);
@@ -810,15 +805,15 @@ function deserializePrivateInExpression(pos) {
810
805
  }
811
806
 
812
807
  function deserializeLogicalExpression(pos) {
813
- let start = deserializeU32(pos),
814
- end = deserializeU32(pos + 4),
808
+ let start,
809
+ end,
815
810
  node = {
816
811
  type: "LogicalExpression",
817
812
  left: null,
818
813
  operator: deserializeLogicalOperator(pos + 40),
819
814
  right: null,
820
- start,
821
- end,
815
+ start: (start = deserializeU32(pos)),
816
+ end: (end = deserializeU32(pos + 4)),
822
817
  range: [start, end],
823
818
  };
824
819
  node.left = deserializeExpression(pos + 8);
@@ -827,15 +822,15 @@ function deserializeLogicalExpression(pos) {
827
822
  }
828
823
 
829
824
  function deserializeConditionalExpression(pos) {
830
- let start = deserializeU32(pos),
831
- end = deserializeU32(pos + 4),
825
+ let start,
826
+ end,
832
827
  node = {
833
828
  type: "ConditionalExpression",
834
829
  test: null,
835
830
  consequent: null,
836
831
  alternate: null,
837
- start,
838
- end,
832
+ start: (start = deserializeU32(pos)),
833
+ end: (end = deserializeU32(pos + 4)),
839
834
  range: [start, end],
840
835
  };
841
836
  node.test = deserializeExpression(pos + 8);
@@ -845,15 +840,15 @@ function deserializeConditionalExpression(pos) {
845
840
  }
846
841
 
847
842
  function deserializeAssignmentExpression(pos) {
848
- let start = deserializeU32(pos),
849
- end = deserializeU32(pos + 4),
843
+ let start,
844
+ end,
850
845
  node = {
851
846
  type: "AssignmentExpression",
852
847
  operator: deserializeAssignmentOperator(pos + 40),
853
848
  left: null,
854
849
  right: null,
855
- start,
856
- end,
850
+ start: (start = deserializeU32(pos)),
851
+ end: (end = deserializeU32(pos + 4)),
857
852
  range: [start, end],
858
853
  };
859
854
  node.left = deserializeAssignmentTarget(pos + 8);
@@ -912,13 +907,13 @@ function deserializeSimpleAssignmentTarget(pos) {
912
907
  }
913
908
 
914
909
  function deserializeArrayAssignmentTarget(pos) {
915
- let start = deserializeU32(pos),
916
- end = deserializeU32(pos + 4),
910
+ let start,
911
+ end,
917
912
  node = {
918
913
  type: "ArrayPattern",
919
914
  elements: null,
920
- start,
921
- end,
915
+ start: (start = deserializeU32(pos)),
916
+ end: (end = deserializeU32(pos + 4)),
922
917
  range: [start, end],
923
918
  },
924
919
  elements = deserializeVecOptionAssignmentTargetMaybeDefault(pos + 8),
@@ -929,13 +924,13 @@ function deserializeArrayAssignmentTarget(pos) {
929
924
  }
930
925
 
931
926
  function deserializeObjectAssignmentTarget(pos) {
932
- let start = deserializeU32(pos),
933
- end = deserializeU32(pos + 4),
927
+ let start,
928
+ end,
934
929
  node = {
935
930
  type: "ObjectPattern",
936
931
  properties: null,
937
- start,
938
- end,
932
+ start: (start = deserializeU32(pos)),
933
+ end: (end = deserializeU32(pos + 4)),
939
934
  range: [start, end],
940
935
  },
941
936
  properties = deserializeVecAssignmentTargetProperty(pos + 8),
@@ -946,13 +941,13 @@ function deserializeObjectAssignmentTarget(pos) {
946
941
  }
947
942
 
948
943
  function deserializeAssignmentTargetRest(pos) {
949
- let start = deserializeU32(pos),
950
- end = deserializeU32(pos + 4),
944
+ let start,
945
+ end,
951
946
  node = {
952
947
  type: "RestElement",
953
948
  argument: null,
954
- start,
955
- end,
949
+ start: (start = deserializeU32(pos)),
950
+ end: (end = deserializeU32(pos + 4)),
956
951
  range: [start, end],
957
952
  };
958
953
  node.argument = deserializeAssignmentTarget(pos + 8);
@@ -989,14 +984,14 @@ function deserializeAssignmentTargetMaybeDefault(pos) {
989
984
  }
990
985
 
991
986
  function deserializeAssignmentTargetWithDefault(pos) {
992
- let start = deserializeU32(pos),
993
- end = deserializeU32(pos + 4),
987
+ let start,
988
+ end,
994
989
  node = {
995
990
  type: "AssignmentPattern",
996
991
  left: null,
997
992
  right: null,
998
- start,
999
- end,
993
+ start: (start = deserializeU32(pos)),
994
+ end: (end = deserializeU32(pos + 4)),
1000
995
  range: [start, end],
1001
996
  };
1002
997
  node.left = deserializeAssignmentTarget(pos + 8);
@@ -1060,8 +1055,8 @@ function deserializeAssignmentTargetPropertyIdentifier(pos) {
1060
1055
  }
1061
1056
 
1062
1057
  function deserializeAssignmentTargetPropertyProperty(pos) {
1063
- let start = deserializeU32(pos),
1064
- end = deserializeU32(pos + 4),
1058
+ let start,
1059
+ end,
1065
1060
  node = {
1066
1061
  type: "Property",
1067
1062
  kind: null,
@@ -1070,8 +1065,8 @@ function deserializeAssignmentTargetPropertyProperty(pos) {
1070
1065
  method: null,
1071
1066
  shorthand: null,
1072
1067
  computed: deserializeBool(pos + 40),
1073
- start,
1074
- end,
1068
+ start: (start = deserializeU32(pos)),
1069
+ end: (end = deserializeU32(pos + 4)),
1075
1070
  range: [start, end],
1076
1071
  };
1077
1072
  node.kind = "init";
@@ -1083,13 +1078,13 @@ function deserializeAssignmentTargetPropertyProperty(pos) {
1083
1078
  }
1084
1079
 
1085
1080
  function deserializeSequenceExpression(pos) {
1086
- let start = deserializeU32(pos),
1087
- end = deserializeU32(pos + 4),
1081
+ let start,
1082
+ end,
1088
1083
  node = {
1089
1084
  type: "SequenceExpression",
1090
1085
  expressions: null,
1091
- start,
1092
- end,
1086
+ start: (start = deserializeU32(pos)),
1087
+ end: (end = deserializeU32(pos + 4)),
1093
1088
  range: [start, end],
1094
1089
  };
1095
1090
  node.expressions = deserializeVecExpression(pos + 8);
@@ -1097,24 +1092,23 @@ function deserializeSequenceExpression(pos) {
1097
1092
  }
1098
1093
 
1099
1094
  function deserializeSuper(pos) {
1100
- let start = deserializeU32(pos),
1101
- end = deserializeU32(pos + 4);
1095
+ let start, end;
1102
1096
  return {
1103
1097
  type: "Super",
1104
- start,
1105
- end,
1098
+ start: (start = deserializeU32(pos)),
1099
+ end: (end = deserializeU32(pos + 4)),
1106
1100
  range: [start, end],
1107
1101
  };
1108
1102
  }
1109
1103
 
1110
1104
  function deserializeAwaitExpression(pos) {
1111
- let start = deserializeU32(pos),
1112
- end = deserializeU32(pos + 4),
1105
+ let start,
1106
+ end,
1113
1107
  node = {
1114
1108
  type: "AwaitExpression",
1115
1109
  argument: null,
1116
- start,
1117
- end,
1110
+ start: (start = deserializeU32(pos)),
1111
+ end: (end = deserializeU32(pos + 4)),
1118
1112
  range: [start, end],
1119
1113
  };
1120
1114
  node.argument = deserializeExpression(pos + 8);
@@ -1122,13 +1116,13 @@ function deserializeAwaitExpression(pos) {
1122
1116
  }
1123
1117
 
1124
1118
  function deserializeChainExpression(pos) {
1125
- let start = deserializeU32(pos),
1126
- end = deserializeU32(pos + 4),
1119
+ let start,
1120
+ end,
1127
1121
  node = {
1128
1122
  type: "ChainExpression",
1129
1123
  expression: null,
1130
- start,
1131
- end,
1124
+ start: (start = deserializeU32(pos)),
1125
+ end: (end = deserializeU32(pos + 4)),
1132
1126
  range: [start, end],
1133
1127
  };
1134
1128
  node.expression = deserializeChainElement(pos + 8);
@@ -1242,14 +1236,14 @@ function deserializeStatement(pos) {
1242
1236
  }
1243
1237
 
1244
1238
  function deserializeDirective(pos) {
1245
- let start = deserializeU32(pos),
1246
- end = deserializeU32(pos + 4),
1239
+ let start,
1240
+ end,
1247
1241
  node = {
1248
1242
  type: "ExpressionStatement",
1249
1243
  expression: null,
1250
1244
  directive: deserializeStr(pos + 56),
1251
- start,
1252
- end,
1245
+ start: (start = deserializeU32(pos)),
1246
+ end: (end = deserializeU32(pos + 4)),
1253
1247
  range: [start, end],
1254
1248
  };
1255
1249
  node.expression = deserializeStringLiteral(pos + 8);
@@ -1257,25 +1251,24 @@ function deserializeDirective(pos) {
1257
1251
  }
1258
1252
 
1259
1253
  function deserializeHashbang(pos) {
1260
- let start = deserializeU32(pos),
1261
- end = deserializeU32(pos + 4);
1254
+ let start, end;
1262
1255
  return {
1263
1256
  type: "Hashbang",
1264
1257
  value: deserializeStr(pos + 8),
1265
- start,
1266
- end,
1258
+ start: (start = deserializeU32(pos)),
1259
+ end: (end = deserializeU32(pos + 4)),
1267
1260
  range: [start, end],
1268
1261
  };
1269
1262
  }
1270
1263
 
1271
1264
  function deserializeBlockStatement(pos) {
1272
- let start = deserializeU32(pos),
1273
- end = deserializeU32(pos + 4),
1265
+ let start,
1266
+ end,
1274
1267
  node = {
1275
1268
  type: "BlockStatement",
1276
1269
  body: null,
1277
- start,
1278
- end,
1270
+ start: (start = deserializeU32(pos)),
1271
+ end: (end = deserializeU32(pos + 4)),
1279
1272
  range: [start, end],
1280
1273
  };
1281
1274
  node.body = deserializeVecStatement(pos + 8);
@@ -1308,14 +1301,14 @@ function deserializeDeclaration(pos) {
1308
1301
  }
1309
1302
 
1310
1303
  function deserializeVariableDeclaration(pos) {
1311
- let start = deserializeU32(pos),
1312
- end = deserializeU32(pos + 4),
1304
+ let start,
1305
+ end,
1313
1306
  node = {
1314
1307
  type: "VariableDeclaration",
1315
1308
  kind: deserializeVariableDeclarationKind(pos + 32),
1316
1309
  declarations: null,
1317
- start,
1318
- end,
1310
+ start: (start = deserializeU32(pos)),
1311
+ end: (end = deserializeU32(pos + 4)),
1319
1312
  range: [start, end],
1320
1313
  };
1321
1314
  node.declarations = deserializeVecVariableDeclarator(pos + 8);
@@ -1354,24 +1347,23 @@ function deserializeVariableDeclarator(pos) {
1354
1347
  }
1355
1348
 
1356
1349
  function deserializeEmptyStatement(pos) {
1357
- let start = deserializeU32(pos),
1358
- end = deserializeU32(pos + 4);
1350
+ let start, end;
1359
1351
  return {
1360
1352
  type: "EmptyStatement",
1361
- start,
1362
- end,
1353
+ start: (start = deserializeU32(pos)),
1354
+ end: (end = deserializeU32(pos + 4)),
1363
1355
  range: [start, end],
1364
1356
  };
1365
1357
  }
1366
1358
 
1367
1359
  function deserializeExpressionStatement(pos) {
1368
- let start = deserializeU32(pos),
1369
- end = deserializeU32(pos + 4),
1360
+ let start,
1361
+ end,
1370
1362
  node = {
1371
1363
  type: "ExpressionStatement",
1372
1364
  expression: null,
1373
- start,
1374
- end,
1365
+ start: (start = deserializeU32(pos)),
1366
+ end: (end = deserializeU32(pos + 4)),
1375
1367
  range: [start, end],
1376
1368
  };
1377
1369
  node.expression = deserializeExpression(pos + 8);
@@ -1379,15 +1371,15 @@ function deserializeExpressionStatement(pos) {
1379
1371
  }
1380
1372
 
1381
1373
  function deserializeIfStatement(pos) {
1382
- let start = deserializeU32(pos),
1383
- end = deserializeU32(pos + 4),
1374
+ let start,
1375
+ end,
1384
1376
  node = {
1385
1377
  type: "IfStatement",
1386
1378
  test: null,
1387
1379
  consequent: null,
1388
1380
  alternate: null,
1389
- start,
1390
- end,
1381
+ start: (start = deserializeU32(pos)),
1382
+ end: (end = deserializeU32(pos + 4)),
1391
1383
  range: [start, end],
1392
1384
  };
1393
1385
  node.test = deserializeExpression(pos + 8);
@@ -1397,14 +1389,14 @@ function deserializeIfStatement(pos) {
1397
1389
  }
1398
1390
 
1399
1391
  function deserializeDoWhileStatement(pos) {
1400
- let start = deserializeU32(pos),
1401
- end = deserializeU32(pos + 4),
1392
+ let start,
1393
+ end,
1402
1394
  node = {
1403
1395
  type: "DoWhileStatement",
1404
1396
  body: null,
1405
1397
  test: null,
1406
- start,
1407
- end,
1398
+ start: (start = deserializeU32(pos)),
1399
+ end: (end = deserializeU32(pos + 4)),
1408
1400
  range: [start, end],
1409
1401
  };
1410
1402
  node.body = deserializeStatement(pos + 8);
@@ -1413,14 +1405,14 @@ function deserializeDoWhileStatement(pos) {
1413
1405
  }
1414
1406
 
1415
1407
  function deserializeWhileStatement(pos) {
1416
- let start = deserializeU32(pos),
1417
- end = deserializeU32(pos + 4),
1408
+ let start,
1409
+ end,
1418
1410
  node = {
1419
1411
  type: "WhileStatement",
1420
1412
  test: null,
1421
1413
  body: null,
1422
- start,
1423
- end,
1414
+ start: (start = deserializeU32(pos)),
1415
+ end: (end = deserializeU32(pos + 4)),
1424
1416
  range: [start, end],
1425
1417
  };
1426
1418
  node.test = deserializeExpression(pos + 8);
@@ -1429,16 +1421,16 @@ function deserializeWhileStatement(pos) {
1429
1421
  }
1430
1422
 
1431
1423
  function deserializeForStatement(pos) {
1432
- let start = deserializeU32(pos),
1433
- end = deserializeU32(pos + 4),
1424
+ let start,
1425
+ end,
1434
1426
  node = {
1435
1427
  type: "ForStatement",
1436
1428
  init: null,
1437
1429
  test: null,
1438
1430
  update: null,
1439
1431
  body: null,
1440
- start,
1441
- end,
1432
+ start: (start = deserializeU32(pos)),
1433
+ end: (end = deserializeU32(pos + 4)),
1442
1434
  range: [start, end],
1443
1435
  };
1444
1436
  node.init = deserializeOptionForStatementInit(pos + 8);
@@ -1544,15 +1536,15 @@ function deserializeForStatementInit(pos) {
1544
1536
  }
1545
1537
 
1546
1538
  function deserializeForInStatement(pos) {
1547
- let start = deserializeU32(pos),
1548
- end = deserializeU32(pos + 4),
1539
+ let start,
1540
+ end,
1549
1541
  node = {
1550
1542
  type: "ForInStatement",
1551
1543
  left: null,
1552
1544
  right: null,
1553
1545
  body: null,
1554
- start,
1555
- end,
1546
+ start: (start = deserializeU32(pos)),
1547
+ end: (end = deserializeU32(pos + 4)),
1556
1548
  range: [start, end],
1557
1549
  };
1558
1550
  node.left = deserializeForStatementLeft(pos + 8);
@@ -1591,16 +1583,16 @@ function deserializeForStatementLeft(pos) {
1591
1583
  }
1592
1584
 
1593
1585
  function deserializeForOfStatement(pos) {
1594
- let start = deserializeU32(pos),
1595
- end = deserializeU32(pos + 4),
1586
+ let start,
1587
+ end,
1596
1588
  node = {
1597
1589
  type: "ForOfStatement",
1598
1590
  await: deserializeBool(pos + 60),
1599
1591
  left: null,
1600
1592
  right: null,
1601
1593
  body: null,
1602
- start,
1603
- end,
1594
+ start: (start = deserializeU32(pos)),
1595
+ end: (end = deserializeU32(pos + 4)),
1604
1596
  range: [start, end],
1605
1597
  };
1606
1598
  node.left = deserializeForStatementLeft(pos + 8);
@@ -1610,13 +1602,13 @@ function deserializeForOfStatement(pos) {
1610
1602
  }
1611
1603
 
1612
1604
  function deserializeContinueStatement(pos) {
1613
- let start = deserializeU32(pos),
1614
- end = deserializeU32(pos + 4),
1605
+ let start,
1606
+ end,
1615
1607
  node = {
1616
1608
  type: "ContinueStatement",
1617
1609
  label: null,
1618
- start,
1619
- end,
1610
+ start: (start = deserializeU32(pos)),
1611
+ end: (end = deserializeU32(pos + 4)),
1620
1612
  range: [start, end],
1621
1613
  };
1622
1614
  node.label = deserializeOptionLabelIdentifier(pos + 8);
@@ -1624,13 +1616,13 @@ function deserializeContinueStatement(pos) {
1624
1616
  }
1625
1617
 
1626
1618
  function deserializeBreakStatement(pos) {
1627
- let start = deserializeU32(pos),
1628
- end = deserializeU32(pos + 4),
1619
+ let start,
1620
+ end,
1629
1621
  node = {
1630
1622
  type: "BreakStatement",
1631
1623
  label: null,
1632
- start,
1633
- end,
1624
+ start: (start = deserializeU32(pos)),
1625
+ end: (end = deserializeU32(pos + 4)),
1634
1626
  range: [start, end],
1635
1627
  };
1636
1628
  node.label = deserializeOptionLabelIdentifier(pos + 8);
@@ -1638,13 +1630,13 @@ function deserializeBreakStatement(pos) {
1638
1630
  }
1639
1631
 
1640
1632
  function deserializeReturnStatement(pos) {
1641
- let start = deserializeU32(pos),
1642
- end = deserializeU32(pos + 4),
1633
+ let start,
1634
+ end,
1643
1635
  node = {
1644
1636
  type: "ReturnStatement",
1645
1637
  argument: null,
1646
- start,
1647
- end,
1638
+ start: (start = deserializeU32(pos)),
1639
+ end: (end = deserializeU32(pos + 4)),
1648
1640
  range: [start, end],
1649
1641
  };
1650
1642
  node.argument = deserializeOptionExpression(pos + 8);
@@ -1652,14 +1644,14 @@ function deserializeReturnStatement(pos) {
1652
1644
  }
1653
1645
 
1654
1646
  function deserializeWithStatement(pos) {
1655
- let start = deserializeU32(pos),
1656
- end = deserializeU32(pos + 4),
1647
+ let start,
1648
+ end,
1657
1649
  node = {
1658
1650
  type: "WithStatement",
1659
1651
  object: null,
1660
1652
  body: null,
1661
- start,
1662
- end,
1653
+ start: (start = deserializeU32(pos)),
1654
+ end: (end = deserializeU32(pos + 4)),
1663
1655
  range: [start, end],
1664
1656
  };
1665
1657
  node.object = deserializeExpression(pos + 8);
@@ -1668,14 +1660,14 @@ function deserializeWithStatement(pos) {
1668
1660
  }
1669
1661
 
1670
1662
  function deserializeSwitchStatement(pos) {
1671
- let start = deserializeU32(pos),
1672
- end = deserializeU32(pos + 4),
1663
+ let start,
1664
+ end,
1673
1665
  node = {
1674
1666
  type: "SwitchStatement",
1675
1667
  discriminant: null,
1676
1668
  cases: null,
1677
- start,
1678
- end,
1669
+ start: (start = deserializeU32(pos)),
1670
+ end: (end = deserializeU32(pos + 4)),
1679
1671
  range: [start, end],
1680
1672
  };
1681
1673
  node.discriminant = deserializeExpression(pos + 8);
@@ -1684,14 +1676,14 @@ function deserializeSwitchStatement(pos) {
1684
1676
  }
1685
1677
 
1686
1678
  function deserializeSwitchCase(pos) {
1687
- let start = deserializeU32(pos),
1688
- end = deserializeU32(pos + 4),
1679
+ let start,
1680
+ end,
1689
1681
  node = {
1690
1682
  type: "SwitchCase",
1691
1683
  test: null,
1692
1684
  consequent: null,
1693
- start,
1694
- end,
1685
+ start: (start = deserializeU32(pos)),
1686
+ end: (end = deserializeU32(pos + 4)),
1695
1687
  range: [start, end],
1696
1688
  };
1697
1689
  node.test = deserializeOptionExpression(pos + 8);
@@ -1700,14 +1692,14 @@ function deserializeSwitchCase(pos) {
1700
1692
  }
1701
1693
 
1702
1694
  function deserializeLabeledStatement(pos) {
1703
- let start = deserializeU32(pos),
1704
- end = deserializeU32(pos + 4),
1695
+ let start,
1696
+ end,
1705
1697
  node = {
1706
1698
  type: "LabeledStatement",
1707
1699
  label: null,
1708
1700
  body: null,
1709
- start,
1710
- end,
1701
+ start: (start = deserializeU32(pos)),
1702
+ end: (end = deserializeU32(pos + 4)),
1711
1703
  range: [start, end],
1712
1704
  };
1713
1705
  node.label = deserializeLabelIdentifier(pos + 8);
@@ -1716,13 +1708,13 @@ function deserializeLabeledStatement(pos) {
1716
1708
  }
1717
1709
 
1718
1710
  function deserializeThrowStatement(pos) {
1719
- let start = deserializeU32(pos),
1720
- end = deserializeU32(pos + 4),
1711
+ let start,
1712
+ end,
1721
1713
  node = {
1722
1714
  type: "ThrowStatement",
1723
1715
  argument: null,
1724
- start,
1725
- end,
1716
+ start: (start = deserializeU32(pos)),
1717
+ end: (end = deserializeU32(pos + 4)),
1726
1718
  range: [start, end],
1727
1719
  };
1728
1720
  node.argument = deserializeExpression(pos + 8);
@@ -1730,15 +1722,15 @@ function deserializeThrowStatement(pos) {
1730
1722
  }
1731
1723
 
1732
1724
  function deserializeTryStatement(pos) {
1733
- let start = deserializeU32(pos),
1734
- end = deserializeU32(pos + 4),
1725
+ let start,
1726
+ end,
1735
1727
  node = {
1736
1728
  type: "TryStatement",
1737
1729
  block: null,
1738
1730
  handler: null,
1739
1731
  finalizer: null,
1740
- start,
1741
- end,
1732
+ start: (start = deserializeU32(pos)),
1733
+ end: (end = deserializeU32(pos + 4)),
1742
1734
  range: [start, end],
1743
1735
  };
1744
1736
  node.block = deserializeBoxBlockStatement(pos + 8);
@@ -1748,14 +1740,14 @@ function deserializeTryStatement(pos) {
1748
1740
  }
1749
1741
 
1750
1742
  function deserializeCatchClause(pos) {
1751
- let start = deserializeU32(pos),
1752
- end = deserializeU32(pos + 4),
1743
+ let start,
1744
+ end,
1753
1745
  node = {
1754
1746
  type: "CatchClause",
1755
1747
  param: null,
1756
1748
  body: null,
1757
- start,
1758
- end,
1749
+ start: (start = deserializeU32(pos)),
1750
+ end: (end = deserializeU32(pos + 4)),
1759
1751
  range: [start, end],
1760
1752
  };
1761
1753
  node.param = deserializeOptionCatchParameter(pos + 8);
@@ -1768,12 +1760,11 @@ function deserializeCatchParameter(pos) {
1768
1760
  }
1769
1761
 
1770
1762
  function deserializeDebuggerStatement(pos) {
1771
- let start = deserializeU32(pos),
1772
- end = deserializeU32(pos + 4);
1763
+ let start, end;
1773
1764
  return {
1774
1765
  type: "DebuggerStatement",
1775
- start,
1776
- end,
1766
+ start: (start = deserializeU32(pos)),
1767
+ end: (end = deserializeU32(pos + 4)),
1777
1768
  range: [start, end],
1778
1769
  };
1779
1770
  }
@@ -1794,14 +1785,14 @@ function deserializeBindingPattern(pos) {
1794
1785
  }
1795
1786
 
1796
1787
  function deserializeAssignmentPattern(pos) {
1797
- let start = deserializeU32(pos),
1798
- end = deserializeU32(pos + 4),
1788
+ let start,
1789
+ end,
1799
1790
  node = {
1800
1791
  type: "AssignmentPattern",
1801
1792
  left: null,
1802
1793
  right: null,
1803
- start,
1804
- end,
1794
+ start: (start = deserializeU32(pos)),
1795
+ end: (end = deserializeU32(pos + 4)),
1805
1796
  range: [start, end],
1806
1797
  };
1807
1798
  node.left = deserializeBindingPattern(pos + 8);
@@ -1810,13 +1801,13 @@ function deserializeAssignmentPattern(pos) {
1810
1801
  }
1811
1802
 
1812
1803
  function deserializeObjectPattern(pos) {
1813
- let start = deserializeU32(pos),
1814
- end = deserializeU32(pos + 4),
1804
+ let start,
1805
+ end,
1815
1806
  node = {
1816
1807
  type: "ObjectPattern",
1817
1808
  properties: null,
1818
- start,
1819
- end,
1809
+ start: (start = deserializeU32(pos)),
1810
+ end: (end = deserializeU32(pos + 4)),
1820
1811
  range: [start, end],
1821
1812
  },
1822
1813
  properties = deserializeVecBindingProperty(pos + 8),
@@ -1827,8 +1818,8 @@ function deserializeObjectPattern(pos) {
1827
1818
  }
1828
1819
 
1829
1820
  function deserializeBindingProperty(pos) {
1830
- let start = deserializeU32(pos),
1831
- end = deserializeU32(pos + 4),
1821
+ let start,
1822
+ end,
1832
1823
  node = {
1833
1824
  type: "Property",
1834
1825
  kind: null,
@@ -1837,8 +1828,8 @@ function deserializeBindingProperty(pos) {
1837
1828
  method: null,
1838
1829
  shorthand: deserializeBool(pos + 40),
1839
1830
  computed: deserializeBool(pos + 41),
1840
- start,
1841
- end,
1831
+ start: (start = deserializeU32(pos)),
1832
+ end: (end = deserializeU32(pos + 4)),
1842
1833
  range: [start, end],
1843
1834
  };
1844
1835
  node.kind = "init";
@@ -1849,13 +1840,13 @@ function deserializeBindingProperty(pos) {
1849
1840
  }
1850
1841
 
1851
1842
  function deserializeArrayPattern(pos) {
1852
- let start = deserializeU32(pos),
1853
- end = deserializeU32(pos + 4),
1843
+ let start,
1844
+ end,
1854
1845
  node = {
1855
1846
  type: "ArrayPattern",
1856
1847
  elements: null,
1857
- start,
1858
- end,
1848
+ start: (start = deserializeU32(pos)),
1849
+ end: (end = deserializeU32(pos + 4)),
1859
1850
  range: [start, end],
1860
1851
  },
1861
1852
  elements = deserializeVecOptionBindingPattern(pos + 8),
@@ -1866,13 +1857,13 @@ function deserializeArrayPattern(pos) {
1866
1857
  }
1867
1858
 
1868
1859
  function deserializeBindingRestElement(pos) {
1869
- let start = deserializeU32(pos),
1870
- end = deserializeU32(pos + 4),
1860
+ let start,
1861
+ end,
1871
1862
  node = {
1872
1863
  type: "RestElement",
1873
1864
  argument: null,
1874
- start,
1875
- end,
1865
+ start: (start = deserializeU32(pos)),
1866
+ end: (end = deserializeU32(pos + 4)),
1876
1867
  range: [start, end],
1877
1868
  };
1878
1869
  node.argument = deserializeBindingPattern(pos + 8);
@@ -1880,8 +1871,8 @@ function deserializeBindingRestElement(pos) {
1880
1871
  }
1881
1872
 
1882
1873
  function deserializeFunction(pos) {
1883
- let start = deserializeU32(pos),
1884
- end = deserializeU32(pos + 4),
1874
+ let start,
1875
+ end,
1885
1876
  node = {
1886
1877
  type: deserializeFunctionType(pos + 84),
1887
1878
  id: null,
@@ -1890,8 +1881,8 @@ function deserializeFunction(pos) {
1890
1881
  params: null,
1891
1882
  body: null,
1892
1883
  expression: null,
1893
- start,
1894
- end,
1884
+ start: (start = deserializeU32(pos)),
1885
+ end: (end = deserializeU32(pos + 4)),
1895
1886
  range: [start, end],
1896
1887
  },
1897
1888
  params = deserializeBoxFormalParameters(pos + 56);
@@ -1955,13 +1946,13 @@ function deserializeFormalParameter(pos) {
1955
1946
  }
1956
1947
 
1957
1948
  function deserializeFunctionBody(pos) {
1958
- let start = deserializeU32(pos),
1959
- end = deserializeU32(pos + 4),
1949
+ let start,
1950
+ end,
1960
1951
  node = {
1961
1952
  type: "BlockStatement",
1962
1953
  body: null,
1963
- start,
1964
- end,
1954
+ start: (start = deserializeU32(pos)),
1955
+ end: (end = deserializeU32(pos + 4)),
1965
1956
  range: [start, end],
1966
1957
  },
1967
1958
  body = deserializeVecDirective(pos + 8);
@@ -1972,8 +1963,8 @@ function deserializeFunctionBody(pos) {
1972
1963
 
1973
1964
  function deserializeArrowFunctionExpression(pos) {
1974
1965
  let expression = deserializeBool(pos + 44),
1975
- start = deserializeU32(pos),
1976
- end = deserializeU32(pos + 4),
1966
+ start,
1967
+ end,
1977
1968
  node = {
1978
1969
  type: "ArrowFunctionExpression",
1979
1970
  expression,
@@ -1982,8 +1973,8 @@ function deserializeArrowFunctionExpression(pos) {
1982
1973
  body: null,
1983
1974
  id: null,
1984
1975
  generator: null,
1985
- start,
1986
- end,
1976
+ start: (start = deserializeU32(pos)),
1977
+ end: (end = deserializeU32(pos + 4)),
1987
1978
  range: [start, end],
1988
1979
  },
1989
1980
  body = deserializeBoxFunctionBody(pos + 32);
@@ -1995,14 +1986,14 @@ function deserializeArrowFunctionExpression(pos) {
1995
1986
  }
1996
1987
 
1997
1988
  function deserializeYieldExpression(pos) {
1998
- let start = deserializeU32(pos),
1999
- end = deserializeU32(pos + 4),
1989
+ let start,
1990
+ end,
2000
1991
  node = {
2001
1992
  type: "YieldExpression",
2002
1993
  delegate: deserializeBool(pos + 24),
2003
1994
  argument: null,
2004
- start,
2005
- end,
1995
+ start: (start = deserializeU32(pos)),
1996
+ end: (end = deserializeU32(pos + 4)),
2006
1997
  range: [start, end],
2007
1998
  };
2008
1999
  node.argument = deserializeOptionExpression(pos + 8);
@@ -2010,16 +2001,16 @@ function deserializeYieldExpression(pos) {
2010
2001
  }
2011
2002
 
2012
2003
  function deserializeClass(pos) {
2013
- let start = deserializeU32(pos),
2014
- end = deserializeU32(pos + 4),
2004
+ let start,
2005
+ end,
2015
2006
  node = {
2016
2007
  type: deserializeClassType(pos + 132),
2017
2008
  decorators: null,
2018
2009
  id: null,
2019
2010
  superClass: null,
2020
2011
  body: null,
2021
- start,
2022
- end,
2012
+ start: (start = deserializeU32(pos)),
2013
+ end: (end = deserializeU32(pos + 4)),
2023
2014
  range: [start, end],
2024
2015
  };
2025
2016
  node.decorators = deserializeVecDecorator(pos + 8);
@@ -2041,13 +2032,13 @@ function deserializeClassType(pos) {
2041
2032
  }
2042
2033
 
2043
2034
  function deserializeClassBody(pos) {
2044
- let start = deserializeU32(pos),
2045
- end = deserializeU32(pos + 4),
2035
+ let start,
2036
+ end,
2046
2037
  node = {
2047
2038
  type: "ClassBody",
2048
2039
  body: null,
2049
- start,
2050
- end,
2040
+ start: (start = deserializeU32(pos)),
2041
+ end: (end = deserializeU32(pos + 4)),
2051
2042
  range: [start, end],
2052
2043
  };
2053
2044
  node.body = deserializeVecClassElement(pos + 8);
@@ -2072,8 +2063,8 @@ function deserializeClassElement(pos) {
2072
2063
  }
2073
2064
 
2074
2065
  function deserializeMethodDefinition(pos) {
2075
- let start = deserializeU32(pos),
2076
- end = deserializeU32(pos + 4),
2066
+ let start,
2067
+ end,
2077
2068
  node = {
2078
2069
  type: deserializeMethodDefinitionType(pos + 56),
2079
2070
  decorators: null,
@@ -2082,8 +2073,8 @@ function deserializeMethodDefinition(pos) {
2082
2073
  kind: deserializeMethodDefinitionKind(pos + 57),
2083
2074
  computed: deserializeBool(pos + 58),
2084
2075
  static: deserializeBool(pos + 59),
2085
- start,
2086
- end,
2076
+ start: (start = deserializeU32(pos)),
2077
+ end: (end = deserializeU32(pos + 4)),
2087
2078
  range: [start, end],
2088
2079
  };
2089
2080
  node.decorators = deserializeVecDecorator(pos + 8);
@@ -2104,8 +2095,8 @@ function deserializeMethodDefinitionType(pos) {
2104
2095
  }
2105
2096
 
2106
2097
  function deserializePropertyDefinition(pos) {
2107
- let start = deserializeU32(pos),
2108
- end = deserializeU32(pos + 4),
2098
+ let start,
2099
+ end,
2109
2100
  node = {
2110
2101
  type: deserializePropertyDefinitionType(pos + 72),
2111
2102
  decorators: null,
@@ -2113,8 +2104,8 @@ function deserializePropertyDefinition(pos) {
2113
2104
  value: null,
2114
2105
  computed: deserializeBool(pos + 73),
2115
2106
  static: deserializeBool(pos + 74),
2116
- start,
2117
- end,
2107
+ start: (start = deserializeU32(pos)),
2108
+ end: (end = deserializeU32(pos + 4)),
2118
2109
  range: [start, end],
2119
2110
  };
2120
2111
  node.decorators = deserializeVecDecorator(pos + 8);
@@ -2150,25 +2141,24 @@ function deserializeMethodDefinitionKind(pos) {
2150
2141
  }
2151
2142
 
2152
2143
  function deserializePrivateIdentifier(pos) {
2153
- let start = deserializeU32(pos),
2154
- end = deserializeU32(pos + 4);
2144
+ let start, end;
2155
2145
  return {
2156
2146
  type: "PrivateIdentifier",
2157
2147
  name: deserializeStr(pos + 8),
2158
- start,
2159
- end,
2148
+ start: (start = deserializeU32(pos)),
2149
+ end: (end = deserializeU32(pos + 4)),
2160
2150
  range: [start, end],
2161
2151
  };
2162
2152
  }
2163
2153
 
2164
2154
  function deserializeStaticBlock(pos) {
2165
- let start = deserializeU32(pos),
2166
- end = deserializeU32(pos + 4),
2155
+ let start,
2156
+ end,
2167
2157
  node = {
2168
2158
  type: "StaticBlock",
2169
2159
  body: null,
2170
- start,
2171
- end,
2160
+ start: (start = deserializeU32(pos)),
2161
+ end: (end = deserializeU32(pos + 4)),
2172
2162
  range: [start, end],
2173
2163
  };
2174
2164
  node.body = deserializeVecStatement(pos + 8);
@@ -2187,8 +2177,8 @@ function deserializeAccessorPropertyType(pos) {
2187
2177
  }
2188
2178
 
2189
2179
  function deserializeAccessorProperty(pos) {
2190
- let start = deserializeU32(pos),
2191
- end = deserializeU32(pos + 4),
2180
+ let start,
2181
+ end,
2192
2182
  node = {
2193
2183
  type: deserializeAccessorPropertyType(pos + 72),
2194
2184
  decorators: null,
@@ -2196,8 +2186,8 @@ function deserializeAccessorProperty(pos) {
2196
2186
  value: null,
2197
2187
  computed: deserializeBool(pos + 73),
2198
2188
  static: deserializeBool(pos + 74),
2199
- start,
2200
- end,
2189
+ start: (start = deserializeU32(pos)),
2190
+ end: (end = deserializeU32(pos + 4)),
2201
2191
  range: [start, end],
2202
2192
  };
2203
2193
  node.decorators = deserializeVecDecorator(pos + 8);
@@ -2207,15 +2197,15 @@ function deserializeAccessorProperty(pos) {
2207
2197
  }
2208
2198
 
2209
2199
  function deserializeImportExpression(pos) {
2210
- let start = deserializeU32(pos),
2211
- end = deserializeU32(pos + 4),
2200
+ let start,
2201
+ end,
2212
2202
  node = {
2213
2203
  type: "ImportExpression",
2214
2204
  source: null,
2215
2205
  options: null,
2216
2206
  phase: deserializeOptionImportPhase(pos + 40),
2217
- start,
2218
- end,
2207
+ start: (start = deserializeU32(pos)),
2208
+ end: (end = deserializeU32(pos + 4)),
2219
2209
  range: [start, end],
2220
2210
  };
2221
2211
  node.source = deserializeExpression(pos + 8);
@@ -2224,16 +2214,16 @@ function deserializeImportExpression(pos) {
2224
2214
  }
2225
2215
 
2226
2216
  function deserializeImportDeclaration(pos) {
2227
- let start = deserializeU32(pos),
2228
- end = deserializeU32(pos + 4),
2217
+ let start,
2218
+ end,
2229
2219
  node = {
2230
2220
  type: "ImportDeclaration",
2231
2221
  specifiers: null,
2232
2222
  source: null,
2233
2223
  phase: deserializeOptionImportPhase(pos + 88),
2234
2224
  attributes: null,
2235
- start,
2236
- end,
2225
+ start: (start = deserializeU32(pos)),
2226
+ end: (end = deserializeU32(pos + 4)),
2237
2227
  range: [start, end],
2238
2228
  },
2239
2229
  specifiers = deserializeOptionVecImportDeclarationSpecifier(pos + 8);
@@ -2270,14 +2260,14 @@ function deserializeImportDeclarationSpecifier(pos) {
2270
2260
  }
2271
2261
 
2272
2262
  function deserializeImportSpecifier(pos) {
2273
- let start = deserializeU32(pos),
2274
- end = deserializeU32(pos + 4),
2263
+ let start,
2264
+ end,
2275
2265
  node = {
2276
2266
  type: "ImportSpecifier",
2277
2267
  imported: null,
2278
2268
  local: null,
2279
- start,
2280
- end,
2269
+ start: (start = deserializeU32(pos)),
2270
+ end: (end = deserializeU32(pos + 4)),
2281
2271
  range: [start, end],
2282
2272
  };
2283
2273
  node.imported = deserializeModuleExportName(pos + 8);
@@ -2286,13 +2276,13 @@ function deserializeImportSpecifier(pos) {
2286
2276
  }
2287
2277
 
2288
2278
  function deserializeImportDefaultSpecifier(pos) {
2289
- let start = deserializeU32(pos),
2290
- end = deserializeU32(pos + 4),
2279
+ let start,
2280
+ end,
2291
2281
  node = {
2292
2282
  type: "ImportDefaultSpecifier",
2293
2283
  local: null,
2294
- start,
2295
- end,
2284
+ start: (start = deserializeU32(pos)),
2285
+ end: (end = deserializeU32(pos + 4)),
2296
2286
  range: [start, end],
2297
2287
  };
2298
2288
  node.local = deserializeBindingIdentifier(pos + 8);
@@ -2300,13 +2290,13 @@ function deserializeImportDefaultSpecifier(pos) {
2300
2290
  }
2301
2291
 
2302
2292
  function deserializeImportNamespaceSpecifier(pos) {
2303
- let start = deserializeU32(pos),
2304
- end = deserializeU32(pos + 4),
2293
+ let start,
2294
+ end,
2305
2295
  node = {
2306
2296
  type: "ImportNamespaceSpecifier",
2307
2297
  local: null,
2308
- start,
2309
- end,
2298
+ start: (start = deserializeU32(pos)),
2299
+ end: (end = deserializeU32(pos + 4)),
2310
2300
  range: [start, end],
2311
2301
  };
2312
2302
  node.local = deserializeBindingIdentifier(pos + 8);
@@ -2318,14 +2308,14 @@ function deserializeWithClause(pos) {
2318
2308
  }
2319
2309
 
2320
2310
  function deserializeImportAttribute(pos) {
2321
- let start = deserializeU32(pos),
2322
- end = deserializeU32(pos + 4),
2311
+ let start,
2312
+ end,
2323
2313
  node = {
2324
2314
  type: "ImportAttribute",
2325
2315
  key: null,
2326
2316
  value: null,
2327
- start,
2328
- end,
2317
+ start: (start = deserializeU32(pos)),
2318
+ end: (end = deserializeU32(pos + 4)),
2329
2319
  range: [start, end],
2330
2320
  };
2331
2321
  node.key = deserializeImportAttributeKey(pos + 8);
@@ -2345,16 +2335,16 @@ function deserializeImportAttributeKey(pos) {
2345
2335
  }
2346
2336
 
2347
2337
  function deserializeExportNamedDeclaration(pos) {
2348
- let start = deserializeU32(pos),
2349
- end = deserializeU32(pos + 4),
2338
+ let start,
2339
+ end,
2350
2340
  node = {
2351
2341
  type: "ExportNamedDeclaration",
2352
2342
  declaration: null,
2353
2343
  specifiers: null,
2354
2344
  source: null,
2355
2345
  attributes: null,
2356
- start,
2357
- end,
2346
+ start: (start = deserializeU32(pos)),
2347
+ end: (end = deserializeU32(pos + 4)),
2358
2348
  range: [start, end],
2359
2349
  },
2360
2350
  withClause = deserializeOptionBoxWithClause(pos + 96);
@@ -2366,13 +2356,13 @@ function deserializeExportNamedDeclaration(pos) {
2366
2356
  }
2367
2357
 
2368
2358
  function deserializeExportDefaultDeclaration(pos) {
2369
- let start = deserializeU32(pos),
2370
- end = deserializeU32(pos + 4),
2359
+ let start,
2360
+ end,
2371
2361
  node = {
2372
2362
  type: "ExportDefaultDeclaration",
2373
2363
  declaration: null,
2374
- start,
2375
- end,
2364
+ start: (start = deserializeU32(pos)),
2365
+ end: (end = deserializeU32(pos + 4)),
2376
2366
  range: [start, end],
2377
2367
  };
2378
2368
  node.declaration = deserializeExportDefaultDeclarationKind(pos + 8);
@@ -2380,15 +2370,15 @@ function deserializeExportDefaultDeclaration(pos) {
2380
2370
  }
2381
2371
 
2382
2372
  function deserializeExportAllDeclaration(pos) {
2383
- let start = deserializeU32(pos),
2384
- end = deserializeU32(pos + 4),
2373
+ let start,
2374
+ end,
2385
2375
  node = {
2386
2376
  type: "ExportAllDeclaration",
2387
2377
  exported: null,
2388
2378
  source: null,
2389
2379
  attributes: null,
2390
- start,
2391
- end,
2380
+ start: (start = deserializeU32(pos)),
2381
+ end: (end = deserializeU32(pos + 4)),
2392
2382
  range: [start, end],
2393
2383
  },
2394
2384
  withClause = deserializeOptionBoxWithClause(pos + 112);
@@ -2399,14 +2389,14 @@ function deserializeExportAllDeclaration(pos) {
2399
2389
  }
2400
2390
 
2401
2391
  function deserializeExportSpecifier(pos) {
2402
- let start = deserializeU32(pos),
2403
- end = deserializeU32(pos + 4),
2392
+ let start,
2393
+ end,
2404
2394
  node = {
2405
2395
  type: "ExportSpecifier",
2406
2396
  local: null,
2407
2397
  exported: null,
2408
- start,
2409
- end,
2398
+ start: (start = deserializeU32(pos)),
2399
+ end: (end = deserializeU32(pos + 4)),
2410
2400
  range: [start, end],
2411
2401
  };
2412
2402
  node.local = deserializeModuleExportName(pos + 8);
@@ -2527,14 +2517,14 @@ function deserializeModuleExportName(pos) {
2527
2517
  }
2528
2518
 
2529
2519
  function deserializeV8IntrinsicExpression(pos) {
2530
- let start = deserializeU32(pos),
2531
- end = deserializeU32(pos + 4),
2520
+ let start,
2521
+ end,
2532
2522
  node = {
2533
2523
  type: "V8IntrinsicExpression",
2534
2524
  name: null,
2535
2525
  arguments: null,
2536
- start,
2537
- end,
2526
+ start: (start = deserializeU32(pos)),
2527
+ end: (end = deserializeU32(pos + 4)),
2538
2528
  range: [start, end],
2539
2529
  };
2540
2530
  node.name = deserializeIdentifierName(pos + 8);
@@ -2574,27 +2564,26 @@ function deserializeNullLiteral(pos) {
2574
2564
  }
2575
2565
 
2576
2566
  function deserializeNumericLiteral(pos) {
2577
- let start = deserializeU32(pos),
2578
- end = deserializeU32(pos + 4);
2567
+ let start, end;
2579
2568
  return {
2580
2569
  type: "Literal",
2581
2570
  value: deserializeF64(pos + 8),
2582
2571
  raw: deserializeOptionStr(pos + 16),
2583
- start,
2584
- end,
2572
+ start: (start = deserializeU32(pos)),
2573
+ end: (end = deserializeU32(pos + 4)),
2585
2574
  range: [start, end],
2586
2575
  };
2587
2576
  }
2588
2577
 
2589
2578
  function deserializeStringLiteral(pos) {
2590
- let start = deserializeU32(pos),
2591
- end = deserializeU32(pos + 4),
2579
+ let start,
2580
+ end,
2592
2581
  node = {
2593
2582
  type: "Literal",
2594
2583
  value: null,
2595
2584
  raw: deserializeOptionStr(pos + 24),
2596
- start,
2597
- end,
2585
+ start: (start = deserializeU32(pos)),
2586
+ end: (end = deserializeU32(pos + 4)),
2598
2587
  range: [start, end],
2599
2588
  },
2600
2589
  value = deserializeStr(pos + 8);
@@ -2605,15 +2594,15 @@ function deserializeStringLiteral(pos) {
2605
2594
  }
2606
2595
 
2607
2596
  function deserializeBigIntLiteral(pos) {
2608
- let start = deserializeU32(pos),
2609
- end = deserializeU32(pos + 4),
2597
+ let start,
2598
+ end,
2610
2599
  node = {
2611
2600
  type: "Literal",
2612
2601
  value: null,
2613
2602
  raw: deserializeOptionStr(pos + 24),
2614
2603
  bigint: null,
2615
- start,
2616
- end,
2604
+ start: (start = deserializeU32(pos)),
2605
+ end: (end = deserializeU32(pos + 4)),
2617
2606
  range: [start, end],
2618
2607
  },
2619
2608
  bigint = deserializeStr(pos + 8);
@@ -2623,15 +2612,15 @@ function deserializeBigIntLiteral(pos) {
2623
2612
  }
2624
2613
 
2625
2614
  function deserializeRegExpLiteral(pos) {
2626
- let start = deserializeU32(pos),
2627
- end = deserializeU32(pos + 4),
2615
+ let start,
2616
+ end,
2628
2617
  node = {
2629
2618
  type: "Literal",
2630
2619
  value: null,
2631
2620
  raw: deserializeOptionStr(pos + 40),
2632
2621
  regex: null,
2633
- start,
2634
- end,
2622
+ start: (start = deserializeU32(pos)),
2623
+ end: (end = deserializeU32(pos + 4)),
2635
2624
  range: [start, end],
2636
2625
  },
2637
2626
  regex = deserializeRegExp(pos + 8),
@@ -2667,15 +2656,15 @@ function deserializeRegExpFlags(pos) {
2667
2656
  }
2668
2657
 
2669
2658
  function deserializeJSXElement(pos) {
2670
- let start = deserializeU32(pos),
2671
- end = deserializeU32(pos + 4),
2659
+ let start,
2660
+ end,
2672
2661
  node = {
2673
2662
  type: "JSXElement",
2674
2663
  openingElement: null,
2675
2664
  children: null,
2676
2665
  closingElement: null,
2677
- start,
2678
- end,
2666
+ start: (start = deserializeU32(pos)),
2667
+ end: (end = deserializeU32(pos + 4)),
2679
2668
  range: [start, end],
2680
2669
  },
2681
2670
  closingElement = deserializeOptionBoxJSXClosingElement(pos + 40),
@@ -2688,15 +2677,15 @@ function deserializeJSXElement(pos) {
2688
2677
  }
2689
2678
 
2690
2679
  function deserializeJSXOpeningElement(pos) {
2691
- let start = deserializeU32(pos),
2692
- end = deserializeU32(pos + 4),
2680
+ let start,
2681
+ end,
2693
2682
  node = {
2694
2683
  type: "JSXOpeningElement",
2695
2684
  name: null,
2696
2685
  attributes: null,
2697
2686
  selfClosing: null,
2698
- start,
2699
- end,
2687
+ start: (start = deserializeU32(pos)),
2688
+ end: (end = deserializeU32(pos + 4)),
2700
2689
  range: [start, end],
2701
2690
  };
2702
2691
  node.name = deserializeJSXElementName(pos + 8);
@@ -2706,13 +2695,13 @@ function deserializeJSXOpeningElement(pos) {
2706
2695
  }
2707
2696
 
2708
2697
  function deserializeJSXClosingElement(pos) {
2709
- let start = deserializeU32(pos),
2710
- end = deserializeU32(pos + 4),
2698
+ let start,
2699
+ end,
2711
2700
  node = {
2712
2701
  type: "JSXClosingElement",
2713
2702
  name: null,
2714
- start,
2715
- end,
2703
+ start: (start = deserializeU32(pos)),
2704
+ end: (end = deserializeU32(pos + 4)),
2716
2705
  range: [start, end],
2717
2706
  };
2718
2707
  node.name = deserializeJSXElementName(pos + 8);
@@ -2720,15 +2709,15 @@ function deserializeJSXClosingElement(pos) {
2720
2709
  }
2721
2710
 
2722
2711
  function deserializeJSXFragment(pos) {
2723
- let start = deserializeU32(pos),
2724
- end = deserializeU32(pos + 4),
2712
+ let start,
2713
+ end,
2725
2714
  node = {
2726
2715
  type: "JSXFragment",
2727
2716
  openingFragment: null,
2728
2717
  children: null,
2729
2718
  closingFragment: null,
2730
- start,
2731
- end,
2719
+ start: (start = deserializeU32(pos)),
2720
+ end: (end = deserializeU32(pos + 4)),
2732
2721
  range: [start, end],
2733
2722
  };
2734
2723
  node.openingFragment = deserializeJSXOpeningFragment(pos + 8);
@@ -2738,14 +2727,14 @@ function deserializeJSXFragment(pos) {
2738
2727
  }
2739
2728
 
2740
2729
  function deserializeJSXOpeningFragment(pos) {
2741
- let start = deserializeU32(pos),
2742
- end = deserializeU32(pos + 4),
2730
+ let start,
2731
+ end,
2743
2732
  node = {
2744
2733
  type: "JSXOpeningFragment",
2745
2734
  attributes: null,
2746
2735
  selfClosing: null,
2747
- start,
2748
- end,
2736
+ start: (start = deserializeU32(pos)),
2737
+ end: (end = deserializeU32(pos + 4)),
2749
2738
  range: [start, end],
2750
2739
  };
2751
2740
  node.attributes = [];
@@ -2754,12 +2743,11 @@ function deserializeJSXOpeningFragment(pos) {
2754
2743
  }
2755
2744
 
2756
2745
  function deserializeJSXClosingFragment(pos) {
2757
- let start = deserializeU32(pos),
2758
- end = deserializeU32(pos + 4);
2746
+ let start, end;
2759
2747
  return {
2760
2748
  type: "JSXClosingFragment",
2761
- start,
2762
- end,
2749
+ start: (start = deserializeU32(pos)),
2750
+ end: (end = deserializeU32(pos + 4)),
2763
2751
  range: [start, end],
2764
2752
  };
2765
2753
  }
@@ -2796,14 +2784,14 @@ function deserializeJSXElementName(pos) {
2796
2784
  }
2797
2785
 
2798
2786
  function deserializeJSXNamespacedName(pos) {
2799
- let start = deserializeU32(pos),
2800
- end = deserializeU32(pos + 4),
2787
+ let start,
2788
+ end,
2801
2789
  node = {
2802
2790
  type: "JSXNamespacedName",
2803
2791
  namespace: null,
2804
2792
  name: null,
2805
- start,
2806
- end,
2793
+ start: (start = deserializeU32(pos)),
2794
+ end: (end = deserializeU32(pos + 4)),
2807
2795
  range: [start, end],
2808
2796
  };
2809
2797
  node.namespace = deserializeJSXIdentifier(pos + 8);
@@ -2812,14 +2800,14 @@ function deserializeJSXNamespacedName(pos) {
2812
2800
  }
2813
2801
 
2814
2802
  function deserializeJSXMemberExpression(pos) {
2815
- let start = deserializeU32(pos),
2816
- end = deserializeU32(pos + 4),
2803
+ let start,
2804
+ end,
2817
2805
  node = {
2818
2806
  type: "JSXMemberExpression",
2819
2807
  object: null,
2820
2808
  property: null,
2821
- start,
2822
- end,
2809
+ start: (start = deserializeU32(pos)),
2810
+ end: (end = deserializeU32(pos + 4)),
2823
2811
  range: [start, end],
2824
2812
  };
2825
2813
  node.object = deserializeJSXMemberExpressionObject(pos + 8);
@@ -2855,13 +2843,13 @@ function deserializeJSXMemberExpressionObject(pos) {
2855
2843
  }
2856
2844
 
2857
2845
  function deserializeJSXExpressionContainer(pos) {
2858
- let start = deserializeU32(pos),
2859
- end = deserializeU32(pos + 4),
2846
+ let start,
2847
+ end,
2860
2848
  node = {
2861
2849
  type: "JSXExpressionContainer",
2862
2850
  expression: null,
2863
- start,
2864
- end,
2851
+ start: (start = deserializeU32(pos)),
2852
+ end: (end = deserializeU32(pos + 4)),
2865
2853
  range: [start, end],
2866
2854
  };
2867
2855
  node.expression = deserializeJSXExpression(pos + 8);
@@ -2964,12 +2952,11 @@ function deserializeJSXExpression(pos) {
2964
2952
  }
2965
2953
 
2966
2954
  function deserializeJSXEmptyExpression(pos) {
2967
- let start = deserializeU32(pos),
2968
- end = deserializeU32(pos + 4);
2955
+ let start, end;
2969
2956
  return {
2970
2957
  type: "JSXEmptyExpression",
2971
- start,
2972
- end,
2958
+ start: (start = deserializeU32(pos)),
2959
+ end: (end = deserializeU32(pos + 4)),
2973
2960
  range: [start, end],
2974
2961
  };
2975
2962
  }
@@ -2986,14 +2973,14 @@ function deserializeJSXAttributeItem(pos) {
2986
2973
  }
2987
2974
 
2988
2975
  function deserializeJSXAttribute(pos) {
2989
- let start = deserializeU32(pos),
2990
- end = deserializeU32(pos + 4),
2976
+ let start,
2977
+ end,
2991
2978
  node = {
2992
2979
  type: "JSXAttribute",
2993
2980
  name: null,
2994
2981
  value: null,
2995
- start,
2996
- end,
2982
+ start: (start = deserializeU32(pos)),
2983
+ end: (end = deserializeU32(pos + 4)),
2997
2984
  range: [start, end],
2998
2985
  };
2999
2986
  node.name = deserializeJSXAttributeName(pos + 8);
@@ -3002,13 +2989,13 @@ function deserializeJSXAttribute(pos) {
3002
2989
  }
3003
2990
 
3004
2991
  function deserializeJSXSpreadAttribute(pos) {
3005
- let start = deserializeU32(pos),
3006
- end = deserializeU32(pos + 4),
2992
+ let start,
2993
+ end,
3007
2994
  node = {
3008
2995
  type: "JSXSpreadAttribute",
3009
2996
  argument: null,
3010
- start,
3011
- end,
2997
+ start: (start = deserializeU32(pos)),
2998
+ end: (end = deserializeU32(pos + 4)),
3012
2999
  range: [start, end],
3013
3000
  };
3014
3001
  node.argument = deserializeExpression(pos + 8);
@@ -3042,13 +3029,12 @@ function deserializeJSXAttributeValue(pos) {
3042
3029
  }
3043
3030
 
3044
3031
  function deserializeJSXIdentifier(pos) {
3045
- let start = deserializeU32(pos),
3046
- end = deserializeU32(pos + 4);
3032
+ let start, end;
3047
3033
  return {
3048
3034
  type: "JSXIdentifier",
3049
3035
  name: deserializeStr(pos + 8),
3050
- start,
3051
- end,
3036
+ start: (start = deserializeU32(pos)),
3037
+ end: (end = deserializeU32(pos + 4)),
3052
3038
  range: [start, end],
3053
3039
  };
3054
3040
  }
@@ -3071,13 +3057,13 @@ function deserializeJSXChild(pos) {
3071
3057
  }
3072
3058
 
3073
3059
  function deserializeJSXSpreadChild(pos) {
3074
- let start = deserializeU32(pos),
3075
- end = deserializeU32(pos + 4),
3060
+ let start,
3061
+ end,
3076
3062
  node = {
3077
3063
  type: "JSXSpreadChild",
3078
3064
  expression: null,
3079
- start,
3080
- end,
3065
+ start: (start = deserializeU32(pos)),
3066
+ end: (end = deserializeU32(pos + 4)),
3081
3067
  range: [start, end],
3082
3068
  };
3083
3069
  node.expression = deserializeExpression(pos + 8);
@@ -3085,29 +3071,28 @@ function deserializeJSXSpreadChild(pos) {
3085
3071
  }
3086
3072
 
3087
3073
  function deserializeJSXText(pos) {
3088
- let start = deserializeU32(pos),
3089
- end = deserializeU32(pos + 4);
3074
+ let start, end;
3090
3075
  return {
3091
3076
  type: "JSXText",
3092
3077
  value: deserializeStr(pos + 8),
3093
3078
  raw: deserializeOptionStr(pos + 24),
3094
- start,
3095
- end,
3079
+ start: (start = deserializeU32(pos)),
3080
+ end: (end = deserializeU32(pos + 4)),
3096
3081
  range: [start, end],
3097
3082
  };
3098
3083
  }
3099
3084
 
3100
3085
  function deserializeTSThisParameter(pos) {
3101
- let start = deserializeU32(pos),
3102
- end = deserializeU32(pos + 4),
3086
+ let start,
3087
+ end,
3103
3088
  node = {
3104
3089
  type: "Identifier",
3105
3090
  decorators: null,
3106
3091
  name: null,
3107
3092
  optional: null,
3108
3093
  typeAnnotation: null,
3109
- start,
3110
- end,
3094
+ start: (start = deserializeU32(pos)),
3095
+ end: (end = deserializeU32(pos + 4)),
3111
3096
  range: [start, end],
3112
3097
  };
3113
3098
  node.decorators = [];
@@ -3118,16 +3103,16 @@ function deserializeTSThisParameter(pos) {
3118
3103
  }
3119
3104
 
3120
3105
  function deserializeTSEnumDeclaration(pos) {
3121
- let start = deserializeU32(pos),
3122
- end = deserializeU32(pos + 4),
3106
+ let start,
3107
+ end,
3123
3108
  node = {
3124
3109
  type: "TSEnumDeclaration",
3125
3110
  id: null,
3126
3111
  body: null,
3127
3112
  const: deserializeBool(pos + 80),
3128
3113
  declare: deserializeBool(pos + 81),
3129
- start,
3130
- end,
3114
+ start: (start = deserializeU32(pos)),
3115
+ end: (end = deserializeU32(pos + 4)),
3131
3116
  range: [start, end],
3132
3117
  };
3133
3118
  node.id = deserializeBindingIdentifier(pos + 8);
@@ -3136,13 +3121,13 @@ function deserializeTSEnumDeclaration(pos) {
3136
3121
  }
3137
3122
 
3138
3123
  function deserializeTSEnumBody(pos) {
3139
- let start = deserializeU32(pos),
3140
- end = deserializeU32(pos + 4),
3124
+ let start,
3125
+ end,
3141
3126
  node = {
3142
3127
  type: "TSEnumBody",
3143
3128
  members: null,
3144
- start,
3145
- end,
3129
+ start: (start = deserializeU32(pos)),
3130
+ end: (end = deserializeU32(pos + 4)),
3146
3131
  range: [start, end],
3147
3132
  };
3148
3133
  node.members = deserializeVecTSEnumMember(pos + 8);
@@ -3150,15 +3135,15 @@ function deserializeTSEnumBody(pos) {
3150
3135
  }
3151
3136
 
3152
3137
  function deserializeTSEnumMember(pos) {
3153
- let start = deserializeU32(pos),
3154
- end = deserializeU32(pos + 4),
3138
+ let start,
3139
+ end,
3155
3140
  node = {
3156
3141
  type: "TSEnumMember",
3157
3142
  id: null,
3158
3143
  initializer: null,
3159
3144
  computed: null,
3160
- start,
3161
- end,
3145
+ start: (start = deserializeU32(pos)),
3146
+ end: (end = deserializeU32(pos + 4)),
3162
3147
  range: [start, end],
3163
3148
  };
3164
3149
  node.id = deserializeTSEnumMemberName(pos + 8);
@@ -3183,13 +3168,13 @@ function deserializeTSEnumMemberName(pos) {
3183
3168
  }
3184
3169
 
3185
3170
  function deserializeTSTypeAnnotation(pos) {
3186
- let start = deserializeU32(pos),
3187
- end = deserializeU32(pos + 4),
3171
+ let start,
3172
+ end,
3188
3173
  node = {
3189
3174
  type: "TSTypeAnnotation",
3190
3175
  typeAnnotation: null,
3191
- start,
3192
- end,
3176
+ start: (start = deserializeU32(pos)),
3177
+ end: (end = deserializeU32(pos + 4)),
3193
3178
  range: [start, end],
3194
3179
  };
3195
3180
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -3197,13 +3182,13 @@ function deserializeTSTypeAnnotation(pos) {
3197
3182
  }
3198
3183
 
3199
3184
  function deserializeTSLiteralType(pos) {
3200
- let start = deserializeU32(pos),
3201
- end = deserializeU32(pos + 4),
3185
+ let start,
3186
+ end,
3202
3187
  node = {
3203
3188
  type: "TSLiteralType",
3204
3189
  literal: null,
3205
- start,
3206
- end,
3190
+ start: (start = deserializeU32(pos)),
3191
+ end: (end = deserializeU32(pos + 4)),
3207
3192
  range: [start, end],
3208
3193
  };
3209
3194
  node.literal = deserializeTSLiteral(pos + 8);
@@ -3311,16 +3296,16 @@ function deserializeTSType(pos) {
3311
3296
  }
3312
3297
 
3313
3298
  function deserializeTSConditionalType(pos) {
3314
- let start = deserializeU32(pos),
3315
- end = deserializeU32(pos + 4),
3299
+ let start,
3300
+ end,
3316
3301
  node = {
3317
3302
  type: "TSConditionalType",
3318
3303
  checkType: null,
3319
3304
  extendsType: null,
3320
3305
  trueType: null,
3321
3306
  falseType: null,
3322
- start,
3323
- end,
3307
+ start: (start = deserializeU32(pos)),
3308
+ end: (end = deserializeU32(pos + 4)),
3324
3309
  range: [start, end],
3325
3310
  };
3326
3311
  node.checkType = deserializeTSType(pos + 8);
@@ -3331,13 +3316,13 @@ function deserializeTSConditionalType(pos) {
3331
3316
  }
3332
3317
 
3333
3318
  function deserializeTSUnionType(pos) {
3334
- let start = deserializeU32(pos),
3335
- end = deserializeU32(pos + 4),
3319
+ let start,
3320
+ end,
3336
3321
  node = {
3337
3322
  type: "TSUnionType",
3338
3323
  types: null,
3339
- start,
3340
- end,
3324
+ start: (start = deserializeU32(pos)),
3325
+ end: (end = deserializeU32(pos + 4)),
3341
3326
  range: [start, end],
3342
3327
  };
3343
3328
  node.types = deserializeVecTSType(pos + 8);
@@ -3345,13 +3330,13 @@ function deserializeTSUnionType(pos) {
3345
3330
  }
3346
3331
 
3347
3332
  function deserializeTSIntersectionType(pos) {
3348
- let start = deserializeU32(pos),
3349
- end = deserializeU32(pos + 4),
3333
+ let start,
3334
+ end,
3350
3335
  node = {
3351
3336
  type: "TSIntersectionType",
3352
3337
  types: null,
3353
- start,
3354
- end,
3338
+ start: (start = deserializeU32(pos)),
3339
+ end: (end = deserializeU32(pos + 4)),
3355
3340
  range: [start, end],
3356
3341
  };
3357
3342
  node.types = deserializeVecTSType(pos + 8);
@@ -3375,14 +3360,14 @@ function deserializeTSParenthesizedType(pos) {
3375
3360
  }
3376
3361
 
3377
3362
  function deserializeTSTypeOperator(pos) {
3378
- let start = deserializeU32(pos),
3379
- end = deserializeU32(pos + 4),
3363
+ let start,
3364
+ end,
3380
3365
  node = {
3381
3366
  type: "TSTypeOperator",
3382
3367
  operator: deserializeTSTypeOperatorOperator(pos + 24),
3383
3368
  typeAnnotation: null,
3384
- start,
3385
- end,
3369
+ start: (start = deserializeU32(pos)),
3370
+ end: (end = deserializeU32(pos + 4)),
3386
3371
  range: [start, end],
3387
3372
  };
3388
3373
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -3403,13 +3388,13 @@ function deserializeTSTypeOperatorOperator(pos) {
3403
3388
  }
3404
3389
 
3405
3390
  function deserializeTSArrayType(pos) {
3406
- let start = deserializeU32(pos),
3407
- end = deserializeU32(pos + 4),
3391
+ let start,
3392
+ end,
3408
3393
  node = {
3409
3394
  type: "TSArrayType",
3410
3395
  elementType: null,
3411
- start,
3412
- end,
3396
+ start: (start = deserializeU32(pos)),
3397
+ end: (end = deserializeU32(pos + 4)),
3413
3398
  range: [start, end],
3414
3399
  };
3415
3400
  node.elementType = deserializeTSType(pos + 8);
@@ -3417,14 +3402,14 @@ function deserializeTSArrayType(pos) {
3417
3402
  }
3418
3403
 
3419
3404
  function deserializeTSIndexedAccessType(pos) {
3420
- let start = deserializeU32(pos),
3421
- end = deserializeU32(pos + 4),
3405
+ let start,
3406
+ end,
3422
3407
  node = {
3423
3408
  type: "TSIndexedAccessType",
3424
3409
  objectType: null,
3425
3410
  indexType: null,
3426
- start,
3427
- end,
3411
+ start: (start = deserializeU32(pos)),
3412
+ end: (end = deserializeU32(pos + 4)),
3428
3413
  range: [start, end],
3429
3414
  };
3430
3415
  node.objectType = deserializeTSType(pos + 8);
@@ -3433,13 +3418,13 @@ function deserializeTSIndexedAccessType(pos) {
3433
3418
  }
3434
3419
 
3435
3420
  function deserializeTSTupleType(pos) {
3436
- let start = deserializeU32(pos),
3437
- end = deserializeU32(pos + 4),
3421
+ let start,
3422
+ end,
3438
3423
  node = {
3439
3424
  type: "TSTupleType",
3440
3425
  elementTypes: null,
3441
- start,
3442
- end,
3426
+ start: (start = deserializeU32(pos)),
3427
+ end: (end = deserializeU32(pos + 4)),
3443
3428
  range: [start, end],
3444
3429
  };
3445
3430
  node.elementTypes = deserializeVecTSTupleElement(pos + 8);
@@ -3447,15 +3432,15 @@ function deserializeTSTupleType(pos) {
3447
3432
  }
3448
3433
 
3449
3434
  function deserializeTSNamedTupleMember(pos) {
3450
- let start = deserializeU32(pos),
3451
- end = deserializeU32(pos + 4),
3435
+ let start,
3436
+ end,
3452
3437
  node = {
3453
3438
  type: "TSNamedTupleMember",
3454
3439
  label: null,
3455
3440
  elementType: null,
3456
3441
  optional: deserializeBool(pos + 48),
3457
- start,
3458
- end,
3442
+ start: (start = deserializeU32(pos)),
3443
+ end: (end = deserializeU32(pos + 4)),
3459
3444
  range: [start, end],
3460
3445
  };
3461
3446
  node.label = deserializeIdentifierName(pos + 8);
@@ -3464,13 +3449,13 @@ function deserializeTSNamedTupleMember(pos) {
3464
3449
  }
3465
3450
 
3466
3451
  function deserializeTSOptionalType(pos) {
3467
- let start = deserializeU32(pos),
3468
- end = deserializeU32(pos + 4),
3452
+ let start,
3453
+ end,
3469
3454
  node = {
3470
3455
  type: "TSOptionalType",
3471
3456
  typeAnnotation: null,
3472
- start,
3473
- end,
3457
+ start: (start = deserializeU32(pos)),
3458
+ end: (end = deserializeU32(pos + 4)),
3474
3459
  range: [start, end],
3475
3460
  };
3476
3461
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -3478,13 +3463,13 @@ function deserializeTSOptionalType(pos) {
3478
3463
  }
3479
3464
 
3480
3465
  function deserializeTSRestType(pos) {
3481
- let start = deserializeU32(pos),
3482
- end = deserializeU32(pos + 4),
3466
+ let start,
3467
+ end,
3483
3468
  node = {
3484
3469
  type: "TSRestType",
3485
3470
  typeAnnotation: null,
3486
- start,
3487
- end,
3471
+ start: (start = deserializeU32(pos)),
3472
+ end: (end = deserializeU32(pos + 4)),
3488
3473
  range: [start, end],
3489
3474
  };
3490
3475
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -3577,168 +3562,154 @@ function deserializeTSTupleElement(pos) {
3577
3562
  }
3578
3563
 
3579
3564
  function deserializeTSAnyKeyword(pos) {
3580
- let start = deserializeU32(pos),
3581
- end = deserializeU32(pos + 4);
3565
+ let start, end;
3582
3566
  return {
3583
3567
  type: "TSAnyKeyword",
3584
- start,
3585
- end,
3568
+ start: (start = deserializeU32(pos)),
3569
+ end: (end = deserializeU32(pos + 4)),
3586
3570
  range: [start, end],
3587
3571
  };
3588
3572
  }
3589
3573
 
3590
3574
  function deserializeTSStringKeyword(pos) {
3591
- let start = deserializeU32(pos),
3592
- end = deserializeU32(pos + 4);
3575
+ let start, end;
3593
3576
  return {
3594
3577
  type: "TSStringKeyword",
3595
- start,
3596
- end,
3578
+ start: (start = deserializeU32(pos)),
3579
+ end: (end = deserializeU32(pos + 4)),
3597
3580
  range: [start, end],
3598
3581
  };
3599
3582
  }
3600
3583
 
3601
3584
  function deserializeTSBooleanKeyword(pos) {
3602
- let start = deserializeU32(pos),
3603
- end = deserializeU32(pos + 4);
3585
+ let start, end;
3604
3586
  return {
3605
3587
  type: "TSBooleanKeyword",
3606
- start,
3607
- end,
3588
+ start: (start = deserializeU32(pos)),
3589
+ end: (end = deserializeU32(pos + 4)),
3608
3590
  range: [start, end],
3609
3591
  };
3610
3592
  }
3611
3593
 
3612
3594
  function deserializeTSNumberKeyword(pos) {
3613
- let start = deserializeU32(pos),
3614
- end = deserializeU32(pos + 4);
3595
+ let start, end;
3615
3596
  return {
3616
3597
  type: "TSNumberKeyword",
3617
- start,
3618
- end,
3598
+ start: (start = deserializeU32(pos)),
3599
+ end: (end = deserializeU32(pos + 4)),
3619
3600
  range: [start, end],
3620
3601
  };
3621
3602
  }
3622
3603
 
3623
3604
  function deserializeTSNeverKeyword(pos) {
3624
- let start = deserializeU32(pos),
3625
- end = deserializeU32(pos + 4);
3605
+ let start, end;
3626
3606
  return {
3627
3607
  type: "TSNeverKeyword",
3628
- start,
3629
- end,
3608
+ start: (start = deserializeU32(pos)),
3609
+ end: (end = deserializeU32(pos + 4)),
3630
3610
  range: [start, end],
3631
3611
  };
3632
3612
  }
3633
3613
 
3634
3614
  function deserializeTSIntrinsicKeyword(pos) {
3635
- let start = deserializeU32(pos),
3636
- end = deserializeU32(pos + 4);
3615
+ let start, end;
3637
3616
  return {
3638
3617
  type: "TSIntrinsicKeyword",
3639
- start,
3640
- end,
3618
+ start: (start = deserializeU32(pos)),
3619
+ end: (end = deserializeU32(pos + 4)),
3641
3620
  range: [start, end],
3642
3621
  };
3643
3622
  }
3644
3623
 
3645
3624
  function deserializeTSUnknownKeyword(pos) {
3646
- let start = deserializeU32(pos),
3647
- end = deserializeU32(pos + 4);
3625
+ let start, end;
3648
3626
  return {
3649
3627
  type: "TSUnknownKeyword",
3650
- start,
3651
- end,
3628
+ start: (start = deserializeU32(pos)),
3629
+ end: (end = deserializeU32(pos + 4)),
3652
3630
  range: [start, end],
3653
3631
  };
3654
3632
  }
3655
3633
 
3656
3634
  function deserializeTSNullKeyword(pos) {
3657
- let start = deserializeU32(pos),
3658
- end = deserializeU32(pos + 4);
3635
+ let start, end;
3659
3636
  return {
3660
3637
  type: "TSNullKeyword",
3661
- start,
3662
- end,
3638
+ start: (start = deserializeU32(pos)),
3639
+ end: (end = deserializeU32(pos + 4)),
3663
3640
  range: [start, end],
3664
3641
  };
3665
3642
  }
3666
3643
 
3667
3644
  function deserializeTSUndefinedKeyword(pos) {
3668
- let start = deserializeU32(pos),
3669
- end = deserializeU32(pos + 4);
3645
+ let start, end;
3670
3646
  return {
3671
3647
  type: "TSUndefinedKeyword",
3672
- start,
3673
- end,
3648
+ start: (start = deserializeU32(pos)),
3649
+ end: (end = deserializeU32(pos + 4)),
3674
3650
  range: [start, end],
3675
3651
  };
3676
3652
  }
3677
3653
 
3678
3654
  function deserializeTSVoidKeyword(pos) {
3679
- let start = deserializeU32(pos),
3680
- end = deserializeU32(pos + 4);
3655
+ let start, end;
3681
3656
  return {
3682
3657
  type: "TSVoidKeyword",
3683
- start,
3684
- end,
3658
+ start: (start = deserializeU32(pos)),
3659
+ end: (end = deserializeU32(pos + 4)),
3685
3660
  range: [start, end],
3686
3661
  };
3687
3662
  }
3688
3663
 
3689
3664
  function deserializeTSSymbolKeyword(pos) {
3690
- let start = deserializeU32(pos),
3691
- end = deserializeU32(pos + 4);
3665
+ let start, end;
3692
3666
  return {
3693
3667
  type: "TSSymbolKeyword",
3694
- start,
3695
- end,
3668
+ start: (start = deserializeU32(pos)),
3669
+ end: (end = deserializeU32(pos + 4)),
3696
3670
  range: [start, end],
3697
3671
  };
3698
3672
  }
3699
3673
 
3700
3674
  function deserializeTSThisType(pos) {
3701
- let start = deserializeU32(pos),
3702
- end = deserializeU32(pos + 4);
3675
+ let start, end;
3703
3676
  return {
3704
3677
  type: "TSThisType",
3705
- start,
3706
- end,
3678
+ start: (start = deserializeU32(pos)),
3679
+ end: (end = deserializeU32(pos + 4)),
3707
3680
  range: [start, end],
3708
3681
  };
3709
3682
  }
3710
3683
 
3711
3684
  function deserializeTSObjectKeyword(pos) {
3712
- let start = deserializeU32(pos),
3713
- end = deserializeU32(pos + 4);
3685
+ let start, end;
3714
3686
  return {
3715
3687
  type: "TSObjectKeyword",
3716
- start,
3717
- end,
3688
+ start: (start = deserializeU32(pos)),
3689
+ end: (end = deserializeU32(pos + 4)),
3718
3690
  range: [start, end],
3719
3691
  };
3720
3692
  }
3721
3693
 
3722
3694
  function deserializeTSBigIntKeyword(pos) {
3723
- let start = deserializeU32(pos),
3724
- end = deserializeU32(pos + 4);
3695
+ let start, end;
3725
3696
  return {
3726
3697
  type: "TSBigIntKeyword",
3727
- start,
3728
- end,
3698
+ start: (start = deserializeU32(pos)),
3699
+ end: (end = deserializeU32(pos + 4)),
3729
3700
  range: [start, end],
3730
3701
  };
3731
3702
  }
3732
3703
 
3733
3704
  function deserializeTSTypeReference(pos) {
3734
- let start = deserializeU32(pos),
3735
- end = deserializeU32(pos + 4),
3705
+ let start,
3706
+ end,
3736
3707
  node = {
3737
3708
  type: "TSTypeReference",
3738
3709
  typeName: null,
3739
3710
  typeArguments: null,
3740
- start,
3741
- end,
3711
+ start: (start = deserializeU32(pos)),
3712
+ end: (end = deserializeU32(pos + 4)),
3742
3713
  range: [start, end],
3743
3714
  };
3744
3715
  node.typeName = deserializeTSTypeName(pos + 8);
@@ -3760,14 +3731,14 @@ function deserializeTSTypeName(pos) {
3760
3731
  }
3761
3732
 
3762
3733
  function deserializeTSQualifiedName(pos) {
3763
- let start = deserializeU32(pos),
3764
- end = deserializeU32(pos + 4),
3734
+ let start,
3735
+ end,
3765
3736
  node = {
3766
3737
  type: "TSQualifiedName",
3767
3738
  left: null,
3768
3739
  right: null,
3769
- start,
3770
- end,
3740
+ start: (start = deserializeU32(pos)),
3741
+ end: (end = deserializeU32(pos + 4)),
3771
3742
  range: [start, end],
3772
3743
  };
3773
3744
  node.left = deserializeTSTypeName(pos + 8);
@@ -3776,13 +3747,13 @@ function deserializeTSQualifiedName(pos) {
3776
3747
  }
3777
3748
 
3778
3749
  function deserializeTSTypeParameterInstantiation(pos) {
3779
- let start = deserializeU32(pos),
3780
- end = deserializeU32(pos + 4),
3750
+ let start,
3751
+ end,
3781
3752
  node = {
3782
3753
  type: "TSTypeParameterInstantiation",
3783
3754
  params: null,
3784
- start,
3785
- end,
3755
+ start: (start = deserializeU32(pos)),
3756
+ end: (end = deserializeU32(pos + 4)),
3786
3757
  range: [start, end],
3787
3758
  };
3788
3759
  node.params = deserializeVecTSType(pos + 8);
@@ -3790,8 +3761,8 @@ function deserializeTSTypeParameterInstantiation(pos) {
3790
3761
  }
3791
3762
 
3792
3763
  function deserializeTSTypeParameter(pos) {
3793
- let start = deserializeU32(pos),
3794
- end = deserializeU32(pos + 4),
3764
+ let start,
3765
+ end,
3795
3766
  node = {
3796
3767
  type: "TSTypeParameter",
3797
3768
  name: null,
@@ -3800,8 +3771,8 @@ function deserializeTSTypeParameter(pos) {
3800
3771
  in: deserializeBool(pos + 72),
3801
3772
  out: deserializeBool(pos + 73),
3802
3773
  const: deserializeBool(pos + 74),
3803
- start,
3804
- end,
3774
+ start: (start = deserializeU32(pos)),
3775
+ end: (end = deserializeU32(pos + 4)),
3805
3776
  range: [start, end],
3806
3777
  };
3807
3778
  node.name = deserializeBindingIdentifier(pos + 8);
@@ -3811,13 +3782,13 @@ function deserializeTSTypeParameter(pos) {
3811
3782
  }
3812
3783
 
3813
3784
  function deserializeTSTypeParameterDeclaration(pos) {
3814
- let start = deserializeU32(pos),
3815
- end = deserializeU32(pos + 4),
3785
+ let start,
3786
+ end,
3816
3787
  node = {
3817
3788
  type: "TSTypeParameterDeclaration",
3818
3789
  params: null,
3819
- start,
3820
- end,
3790
+ start: (start = deserializeU32(pos)),
3791
+ end: (end = deserializeU32(pos + 4)),
3821
3792
  range: [start, end],
3822
3793
  };
3823
3794
  node.params = deserializeVecTSTypeParameter(pos + 8);
@@ -3825,16 +3796,16 @@ function deserializeTSTypeParameterDeclaration(pos) {
3825
3796
  }
3826
3797
 
3827
3798
  function deserializeTSTypeAliasDeclaration(pos) {
3828
- let start = deserializeU32(pos),
3829
- end = deserializeU32(pos + 4),
3799
+ let start,
3800
+ end,
3830
3801
  node = {
3831
3802
  type: "TSTypeAliasDeclaration",
3832
3803
  id: null,
3833
3804
  typeParameters: null,
3834
3805
  typeAnnotation: null,
3835
3806
  declare: deserializeBool(pos + 68),
3836
- start,
3837
- end,
3807
+ start: (start = deserializeU32(pos)),
3808
+ end: (end = deserializeU32(pos + 4)),
3838
3809
  range: [start, end],
3839
3810
  };
3840
3811
  node.id = deserializeBindingIdentifier(pos + 8);
@@ -3844,8 +3815,8 @@ function deserializeTSTypeAliasDeclaration(pos) {
3844
3815
  }
3845
3816
 
3846
3817
  function deserializeTSInterfaceDeclaration(pos) {
3847
- let start = deserializeU32(pos),
3848
- end = deserializeU32(pos + 4),
3818
+ let start,
3819
+ end,
3849
3820
  node = {
3850
3821
  type: "TSInterfaceDeclaration",
3851
3822
  id: null,
@@ -3853,8 +3824,8 @@ function deserializeTSInterfaceDeclaration(pos) {
3853
3824
  extends: null,
3854
3825
  body: null,
3855
3826
  declare: deserializeBool(pos + 84),
3856
- start,
3857
- end,
3827
+ start: (start = deserializeU32(pos)),
3828
+ end: (end = deserializeU32(pos + 4)),
3858
3829
  range: [start, end],
3859
3830
  };
3860
3831
  node.id = deserializeBindingIdentifier(pos + 8);
@@ -3865,13 +3836,13 @@ function deserializeTSInterfaceDeclaration(pos) {
3865
3836
  }
3866
3837
 
3867
3838
  function deserializeTSInterfaceBody(pos) {
3868
- let start = deserializeU32(pos),
3869
- end = deserializeU32(pos + 4),
3839
+ let start,
3840
+ end,
3870
3841
  node = {
3871
3842
  type: "TSInterfaceBody",
3872
- body: null,
3873
- start,
3874
- end,
3843
+ body: null,
3844
+ start: (start = deserializeU32(pos)),
3845
+ end: (end = deserializeU32(pos + 4)),
3875
3846
  range: [start, end],
3876
3847
  };
3877
3848
  node.body = deserializeVecTSSignature(pos + 8);
@@ -3879,8 +3850,8 @@ function deserializeTSInterfaceBody(pos) {
3879
3850
  }
3880
3851
 
3881
3852
  function deserializeTSPropertySignature(pos) {
3882
- let start = deserializeU32(pos),
3883
- end = deserializeU32(pos + 4),
3853
+ let start,
3854
+ end,
3884
3855
  node = {
3885
3856
  type: "TSPropertySignature",
3886
3857
  computed: deserializeBool(pos + 32),
@@ -3890,8 +3861,8 @@ function deserializeTSPropertySignature(pos) {
3890
3861
  typeAnnotation: null,
3891
3862
  accessibility: null,
3892
3863
  static: null,
3893
- start,
3894
- end,
3864
+ start: (start = deserializeU32(pos)),
3865
+ end: (end = deserializeU32(pos + 4)),
3895
3866
  range: [start, end],
3896
3867
  };
3897
3868
  node.key = deserializePropertyKey(pos + 8);
@@ -3918,8 +3889,8 @@ function deserializeTSSignature(pos) {
3918
3889
  }
3919
3890
 
3920
3891
  function deserializeTSIndexSignature(pos) {
3921
- let start = deserializeU32(pos),
3922
- end = deserializeU32(pos + 4),
3892
+ let start,
3893
+ end,
3923
3894
  node = {
3924
3895
  type: "TSIndexSignature",
3925
3896
  parameters: null,
@@ -3927,8 +3898,8 @@ function deserializeTSIndexSignature(pos) {
3927
3898
  readonly: deserializeBool(pos + 40),
3928
3899
  static: deserializeBool(pos + 41),
3929
3900
  accessibility: null,
3930
- start,
3931
- end,
3901
+ start: (start = deserializeU32(pos)),
3902
+ end: (end = deserializeU32(pos + 4)),
3932
3903
  range: [start, end],
3933
3904
  };
3934
3905
  node.parameters = deserializeVecTSIndexSignatureName(pos + 8);
@@ -3937,15 +3908,15 @@ function deserializeTSIndexSignature(pos) {
3937
3908
  }
3938
3909
 
3939
3910
  function deserializeTSCallSignatureDeclaration(pos) {
3940
- let start = deserializeU32(pos),
3941
- end = deserializeU32(pos + 4),
3911
+ let start,
3912
+ end,
3942
3913
  node = {
3943
3914
  type: "TSCallSignatureDeclaration",
3944
3915
  typeParameters: null,
3945
3916
  params: null,
3946
3917
  returnType: null,
3947
- start,
3948
- end,
3918
+ start: (start = deserializeU32(pos)),
3919
+ end: (end = deserializeU32(pos + 4)),
3949
3920
  range: [start, end],
3950
3921
  },
3951
3922
  params = deserializeBoxFormalParameters(pos + 24),
@@ -3971,8 +3942,8 @@ function deserializeTSMethodSignatureKind(pos) {
3971
3942
  }
3972
3943
 
3973
3944
  function deserializeTSMethodSignature(pos) {
3974
- let start = deserializeU32(pos),
3975
- end = deserializeU32(pos + 4),
3945
+ let start,
3946
+ end,
3976
3947
  node = {
3977
3948
  type: "TSMethodSignature",
3978
3949
  key: null,
@@ -3985,8 +3956,8 @@ function deserializeTSMethodSignature(pos) {
3985
3956
  accessibility: null,
3986
3957
  readonly: null,
3987
3958
  static: null,
3988
- start,
3989
- end,
3959
+ start: (start = deserializeU32(pos)),
3960
+ end: (end = deserializeU32(pos + 4)),
3990
3961
  range: [start, end],
3991
3962
  },
3992
3963
  params = deserializeBoxFormalParameters(pos + 40),
@@ -4002,15 +3973,15 @@ function deserializeTSMethodSignature(pos) {
4002
3973
  }
4003
3974
 
4004
3975
  function deserializeTSConstructSignatureDeclaration(pos) {
4005
- let start = deserializeU32(pos),
4006
- end = deserializeU32(pos + 4),
3976
+ let start,
3977
+ end,
4007
3978
  node = {
4008
3979
  type: "TSConstructSignatureDeclaration",
4009
3980
  typeParameters: null,
4010
3981
  params: null,
4011
3982
  returnType: null,
4012
- start,
4013
- end,
3983
+ start: (start = deserializeU32(pos)),
3984
+ end: (end = deserializeU32(pos + 4)),
4014
3985
  range: [start, end],
4015
3986
  };
4016
3987
  node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 8);
@@ -4020,16 +3991,16 @@ function deserializeTSConstructSignatureDeclaration(pos) {
4020
3991
  }
4021
3992
 
4022
3993
  function deserializeTSIndexSignatureName(pos) {
4023
- let start = deserializeU32(pos),
4024
- end = deserializeU32(pos + 4),
3994
+ let start,
3995
+ end,
4025
3996
  node = {
4026
3997
  type: "Identifier",
4027
3998
  decorators: null,
4028
3999
  name: deserializeStr(pos + 8),
4029
4000
  optional: null,
4030
4001
  typeAnnotation: null,
4031
- start,
4032
- end,
4002
+ start: (start = deserializeU32(pos)),
4003
+ end: (end = deserializeU32(pos + 4)),
4033
4004
  range: [start, end],
4034
4005
  };
4035
4006
  node.decorators = [];
@@ -4039,14 +4010,14 @@ function deserializeTSIndexSignatureName(pos) {
4039
4010
  }
4040
4011
 
4041
4012
  function deserializeTSInterfaceHeritage(pos) {
4042
- let start = deserializeU32(pos),
4043
- end = deserializeU32(pos + 4),
4013
+ let start,
4014
+ end,
4044
4015
  node = {
4045
4016
  type: "TSInterfaceHeritage",
4046
4017
  expression: null,
4047
4018
  typeArguments: null,
4048
- start,
4049
- end,
4019
+ start: (start = deserializeU32(pos)),
4020
+ end: (end = deserializeU32(pos + 4)),
4050
4021
  range: [start, end],
4051
4022
  };
4052
4023
  node.expression = deserializeExpression(pos + 8);
@@ -4055,15 +4026,15 @@ function deserializeTSInterfaceHeritage(pos) {
4055
4026
  }
4056
4027
 
4057
4028
  function deserializeTSTypePredicate(pos) {
4058
- let start = deserializeU32(pos),
4059
- end = deserializeU32(pos + 4),
4029
+ let start,
4030
+ end,
4060
4031
  node = {
4061
4032
  type: "TSTypePredicate",
4062
4033
  parameterName: null,
4063
4034
  asserts: deserializeBool(pos + 32),
4064
4035
  typeAnnotation: null,
4065
- start,
4066
- end,
4036
+ start: (start = deserializeU32(pos)),
4037
+ end: (end = deserializeU32(pos + 4)),
4067
4038
  range: [start, end],
4068
4039
  };
4069
4040
  node.parameterName = deserializeTSTypePredicateName(pos + 8);
@@ -4191,8 +4162,8 @@ function deserializeTSModuleDeclarationBody(pos) {
4191
4162
  }
4192
4163
 
4193
4164
  function deserializeTSGlobalDeclaration(pos) {
4194
- let start = deserializeU32(pos),
4195
- end = deserializeU32(pos + 4),
4165
+ let start,
4166
+ end,
4196
4167
  node = {
4197
4168
  type: "TSModuleDeclaration",
4198
4169
  id: null,
@@ -4200,8 +4171,8 @@ function deserializeTSGlobalDeclaration(pos) {
4200
4171
  kind: null,
4201
4172
  declare: deserializeBool(pos + 76),
4202
4173
  global: null,
4203
- start,
4204
- end,
4174
+ start: (start = deserializeU32(pos)),
4175
+ end: (end = deserializeU32(pos + 4)),
4205
4176
  range: [start, end],
4206
4177
  },
4207
4178
  keywordStart,
@@ -4220,13 +4191,13 @@ function deserializeTSGlobalDeclaration(pos) {
4220
4191
  }
4221
4192
 
4222
4193
  function deserializeTSModuleBlock(pos) {
4223
- let start = deserializeU32(pos),
4224
- end = deserializeU32(pos + 4),
4194
+ let start,
4195
+ end,
4225
4196
  node = {
4226
4197
  type: "TSModuleBlock",
4227
4198
  body: null,
4228
- start,
4229
- end,
4199
+ start: (start = deserializeU32(pos)),
4200
+ end: (end = deserializeU32(pos + 4)),
4230
4201
  range: [start, end],
4231
4202
  },
4232
4203
  body = deserializeVecDirective(pos + 8);
@@ -4236,13 +4207,13 @@ function deserializeTSModuleBlock(pos) {
4236
4207
  }
4237
4208
 
4238
4209
  function deserializeTSTypeLiteral(pos) {
4239
- let start = deserializeU32(pos),
4240
- end = deserializeU32(pos + 4),
4210
+ let start,
4211
+ end,
4241
4212
  node = {
4242
4213
  type: "TSTypeLiteral",
4243
4214
  members: null,
4244
- start,
4245
- end,
4215
+ start: (start = deserializeU32(pos)),
4216
+ end: (end = deserializeU32(pos + 4)),
4246
4217
  range: [start, end],
4247
4218
  };
4248
4219
  node.members = deserializeVecTSSignature(pos + 8);
@@ -4250,13 +4221,13 @@ function deserializeTSTypeLiteral(pos) {
4250
4221
  }
4251
4222
 
4252
4223
  function deserializeTSInferType(pos) {
4253
- let start = deserializeU32(pos),
4254
- end = deserializeU32(pos + 4),
4224
+ let start,
4225
+ end,
4255
4226
  node = {
4256
4227
  type: "TSInferType",
4257
4228
  typeParameter: null,
4258
- start,
4259
- end,
4229
+ start: (start = deserializeU32(pos)),
4230
+ end: (end = deserializeU32(pos + 4)),
4260
4231
  range: [start, end],
4261
4232
  };
4262
4233
  node.typeParameter = deserializeBoxTSTypeParameter(pos + 8);
@@ -4264,14 +4235,14 @@ function deserializeTSInferType(pos) {
4264
4235
  }
4265
4236
 
4266
4237
  function deserializeTSTypeQuery(pos) {
4267
- let start = deserializeU32(pos),
4268
- end = deserializeU32(pos + 4),
4238
+ let start,
4239
+ end,
4269
4240
  node = {
4270
4241
  type: "TSTypeQuery",
4271
4242
  exprName: null,
4272
4243
  typeArguments: null,
4273
- start,
4274
- end,
4244
+ start: (start = deserializeU32(pos)),
4245
+ end: (end = deserializeU32(pos + 4)),
4275
4246
  range: [start, end],
4276
4247
  };
4277
4248
  node.exprName = deserializeTSTypeQueryExprName(pos + 8);
@@ -4295,16 +4266,16 @@ function deserializeTSTypeQueryExprName(pos) {
4295
4266
  }
4296
4267
 
4297
4268
  function deserializeTSImportType(pos) {
4298
- let start = deserializeU32(pos),
4299
- end = deserializeU32(pos + 4),
4269
+ let start,
4270
+ end,
4300
4271
  node = {
4301
4272
  type: "TSImportType",
4302
4273
  source: null,
4303
4274
  options: null,
4304
4275
  qualifier: null,
4305
4276
  typeArguments: null,
4306
- start,
4307
- end,
4277
+ start: (start = deserializeU32(pos)),
4278
+ end: (end = deserializeU32(pos + 4)),
4308
4279
  range: [start, end],
4309
4280
  };
4310
4281
  node.source = deserializeStringLiteral(pos + 8);
@@ -4326,14 +4297,14 @@ function deserializeTSImportTypeQualifier(pos) {
4326
4297
  }
4327
4298
 
4328
4299
  function deserializeTSImportTypeQualifiedName(pos) {
4329
- let start = deserializeU32(pos),
4330
- end = deserializeU32(pos + 4),
4300
+ let start,
4301
+ end,
4331
4302
  node = {
4332
4303
  type: "TSQualifiedName",
4333
4304
  left: null,
4334
4305
  right: null,
4335
- start,
4336
- end,
4306
+ start: (start = deserializeU32(pos)),
4307
+ end: (end = deserializeU32(pos + 4)),
4337
4308
  range: [start, end],
4338
4309
  };
4339
4310
  node.left = deserializeTSImportTypeQualifier(pos + 8);
@@ -4342,15 +4313,15 @@ function deserializeTSImportTypeQualifiedName(pos) {
4342
4313
  }
4343
4314
 
4344
4315
  function deserializeTSFunctionType(pos) {
4345
- let start = deserializeU32(pos),
4346
- end = deserializeU32(pos + 4),
4316
+ let start,
4317
+ end,
4347
4318
  node = {
4348
4319
  type: "TSFunctionType",
4349
4320
  typeParameters: null,
4350
4321
  params: null,
4351
4322
  returnType: null,
4352
- start,
4353
- end,
4323
+ start: (start = deserializeU32(pos)),
4324
+ end: (end = deserializeU32(pos + 4)),
4354
4325
  range: [start, end],
4355
4326
  },
4356
4327
  params = deserializeBoxFormalParameters(pos + 24),
@@ -4363,16 +4334,16 @@ function deserializeTSFunctionType(pos) {
4363
4334
  }
4364
4335
 
4365
4336
  function deserializeTSConstructorType(pos) {
4366
- let start = deserializeU32(pos),
4367
- end = deserializeU32(pos + 4),
4337
+ let start,
4338
+ end,
4368
4339
  node = {
4369
4340
  type: "TSConstructorType",
4370
4341
  abstract: deserializeBool(pos + 36),
4371
4342
  typeParameters: null,
4372
4343
  params: null,
4373
4344
  returnType: null,
4374
- start,
4375
- end,
4345
+ start: (start = deserializeU32(pos)),
4346
+ end: (end = deserializeU32(pos + 4)),
4376
4347
  range: [start, end],
4377
4348
  };
4378
4349
  node.typeParameters = deserializeOptionBoxTSTypeParameterDeclaration(pos + 8);
@@ -4382,8 +4353,8 @@ function deserializeTSConstructorType(pos) {
4382
4353
  }
4383
4354
 
4384
4355
  function deserializeTSMappedType(pos) {
4385
- let start = deserializeU32(pos),
4386
- end = deserializeU32(pos + 4),
4356
+ let start,
4357
+ end,
4387
4358
  node = {
4388
4359
  type: "TSMappedType",
4389
4360
  key: null,
@@ -4392,8 +4363,8 @@ function deserializeTSMappedType(pos) {
4392
4363
  typeAnnotation: null,
4393
4364
  optional: null,
4394
4365
  readonly: deserializeOptionTSMappedTypeModifierOperator(pos + 93),
4395
- start,
4396
- end,
4366
+ start: (start = deserializeU32(pos)),
4367
+ end: (end = deserializeU32(pos + 4)),
4397
4368
  range: [start, end],
4398
4369
  },
4399
4370
  optional = deserializeOptionTSMappedTypeModifierOperator(pos + 92);
@@ -4420,14 +4391,14 @@ function deserializeTSMappedTypeModifierOperator(pos) {
4420
4391
  }
4421
4392
 
4422
4393
  function deserializeTSTemplateLiteralType(pos) {
4423
- let start = deserializeU32(pos),
4424
- end = deserializeU32(pos + 4),
4394
+ let start,
4395
+ end,
4425
4396
  node = {
4426
4397
  type: "TSTemplateLiteralType",
4427
4398
  quasis: null,
4428
4399
  types: null,
4429
- start,
4430
- end,
4400
+ start: (start = deserializeU32(pos)),
4401
+ end: (end = deserializeU32(pos + 4)),
4431
4402
  range: [start, end],
4432
4403
  };
4433
4404
  node.quasis = deserializeVecTemplateElement(pos + 8);
@@ -4436,14 +4407,14 @@ function deserializeTSTemplateLiteralType(pos) {
4436
4407
  }
4437
4408
 
4438
4409
  function deserializeTSAsExpression(pos) {
4439
- let start = deserializeU32(pos),
4440
- end = deserializeU32(pos + 4),
4410
+ let start,
4411
+ end,
4441
4412
  node = {
4442
4413
  type: "TSAsExpression",
4443
4414
  expression: null,
4444
4415
  typeAnnotation: null,
4445
- start,
4446
- end,
4416
+ start: (start = deserializeU32(pos)),
4417
+ end: (end = deserializeU32(pos + 4)),
4447
4418
  range: [start, end],
4448
4419
  };
4449
4420
  node.expression = deserializeExpression(pos + 8);
@@ -4452,14 +4423,14 @@ function deserializeTSAsExpression(pos) {
4452
4423
  }
4453
4424
 
4454
4425
  function deserializeTSSatisfiesExpression(pos) {
4455
- let start = deserializeU32(pos),
4456
- end = deserializeU32(pos + 4),
4426
+ let start,
4427
+ end,
4457
4428
  node = {
4458
4429
  type: "TSSatisfiesExpression",
4459
4430
  expression: null,
4460
4431
  typeAnnotation: null,
4461
- start,
4462
- end,
4432
+ start: (start = deserializeU32(pos)),
4433
+ end: (end = deserializeU32(pos + 4)),
4463
4434
  range: [start, end],
4464
4435
  };
4465
4436
  node.expression = deserializeExpression(pos + 8);
@@ -4468,14 +4439,14 @@ function deserializeTSSatisfiesExpression(pos) {
4468
4439
  }
4469
4440
 
4470
4441
  function deserializeTSTypeAssertion(pos) {
4471
- let start = deserializeU32(pos),
4472
- end = deserializeU32(pos + 4),
4442
+ let start,
4443
+ end,
4473
4444
  node = {
4474
4445
  type: "TSTypeAssertion",
4475
4446
  typeAnnotation: null,
4476
4447
  expression: null,
4477
- start,
4478
- end,
4448
+ start: (start = deserializeU32(pos)),
4449
+ end: (end = deserializeU32(pos + 4)),
4479
4450
  range: [start, end],
4480
4451
  };
4481
4452
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -4484,15 +4455,15 @@ function deserializeTSTypeAssertion(pos) {
4484
4455
  }
4485
4456
 
4486
4457
  function deserializeTSImportEqualsDeclaration(pos) {
4487
- let start = deserializeU32(pos),
4488
- end = deserializeU32(pos + 4),
4458
+ let start,
4459
+ end,
4489
4460
  node = {
4490
4461
  type: "TSImportEqualsDeclaration",
4491
4462
  id: null,
4492
4463
  moduleReference: null,
4493
4464
  importKind: deserializeImportOrExportKind(pos + 56),
4494
- start,
4495
- end,
4465
+ start: (start = deserializeU32(pos)),
4466
+ end: (end = deserializeU32(pos + 4)),
4496
4467
  range: [start, end],
4497
4468
  };
4498
4469
  node.id = deserializeBindingIdentifier(pos + 8);
@@ -4503,26 +4474,24 @@ function deserializeTSImportEqualsDeclaration(pos) {
4503
4474
  function deserializeTSModuleReference(pos) {
4504
4475
  switch (uint8[pos]) {
4505
4476
  case 0:
4506
- return deserializeBoxIdentifierReference(pos + 8);
4477
+ return deserializeBoxTSExternalModuleReference(pos + 8);
4507
4478
  case 1:
4508
- return deserializeBoxTSQualifiedName(pos + 8);
4479
+ return deserializeBoxIdentifierReference(pos + 8);
4509
4480
  case 2:
4510
- return deserializeBoxThisExpression(pos + 8);
4511
- case 3:
4512
- return deserializeBoxTSExternalModuleReference(pos + 8);
4481
+ return deserializeBoxTSQualifiedName(pos + 8);
4513
4482
  default:
4514
4483
  throw Error(`Unexpected discriminant ${uint8[pos]} for TSModuleReference`);
4515
4484
  }
4516
4485
  }
4517
4486
 
4518
4487
  function deserializeTSExternalModuleReference(pos) {
4519
- let start = deserializeU32(pos),
4520
- end = deserializeU32(pos + 4),
4488
+ let start,
4489
+ end,
4521
4490
  node = {
4522
4491
  type: "TSExternalModuleReference",
4523
4492
  expression: null,
4524
- start,
4525
- end,
4493
+ start: (start = deserializeU32(pos)),
4494
+ end: (end = deserializeU32(pos + 4)),
4526
4495
  range: [start, end],
4527
4496
  };
4528
4497
  node.expression = deserializeStringLiteral(pos + 8);
@@ -4530,13 +4499,13 @@ function deserializeTSExternalModuleReference(pos) {
4530
4499
  }
4531
4500
 
4532
4501
  function deserializeTSNonNullExpression(pos) {
4533
- let start = deserializeU32(pos),
4534
- end = deserializeU32(pos + 4),
4502
+ let start,
4503
+ end,
4535
4504
  node = {
4536
4505
  type: "TSNonNullExpression",
4537
4506
  expression: null,
4538
- start,
4539
- end,
4507
+ start: (start = deserializeU32(pos)),
4508
+ end: (end = deserializeU32(pos + 4)),
4540
4509
  range: [start, end],
4541
4510
  };
4542
4511
  node.expression = deserializeExpression(pos + 8);
@@ -4544,13 +4513,13 @@ function deserializeTSNonNullExpression(pos) {
4544
4513
  }
4545
4514
 
4546
4515
  function deserializeDecorator(pos) {
4547
- let start = deserializeU32(pos),
4548
- end = deserializeU32(pos + 4),
4516
+ let start,
4517
+ end,
4549
4518
  node = {
4550
4519
  type: "Decorator",
4551
4520
  expression: null,
4552
- start,
4553
- end,
4521
+ start: (start = deserializeU32(pos)),
4522
+ end: (end = deserializeU32(pos + 4)),
4554
4523
  range: [start, end],
4555
4524
  };
4556
4525
  node.expression = deserializeExpression(pos + 8);
@@ -4558,13 +4527,13 @@ function deserializeDecorator(pos) {
4558
4527
  }
4559
4528
 
4560
4529
  function deserializeTSExportAssignment(pos) {
4561
- let start = deserializeU32(pos),
4562
- end = deserializeU32(pos + 4),
4530
+ let start,
4531
+ end,
4563
4532
  node = {
4564
4533
  type: "TSExportAssignment",
4565
4534
  expression: null,
4566
- start,
4567
- end,
4535
+ start: (start = deserializeU32(pos)),
4536
+ end: (end = deserializeU32(pos + 4)),
4568
4537
  range: [start, end],
4569
4538
  };
4570
4539
  node.expression = deserializeExpression(pos + 8);
@@ -4572,13 +4541,13 @@ function deserializeTSExportAssignment(pos) {
4572
4541
  }
4573
4542
 
4574
4543
  function deserializeTSNamespaceExportDeclaration(pos) {
4575
- let start = deserializeU32(pos),
4576
- end = deserializeU32(pos + 4),
4544
+ let start,
4545
+ end,
4577
4546
  node = {
4578
4547
  type: "TSNamespaceExportDeclaration",
4579
4548
  id: null,
4580
- start,
4581
- end,
4549
+ start: (start = deserializeU32(pos)),
4550
+ end: (end = deserializeU32(pos + 4)),
4582
4551
  range: [start, end],
4583
4552
  };
4584
4553
  node.id = deserializeIdentifierName(pos + 8);
@@ -4586,14 +4555,14 @@ function deserializeTSNamespaceExportDeclaration(pos) {
4586
4555
  }
4587
4556
 
4588
4557
  function deserializeTSInstantiationExpression(pos) {
4589
- let start = deserializeU32(pos),
4590
- end = deserializeU32(pos + 4),
4558
+ let start,
4559
+ end,
4591
4560
  node = {
4592
4561
  type: "TSInstantiationExpression",
4593
4562
  expression: null,
4594
4563
  typeArguments: null,
4595
- start,
4596
- end,
4564
+ start: (start = deserializeU32(pos)),
4565
+ end: (end = deserializeU32(pos + 4)),
4597
4566
  range: [start, end],
4598
4567
  };
4599
4568
  node.expression = deserializeExpression(pos + 8);
@@ -4613,14 +4582,14 @@ function deserializeImportOrExportKind(pos) {
4613
4582
  }
4614
4583
 
4615
4584
  function deserializeJSDocNullableType(pos) {
4616
- let start = deserializeU32(pos),
4617
- end = deserializeU32(pos + 4),
4585
+ let start,
4586
+ end,
4618
4587
  node = {
4619
4588
  type: "TSJSDocNullableType",
4620
4589
  typeAnnotation: null,
4621
4590
  postfix: deserializeBool(pos + 24),
4622
- start,
4623
- end,
4591
+ start: (start = deserializeU32(pos)),
4592
+ end: (end = deserializeU32(pos + 4)),
4624
4593
  range: [start, end],
4625
4594
  };
4626
4595
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -4628,14 +4597,14 @@ function deserializeJSDocNullableType(pos) {
4628
4597
  }
4629
4598
 
4630
4599
  function deserializeJSDocNonNullableType(pos) {
4631
- let start = deserializeU32(pos),
4632
- end = deserializeU32(pos + 4),
4600
+ let start,
4601
+ end,
4633
4602
  node = {
4634
4603
  type: "TSJSDocNonNullableType",
4635
4604
  typeAnnotation: null,
4636
4605
  postfix: deserializeBool(pos + 24),
4637
- start,
4638
- end,
4606
+ start: (start = deserializeU32(pos)),
4607
+ end: (end = deserializeU32(pos + 4)),
4639
4608
  range: [start, end],
4640
4609
  };
4641
4610
  node.typeAnnotation = deserializeTSType(pos + 8);
@@ -4643,12 +4612,11 @@ function deserializeJSDocNonNullableType(pos) {
4643
4612
  }
4644
4613
 
4645
4614
  function deserializeJSDocUnknownType(pos) {
4646
- let start = deserializeU32(pos),
4647
- end = deserializeU32(pos + 4);
4615
+ let start, end;
4648
4616
  return {
4649
4617
  type: "TSJSDocUnknownType",
4650
- start,
4651
- end,
4618
+ start: (start = deserializeU32(pos)),
4619
+ end: (end = deserializeU32(pos + 4)),
4652
4620
  range: [start, end],
4653
4621
  };
4654
4622
  }
@@ -4680,12 +4648,11 @@ function deserializeComment(pos) {
4680
4648
  }
4681
4649
 
4682
4650
  function deserializeNameSpan(pos) {
4683
- let start = deserializeU32(pos),
4684
- end = deserializeU32(pos + 4);
4651
+ let start, end;
4685
4652
  return {
4686
4653
  value: deserializeStr(pos + 8),
4687
- start,
4688
- end,
4654
+ start: (start = deserializeU32(pos)),
4655
+ end: (end = deserializeU32(pos + 4)),
4689
4656
  range: [start, end],
4690
4657
  };
4691
4658
  }
@@ -4732,16 +4699,15 @@ function deserializeImportImportName(pos) {
4732
4699
  }
4733
4700
 
4734
4701
  function deserializeExportEntry(pos) {
4735
- let start = deserializeU32(pos),
4736
- end = deserializeU32(pos + 4);
4702
+ let start, end;
4737
4703
  return {
4738
4704
  moduleRequest: deserializeOptionNameSpan(pos + 16),
4739
4705
  importName: deserializeExportImportName(pos + 40),
4740
4706
  exportName: deserializeExportExportName(pos + 72),
4741
4707
  localName: deserializeExportLocalName(pos + 104),
4742
4708
  isType: deserializeBool(pos + 136),
4743
- start,
4744
- end,
4709
+ start: (start = deserializeU32(pos)),
4710
+ end: (end = deserializeU32(pos + 4)),
4745
4711
  range: [start, end],
4746
4712
  };
4747
4713
  }
@@ -4853,12 +4819,11 @@ function deserializeExportLocalName(pos) {
4853
4819
  }
4854
4820
 
4855
4821
  function deserializeDynamicImport(pos) {
4856
- let start = deserializeU32(pos),
4857
- end = deserializeU32(pos + 4);
4822
+ let start, end;
4858
4823
  return {
4859
4824
  moduleRequest: deserializeSpan(pos + 8),
4860
- start,
4861
- end,
4825
+ start: (start = deserializeU32(pos)),
4826
+ end: (end = deserializeU32(pos + 4)),
4862
4827
  range: [start, end],
4863
4828
  };
4864
4829
  }
@@ -5051,12 +5016,11 @@ function deserializeErrorSeverity(pos) {
5051
5016
  }
5052
5017
 
5053
5018
  function deserializeErrorLabel(pos) {
5054
- let start = deserializeU32(pos),
5055
- end = deserializeU32(pos + 4);
5019
+ let start, end;
5056
5020
  return {
5057
5021
  message: deserializeOptionStr(pos + 8),
5058
- start,
5059
- end,
5022
+ start: (start = deserializeU32(pos)),
5023
+ end: (end = deserializeU32(pos + 4)),
5060
5024
  range: [start, end],
5061
5025
  };
5062
5026
  }
@@ -5072,24 +5036,22 @@ function deserializeEcmaScriptModule(pos) {
5072
5036
  }
5073
5037
 
5074
5038
  function deserializeStaticImport(pos) {
5075
- let start = deserializeU32(pos),
5076
- end = deserializeU32(pos + 4);
5039
+ let start, end;
5077
5040
  return {
5078
5041
  moduleRequest: deserializeNameSpan(pos + 8),
5079
5042
  entries: deserializeVecImportEntry(pos + 32),
5080
- start,
5081
- end,
5043
+ start: (start = deserializeU32(pos)),
5044
+ end: (end = deserializeU32(pos + 4)),
5082
5045
  range: [start, end],
5083
5046
  };
5084
5047
  }
5085
5048
 
5086
5049
  function deserializeStaticExport(pos) {
5087
- let start = deserializeU32(pos),
5088
- end = deserializeU32(pos + 4);
5050
+ let start, end;
5089
5051
  return {
5090
5052
  entries: deserializeVecExportEntry(pos + 8),
5091
- start,
5092
- end,
5053
+ start: (start = deserializeU32(pos)),
5054
+ end: (end = deserializeU32(pos + 4)),
5093
5055
  range: [start, end],
5094
5056
  };
5095
5057
  }
@@ -5107,7 +5069,7 @@ function deserializeStr(pos) {
5107
5069
  len = uint32[pos32 + 2];
5108
5070
  if (len === 0) return "";
5109
5071
  pos = uint32[pos32];
5110
- if (sourceIsAscii && pos < sourceByteLen) return sourceText.substr(pos, len);
5072
+ if (sourceIsAscii && pos < sourceEndPos) return sourceText.substr(pos, len);
5111
5073
  // Longer strings use `TextDecoder`
5112
5074
  // TODO: Find best switch-over point
5113
5075
  let end = pos + len;