@danielx/civet 0.6.19 → 0.6.21

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.
package/dist/main.mjs CHANGED
@@ -341,11 +341,7 @@ var require_lib = __commonJS({
341
341
  exp.children.splice(i, 1, ...wrapIIFE(exp.children, exp.async));
342
342
  return;
343
343
  }
344
- const resultsRef = {
345
- type: "Ref",
346
- base: "results",
347
- id: "results"
348
- };
344
+ const resultsRef = makeRef("results");
349
345
  insertPush(exp.block, resultsRef);
350
346
  exp.children.splice(
351
347
  i,
@@ -423,10 +419,7 @@ var require_lib = __commonJS({
423
419
  const parts = [];
424
420
  let hoistDec, refAssignment;
425
421
  if (prefix.length > 1) {
426
- const ref = {
427
- type: "Ref",
428
- base: "ref"
429
- };
422
+ const ref = makeRef();
430
423
  hoistDec = {
431
424
  type: "Declaration",
432
425
  children: ["let ", ref],
@@ -528,11 +521,7 @@ var require_lib = __commonJS({
528
521
  }
529
522
  return;
530
523
  }
531
- const resultsRef = {
532
- type: "Ref",
533
- base: "results",
534
- id: "results"
535
- };
524
+ const resultsRef = makeRef("results");
536
525
  const declaration = {
537
526
  type: "Declaration",
538
527
  children: ["const ", resultsRef, "=[];"]
@@ -1037,13 +1026,123 @@ var require_lib = __commonJS({
1037
1026
  if (target.token)
1038
1027
  return target.token.match(/^ ?/)[0];
1039
1028
  }
1029
+ function processForInOf($0) {
1030
+ let [awaits, each, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
1031
+ if (exp.type === "RangeExpression" && inOf.token === "of" && !declaration2) {
1032
+ return forRange(open, declaration, exp, step, close);
1033
+ } else if (step) {
1034
+ throw new Error("for..of/in cannot use 'by' except with range literals");
1035
+ }
1036
+ let eachError;
1037
+ let hoistDec, blockPrefix = [];
1038
+ if (each) {
1039
+ if (inOf.token === "of") {
1040
+ const counterRef = makeRef("i");
1041
+ const lenRef = makeRef("len");
1042
+ const expRef = maybeRef(exp);
1043
+ const increment = "++";
1044
+ let indexAssignment, assignmentNames = [...declaration.names];
1045
+ if (declaration2) {
1046
+ const [, , ws22, decl22] = declaration2;
1047
+ blockPrefix.push(["", [
1048
+ insertTrimmingSpace(ws22, ""),
1049
+ decl22,
1050
+ " = ",
1051
+ counterRef
1052
+ ], ";"]);
1053
+ assignmentNames.push(...decl22.names);
1054
+ }
1055
+ const expRefDec = expRef !== exp ? [insertTrimmingSpace(expRef, " "), " = ", insertTrimmingSpace(exp, ""), ", "] : [];
1056
+ blockPrefix.push(["", {
1057
+ type: "AssignmentExpression",
1058
+ children: [declaration, " = ", insertTrimmingSpace(expRef, ""), "[", counterRef, "]"],
1059
+ names: assignmentNames
1060
+ }, ";"]);
1061
+ declaration = {
1062
+ type: "Declaration",
1063
+ children: ["let ", ...expRefDec, counterRef, " = 0, ", lenRef, " = ", insertTrimmingSpace(expRef, ""), ".length"],
1064
+ names: []
1065
+ };
1066
+ const condition = [counterRef, " < ", lenRef, "; "];
1067
+ const children = [open, declaration, "; ", condition, counterRef, increment, close];
1068
+ return { declaration, children, blockPrefix };
1069
+ } else {
1070
+ eachError = {
1071
+ type: "Error",
1072
+ message: "'each' is only meaningful in for..of loops"
1073
+ };
1074
+ }
1075
+ }
1076
+ if (!declaration2) {
1077
+ return {
1078
+ declaration,
1079
+ children: [awaits, eachError, open, declaration, ws, inOf, exp, step, close]
1080
+ };
1081
+ }
1082
+ const [, , ws2, decl2] = declaration2;
1083
+ switch (inOf.token) {
1084
+ case "of": {
1085
+ const counterRef = makeRef("i");
1086
+ hoistDec = {
1087
+ type: "Declaration",
1088
+ children: ["let ", counterRef, " = 0"],
1089
+ names: []
1090
+ };
1091
+ blockPrefix.push(["", {
1092
+ type: "Declaration",
1093
+ children: [insertTrimmingSpace(ws2, ""), decl2, " = ", counterRef, "++"],
1094
+ names: decl2.names
1095
+ }, ";"]);
1096
+ break;
1097
+ }
1098
+ case "in": {
1099
+ const expRef = maybeRef(exp);
1100
+ if (expRef !== exp) {
1101
+ hoistDec = {
1102
+ type: "Declaration",
1103
+ children: ["let ", expRef],
1104
+ names: []
1105
+ };
1106
+ exp = {
1107
+ type: "AssignmentExpression",
1108
+ children: [" ", expRef, " =", exp]
1109
+ };
1110
+ }
1111
+ let { binding } = declaration;
1112
+ if (binding?.type !== "Identifier") {
1113
+ const keyRef = makeRef("key");
1114
+ blockPrefix.push(["", [
1115
+ declaration,
1116
+ " = ",
1117
+ keyRef
1118
+ ], ";"]);
1119
+ declaration = {
1120
+ type: "ForDeclaration",
1121
+ binding: binding = keyRef,
1122
+ children: ["const ", keyRef],
1123
+ names: []
1124
+ };
1125
+ }
1126
+ blockPrefix.push(["", {
1127
+ type: "Declaration",
1128
+ children: [insertTrimmingSpace(ws2, ""), decl2, " = ", insertTrimmingSpace(expRef, ""), "[", insertTrimmingSpace(binding, ""), "]"],
1129
+ names: decl2.names
1130
+ }, ";"]);
1131
+ break;
1132
+ }
1133
+ default:
1134
+ throw new Error(`for item, index must use 'of' or 'in' instead of '${inOf.token}'`);
1135
+ }
1136
+ return {
1137
+ declaration,
1138
+ children: [awaits, eachError, open, declaration, ws, inOf, exp, step, close],
1139
+ blockPrefix,
1140
+ hoistDec
1141
+ };
1142
+ }
1040
1143
  function forRange(open, forDeclaration, range, stepExp, close) {
1041
1144
  const { start, end, inclusive } = range;
1042
- const counterRef = {
1043
- type: "Ref",
1044
- base: "i",
1045
- id: "i"
1046
- };
1145
+ const counterRef = makeRef("i");
1047
1146
  let stepRef;
1048
1147
  if (stepExp) {
1049
1148
  stepExp = insertTrimmingSpace(stepExp, "");
@@ -1061,11 +1160,7 @@ var require_lib = __commonJS({
1061
1160
  } else if (start.type === "Literal" && end.type === "Literal") {
1062
1161
  asc = literalValue(start) <= literalValue(end);
1063
1162
  } else {
1064
- ascRef = {
1065
- type: "Ref",
1066
- base: "asc",
1067
- id: "asc"
1068
- };
1163
+ ascRef = makeRef("asc");
1069
1164
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
1070
1165
  }
1071
1166
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
@@ -1205,15 +1300,6 @@ var require_lib = __commonJS({
1205
1300
  };
1206
1301
  }
1207
1302
  }
1208
- function maybeRef(exp, base = "ref") {
1209
- if (!needsRef(exp))
1210
- return exp;
1211
- return {
1212
- type: "Ref",
1213
- base,
1214
- id: base
1215
- };
1216
- }
1217
1303
  function modifyString(str) {
1218
1304
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
1219
1305
  }
@@ -1309,13 +1395,20 @@ var require_lib = __commonJS({
1309
1395
  case "Identifier":
1310
1396
  case "Literal":
1311
1397
  return;
1312
- default:
1313
- return {
1314
- type: "Ref",
1315
- base,
1316
- id: base
1317
- };
1318
1398
  }
1399
+ return makeRef(base);
1400
+ }
1401
+ function makeRef(base = "ref") {
1402
+ return {
1403
+ type: "Ref",
1404
+ base,
1405
+ id: base
1406
+ };
1407
+ }
1408
+ function maybeRef(exp, base = "ref") {
1409
+ if (!needsRef(exp))
1410
+ return exp;
1411
+ return makeRef(base);
1319
1412
  }
1320
1413
  function processCoffeeInterpolation(s, parts, e, $loc) {
1321
1414
  if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
@@ -1808,11 +1901,7 @@ var require_lib = __commonJS({
1808
1901
  if (shared.length === 1)
1809
1902
  return;
1810
1903
  const refs = shared.map((p) => {
1811
- const ref = {
1812
- type: "Ref",
1813
- base: key,
1814
- id: key
1815
- };
1904
+ const ref = makeRef(key);
1816
1905
  aliasBinding(p, ref);
1817
1906
  return ref;
1818
1907
  });
@@ -1846,7 +1935,7 @@ var require_lib = __commonJS({
1846
1935
  if (expression.type === "ParenthesizedExpression") {
1847
1936
  expression = expression.expression;
1848
1937
  }
1849
- let hoistDec, refAssignment = [], ref = needsRef(expression, "m") || expression;
1938
+ let hoistDec, refAssignment = [], ref = maybeRef(expression, "m");
1850
1939
  if (ref !== expression) {
1851
1940
  hoistDec = {
1852
1941
  type: "Declaration",
@@ -1972,7 +2061,7 @@ var require_lib = __commonJS({
1972
2061
  arg.children.push(access);
1973
2062
  break outer;
1974
2063
  }
1975
- usingRef = needsRef({});
2064
+ usingRef = makeRef();
1976
2065
  initRef = {
1977
2066
  type: "AssignmentExpression",
1978
2067
  children: [usingRef, " = ", arg, ","]
@@ -2062,10 +2151,11 @@ var require_lib = __commonJS({
2062
2151
  });
2063
2152
  }
2064
2153
  function processProgram(root, config, m, ReservedWord) {
2154
+ assert.equal(m.forbidBracedApplication.length, 1, "forbidBracedApplication");
2065
2155
  assert.equal(m.forbidClassImplicitCall.length, 1, "forbidClassImplicitCall");
2066
2156
  assert.equal(m.forbidIndentedApplication.length, 1, "forbidIndentedApplication");
2157
+ assert.equal(m.forbidNewlineBinaryOp.length, 1, "forbidNewlineBinaryOp");
2067
2158
  assert.equal(m.forbidTrailingMemberProperty.length, 1, "forbidTrailingMemberProperty");
2068
- assert.equal(m.forbidMultiLineImplicitObjectLiteral.length, 1, "forbidMultiLineImplicitObjectLiteral");
2069
2159
  assert.equal(m.JSXTagStack.length, 0, "JSXTagStack should be empty");
2070
2160
  addParentPointers(root);
2071
2161
  const { expressions: statements } = root;
@@ -2246,11 +2336,7 @@ var require_lib = __commonJS({
2246
2336
  );
2247
2337
  if (!values.length)
2248
2338
  return false;
2249
- const ref = {
2250
- type: "Ref",
2251
- base: "ret",
2252
- id: "ret"
2253
- };
2339
+ const ref = makeRef("ret");
2254
2340
  let declared;
2255
2341
  values.forEach((value) => {
2256
2342
  value.children = [ref];
@@ -2579,13 +2665,15 @@ var require_lib = __commonJS({
2579
2665
  makeAsConst,
2580
2666
  makeEmptyBlock,
2581
2667
  makeLeftHandSideExpression,
2668
+ makeRef,
2582
2669
  maybeRef,
2583
2670
  modifyString,
2584
2671
  needsRef,
2672
+ processAssignmentDeclaration,
2585
2673
  processBinaryOpExpression,
2586
2674
  processCallMemberExpression,
2587
2675
  processCoffeeInterpolation,
2588
- processAssignmentDeclaration,
2676
+ processForInOf,
2589
2677
  processParams,
2590
2678
  processProgram,
2591
2679
  processReturnValue,
@@ -3189,10 +3277,8 @@ ${input.slice(result.pos)}
3189
3277
  InlineObjectLiteral,
3190
3278
  ImplicitInlineObjectPropertyDelimiter,
3191
3279
  ObjectPropertyDelimiter,
3192
- PropertyDefinitionList,
3193
3280
  PropertyDefinition,
3194
3281
  NamedProperty,
3195
- ImplicitNamedProperty,
3196
3282
  SnugNamedProperty,
3197
3283
  PropertyName,
3198
3284
  ComputedPropertyName,
@@ -3298,10 +3384,6 @@ ${input.slice(result.pos)}
3298
3384
  AllowTrailingMemberProperty,
3299
3385
  RestoreTrailingMemberProperty,
3300
3386
  TrailingMemberPropertyAllowed,
3301
- ForbidMultiLineImplicitObjectLiteral,
3302
- AllowMultiLineImplicitObjectLiteral,
3303
- RestoreMultiLineImplicitObjectLiteral,
3304
- MultiLineImplicitObjectLiteralAllowed,
3305
3387
  AllowNewlineBinaryOp,
3306
3388
  ForbidNewlineBinaryOp,
3307
3389
  RestoreNewlineBinaryOp,
@@ -3432,6 +3514,7 @@ ${input.slice(result.pos)}
3432
3514
  DotDotDot,
3433
3515
  DoubleColon,
3434
3516
  DoubleQuote,
3517
+ Each,
3435
3518
  Else,
3436
3519
  Equals,
3437
3520
  Export,
@@ -3535,6 +3618,7 @@ ${input.slice(result.pos)}
3535
3618
  NestedJSXChildExpression,
3536
3619
  TypeDeclaration,
3537
3620
  TypeDeclarationRest,
3621
+ OptionalEquals,
3538
3622
  TypeLexicalDeclaration,
3539
3623
  TypeDeclarationBinding,
3540
3624
  InterfaceExtendsClause,
@@ -3623,6 +3707,7 @@ ${input.slice(result.pos)}
3623
3707
  InsertOpenBracket,
3624
3708
  InsertCloseBracket,
3625
3709
  InsertComma,
3710
+ InsertSpaceEquals,
3626
3711
  InsertConst,
3627
3712
  InsertLet,
3628
3713
  InsertReadonly,
@@ -3650,13 +3735,13 @@ ${input.slice(result.pos)}
3650
3735
  Init,
3651
3736
  Indent,
3652
3737
  TrackIndented,
3653
- Samedent,
3654
- IndentedFurther,
3655
- NotDedented,
3656
- Dedented,
3657
3738
  PushIndent,
3658
3739
  PopIndent,
3659
- Nested
3740
+ Nested,
3741
+ IndentedFurther,
3742
+ IndentedAtLeast,
3743
+ NotDedented,
3744
+ Dedented
3660
3745
  });
3661
3746
  var $L0 = $L("");
3662
3747
  var $L1 = $L("{");
@@ -3796,75 +3881,76 @@ ${input.slice(result.pos)}
3796
3881
  var $L135 = $L("\u2026");
3797
3882
  var $L136 = $L("::");
3798
3883
  var $L137 = $L('"');
3799
- var $L138 = $L("else");
3800
- var $L139 = $L("export");
3801
- var $L140 = $L("extends");
3802
- var $L141 = $L("finally");
3803
- var $L142 = $L("for");
3804
- var $L143 = $L("from");
3805
- var $L144 = $L("function");
3806
- var $L145 = $L("get");
3807
- var $L146 = $L("set");
3808
- var $L147 = $L("if");
3809
- var $L148 = $L("in");
3810
- var $L149 = $L("let");
3811
- var $L150 = $L("const");
3812
- var $L151 = $L("is");
3813
- var $L152 = $L("loop");
3814
- var $L153 = $L("new");
3815
- var $L154 = $L("not");
3816
- var $L155 = $L("<");
3817
- var $L156 = $L("operator");
3818
- var $L157 = $L("public");
3819
- var $L158 = $L("private");
3820
- var $L159 = $L("protected");
3821
- var $L160 = $L("||>");
3822
- var $L161 = $L("|\u25B7");
3823
- var $L162 = $L("|>=");
3824
- var $L163 = $L("\u25B7=");
3825
- var $L164 = $L("|>");
3826
- var $L165 = $L("\u25B7");
3827
- var $L166 = $L("readonly");
3828
- var $L167 = $L("return");
3829
- var $L168 = $L("satisfies");
3830
- var $L169 = $L("'");
3831
- var $L170 = $L("static");
3832
- var $L171 = $L("${");
3833
- var $L172 = $L("switch");
3834
- var $L173 = $L("target");
3835
- var $L174 = $L("then");
3836
- var $L175 = $L("this");
3837
- var $L176 = $L("throw");
3838
- var $L177 = $L('"""');
3839
- var $L178 = $L("'''");
3840
- var $L179 = $L("///");
3841
- var $L180 = $L("```");
3842
- var $L181 = $L("try");
3843
- var $L182 = $L("typeof");
3844
- var $L183 = $L("unless");
3845
- var $L184 = $L("until");
3846
- var $L185 = $L("var");
3847
- var $L186 = $L("void");
3848
- var $L187 = $L("when");
3849
- var $L188 = $L("while");
3850
- var $L189 = $L("yield");
3851
- var $L190 = $L("/>");
3852
- var $L191 = $L("</");
3853
- var $L192 = $L("<>");
3854
- var $L193 = $L("</>");
3855
- var $L194 = $L("<!--");
3856
- var $L195 = $L("-->");
3857
- var $L196 = $L("type");
3858
- var $L197 = $L("enum");
3859
- var $L198 = $L("interface");
3860
- var $L199 = $L("global");
3861
- var $L200 = $L("module");
3862
- var $L201 = $L("namespace");
3863
- var $L202 = $L("asserts");
3864
- var $L203 = $L("keyof");
3865
- var $L204 = $L("infer");
3866
- var $L205 = $L("[]");
3867
- var $L206 = $L("civet");
3884
+ var $L138 = $L("each");
3885
+ var $L139 = $L("else");
3886
+ var $L140 = $L("export");
3887
+ var $L141 = $L("extends");
3888
+ var $L142 = $L("finally");
3889
+ var $L143 = $L("for");
3890
+ var $L144 = $L("from");
3891
+ var $L145 = $L("function");
3892
+ var $L146 = $L("get");
3893
+ var $L147 = $L("set");
3894
+ var $L148 = $L("if");
3895
+ var $L149 = $L("in");
3896
+ var $L150 = $L("let");
3897
+ var $L151 = $L("const");
3898
+ var $L152 = $L("is");
3899
+ var $L153 = $L("loop");
3900
+ var $L154 = $L("new");
3901
+ var $L155 = $L("not");
3902
+ var $L156 = $L("<");
3903
+ var $L157 = $L("operator");
3904
+ var $L158 = $L("public");
3905
+ var $L159 = $L("private");
3906
+ var $L160 = $L("protected");
3907
+ var $L161 = $L("||>");
3908
+ var $L162 = $L("|\u25B7");
3909
+ var $L163 = $L("|>=");
3910
+ var $L164 = $L("\u25B7=");
3911
+ var $L165 = $L("|>");
3912
+ var $L166 = $L("\u25B7");
3913
+ var $L167 = $L("readonly");
3914
+ var $L168 = $L("return");
3915
+ var $L169 = $L("satisfies");
3916
+ var $L170 = $L("'");
3917
+ var $L171 = $L("static");
3918
+ var $L172 = $L("${");
3919
+ var $L173 = $L("switch");
3920
+ var $L174 = $L("target");
3921
+ var $L175 = $L("then");
3922
+ var $L176 = $L("this");
3923
+ var $L177 = $L("throw");
3924
+ var $L178 = $L('"""');
3925
+ var $L179 = $L("'''");
3926
+ var $L180 = $L("///");
3927
+ var $L181 = $L("```");
3928
+ var $L182 = $L("try");
3929
+ var $L183 = $L("typeof");
3930
+ var $L184 = $L("unless");
3931
+ var $L185 = $L("until");
3932
+ var $L186 = $L("var");
3933
+ var $L187 = $L("void");
3934
+ var $L188 = $L("when");
3935
+ var $L189 = $L("while");
3936
+ var $L190 = $L("yield");
3937
+ var $L191 = $L("/>");
3938
+ var $L192 = $L("</");
3939
+ var $L193 = $L("<>");
3940
+ var $L194 = $L("</>");
3941
+ var $L195 = $L("<!--");
3942
+ var $L196 = $L("-->");
3943
+ var $L197 = $L("type");
3944
+ var $L198 = $L("enum");
3945
+ var $L199 = $L("interface");
3946
+ var $L200 = $L("global");
3947
+ var $L201 = $L("module");
3948
+ var $L202 = $L("namespace");
3949
+ var $L203 = $L("asserts");
3950
+ var $L204 = $L("keyof");
3951
+ var $L205 = $L("infer");
3952
+ var $L206 = $L("[]");
3953
+ var $L207 = $L("civet");
3868
3954
  var $R0 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
3869
3955
  var $R1 = $R(new RegExp("[0-9]", "suy"));
3870
3956
  var $R2 = $R(new RegExp("[)}]", "suy"));
@@ -3875,7 +3961,7 @@ ${input.slice(result.pos)}
3875
3961
  var $R7 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
3876
3962
  var $R8 = $R(new RegExp("!\\^\\^?", "suy"));
3877
3963
  var $R9 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])", "suy"));
3878
- var $R10 = $R(new RegExp("(?=[\\s\\)])", "suy"));
3964
+ var $R10 = $R(new RegExp("(?=[\\s\\),])", "suy"));
3879
3965
  var $R11 = $R(new RegExp('[^;"\\s]+', "suy"));
3880
3966
  var $R12 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
3881
3967
  var $R13 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
@@ -4500,7 +4586,7 @@ ${input.slice(result.pos)}
4500
4586
  return result;
4501
4587
  }
4502
4588
  }
4503
- var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L5, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L6, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
4589
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L6, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
4504
4590
  return $1.concat($2);
4505
4591
  });
4506
4592
  function TrailingMemberExpressions(state) {
@@ -4551,7 +4637,7 @@ ${input.slice(result.pos)}
4551
4637
  return result;
4552
4638
  }
4553
4639
  }
4554
- var TrailingCallExpressions$0 = $P($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L5, fail, 'TrailingCallExpressions "?"')), $EXPECT($L6, fail, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R1, fail, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
4640
+ var TrailingCallExpressions$0 = $P($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, fail, 'TrailingCallExpressions "?"')), $EXPECT($L6, fail, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R1, fail, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
4555
4641
  function TrailingCallExpressions(state) {
4556
4642
  let eventData;
4557
4643
  if (state.events) {
@@ -4599,7 +4685,7 @@ ${input.slice(result.pos)}
4599
4685
  return result;
4600
4686
  }
4601
4687
  }
4602
- var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
4688
+ var CommaDelimiter$0 = $S(NotDedented, Comma);
4603
4689
  function CommaDelimiter(state) {
4604
4690
  let eventData;
4605
4691
  if (state.events) {
@@ -5509,10 +5595,7 @@ ${input.slice(result.pos)}
5509
5595
  var head = $2;
5510
5596
  var body = $3;
5511
5597
  if (head.token === "&") {
5512
- const ref = {
5513
- type: "Ref",
5514
- base: "$"
5515
- };
5598
+ const ref = makeRef("$");
5516
5599
  const arrowBody = {
5517
5600
  type: "PipelineExpression",
5518
5601
  children: [ws, ref, body]
@@ -7283,11 +7366,7 @@ ${input.slice(result.pos)}
7283
7366
  });
7284
7367
  var AtIdentifierRef$1 = $TV(IdentifierName, function($skip, $loc, $0, $1) {
7285
7368
  var id = $0;
7286
- return {
7287
- type: "Ref",
7288
- base: id.name,
7289
- id: id.name
7290
- };
7369
+ return makeRef(id.name);
7291
7370
  });
7292
7371
  function AtIdentifierRef(state) {
7293
7372
  let eventData;
@@ -7909,11 +7988,7 @@ ${input.slice(result.pos)}
7909
7988
  }
7910
7989
  }
7911
7990
  var EmptyBindingPattern$0 = $TV($EXPECT($L0, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
7912
- const ref = {
7913
- type: "Ref",
7914
- base: "ref",
7915
- id: "ref"
7916
- };
7991
+ const ref = makeRef();
7917
7992
  return {
7918
7993
  type: "EmptyBinding",
7919
7994
  children: [ref],
@@ -8071,11 +8146,7 @@ ${input.slice(result.pos)}
8071
8146
  return $skip;
8072
8147
  let body, ref;
8073
8148
  if (!rhs) {
8074
- body = ref = {
8075
- type: "Ref",
8076
- base: "$",
8077
- id: "$"
8078
- };
8149
+ body = ref = makeRef("$");
8079
8150
  } else {
8080
8151
  let exp = rhs;
8081
8152
  while (!exp.ref && exp.expression) {
@@ -8255,11 +8326,7 @@ ${input.slice(result.pos)}
8255
8326
  var binopRHS = $3;
8256
8327
  if (!callExpRest && !binopRHS && !unaryPostfix)
8257
8328
  return $skip;
8258
- const ref = {
8259
- type: "Ref",
8260
- base: "$",
8261
- id: "$"
8262
- };
8329
+ const ref = makeRef("$");
8263
8330
  let exp = {
8264
8331
  type: "AmpersandRef",
8265
8332
  children: [ref],
@@ -8755,7 +8822,7 @@ ${input.slice(result.pos)}
8755
8822
  var s = $3;
8756
8823
  var ws = $4;
8757
8824
  var c = $5;
8758
- if (!s.children.length)
8825
+ if (!s.expressions.length)
8759
8826
  return $skip;
8760
8827
  return {
8761
8828
  type: "BlockStatement",
@@ -8830,16 +8897,16 @@ ${input.slice(result.pos)}
8830
8897
  return result;
8831
8898
  }
8832
8899
  }
8833
- var SingleLineStatements$0 = $TS($S($Q($S($S($E(_), $N(EOS)), Statement, SemicolonDelimiter)), $E($S($S($E(_), $N(EOS)), Statement, $E(SemicolonDelimiter)))), function($skip, $loc, $0, $1, $2) {
8834
- var stmts = $1;
8835
- var last = $2;
8836
- const children = [...stmts];
8900
+ var SingleLineStatements$0 = $TS($S(ForbidNewlineBinaryOp, $Q($S($S($E(_), $N(EOS)), Statement, SemicolonDelimiter)), $E($S($S($E(_), $N(EOS)), Statement, $E(SemicolonDelimiter))), RestoreNewlineBinaryOp), function($skip, $loc, $0, $1, $2, $3, $4) {
8901
+ var stmts = $2;
8902
+ var last = $3;
8903
+ const expressions = [...stmts];
8837
8904
  if (last)
8838
- children.push(last);
8905
+ expressions.push(last);
8839
8906
  return {
8840
8907
  type: "BlockStatement",
8841
- expressions: children,
8842
- children,
8908
+ expressions,
8909
+ children: [expressions],
8843
8910
  bare: true
8844
8911
  };
8845
8912
  });
@@ -9295,9 +9362,7 @@ ${input.slice(result.pos)}
9295
9362
  } else {
9296
9363
  children = [open, content, ...ws, close];
9297
9364
  }
9298
- const names = children.flatMap((c) => {
9299
- return c.names || [];
9300
- });
9365
+ const names = children.flatMap((c) => c?.names || []);
9301
9366
  return {
9302
9367
  type: "ArrayExpression",
9303
9368
  children,
@@ -9413,17 +9478,17 @@ ${input.slice(result.pos)}
9413
9478
  }
9414
9479
  }
9415
9480
  var ArrayLiteralContent$0 = RangeExpression;
9416
- var ArrayLiteralContent$1 = $S(NestedImplicitObjectLiteral, $Q($S(__, Comma, NestedImplicitObjectLiteral)));
9417
- var ArrayLiteralContent$2 = NestedElementList;
9418
- var ArrayLiteralContent$3 = $TS($S(ElementListWithIndentedApplicationForbidden, InsertComma, $E(NestedElementList)), function($skip, $loc, $0, $1, $2, $3) {
9481
+ var ArrayLiteralContent$1 = $S(NestedElementList, $Y($S(__, CloseBracket)));
9482
+ var ArrayLiteralContent$2 = $TS($S(ElementListWithIndentedApplicationForbidden, ArrayElementDelimiter, $E(NestedElementList), $Y($S(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
9419
9483
  var list = $1;
9420
- var comma = $2;
9484
+ var delimiter = $2;
9421
9485
  var nested = $3;
9422
- if (nested) {
9423
- return [...list, comma, ...nested];
9424
- } else {
9486
+ if (!nested)
9425
9487
  return list;
9426
- }
9488
+ return [...list, delimiter, ...nested];
9489
+ });
9490
+ var ArrayLiteralContent$3 = $TV($Q($S(__, ElementListWithIndentedApplicationForbidden, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
9491
+ return $1.flat();
9427
9492
  });
9428
9493
  function ArrayLiteralContent(state) {
9429
9494
  let eventData;
@@ -9571,9 +9636,9 @@ ${input.slice(result.pos)}
9571
9636
  return result;
9572
9637
  }
9573
9638
  }
9574
- var ElementList$0 = $TS($S(ArrayElementExpression, $Q(ElementListRest)), function($skip, $loc, $0, $1, $2) {
9575
- var first = $1;
9576
- var rest = $2;
9639
+ var ElementList$0 = $TS($S($N(EOS), ArrayElementExpression, $Q(ElementListRest)), function($skip, $loc, $0, $1, $2, $3) {
9640
+ var first = $2;
9641
+ var rest = $3;
9577
9642
  if (rest.length) {
9578
9643
  return [{
9579
9644
  ...first,
@@ -9610,7 +9675,7 @@ ${input.slice(result.pos)}
9610
9675
  return result;
9611
9676
  }
9612
9677
  }
9613
- var ElementListRest$0 = $S($S(__, Comma), ArrayElementExpression);
9678
+ var ElementListRest$0 = $S($S($E(_), Comma, $N(EOS)), ArrayElementExpression);
9614
9679
  function ElementListRest(state) {
9615
9680
  let eventData;
9616
9681
  if (state.events) {
@@ -9639,12 +9704,7 @@ ${input.slice(result.pos)}
9639
9704
  var ws = $2;
9640
9705
  var dots = $3;
9641
9706
  if (!exp) {
9642
- exp = {
9643
- type: "Ref",
9644
- base: "ref",
9645
- id: "ref",
9646
- names: []
9647
- };
9707
+ exp = { ...makeRef(), names: [] };
9648
9708
  }
9649
9709
  return {
9650
9710
  type: "SpreadElement",
@@ -9725,26 +9785,16 @@ ${input.slice(result.pos)}
9725
9785
  return result;
9726
9786
  }
9727
9787
  }
9728
- var BracedObjectLiteral$0 = $TS($S(OpenBrace, AllowAll, $E($S($E(BracedObjectLiteralContent), __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
9788
+ var BracedObjectLiteral$0 = $TS($S(OpenBrace, AllowAll, $E($S(BracedObjectLiteralContent, __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
9729
9789
  var open = $1;
9730
9790
  if (!$3)
9731
9791
  return $skip;
9732
9792
  const [properties, ...close] = $3;
9733
- if (properties) {
9734
- const children = [open, ...properties, close];
9735
- return {
9736
- type: "ObjectExpression",
9737
- children,
9738
- names: children.flatMap((c) => {
9739
- return c.names || [];
9740
- }),
9741
- properties
9742
- };
9743
- }
9744
9793
  return {
9745
9794
  type: "ObjectExpression",
9746
- children: [open, close],
9747
- names: []
9795
+ children: [open, properties, close],
9796
+ names: properties.flatMap((c) => c.names || []),
9797
+ properties
9748
9798
  };
9749
9799
  });
9750
9800
  function BracedObjectLiteral(state) {
@@ -9769,8 +9819,33 @@ ${input.slice(result.pos)}
9769
9819
  return result;
9770
9820
  }
9771
9821
  }
9772
- var BracedObjectLiteralContent$0 = NestedPropertyDefinitions;
9773
- var BracedObjectLiteralContent$1 = PropertyDefinitionList;
9822
+ var BracedObjectLiteralContent$0 = $TS($S($Q($S(PropertyDefinition, ObjectPropertyDelimiter)), $E(NestedPropertyDefinitions)), function($skip, $loc, $0, $1, $2) {
9823
+ var line = $1;
9824
+ var nested = $2;
9825
+ line = line.flatMap(([prop, delim]) => {
9826
+ prop = Array.isArray(prop) ? prop : [prop];
9827
+ let last = prop[prop.length - 1];
9828
+ last = {
9829
+ ...last,
9830
+ delim,
9831
+ children: [...last.children, delim]
9832
+ };
9833
+ return [...prop.slice(0, prop.length - 1), last];
9834
+ });
9835
+ return line.concat(nested || []);
9836
+ });
9837
+ var BracedObjectLiteralContent$1 = $TV($P($S(__, PropertyDefinition, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
9838
+ return $0.flatMap(([ws, prop, delim]) => {
9839
+ prop = Array.isArray(prop) ? prop : [prop];
9840
+ let last = prop[prop.length - 1];
9841
+ last = {
9842
+ ...last,
9843
+ delim,
9844
+ children: [ws, ...last.children.slice(1), delim]
9845
+ };
9846
+ return [...prop.slice(0, prop.length - 1), last];
9847
+ });
9848
+ });
9774
9849
  function BracedObjectLiteralContent(state) {
9775
9850
  let eventData;
9776
9851
  if (state.events) {
@@ -9794,9 +9869,11 @@ ${input.slice(result.pos)}
9794
9869
  }
9795
9870
  }
9796
9871
  var NestedImplicitObjectLiteral$0 = $TS($S(InsertOpenBrace, NestedImplicitPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9872
+ var properties = $2;
9797
9873
  return {
9798
9874
  type: "ObjectExpression",
9799
- children: [$1, ...$2, $3, $4, $5]
9875
+ properties,
9876
+ children: $0
9800
9877
  };
9801
9878
  });
9802
9879
  function NestedImplicitObjectLiteral(state) {
@@ -9849,7 +9926,7 @@ ${input.slice(result.pos)}
9849
9926
  return result;
9850
9927
  }
9851
9928
  }
9852
- var NestedImplicitPropertyDefinition$0 = $TS($S(Nested, ImplicitNamedProperty, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
9929
+ var NestedImplicitPropertyDefinition$0 = $TS($S(Nested, NamedProperty, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
9853
9930
  var ws = $1;
9854
9931
  var prop = $2;
9855
9932
  var delimiter = $3;
@@ -9952,7 +10029,7 @@ ${input.slice(result.pos)}
9952
10029
  return result;
9953
10030
  }
9954
10031
  }
9955
- var InlineObjectLiteral$0 = $TS($S(InsertInlineOpenBrace, SnugNamedProperty, $Q($S(ImplicitInlineObjectPropertyDelimiter, ImplicitNamedProperty)), $E($S($E(_), Comma, $Y(Dedented))), InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
10032
+ var InlineObjectLiteral$0 = $TS($S(InsertInlineOpenBrace, SnugNamedProperty, $Q($S(ImplicitInlineObjectPropertyDelimiter, NamedProperty)), $E($S($E(_), Comma, $Y(Dedented))), InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9956
10033
  var open = $1;
9957
10034
  var first = $2;
9958
10035
  var rest = $3;
@@ -9986,7 +10063,7 @@ ${input.slice(result.pos)}
9986
10063
  }
9987
10064
  }
9988
10065
  var ImplicitInlineObjectPropertyDelimiter$0 = $S($E(_), Comma, $C(NotDedented, $E(_)));
9989
- var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S(Samedent, ImplicitNamedProperty)), InsertComma, $C(Samedent, $E(_))), function(value) {
10066
+ var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S(Nested, NamedProperty)), InsertComma, $C(Nested, $E(_))), function(value) {
9990
10067
  return [value[1], value[2]];
9991
10068
  });
9992
10069
  function ImplicitInlineObjectPropertyDelimiter(state) {
@@ -10038,41 +10115,7 @@ ${input.slice(result.pos)}
10038
10115
  return result;
10039
10116
  }
10040
10117
  }
10041
- var PropertyDefinitionList$0 = $TV($P($S(PropertyDefinition, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
10042
- return $0.flatMap(([prop, delim]) => {
10043
- prop = Array.isArray(prop) ? prop : [prop];
10044
- let last = prop[prop.length - 1];
10045
- last = {
10046
- ...last,
10047
- delim,
10048
- children: [...last.children, delim]
10049
- };
10050
- return [...prop.slice(0, prop.length - 1), last];
10051
- });
10052
- });
10053
- function PropertyDefinitionList(state) {
10054
- let eventData;
10055
- if (state.events) {
10056
- const result = state.events.enter?.("PropertyDefinitionList", state);
10057
- if (result) {
10058
- if (result.cache)
10059
- return result.cache;
10060
- eventData = result.data;
10061
- }
10062
- }
10063
- if (state.tokenize) {
10064
- const result = $TOKEN("PropertyDefinitionList", state, PropertyDefinitionList$0(state));
10065
- if (state.events)
10066
- state.events.exit?.("PropertyDefinitionList", state, result, eventData);
10067
- return result;
10068
- } else {
10069
- const result = PropertyDefinitionList$0(state);
10070
- if (state.events)
10071
- state.events.exit?.("PropertyDefinitionList", state, result, eventData);
10072
- return result;
10073
- }
10074
- }
10075
- var PropertyDefinition$0 = $TS($S(__, AtThis, IdentifierReference), function($skip, $loc, $0, $1, $2, $3) {
10118
+ var PropertyDefinition$0 = $TS($S($E(_), AtThis, IdentifierReference), function($skip, $loc, $0, $1, $2, $3) {
10076
10119
  var ws = $1;
10077
10120
  var at = $2;
10078
10121
  var id = $3;
@@ -10085,7 +10128,7 @@ ${input.slice(result.pos)}
10085
10128
  value
10086
10129
  };
10087
10130
  });
10088
- var PropertyDefinition$1 = $TS($S(__, NamedProperty), function($skip, $loc, $0, $1, $2) {
10131
+ var PropertyDefinition$1 = $TS($S($E(_), NamedProperty), function($skip, $loc, $0, $1, $2) {
10089
10132
  var ws = $1;
10090
10133
  var prop = $2;
10091
10134
  return {
@@ -10093,7 +10136,7 @@ ${input.slice(result.pos)}
10093
10136
  children: [ws, ...prop.children]
10094
10137
  };
10095
10138
  });
10096
- var PropertyDefinition$2 = $TS($S(__, $TEXT($EXPECT($R6, fail, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
10139
+ var PropertyDefinition$2 = $TS($S($E(_), $TEXT($EXPECT($R6, fail, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
10097
10140
  var ws = $1;
10098
10141
  var toggle = $2;
10099
10142
  var id = $3;
@@ -10106,7 +10149,7 @@ ${input.slice(result.pos)}
10106
10149
  value
10107
10150
  };
10108
10151
  });
10109
- var PropertyDefinition$3 = $TS($S(__, MethodDefinition), function($skip, $loc, $0, $1, $2) {
10152
+ var PropertyDefinition$3 = $TS($S($E(_), MethodDefinition), function($skip, $loc, $0, $1, $2) {
10110
10153
  var ws = $1;
10111
10154
  var def = $2;
10112
10155
  if (!def.block || def.block.empty)
@@ -10116,7 +10159,7 @@ ${input.slice(result.pos)}
10116
10159
  children: [ws, ...def.children]
10117
10160
  };
10118
10161
  });
10119
- var PropertyDefinition$4 = $TS($S(__, DotDotDot, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3) {
10162
+ var PropertyDefinition$4 = $TS($S($E(_), DotDotDot, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3) {
10120
10163
  var ws = $1;
10121
10164
  var dots = $2;
10122
10165
  var exp = $3;
@@ -10128,9 +10171,9 @@ ${input.slice(result.pos)}
10128
10171
  value: exp
10129
10172
  };
10130
10173
  });
10131
- var PropertyDefinition$5 = $TS($S(__, CallExpression), function($skip, $loc, $0, $1, $2) {
10174
+ var PropertyDefinition$5 = $TS($S($E(_), $N(EOS), CallExpression), function($skip, $loc, $0, $1, $2, $3) {
10132
10175
  var ws = $1;
10133
- var value = $2;
10176
+ var value = $3;
10134
10177
  switch (value.type) {
10135
10178
  case "Identifier":
10136
10179
  return { ...value, children: [ws, ...value.children] };
@@ -10251,41 +10294,8 @@ ${input.slice(result.pos)}
10251
10294
  return result;
10252
10295
  }
10253
10296
  }
10254
- var ImplicitNamedProperty$0 = $TS($S(PropertyName, $E(_), Colon, $C(MultiLineImplicitObjectLiteralAllowed, $N(EOS)), ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
10255
- var name = $1;
10256
- var exp = $5;
10257
- return {
10258
- type: "Property",
10259
- children: $0,
10260
- name,
10261
- names: exp.names || [],
10262
- value: exp
10263
- };
10264
- });
10265
- function ImplicitNamedProperty(state) {
10266
- let eventData;
10267
- if (state.events) {
10268
- const result = state.events.enter?.("ImplicitNamedProperty", state);
10269
- if (result) {
10270
- if (result.cache)
10271
- return result.cache;
10272
- eventData = result.data;
10273
- }
10274
- }
10275
- if (state.tokenize) {
10276
- const result = $TOKEN("ImplicitNamedProperty", state, ImplicitNamedProperty$0(state));
10277
- if (state.events)
10278
- state.events.exit?.("ImplicitNamedProperty", state, result, eventData);
10279
- return result;
10280
- } else {
10281
- const result = ImplicitNamedProperty$0(state);
10282
- if (state.events)
10283
- state.events.exit?.("ImplicitNamedProperty", state, result, eventData);
10284
- return result;
10285
- }
10286
- }
10287
- var SnugNamedProperty$0 = $TS($S(PropertyName, Colon, $C(MultiLineImplicitObjectLiteralAllowed, $N(EOS)), ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
10288
- var exp = $4;
10297
+ var SnugNamedProperty$0 = $TS($S(PropertyName, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3) {
10298
+ var exp = $3;
10289
10299
  return {
10290
10300
  type: "Property",
10291
10301
  children: $0,
@@ -10861,7 +10871,7 @@ ${input.slice(result.pos)}
10861
10871
  ws.push(...$2);
10862
10872
  return [ws, $3];
10863
10873
  });
10864
- var NotDedentedBinaryOp$1 = $TS($S(Samedent, $E(_), $N(Identifier), BinaryOp), function($skip, $loc, $0, $1, $2, $3, $4) {
10874
+ var NotDedentedBinaryOp$1 = $TS($S(Nested, $E(_), $N(Identifier), BinaryOp), function($skip, $loc, $0, $1, $2, $3, $4) {
10865
10875
  const ws = [...$1];
10866
10876
  if ($2)
10867
10877
  ws.push(...$2);
@@ -11649,7 +11659,7 @@ ${input.slice(result.pos)}
11649
11659
  return result;
11650
11660
  }
11651
11661
  }
11652
- var ElseClause$0 = $S(Samedent, Else, Block);
11662
+ var ElseClause$0 = $S(Nested, Else, Block);
11653
11663
  var ElseClause$1 = $S($E(_), Else, Block);
11654
11664
  function ElseClause(state) {
11655
11665
  let eventData;
@@ -11793,7 +11803,7 @@ ${input.slice(result.pos)}
11793
11803
  return result;
11794
11804
  }
11795
11805
  }
11796
- var ElseExpressionClause$0 = $TS($S($C($S(Samedent, Else), $S($E(_), Else)), ElseExpressionBlock), function($skip, $loc, $0, $1, $2) {
11806
+ var ElseExpressionClause$0 = $TS($S($C($S(Nested, Else), $S($E(_), Else)), ElseExpressionBlock), function($skip, $loc, $0, $1, $2) {
11797
11807
  return [...$1, $2];
11798
11808
  });
11799
11809
  function ElseExpressionClause(state) {
@@ -12290,7 +12300,8 @@ ${input.slice(result.pos)}
12290
12300
  children: [$1, ...$2, ...children],
12291
12301
  declaration,
12292
12302
  block: null,
12293
- blockPrefix: c.blockPrefix
12303
+ blockPrefix: c.blockPrefix,
12304
+ hoistDec: c.hoistDec
12294
12305
  };
12295
12306
  });
12296
12307
  function ForClause(state) {
@@ -12398,7 +12409,7 @@ ${input.slice(result.pos)}
12398
12409
  if (step) {
12399
12410
  throw new Error("Can't use 'by' with 'from' in CoffeeScript for loops");
12400
12411
  }
12401
- kind.token = "of";
12412
+ kind = { ...kind, token: "of" };
12402
12413
  } else if (kind.token === "of") {
12403
12414
  if (step) {
12404
12415
  throw new Error("Can't use 'by' with 'of' in CoffeeScript for loops");
@@ -12416,30 +12427,12 @@ ${input.slice(result.pos)}
12416
12427
  }
12417
12428
  kind.token = "in";
12418
12429
  } else if (kind.token === "in") {
12419
- const counterRef = {
12420
- type: "Ref",
12421
- base: "i",
12422
- id: "i"
12423
- };
12424
- const lenRef = {
12425
- type: "Ref",
12426
- base: "len",
12427
- id: "len"
12428
- };
12429
- let expRef;
12430
- switch (exp.type) {
12431
- case "Identifier":
12432
- expRef = exp;
12433
- break;
12434
- case "RangeExpression":
12435
- return forRange(open, declaration, exp, step?.[2], close);
12436
- default:
12437
- expRef = {
12438
- type: "Ref",
12439
- base: "ref",
12440
- id: "ref"
12441
- };
12430
+ const counterRef = makeRef("i");
12431
+ const lenRef = makeRef("len");
12432
+ if (exp.type === "RangeExpression") {
12433
+ return forRange(open, declaration, exp, step?.[2], close);
12442
12434
  }
12435
+ const expRef = maybeRef(exp);
12443
12436
  const varRef = declaration;
12444
12437
  let increment = "++", indexAssignment, assignmentNames = [...varRef.names];
12445
12438
  if (index) {
@@ -12594,39 +12587,11 @@ ${input.slice(result.pos)}
12594
12587
  children: $0
12595
12588
  };
12596
12589
  });
12597
- var ForStatementParameters$2 = $TS($S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12598
- var open = $2;
12599
- var declaration = $4;
12600
- var op = $6;
12601
- var exp = $7;
12602
- var step = $8;
12603
- var close = $10;
12604
- if (exp.type === "RangeExpression" && op.token === "of") {
12605
- return forRange(open, declaration, exp, step, close);
12606
- } else if (step) {
12607
- throw new Error("for..of/in cannot use 'by' except with range literals");
12608
- }
12609
- return {
12610
- declaration,
12611
- children: $0
12612
- };
12590
+ var ForStatementParameters$2 = $TS($S($E($S(Await, __)), $E($S(Each, __)), $S(OpenParen, __), ForInOfDeclaration, $E($S(__, Comma, __, ForInOfDeclaration)), __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12591
+ return processForInOf($0);
12613
12592
  });
12614
- var ForStatementParameters$3 = $TS($S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
12615
- var open = $2;
12616
- var declaration = $3;
12617
- var op = $5;
12618
- var exp = $6;
12619
- var step = $7;
12620
- var close = $8;
12621
- if (exp.type === "RangeExpression" && op.token === "of") {
12622
- return forRange(open, declaration, exp, step, close);
12623
- } else if (step) {
12624
- throw new Error("for..of/in cannot use 'by' except with range literals");
12625
- }
12626
- return {
12627
- declaration,
12628
- children: $0
12629
- };
12593
+ var ForStatementParameters$3 = $TS($S($E($S(Await, __)), $E($S(Each, __)), InsertOpenParen, ForInOfDeclaration, $E($S(__, Comma, __, ForInOfDeclaration)), __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12594
+ return processForInOf($0);
12630
12595
  });
12631
12596
  var ForStatementParameters$4 = ForRangeParameters;
12632
12597
  function ForStatementParameters(state) {
@@ -12693,6 +12658,7 @@ ${input.slice(result.pos)}
12693
12658
  type: "ForDeclaration",
12694
12659
  children: $0,
12695
12660
  declare: $1,
12661
+ binding,
12696
12662
  names: binding.names
12697
12663
  };
12698
12664
  });
@@ -12727,16 +12693,18 @@ ${input.slice(result.pos)}
12727
12693
  type: "ForDeclaration",
12728
12694
  children: [c, binding],
12729
12695
  declare: c,
12696
+ binding,
12730
12697
  names: binding.names
12731
12698
  };
12732
12699
  });
12733
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R10, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
12700
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R10, fail, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
12734
12701
  var c = $1;
12735
12702
  var binding = $2;
12736
12703
  return {
12737
12704
  type: "ForDeclaration",
12738
12705
  children: [c, binding],
12739
12706
  declare: c,
12707
+ binding,
12740
12708
  names: binding.names
12741
12709
  };
12742
12710
  });
@@ -12897,7 +12865,7 @@ ${input.slice(result.pos)}
12897
12865
  return result;
12898
12866
  }
12899
12867
  }
12900
- var CaseBlock$0 = $TS($S($E($C(Samedent, _)), OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12868
+ var CaseBlock$0 = $TS($S($E($C(Nested, _)), OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12901
12869
  var clauses = $3;
12902
12870
  return {
12903
12871
  type: "CaseBlock",
@@ -13114,11 +13082,9 @@ ${input.slice(result.pos)}
13114
13082
  return result;
13115
13083
  }
13116
13084
  }
13117
- var CaseExpressionList$0 = $TS($S(ForbidMultiLineImplicitObjectLiteral, $E($S($E(_), CaseExpression, InsertColon)), $Q($S(__, Comma, CaseExpression, InsertColon)), RestoreMultiLineImplicitObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4) {
13118
- var first = $2;
13119
- var rest = $3;
13120
- if (!first)
13121
- return $skip;
13085
+ var CaseExpressionList$0 = $TS($S($S($E(_), CaseExpression, InsertColon), $Q($S(__, Comma, CaseExpression, InsertColon))), function($skip, $loc, $0, $1, $2) {
13086
+ var first = $1;
13087
+ var rest = $2;
13122
13088
  const result = rest.map(([ws, _comma, exp, col]) => {
13123
13089
  exp = insertTrimmingSpace(exp, "");
13124
13090
  if (ws.length)
@@ -13311,7 +13277,7 @@ ${input.slice(result.pos)}
13311
13277
  return result;
13312
13278
  }
13313
13279
  }
13314
- var CatchClause$0 = $TS($S($C(Samedent, _), Catch, $E(CatchBind), $C(ThenClause, BracedOrEmptyBlock)), function($skip, $loc, $0, $1, $2, $3, $4) {
13280
+ var CatchClause$0 = $TS($S($C(Nested, _), Catch, $E(CatchBind), $C(ThenClause, BracedOrEmptyBlock)), function($skip, $loc, $0, $1, $2, $3, $4) {
13315
13281
  var block = $4;
13316
13282
  return {
13317
13283
  type: "CatchClause",
@@ -13365,7 +13331,7 @@ ${input.slice(result.pos)}
13365
13331
  return result;
13366
13332
  }
13367
13333
  }
13368
- var FinallyClause$0 = $S($C(Samedent, _), Finally, $C(ThenClause, BracedOrEmptyBlock));
13334
+ var FinallyClause$0 = $S($C(Nested, _), Finally, $C(ThenClause, BracedOrEmptyBlock));
13369
13335
  function FinallyClause(state) {
13370
13336
  let eventData;
13371
13337
  if (state.events) {
@@ -13473,10 +13439,7 @@ ${input.slice(result.pos)}
13473
13439
  }
13474
13440
  var DeclarationCondition$0 = $TV(LexicalDeclaration, function($skip, $loc, $0, $1) {
13475
13441
  var dec = $0;
13476
- const ref = {
13477
- type: "Ref",
13478
- base: "ref"
13479
- };
13442
+ const ref = makeRef();
13480
13443
  const { decl, bindings } = dec;
13481
13444
  const binding = bindings[0];
13482
13445
  const { pattern, suffix, initializer, splices, thisAssignments } = binding;
@@ -13989,110 +13952,6 @@ ${input.slice(result.pos)}
13989
13952
  return result;
13990
13953
  }
13991
13954
  }
13992
- var ForbidMultiLineImplicitObjectLiteral$0 = $TV($EXPECT($L0, fail, 'ForbidMultiLineImplicitObjectLiteral ""'), function($skip, $loc, $0, $1) {
13993
- module.forbidMultiLineImplicitObjectLiteral.push(true);
13994
- });
13995
- function ForbidMultiLineImplicitObjectLiteral(state) {
13996
- let eventData;
13997
- if (state.events) {
13998
- const result = state.events.enter?.("ForbidMultiLineImplicitObjectLiteral", state);
13999
- if (result) {
14000
- if (result.cache)
14001
- return result.cache;
14002
- eventData = result.data;
14003
- }
14004
- }
14005
- if (state.tokenize) {
14006
- const result = $TOKEN("ForbidMultiLineImplicitObjectLiteral", state, ForbidMultiLineImplicitObjectLiteral$0(state));
14007
- if (state.events)
14008
- state.events.exit?.("ForbidMultiLineImplicitObjectLiteral", state, result, eventData);
14009
- return result;
14010
- } else {
14011
- const result = ForbidMultiLineImplicitObjectLiteral$0(state);
14012
- if (state.events)
14013
- state.events.exit?.("ForbidMultiLineImplicitObjectLiteral", state, result, eventData);
14014
- return result;
14015
- }
14016
- }
14017
- var AllowMultiLineImplicitObjectLiteral$0 = $TV($EXPECT($L0, fail, 'AllowMultiLineImplicitObjectLiteral ""'), function($skip, $loc, $0, $1) {
14018
- module.forbidMultiLineImplicitObjectLiteral.push(false);
14019
- });
14020
- function AllowMultiLineImplicitObjectLiteral(state) {
14021
- let eventData;
14022
- if (state.events) {
14023
- const result = state.events.enter?.("AllowMultiLineImplicitObjectLiteral", state);
14024
- if (result) {
14025
- if (result.cache)
14026
- return result.cache;
14027
- eventData = result.data;
14028
- }
14029
- }
14030
- if (state.tokenize) {
14031
- const result = $TOKEN("AllowMultiLineImplicitObjectLiteral", state, AllowMultiLineImplicitObjectLiteral$0(state));
14032
- if (state.events)
14033
- state.events.exit?.("AllowMultiLineImplicitObjectLiteral", state, result, eventData);
14034
- return result;
14035
- } else {
14036
- const result = AllowMultiLineImplicitObjectLiteral$0(state);
14037
- if (state.events)
14038
- state.events.exit?.("AllowMultiLineImplicitObjectLiteral", state, result, eventData);
14039
- return result;
14040
- }
14041
- }
14042
- var RestoreMultiLineImplicitObjectLiteral$0 = $TV($EXPECT($L0, fail, 'RestoreMultiLineImplicitObjectLiteral ""'), function($skip, $loc, $0, $1) {
14043
- module.forbidMultiLineImplicitObjectLiteral.pop();
14044
- });
14045
- function RestoreMultiLineImplicitObjectLiteral(state) {
14046
- let eventData;
14047
- if (state.events) {
14048
- const result = state.events.enter?.("RestoreMultiLineImplicitObjectLiteral", state);
14049
- if (result) {
14050
- if (result.cache)
14051
- return result.cache;
14052
- eventData = result.data;
14053
- }
14054
- }
14055
- if (state.tokenize) {
14056
- const result = $TOKEN("RestoreMultiLineImplicitObjectLiteral", state, RestoreMultiLineImplicitObjectLiteral$0(state));
14057
- if (state.events)
14058
- state.events.exit?.("RestoreMultiLineImplicitObjectLiteral", state, result, eventData);
14059
- return result;
14060
- } else {
14061
- const result = RestoreMultiLineImplicitObjectLiteral$0(state);
14062
- if (state.events)
14063
- state.events.exit?.("RestoreMultiLineImplicitObjectLiteral", state, result, eventData);
14064
- return result;
14065
- }
14066
- }
14067
- var MultiLineImplicitObjectLiteralAllowed$0 = $TV($EXPECT($L0, fail, 'MultiLineImplicitObjectLiteralAllowed ""'), function($skip, $loc, $0, $1) {
14068
- if (module.config.verbose) {
14069
- console.log("forbidMultiLineImplicitObjectLiteral:", module.forbidMultiLineImplicitObjectLiteral);
14070
- }
14071
- if (module.multiLineImplicitObjectLiteralForbidden)
14072
- return $skip;
14073
- });
14074
- function MultiLineImplicitObjectLiteralAllowed(state) {
14075
- let eventData;
14076
- if (state.events) {
14077
- const result = state.events.enter?.("MultiLineImplicitObjectLiteralAllowed", state);
14078
- if (result) {
14079
- if (result.cache)
14080
- return result.cache;
14081
- eventData = result.data;
14082
- }
14083
- }
14084
- if (state.tokenize) {
14085
- const result = $TOKEN("MultiLineImplicitObjectLiteralAllowed", state, MultiLineImplicitObjectLiteralAllowed$0(state));
14086
- if (state.events)
14087
- state.events.exit?.("MultiLineImplicitObjectLiteralAllowed", state, result, eventData);
14088
- return result;
14089
- } else {
14090
- const result = MultiLineImplicitObjectLiteralAllowed$0(state);
14091
- if (state.events)
14092
- state.events.exit?.("MultiLineImplicitObjectLiteralAllowed", state, result, eventData);
14093
- return result;
14094
- }
14095
- }
14096
13955
  var AllowNewlineBinaryOp$0 = $TV($EXPECT($L0, fail, 'AllowNewlineBinaryOp ""'), function($skip, $loc, $0, $1) {
14097
13956
  module.forbidNewlineBinaryOp.push(false);
14098
13957
  });
@@ -14197,7 +14056,7 @@ ${input.slice(result.pos)}
14197
14056
  return result;
14198
14057
  }
14199
14058
  }
14200
- var AllowAll$0 = $S(AllowTrailingMemberProperty, AllowBracedApplication, AllowIndentedApplication, AllowMultiLineImplicitObjectLiteral, AllowClassImplicitCall, AllowNewlineBinaryOp);
14059
+ var AllowAll$0 = $S(AllowTrailingMemberProperty, AllowBracedApplication, AllowIndentedApplication, AllowClassImplicitCall, AllowNewlineBinaryOp);
14201
14060
  function AllowAll(state) {
14202
14061
  let eventData;
14203
14062
  if (state.events) {
@@ -14220,7 +14079,7 @@ ${input.slice(result.pos)}
14220
14079
  return result;
14221
14080
  }
14222
14081
  }
14223
- var RestoreAll$0 = $S(RestoreTrailingMemberProperty, RestoreBracedApplication, RestoreIndentedApplication, RestoreMultiLineImplicitObjectLiteral, RestoreClassImplicitCall, RestoreNewlineBinaryOp);
14082
+ var RestoreAll$0 = $S(RestoreTrailingMemberProperty, RestoreBracedApplication, RestoreIndentedApplication, RestoreClassImplicitCall, RestoreNewlineBinaryOp);
14224
14083
  function RestoreAll(state) {
14225
14084
  let eventData;
14226
14085
  if (state.events) {
@@ -16823,7 +16682,7 @@ ${input.slice(result.pos)}
16823
16682
  }
16824
16683
  }
16825
16684
  var StatementDelimiter$0 = SemicolonDelimiter;
16826
- var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L4, fail, 'StatementDelimiter "("'), $EXPECT($L114, fail, 'StatementDelimiter "["'), $EXPECT($L115, fail, 'StatementDelimiter "`"'), $EXPECT($L59, fail, 'StatementDelimiter "+"'), $EXPECT($L20, fail, 'StatementDelimiter "-"'), $EXPECT($L55, fail, 'StatementDelimiter "*"'), $EXPECT($L56, fail, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, FatArrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L4, fail, 'StatementDelimiter "("'))))), InsertSemicolon);
16685
+ var StatementDelimiter$1 = $S($Y($S(Nested, $C($EXPECT($L4, fail, 'StatementDelimiter "("'), $EXPECT($L114, fail, 'StatementDelimiter "["'), $EXPECT($L115, fail, 'StatementDelimiter "`"'), $EXPECT($L59, fail, 'StatementDelimiter "+"'), $EXPECT($L20, fail, 'StatementDelimiter "-"'), $EXPECT($L55, fail, 'StatementDelimiter "*"'), $EXPECT($L56, fail, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, FatArrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L4, fail, 'StatementDelimiter "("'))))), InsertSemicolon);
16827
16686
  var StatementDelimiter$2 = $Y(EOS);
16828
16687
  function StatementDelimiter(state) {
16829
16688
  let eventData;
@@ -17636,7 +17495,32 @@ ${input.slice(result.pos)}
17636
17495
  return result;
17637
17496
  }
17638
17497
  }
17639
- var Else$0 = $TS($S($EXPECT($L138, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17498
+ var Each$0 = $TS($S($EXPECT($L138, fail, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17499
+ return { $loc, token: $1 };
17500
+ });
17501
+ function Each(state) {
17502
+ let eventData;
17503
+ if (state.events) {
17504
+ const result = state.events.enter?.("Each", state);
17505
+ if (result) {
17506
+ if (result.cache)
17507
+ return result.cache;
17508
+ eventData = result.data;
17509
+ }
17510
+ }
17511
+ if (state.tokenize) {
17512
+ const result = $TOKEN("Each", state, Each$0(state));
17513
+ if (state.events)
17514
+ state.events.exit?.("Each", state, result, eventData);
17515
+ return result;
17516
+ } else {
17517
+ const result = Each$0(state);
17518
+ if (state.events)
17519
+ state.events.exit?.("Each", state, result, eventData);
17520
+ return result;
17521
+ }
17522
+ }
17523
+ var Else$0 = $TS($S($EXPECT($L139, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17640
17524
  return { $loc, token: $1 };
17641
17525
  });
17642
17526
  function Else(state) {
@@ -17686,7 +17570,7 @@ ${input.slice(result.pos)}
17686
17570
  return result;
17687
17571
  }
17688
17572
  }
17689
- var Export$0 = $TS($S($EXPECT($L139, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17573
+ var Export$0 = $TS($S($EXPECT($L140, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17690
17574
  return { $loc, token: $1 };
17691
17575
  });
17692
17576
  function Export(state) {
@@ -17711,7 +17595,7 @@ ${input.slice(result.pos)}
17711
17595
  return result;
17712
17596
  }
17713
17597
  }
17714
- var Extends$0 = $TS($S($EXPECT($L140, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17598
+ var Extends$0 = $TS($S($EXPECT($L141, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17715
17599
  return { $loc, token: $1 };
17716
17600
  });
17717
17601
  function Extends(state) {
@@ -17736,7 +17620,7 @@ ${input.slice(result.pos)}
17736
17620
  return result;
17737
17621
  }
17738
17622
  }
17739
- var Finally$0 = $TS($S($EXPECT($L141, fail, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17623
+ var Finally$0 = $TS($S($EXPECT($L142, fail, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17740
17624
  return { $loc, token: $1 };
17741
17625
  });
17742
17626
  function Finally(state) {
@@ -17761,7 +17645,7 @@ ${input.slice(result.pos)}
17761
17645
  return result;
17762
17646
  }
17763
17647
  }
17764
- var For$0 = $TS($S($EXPECT($L142, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17648
+ var For$0 = $TS($S($EXPECT($L143, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17765
17649
  return { $loc, token: $1 };
17766
17650
  });
17767
17651
  function For(state) {
@@ -17786,7 +17670,7 @@ ${input.slice(result.pos)}
17786
17670
  return result;
17787
17671
  }
17788
17672
  }
17789
- var From$0 = $TS($S($EXPECT($L143, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17673
+ var From$0 = $TS($S($EXPECT($L144, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17790
17674
  return { $loc, token: $1 };
17791
17675
  });
17792
17676
  function From(state) {
@@ -17811,7 +17695,7 @@ ${input.slice(result.pos)}
17811
17695
  return result;
17812
17696
  }
17813
17697
  }
17814
- var Function$0 = $TS($S($EXPECT($L144, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17698
+ var Function$0 = $TS($S($EXPECT($L145, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17815
17699
  return { $loc, token: $1 };
17816
17700
  });
17817
17701
  function Function(state) {
@@ -17836,7 +17720,7 @@ ${input.slice(result.pos)}
17836
17720
  return result;
17837
17721
  }
17838
17722
  }
17839
- var GetOrSet$0 = $TS($S($C($EXPECT($L145, fail, 'GetOrSet "get"'), $EXPECT($L146, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17723
+ var GetOrSet$0 = $TS($S($C($EXPECT($L146, fail, 'GetOrSet "get"'), $EXPECT($L147, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17840
17724
  return { $loc, token: $1, type: "GetOrSet" };
17841
17725
  });
17842
17726
  function GetOrSet(state) {
@@ -17861,7 +17745,7 @@ ${input.slice(result.pos)}
17861
17745
  return result;
17862
17746
  }
17863
17747
  }
17864
- var If$0 = $TV($TEXT($S($EXPECT($L147, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L11, fail, 'If " "')))), function($skip, $loc, $0, $1) {
17748
+ var If$0 = $TV($TEXT($S($EXPECT($L148, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L11, fail, 'If " "')))), function($skip, $loc, $0, $1) {
17865
17749
  return { $loc, token: $1 };
17866
17750
  });
17867
17751
  function If(state) {
@@ -17911,7 +17795,7 @@ ${input.slice(result.pos)}
17911
17795
  return result;
17912
17796
  }
17913
17797
  }
17914
- var In$0 = $TS($S($EXPECT($L148, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17798
+ var In$0 = $TS($S($EXPECT($L149, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17915
17799
  return { $loc, token: $1 };
17916
17800
  });
17917
17801
  function In(state) {
@@ -17936,7 +17820,7 @@ ${input.slice(result.pos)}
17936
17820
  return result;
17937
17821
  }
17938
17822
  }
17939
- var LetOrConst$0 = $TS($S($C($EXPECT($L149, fail, 'LetOrConst "let"'), $EXPECT($L150, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17823
+ var LetOrConst$0 = $TS($S($C($EXPECT($L150, fail, 'LetOrConst "let"'), $EXPECT($L151, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17940
17824
  return { $loc, token: $1 };
17941
17825
  });
17942
17826
  function LetOrConst(state) {
@@ -17961,7 +17845,7 @@ ${input.slice(result.pos)}
17961
17845
  return result;
17962
17846
  }
17963
17847
  }
17964
- var Const$0 = $TS($S($EXPECT($L150, fail, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17848
+ var Const$0 = $TS($S($EXPECT($L151, fail, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17965
17849
  return { $loc, token: $1 };
17966
17850
  });
17967
17851
  function Const(state) {
@@ -17986,7 +17870,7 @@ ${input.slice(result.pos)}
17986
17870
  return result;
17987
17871
  }
17988
17872
  }
17989
- var Is$0 = $TS($S($EXPECT($L151, fail, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17873
+ var Is$0 = $TS($S($EXPECT($L152, fail, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17990
17874
  return { $loc, token: $1 };
17991
17875
  });
17992
17876
  function Is(state) {
@@ -18035,7 +17919,7 @@ ${input.slice(result.pos)}
18035
17919
  return result;
18036
17920
  }
18037
17921
  }
18038
- var Loop$0 = $TS($S($EXPECT($L152, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17922
+ var Loop$0 = $TS($S($EXPECT($L153, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18039
17923
  return { $loc, token: "while(true)" };
18040
17924
  });
18041
17925
  function Loop(state) {
@@ -18060,7 +17944,7 @@ ${input.slice(result.pos)}
18060
17944
  return result;
18061
17945
  }
18062
17946
  }
18063
- var New$0 = $TS($S($EXPECT($L153, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17947
+ var New$0 = $TS($S($EXPECT($L154, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18064
17948
  return { $loc, token: $1 };
18065
17949
  });
18066
17950
  function New(state) {
@@ -18085,7 +17969,7 @@ ${input.slice(result.pos)}
18085
17969
  return result;
18086
17970
  }
18087
17971
  }
18088
- var Not$0 = $TS($S($EXPECT($L154, fail, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L12, fail, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
17972
+ var Not$0 = $TS($S($EXPECT($L155, fail, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L12, fail, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
18089
17973
  return { $loc, token: "!" };
18090
17974
  });
18091
17975
  function Not(state) {
@@ -18135,7 +18019,7 @@ ${input.slice(result.pos)}
18135
18019
  return result;
18136
18020
  }
18137
18021
  }
18138
- var OpenAngleBracket$0 = $TV($EXPECT($L155, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
18022
+ var OpenAngleBracket$0 = $TV($EXPECT($L156, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
18139
18023
  return { $loc, token: $1 };
18140
18024
  });
18141
18025
  function OpenAngleBracket(state) {
@@ -18235,7 +18119,7 @@ ${input.slice(result.pos)}
18235
18119
  return result;
18236
18120
  }
18237
18121
  }
18238
- var Operator$0 = $TS($S($EXPECT($L156, fail, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18122
+ var Operator$0 = $TS($S($EXPECT($L157, fail, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18239
18123
  return { $loc, token: $1 };
18240
18124
  });
18241
18125
  function Operator(state) {
@@ -18260,7 +18144,7 @@ ${input.slice(result.pos)}
18260
18144
  return result;
18261
18145
  }
18262
18146
  }
18263
- var Public$0 = $TS($S($EXPECT($L157, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18147
+ var Public$0 = $TS($S($EXPECT($L158, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18264
18148
  return { $loc, token: $1 };
18265
18149
  });
18266
18150
  function Public(state) {
@@ -18285,7 +18169,7 @@ ${input.slice(result.pos)}
18285
18169
  return result;
18286
18170
  }
18287
18171
  }
18288
- var Private$0 = $TS($S($EXPECT($L158, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18172
+ var Private$0 = $TS($S($EXPECT($L159, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18289
18173
  return { $loc, token: $1 };
18290
18174
  });
18291
18175
  function Private(state) {
@@ -18310,7 +18194,7 @@ ${input.slice(result.pos)}
18310
18194
  return result;
18311
18195
  }
18312
18196
  }
18313
- var Protected$0 = $TS($S($EXPECT($L159, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18197
+ var Protected$0 = $TS($S($EXPECT($L160, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18314
18198
  return { $loc, token: $1 };
18315
18199
  });
18316
18200
  function Protected(state) {
@@ -18335,13 +18219,13 @@ ${input.slice(result.pos)}
18335
18219
  return result;
18336
18220
  }
18337
18221
  }
18338
- var Pipe$0 = $TV($C($EXPECT($L160, fail, 'Pipe "||>"'), $EXPECT($L161, fail, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
18222
+ var Pipe$0 = $TV($C($EXPECT($L161, fail, 'Pipe "||>"'), $EXPECT($L162, fail, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
18339
18223
  return { $loc, token: "||>" };
18340
18224
  });
18341
- var Pipe$1 = $TV($C($EXPECT($L162, fail, 'Pipe "|>="'), $EXPECT($L163, fail, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
18225
+ var Pipe$1 = $TV($C($EXPECT($L163, fail, 'Pipe "|>="'), $EXPECT($L164, fail, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
18342
18226
  return { $loc, token: "|>=" };
18343
18227
  });
18344
- var Pipe$2 = $TV($C($EXPECT($L164, fail, 'Pipe "|>"'), $EXPECT($L165, fail, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
18228
+ var Pipe$2 = $TV($C($EXPECT($L165, fail, 'Pipe "|>"'), $EXPECT($L166, fail, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
18345
18229
  return { $loc, token: "|>" };
18346
18230
  });
18347
18231
  function Pipe(state) {
@@ -18391,7 +18275,7 @@ ${input.slice(result.pos)}
18391
18275
  return result;
18392
18276
  }
18393
18277
  }
18394
- var Readonly$0 = $TS($S($EXPECT($L166, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18278
+ var Readonly$0 = $TS($S($EXPECT($L167, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18395
18279
  return { $loc, token: $1, ts: true };
18396
18280
  });
18397
18281
  function Readonly(state) {
@@ -18416,7 +18300,7 @@ ${input.slice(result.pos)}
18416
18300
  return result;
18417
18301
  }
18418
18302
  }
18419
- var Return$0 = $TS($S($EXPECT($L167, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18303
+ var Return$0 = $TS($S($EXPECT($L168, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18420
18304
  return { $loc, token: $1 };
18421
18305
  });
18422
18306
  function Return(state) {
@@ -18441,7 +18325,7 @@ ${input.slice(result.pos)}
18441
18325
  return result;
18442
18326
  }
18443
18327
  }
18444
- var Satisfies$0 = $TS($S($EXPECT($L168, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18328
+ var Satisfies$0 = $TS($S($EXPECT($L169, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18445
18329
  return { $loc, token: $1 };
18446
18330
  });
18447
18331
  function Satisfies(state) {
@@ -18491,7 +18375,7 @@ ${input.slice(result.pos)}
18491
18375
  return result;
18492
18376
  }
18493
18377
  }
18494
- var SingleQuote$0 = $TV($EXPECT($L169, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
18378
+ var SingleQuote$0 = $TV($EXPECT($L170, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
18495
18379
  return { $loc, token: $1 };
18496
18380
  });
18497
18381
  function SingleQuote(state) {
@@ -18541,7 +18425,7 @@ ${input.slice(result.pos)}
18541
18425
  return result;
18542
18426
  }
18543
18427
  }
18544
- var Static$0 = $TS($S($EXPECT($L170, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18428
+ var Static$0 = $TS($S($EXPECT($L171, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18545
18429
  return { $loc, token: $1 };
18546
18430
  });
18547
18431
  var Static$1 = $TS($S($EXPECT($L118, fail, 'Static "@"'), $N($C($EXPECT($L4, fail, 'Static "("'), $EXPECT($L118, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
@@ -18569,7 +18453,7 @@ ${input.slice(result.pos)}
18569
18453
  return result;
18570
18454
  }
18571
18455
  }
18572
- var SubstitutionStart$0 = $TV($EXPECT($L171, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
18456
+ var SubstitutionStart$0 = $TV($EXPECT($L172, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
18573
18457
  return { $loc, token: $1 };
18574
18458
  });
18575
18459
  function SubstitutionStart(state) {
@@ -18594,7 +18478,7 @@ ${input.slice(result.pos)}
18594
18478
  return result;
18595
18479
  }
18596
18480
  }
18597
- var Switch$0 = $TS($S($EXPECT($L172, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18481
+ var Switch$0 = $TS($S($EXPECT($L173, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18598
18482
  return { $loc, token: $1 };
18599
18483
  });
18600
18484
  function Switch(state) {
@@ -18619,7 +18503,7 @@ ${input.slice(result.pos)}
18619
18503
  return result;
18620
18504
  }
18621
18505
  }
18622
- var Target$0 = $TS($S($EXPECT($L173, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18506
+ var Target$0 = $TS($S($EXPECT($L174, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18623
18507
  return { $loc, token: $1 };
18624
18508
  });
18625
18509
  function Target(state) {
@@ -18644,7 +18528,7 @@ ${input.slice(result.pos)}
18644
18528
  return result;
18645
18529
  }
18646
18530
  }
18647
- var Then$0 = $TS($S(__, $EXPECT($L174, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
18531
+ var Then$0 = $TS($S(__, $EXPECT($L175, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
18648
18532
  return { $loc, token: "" };
18649
18533
  });
18650
18534
  function Then(state) {
@@ -18669,7 +18553,7 @@ ${input.slice(result.pos)}
18669
18553
  return result;
18670
18554
  }
18671
18555
  }
18672
- var This$0 = $TS($S($EXPECT($L175, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18556
+ var This$0 = $TS($S($EXPECT($L176, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18673
18557
  return { $loc, token: $1 };
18674
18558
  });
18675
18559
  function This(state) {
@@ -18694,7 +18578,7 @@ ${input.slice(result.pos)}
18694
18578
  return result;
18695
18579
  }
18696
18580
  }
18697
- var Throw$0 = $TS($S($EXPECT($L176, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18581
+ var Throw$0 = $TS($S($EXPECT($L177, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18698
18582
  return { $loc, token: $1 };
18699
18583
  });
18700
18584
  function Throw(state) {
@@ -18719,7 +18603,7 @@ ${input.slice(result.pos)}
18719
18603
  return result;
18720
18604
  }
18721
18605
  }
18722
- var TripleDoubleQuote$0 = $TV($EXPECT($L177, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
18606
+ var TripleDoubleQuote$0 = $TV($EXPECT($L178, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
18723
18607
  return { $loc, token: "`" };
18724
18608
  });
18725
18609
  function TripleDoubleQuote(state) {
@@ -18744,7 +18628,7 @@ ${input.slice(result.pos)}
18744
18628
  return result;
18745
18629
  }
18746
18630
  }
18747
- var TripleSingleQuote$0 = $TV($EXPECT($L178, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
18631
+ var TripleSingleQuote$0 = $TV($EXPECT($L179, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
18748
18632
  return { $loc, token: "`" };
18749
18633
  });
18750
18634
  function TripleSingleQuote(state) {
@@ -18769,7 +18653,7 @@ ${input.slice(result.pos)}
18769
18653
  return result;
18770
18654
  }
18771
18655
  }
18772
- var TripleSlash$0 = $TV($EXPECT($L179, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
18656
+ var TripleSlash$0 = $TV($EXPECT($L180, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
18773
18657
  return { $loc, token: "/" };
18774
18658
  });
18775
18659
  function TripleSlash(state) {
@@ -18794,7 +18678,7 @@ ${input.slice(result.pos)}
18794
18678
  return result;
18795
18679
  }
18796
18680
  }
18797
- var TripleTick$0 = $TV($EXPECT($L180, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
18681
+ var TripleTick$0 = $TV($EXPECT($L181, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
18798
18682
  return { $loc, token: "`" };
18799
18683
  });
18800
18684
  function TripleTick(state) {
@@ -18819,7 +18703,7 @@ ${input.slice(result.pos)}
18819
18703
  return result;
18820
18704
  }
18821
18705
  }
18822
- var Try$0 = $TS($S($EXPECT($L181, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18706
+ var Try$0 = $TS($S($EXPECT($L182, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18823
18707
  return { $loc, token: $1 };
18824
18708
  });
18825
18709
  function Try(state) {
@@ -18844,7 +18728,7 @@ ${input.slice(result.pos)}
18844
18728
  return result;
18845
18729
  }
18846
18730
  }
18847
- var Typeof$0 = $TS($S($EXPECT($L182, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18731
+ var Typeof$0 = $TS($S($EXPECT($L183, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18848
18732
  return { $loc, token: $1 };
18849
18733
  });
18850
18734
  function Typeof(state) {
@@ -18869,7 +18753,7 @@ ${input.slice(result.pos)}
18869
18753
  return result;
18870
18754
  }
18871
18755
  }
18872
- var Unless$0 = $TS($S($EXPECT($L183, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18756
+ var Unless$0 = $TS($S($EXPECT($L184, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18873
18757
  return { $loc, token: $1 };
18874
18758
  });
18875
18759
  function Unless(state) {
@@ -18894,7 +18778,7 @@ ${input.slice(result.pos)}
18894
18778
  return result;
18895
18779
  }
18896
18780
  }
18897
- var Until$0 = $TS($S($EXPECT($L184, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18781
+ var Until$0 = $TS($S($EXPECT($L185, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18898
18782
  return { $loc, token: $1 };
18899
18783
  });
18900
18784
  function Until(state) {
@@ -18919,7 +18803,7 @@ ${input.slice(result.pos)}
18919
18803
  return result;
18920
18804
  }
18921
18805
  }
18922
- var Var$0 = $TS($S($EXPECT($L185, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18806
+ var Var$0 = $TS($S($EXPECT($L186, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18923
18807
  return { $loc, token: $1 };
18924
18808
  });
18925
18809
  function Var(state) {
@@ -18944,7 +18828,7 @@ ${input.slice(result.pos)}
18944
18828
  return result;
18945
18829
  }
18946
18830
  }
18947
- var Void$0 = $TS($S($EXPECT($L186, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18831
+ var Void$0 = $TS($S($EXPECT($L187, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18948
18832
  return { $loc, token: $1 };
18949
18833
  });
18950
18834
  function Void(state) {
@@ -18969,7 +18853,7 @@ ${input.slice(result.pos)}
18969
18853
  return result;
18970
18854
  }
18971
18855
  }
18972
- var When$0 = $TS($S($EXPECT($L187, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18856
+ var When$0 = $TS($S($EXPECT($L188, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18973
18857
  return { $loc, token: "case" };
18974
18858
  });
18975
18859
  function When(state) {
@@ -18994,7 +18878,7 @@ ${input.slice(result.pos)}
18994
18878
  return result;
18995
18879
  }
18996
18880
  }
18997
- var While$0 = $TS($S($EXPECT($L188, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18881
+ var While$0 = $TS($S($EXPECT($L189, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18998
18882
  return { $loc, token: $1 };
18999
18883
  });
19000
18884
  function While(state) {
@@ -19019,7 +18903,7 @@ ${input.slice(result.pos)}
19019
18903
  return result;
19020
18904
  }
19021
18905
  }
19022
- var Yield$0 = $TS($S($EXPECT($L189, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18906
+ var Yield$0 = $TS($S($EXPECT($L190, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
19023
18907
  return { $loc, token: $1, type: "Yield" };
19024
18908
  });
19025
18909
  function Yield(state) {
@@ -19044,7 +18928,7 @@ ${input.slice(result.pos)}
19044
18928
  return result;
19045
18929
  }
19046
18930
  }
19047
- var JSXImplicitFragment$0 = $TS($S(JSXTag, $Q($S(Samedent, JSXTag))), function($skip, $loc, $0, $1, $2) {
18931
+ var JSXImplicitFragment$0 = $TS($S(JSXTag, $Q($S(Nested, JSXTag))), function($skip, $loc, $0, $1, $2) {
19048
18932
  const jsx = $2.length === 0 ? $1 : {
19049
18933
  type: "JSXFragment",
19050
18934
  children: [
@@ -19164,7 +19048,7 @@ ${input.slice(result.pos)}
19164
19048
  return result;
19165
19049
  }
19166
19050
  }
19167
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L155, fail, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L190, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
19051
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L156, fail, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L191, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
19168
19052
  return { type: "JSXElement", children: $0, tag: $2 };
19169
19053
  });
19170
19054
  function JSXSelfClosingElement(state) {
@@ -19240,7 +19124,7 @@ ${input.slice(result.pos)}
19240
19124
  return result;
19241
19125
  }
19242
19126
  }
19243
- var JSXOpeningElement$0 = $S($EXPECT($L155, fail, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L34, fail, 'JSXOpeningElement ">"'));
19127
+ var JSXOpeningElement$0 = $S($EXPECT($L156, fail, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L34, fail, 'JSXOpeningElement ">"'));
19244
19128
  function JSXOpeningElement(state) {
19245
19129
  let eventData;
19246
19130
  if (state.events) {
@@ -19292,7 +19176,7 @@ ${input.slice(result.pos)}
19292
19176
  return result;
19293
19177
  }
19294
19178
  }
19295
- var JSXClosingElement$0 = $S($EXPECT($L191, fail, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L34, fail, 'JSXClosingElement ">"'));
19179
+ var JSXClosingElement$0 = $S($EXPECT($L192, fail, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L34, fail, 'JSXClosingElement ">"'));
19296
19180
  function JSXClosingElement(state) {
19297
19181
  let eventData;
19298
19182
  if (state.events) {
@@ -19330,7 +19214,7 @@ ${input.slice(result.pos)}
19330
19214
  ];
19331
19215
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
19332
19216
  });
19333
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L192, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
19217
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L193, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
19334
19218
  var children = $3;
19335
19219
  $0 = $0.slice(1);
19336
19220
  return {
@@ -19361,7 +19245,7 @@ ${input.slice(result.pos)}
19361
19245
  return result;
19362
19246
  }
19363
19247
  }
19364
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L192, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
19248
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L193, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
19365
19249
  module.JSXTagStack.push("");
19366
19250
  return $1;
19367
19251
  });
@@ -19415,7 +19299,7 @@ ${input.slice(result.pos)}
19415
19299
  return result;
19416
19300
  }
19417
19301
  }
19418
- var JSXClosingFragment$0 = $EXPECT($L193, fail, 'JSXClosingFragment "</>"');
19302
+ var JSXClosingFragment$0 = $EXPECT($L194, fail, 'JSXClosingFragment "</>"');
19419
19303
  function JSXClosingFragment(state) {
19420
19304
  let eventData;
19421
19305
  if (state.events) {
@@ -20384,7 +20268,7 @@ ${input.slice(result.pos)}
20384
20268
  return result;
20385
20269
  }
20386
20270
  }
20387
- var JSXComment$0 = $TS($S($EXPECT($L194, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L195, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
20271
+ var JSXComment$0 = $TS($S($EXPECT($L195, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L196, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
20388
20272
  return ["{/*", $2, "*/}"];
20389
20273
  });
20390
20274
  function JSXComment(state) {
@@ -20564,7 +20448,7 @@ ${input.slice(result.pos)}
20564
20448
  return result;
20565
20449
  }
20566
20450
  }
20567
- var TypeDeclarationRest$0 = $S(TypeKeyword, $E(_), IdentifierName, $E(TypeParameters), __, Equals, $C($S($E(_), Type), $S(__, Type)));
20451
+ var TypeDeclarationRest$0 = $S(TypeKeyword, $E(_), IdentifierName, $E(TypeParameters), OptionalEquals, $C($S($E(_), Type), $S(__, Type)));
20568
20452
  var TypeDeclarationRest$1 = $S(Interface, $E(_), IdentifierName, $E(TypeParameters), $E(InterfaceExtendsClause), InterfaceBlock);
20569
20453
  var TypeDeclarationRest$2 = $S(Namespace, $E(_), IdentifierName, ModuleBlock);
20570
20454
  var TypeDeclarationRest$3 = FunctionSignature;
@@ -20590,6 +20474,32 @@ ${input.slice(result.pos)}
20590
20474
  return result;
20591
20475
  }
20592
20476
  }
20477
+ var OptionalEquals$0 = $S(__, Equals);
20478
+ var OptionalEquals$1 = $T($S($Y(IndentedFurther), InsertSpaceEquals), function(value) {
20479
+ return value[1];
20480
+ });
20481
+ function OptionalEquals(state) {
20482
+ let eventData;
20483
+ if (state.events) {
20484
+ const result = state.events.enter?.("OptionalEquals", state);
20485
+ if (result) {
20486
+ if (result.cache)
20487
+ return result.cache;
20488
+ eventData = result.data;
20489
+ }
20490
+ }
20491
+ if (state.tokenize) {
20492
+ const result = $TOKEN("OptionalEquals", state, OptionalEquals$0(state) || OptionalEquals$1(state));
20493
+ if (state.events)
20494
+ state.events.exit?.("OptionalEquals", state, result, eventData);
20495
+ return result;
20496
+ } else {
20497
+ const result = OptionalEquals$0(state) || OptionalEquals$1(state);
20498
+ if (state.events)
20499
+ state.events.exit?.("OptionalEquals", state, result, eventData);
20500
+ return result;
20501
+ }
20502
+ }
20593
20503
  var TypeLexicalDeclaration$0 = $S(__, LetOrConstOrVar, TypeDeclarationBinding, $Q($S(CommaDelimiter, __, TypeDeclarationBinding)));
20594
20504
  var TypeLexicalDeclaration$1 = $S(__, EnumDeclaration);
20595
20505
  var TypeLexicalDeclaration$2 = ClassSignature;
@@ -20687,7 +20597,7 @@ ${input.slice(result.pos)}
20687
20597
  return result;
20688
20598
  }
20689
20599
  }
20690
- var TypeKeyword$0 = $TS($S($EXPECT($L196, fail, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20600
+ var TypeKeyword$0 = $TS($S($EXPECT($L197, fail, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20691
20601
  return { $loc, token: $1 };
20692
20602
  });
20693
20603
  function TypeKeyword(state) {
@@ -20712,7 +20622,7 @@ ${input.slice(result.pos)}
20712
20622
  return result;
20713
20623
  }
20714
20624
  }
20715
- var Enum$0 = $TS($S($EXPECT($L197, fail, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20625
+ var Enum$0 = $TS($S($EXPECT($L198, fail, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20716
20626
  return { $loc, token: $1 };
20717
20627
  });
20718
20628
  function Enum(state) {
@@ -20737,7 +20647,7 @@ ${input.slice(result.pos)}
20737
20647
  return result;
20738
20648
  }
20739
20649
  }
20740
- var Interface$0 = $TS($S($EXPECT($L198, fail, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20650
+ var Interface$0 = $TS($S($EXPECT($L199, fail, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20741
20651
  return { $loc, token: $1 };
20742
20652
  });
20743
20653
  function Interface(state) {
@@ -20762,7 +20672,7 @@ ${input.slice(result.pos)}
20762
20672
  return result;
20763
20673
  }
20764
20674
  }
20765
- var Global$0 = $TS($S($EXPECT($L199, fail, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20675
+ var Global$0 = $TS($S($EXPECT($L200, fail, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20766
20676
  return { $loc, token: $1 };
20767
20677
  });
20768
20678
  function Global(state) {
@@ -20787,7 +20697,7 @@ ${input.slice(result.pos)}
20787
20697
  return result;
20788
20698
  }
20789
20699
  }
20790
- var Module$0 = $TS($S($EXPECT($L200, fail, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20700
+ var Module$0 = $TS($S($EXPECT($L201, fail, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20791
20701
  return { $loc, token: $1 };
20792
20702
  });
20793
20703
  function Module(state) {
@@ -20812,7 +20722,7 @@ ${input.slice(result.pos)}
20812
20722
  return result;
20813
20723
  }
20814
20724
  }
20815
- var Namespace$0 = $TS($S($EXPECT($L201, fail, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20725
+ var Namespace$0 = $TS($S($EXPECT($L202, fail, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20816
20726
  return { $loc, token: $1 };
20817
20727
  });
20818
20728
  function Namespace(state) {
@@ -21506,7 +21416,7 @@ ${input.slice(result.pos)}
21506
21416
  return result;
21507
21417
  }
21508
21418
  }
21509
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L202, fail, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
21419
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L203, fail, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
21510
21420
  var asserts = $1;
21511
21421
  var t = $2;
21512
21422
  if (asserts) {
@@ -21546,7 +21456,7 @@ ${input.slice(result.pos)}
21546
21456
  return result;
21547
21457
  }
21548
21458
  }
21549
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L151, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
21459
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L152, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
21550
21460
  var lhs = $1;
21551
21461
  var rhs = $2;
21552
21462
  if (!rhs)
@@ -21688,10 +21598,10 @@ ${input.slice(result.pos)}
21688
21598
  return result;
21689
21599
  }
21690
21600
  }
21691
- var TypeUnaryOp$0 = $S($EXPECT($L203, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
21692
- var TypeUnaryOp$1 = $S($EXPECT($L182, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
21693
- var TypeUnaryOp$2 = $S($EXPECT($L204, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
21694
- var TypeUnaryOp$3 = $S($EXPECT($L166, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
21601
+ var TypeUnaryOp$0 = $S($EXPECT($L204, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
21602
+ var TypeUnaryOp$1 = $S($EXPECT($L183, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
21603
+ var TypeUnaryOp$2 = $S($EXPECT($L205, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
21604
+ var TypeUnaryOp$3 = $S($EXPECT($L167, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
21695
21605
  function TypeUnaryOp(state) {
21696
21606
  let eventData;
21697
21607
  if (state.events) {
@@ -21737,10 +21647,10 @@ ${input.slice(result.pos)}
21737
21647
  return result;
21738
21648
  }
21739
21649
  }
21740
- var TypePrimary$0 = InterfaceBlock;
21741
- var TypePrimary$1 = $S($E(_), FunctionType);
21742
- var TypePrimary$2 = $S($E(_), InlineInterfaceLiteral);
21743
- var TypePrimary$3 = $S($E(_), TypeTuple);
21650
+ var TypePrimary$0 = $S($E(_), TypeTuple);
21651
+ var TypePrimary$1 = InterfaceBlock;
21652
+ var TypePrimary$2 = $S($E(_), FunctionType);
21653
+ var TypePrimary$3 = $S($E(_), InlineInterfaceLiteral);
21744
21654
  var TypePrimary$4 = $S($E(_), ImportType);
21745
21655
  var TypePrimary$5 = $TS($S($E(_), TypeLiteral), function($skip, $loc, $0, $1, $2) {
21746
21656
  var t = $2;
@@ -21853,25 +21763,34 @@ ${input.slice(result.pos)}
21853
21763
  return result;
21854
21764
  }
21855
21765
  }
21856
- var TypeElement$0 = $TS($S(__, IdentifierName, $E(_), DotDotDot, $S(__, $E($S(QuestionMark, $E(_))), Colon, __), Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
21766
+ var TypeElement$0 = $TS($S(__, $E($S(DotDotDot, __)), IdentifierName, $E($S($E(_), DotDotDot)), $S(__, $E($S(QuestionMark, $E(_))), Colon, __), Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
21857
21767
  var ws = $1;
21858
- var name = $2;
21859
- var space = $3;
21860
- var dots = $4;
21768
+ var dots1 = $2;
21769
+ var name = $3;
21770
+ var dots2 = $4;
21861
21771
  var colon = $5;
21862
21772
  var type = $6;
21863
- return [ws, dots, space, name, colon, type];
21773
+ let dots = dots1 || dots2 && [dots2[1], dots2[0]];
21774
+ if (dots1 && dots2) {
21775
+ dots = [dots, {
21776
+ type: "Error",
21777
+ message: "... both before and after identifier"
21778
+ }];
21779
+ }
21780
+ return [ws, dots, name, colon, type];
21864
21781
  });
21865
- var TypeElement$1 = $TS($S(Type, $E(_), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
21782
+ var TypeElement$1 = $S(__, DotDotDot, __, Type);
21783
+ var TypeElement$2 = $TS($S(Type, $E($S($E(_), DotDotDot))), function($skip, $loc, $0, $1, $2) {
21866
21784
  var type = $1;
21867
- var space = $2;
21868
- var dots = $3;
21785
+ var spaceDots = $2;
21786
+ if (!spaceDots)
21787
+ return type;
21788
+ const [space, dots] = spaceDots;
21869
21789
  const ws = getTrimmingSpace(type);
21870
21790
  if (!ws)
21871
21791
  return [dots, space, type];
21872
21792
  return [ws, dots, space, insertTrimmingSpace(type, "")];
21873
21793
  });
21874
- var TypeElement$2 = $S($E($S(__, DotDotDot)), $E($S(__, IdentifierName, __, $E($S(QuestionMark, $E(_))), Colon, __)), Type);
21875
21794
  function TypeElement(state) {
21876
21795
  let eventData;
21877
21796
  if (state.events) {
@@ -21945,7 +21864,7 @@ ${input.slice(result.pos)}
21945
21864
  return result;
21946
21865
  }
21947
21866
  }
21948
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L140, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
21867
+ var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L141, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
21949
21868
  if ($2)
21950
21869
  return $0;
21951
21870
  return $1;
@@ -22077,10 +21996,10 @@ ${input.slice(result.pos)}
22077
21996
  }
22078
21997
  var TypeLiteral$0 = TypeTemplateLiteral;
22079
21998
  var TypeLiteral$1 = Literal;
22080
- var TypeLiteral$2 = $TS($S($EXPECT($L186, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
21999
+ var TypeLiteral$2 = $TS($S($EXPECT($L187, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
22081
22000
  return { type: "VoidType", $loc, token: $1 };
22082
22001
  });
22083
- var TypeLiteral$3 = $TV($EXPECT($L205, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
22002
+ var TypeLiteral$3 = $TV($EXPECT($L206, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
22084
22003
  return { $loc, token: "[]" };
22085
22004
  });
22086
22005
  function TypeLiteral(state) {
@@ -22261,7 +22180,7 @@ ${input.slice(result.pos)}
22261
22180
  return result;
22262
22181
  }
22263
22182
  }
22264
- var TypeArguments$0 = $TS($S($EXPECT($L155, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L34, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
22183
+ var TypeArguments$0 = $TS($S($EXPECT($L156, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L34, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
22265
22184
  var args = $2;
22266
22185
  return { ts: true, types: args.map(([, t]) => t), children: $0 };
22267
22186
  });
@@ -22333,7 +22252,7 @@ ${input.slice(result.pos)}
22333
22252
  return result;
22334
22253
  }
22335
22254
  }
22336
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L155, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L34, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
22255
+ var TypeParameters$0 = $TS($S($E(_), $EXPECT($L156, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L34, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
22337
22256
  var parameters = $3;
22338
22257
  return {
22339
22258
  type: "TypeParameters",
@@ -22364,7 +22283,7 @@ ${input.slice(result.pos)}
22364
22283
  return result;
22365
22284
  }
22366
22285
  }
22367
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L150, fail, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
22286
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L151, fail, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
22368
22287
  function TypeParameter(state) {
22369
22288
  let eventData;
22370
22289
  if (state.events) {
@@ -22387,7 +22306,7 @@ ${input.slice(result.pos)}
22387
22306
  return result;
22388
22307
  }
22389
22308
  }
22390
- var TypeConstraint$0 = $S(__, $EXPECT($L140, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
22309
+ var TypeConstraint$0 = $S(__, $EXPECT($L141, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
22391
22310
  function TypeConstraint(state) {
22392
22311
  let eventData;
22393
22312
  if (state.events) {
@@ -22538,7 +22457,7 @@ ${input.slice(result.pos)}
22538
22457
  return result;
22539
22458
  }
22540
22459
  }
22541
- var CivetPrologueContent$0 = $TS($S($EXPECT($L206, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R63, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
22460
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L207, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R63, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
22542
22461
  var options = $3;
22543
22462
  return {
22544
22463
  type: "CivetPrologue",
@@ -22974,6 +22893,31 @@ ${input.slice(result.pos)}
22974
22893
  return result;
22975
22894
  }
22976
22895
  }
22896
+ var InsertSpaceEquals$0 = $TV($EXPECT($L0, fail, 'InsertSpaceEquals ""'), function($skip, $loc, $0, $1) {
22897
+ return { $loc, token: " =" };
22898
+ });
22899
+ function InsertSpaceEquals(state) {
22900
+ let eventData;
22901
+ if (state.events) {
22902
+ const result = state.events.enter?.("InsertSpaceEquals", state);
22903
+ if (result) {
22904
+ if (result.cache)
22905
+ return result.cache;
22906
+ eventData = result.data;
22907
+ }
22908
+ }
22909
+ if (state.tokenize) {
22910
+ const result = $TOKEN("InsertSpaceEquals", state, InsertSpaceEquals$0(state));
22911
+ if (state.events)
22912
+ state.events.exit?.("InsertSpaceEquals", state, result, eventData);
22913
+ return result;
22914
+ } else {
22915
+ const result = InsertSpaceEquals$0(state);
22916
+ if (state.events)
22917
+ state.events.exit?.("InsertSpaceEquals", state, result, eventData);
22918
+ return result;
22919
+ }
22920
+ }
22977
22921
  var InsertConst$0 = $TV($EXPECT($L0, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
22978
22922
  return { $loc, token: "const " };
22979
22923
  });
@@ -23586,7 +23530,6 @@ ${input.slice(result.pos)}
23586
23530
  module.forbidIndentedApplication = [false];
23587
23531
  module.forbidBracedApplication = [false];
23588
23532
  module.forbidTrailingMemberProperty = [false];
23589
- module.forbidMultiLineImplicitObjectLiteral = [false];
23590
23533
  module.forbidNewlineBinaryOp = [false];
23591
23534
  module.JSXTagStack = [];
23592
23535
  module.operators = /* @__PURE__ */ new Set();
@@ -23623,12 +23566,6 @@ ${input.slice(result.pos)}
23623
23566
  return s[s.length - 1];
23624
23567
  }
23625
23568
  },
23626
- multiLineImplicitObjectLiteralForbidden: {
23627
- get() {
23628
- const { forbidMultiLineImplicitObjectLiteral: s } = module;
23629
- return s[s.length - 1];
23630
- }
23631
- },
23632
23569
  newlineBinaryOpForbidden: {
23633
23570
  get() {
23634
23571
  const { forbidNewlineBinaryOp: s } = module;
@@ -23763,11 +23700,7 @@ ${input.slice(result.pos)}
23763
23700
  module.getRef = function(base) {
23764
23701
  if (refs.hasOwnProperty(base))
23765
23702
  return refs[base];
23766
- const ref = {
23767
- type: "Ref",
23768
- base,
23769
- id: base
23770
- };
23703
+ const ref = makeRef(base);
23771
23704
  if (declareRef.hasOwnProperty(base))
23772
23705
  declareRef[base](ref);
23773
23706
  return refs[base] = ref;
@@ -23931,19 +23864,11 @@ ${input.slice(result.pos)}
23931
23864
  return result;
23932
23865
  }
23933
23866
  }
23934
- var Samedent$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
23935
- var indent = $2;
23936
- const { level } = indent;
23937
- const currentIndentLevel = module.currentIndent.level;
23938
- if (level === currentIndentLevel) {
23939
- return $0;
23940
- }
23941
- return $skip;
23942
- });
23943
- function Samedent(state) {
23867
+ var PushIndent$0 = $Y($S(EOS, TrackIndented));
23868
+ function PushIndent(state) {
23944
23869
  let eventData;
23945
23870
  if (state.events) {
23946
- const result = state.events.enter?.("Samedent", state);
23871
+ const result = state.events.enter?.("PushIndent", state);
23947
23872
  if (result) {
23948
23873
  if (result.cache)
23949
23874
  return result.cache;
@@ -23951,30 +23876,27 @@ ${input.slice(result.pos)}
23951
23876
  }
23952
23877
  }
23953
23878
  if (state.tokenize) {
23954
- const result = $TOKEN("Samedent", state, Samedent$0(state));
23879
+ const result = $TOKEN("PushIndent", state, PushIndent$0(state));
23955
23880
  if (state.events)
23956
- state.events.exit?.("Samedent", state, result, eventData);
23881
+ state.events.exit?.("PushIndent", state, result, eventData);
23957
23882
  return result;
23958
23883
  } else {
23959
- const result = Samedent$0(state);
23884
+ const result = PushIndent$0(state);
23960
23885
  if (state.events)
23961
- state.events.exit?.("Samedent", state, result, eventData);
23886
+ state.events.exit?.("PushIndent", state, result, eventData);
23962
23887
  return result;
23963
23888
  }
23964
23889
  }
23965
- var IndentedFurther$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
23966
- var indent = $2;
23967
- const { level } = indent;
23968
- const currentIndentLevel = module.currentIndent.level;
23969
- if (level > currentIndentLevel) {
23970
- return $0;
23890
+ var PopIndent$0 = $TV($EXPECT($L0, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
23891
+ if (module.config.verbose) {
23892
+ console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
23971
23893
  }
23972
- return $skip;
23894
+ module.indentLevels.pop();
23973
23895
  });
23974
- function IndentedFurther(state) {
23896
+ function PopIndent(state) {
23975
23897
  let eventData;
23976
23898
  if (state.events) {
23977
- const result = state.events.enter?.("IndentedFurther", state);
23899
+ const result = state.events.enter?.("PopIndent", state);
23978
23900
  if (result) {
23979
23901
  if (result.cache)
23980
23902
  return result.cache;
@@ -23982,29 +23904,30 @@ ${input.slice(result.pos)}
23982
23904
  }
23983
23905
  }
23984
23906
  if (state.tokenize) {
23985
- const result = $TOKEN("IndentedFurther", state, IndentedFurther$0(state));
23907
+ const result = $TOKEN("PopIndent", state, PopIndent$0(state));
23986
23908
  if (state.events)
23987
- state.events.exit?.("IndentedFurther", state, result, eventData);
23909
+ state.events.exit?.("PopIndent", state, result, eventData);
23988
23910
  return result;
23989
23911
  } else {
23990
- const result = IndentedFurther$0(state);
23912
+ const result = PopIndent$0(state);
23991
23913
  if (state.events)
23992
- state.events.exit?.("IndentedFurther", state, result, eventData);
23914
+ state.events.exit?.("PopIndent", state, result, eventData);
23993
23915
  return result;
23994
23916
  }
23995
23917
  }
23996
- var NotDedented$0 = $TS($S($E($C(Samedent, IndentedFurther)), $E(_)), function($skip, $loc, $0, $1, $2) {
23997
- const ws = [];
23998
- if ($1)
23999
- ws.push(...$1);
24000
- if ($2)
24001
- ws.push(...$2);
24002
- return ws.flat(Infinity).filter(Boolean);
23918
+ var Nested$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
23919
+ var indent = $2;
23920
+ if (indent.level === module.currentIndent.level)
23921
+ return $0;
23922
+ if (module.config.verbose) {
23923
+ console.log(`failing Nested: ${indent.level} does not match current indent level ${module.currentIndent.level}`);
23924
+ }
23925
+ return $skip;
24003
23926
  });
24004
- function NotDedented(state) {
23927
+ function Nested(state) {
24005
23928
  let eventData;
24006
23929
  if (state.events) {
24007
- const result = state.events.enter?.("NotDedented", state);
23930
+ const result = state.events.enter?.("Nested", state);
24008
23931
  if (result) {
24009
23932
  if (result.cache)
24010
23933
  return result.cache;
@@ -24012,24 +23935,27 @@ ${input.slice(result.pos)}
24012
23935
  }
24013
23936
  }
24014
23937
  if (state.tokenize) {
24015
- const result = $TOKEN("NotDedented", state, NotDedented$0(state));
23938
+ const result = $TOKEN("Nested", state, Nested$0(state));
24016
23939
  if (state.events)
24017
- state.events.exit?.("NotDedented", state, result, eventData);
23940
+ state.events.exit?.("Nested", state, result, eventData);
24018
23941
  return result;
24019
23942
  } else {
24020
- const result = NotDedented$0(state);
23943
+ const result = Nested$0(state);
24021
23944
  if (state.events)
24022
- state.events.exit?.("NotDedented", state, result, eventData);
23945
+ state.events.exit?.("Nested", state, result, eventData);
24023
23946
  return result;
24024
23947
  }
24025
23948
  }
24026
- var Dedented$0 = $T($S($N($C(Samedent, IndentedFurther)), EOS), function(value) {
24027
- return value[1];
23949
+ var IndentedFurther$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
23950
+ var indent = $2;
23951
+ if (indent.level > module.currentIndent.level)
23952
+ return $0;
23953
+ return $skip;
24028
23954
  });
24029
- function Dedented(state) {
23955
+ function IndentedFurther(state) {
24030
23956
  let eventData;
24031
23957
  if (state.events) {
24032
- const result = state.events.enter?.("Dedented", state);
23958
+ const result = state.events.enter?.("IndentedFurther", state);
24033
23959
  if (result) {
24034
23960
  if (result.cache)
24035
23961
  return result.cache;
@@ -24037,22 +23963,27 @@ ${input.slice(result.pos)}
24037
23963
  }
24038
23964
  }
24039
23965
  if (state.tokenize) {
24040
- const result = $TOKEN("Dedented", state, Dedented$0(state));
23966
+ const result = $TOKEN("IndentedFurther", state, IndentedFurther$0(state));
24041
23967
  if (state.events)
24042
- state.events.exit?.("Dedented", state, result, eventData);
23968
+ state.events.exit?.("IndentedFurther", state, result, eventData);
24043
23969
  return result;
24044
23970
  } else {
24045
- const result = Dedented$0(state);
23971
+ const result = IndentedFurther$0(state);
24046
23972
  if (state.events)
24047
- state.events.exit?.("Dedented", state, result, eventData);
23973
+ state.events.exit?.("IndentedFurther", state, result, eventData);
24048
23974
  return result;
24049
23975
  }
24050
23976
  }
24051
- var PushIndent$0 = $Y($S(EOS, TrackIndented));
24052
- function PushIndent(state) {
23977
+ var IndentedAtLeast$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
23978
+ var indent = $2;
23979
+ if (indent.level >= module.currentIndent.level)
23980
+ return $0;
23981
+ return $skip;
23982
+ });
23983
+ function IndentedAtLeast(state) {
24053
23984
  let eventData;
24054
23985
  if (state.events) {
24055
- const result = state.events.enter?.("PushIndent", state);
23986
+ const result = state.events.enter?.("IndentedAtLeast", state);
24056
23987
  if (result) {
24057
23988
  if (result.cache)
24058
23989
  return result.cache;
@@ -24060,27 +23991,29 @@ ${input.slice(result.pos)}
24060
23991
  }
24061
23992
  }
24062
23993
  if (state.tokenize) {
24063
- const result = $TOKEN("PushIndent", state, PushIndent$0(state));
23994
+ const result = $TOKEN("IndentedAtLeast", state, IndentedAtLeast$0(state));
24064
23995
  if (state.events)
24065
- state.events.exit?.("PushIndent", state, result, eventData);
23996
+ state.events.exit?.("IndentedAtLeast", state, result, eventData);
24066
23997
  return result;
24067
23998
  } else {
24068
- const result = PushIndent$0(state);
23999
+ const result = IndentedAtLeast$0(state);
24069
24000
  if (state.events)
24070
- state.events.exit?.("PushIndent", state, result, eventData);
24001
+ state.events.exit?.("IndentedAtLeast", state, result, eventData);
24071
24002
  return result;
24072
24003
  }
24073
24004
  }
24074
- var PopIndent$0 = $TV($EXPECT($L0, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
24075
- if (module.config.verbose) {
24076
- console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
24077
- }
24078
- module.indentLevels.pop();
24005
+ var NotDedented$0 = $TS($S($E(IndentedAtLeast), $E(_)), function($skip, $loc, $0, $1, $2) {
24006
+ const ws = [];
24007
+ if ($1)
24008
+ ws.push(...$1);
24009
+ if ($2)
24010
+ ws.push(...$2);
24011
+ return ws.flat(Infinity).filter(Boolean);
24079
24012
  });
24080
- function PopIndent(state) {
24013
+ function NotDedented(state) {
24081
24014
  let eventData;
24082
24015
  if (state.events) {
24083
- const result = state.events.enter?.("PopIndent", state);
24016
+ const result = state.events.enter?.("NotDedented", state);
24084
24017
  if (result) {
24085
24018
  if (result.cache)
24086
24019
  return result.cache;
@@ -24088,37 +24021,24 @@ ${input.slice(result.pos)}
24088
24021
  }
24089
24022
  }
24090
24023
  if (state.tokenize) {
24091
- const result = $TOKEN("PopIndent", state, PopIndent$0(state));
24024
+ const result = $TOKEN("NotDedented", state, NotDedented$0(state));
24092
24025
  if (state.events)
24093
- state.events.exit?.("PopIndent", state, result, eventData);
24026
+ state.events.exit?.("NotDedented", state, result, eventData);
24094
24027
  return result;
24095
24028
  } else {
24096
- const result = PopIndent$0(state);
24029
+ const result = NotDedented$0(state);
24097
24030
  if (state.events)
24098
- state.events.exit?.("PopIndent", state, result, eventData);
24031
+ state.events.exit?.("NotDedented", state, result, eventData);
24099
24032
  return result;
24100
24033
  }
24101
24034
  }
24102
- var Nested$0 = $TS($S(EOS, Indent), function($skip, $loc, $0, $1, $2) {
24103
- var eos = $1;
24104
- var indent = $2;
24105
- const { level } = indent;
24106
- const currentIndent = module.currentIndent;
24107
- if (module.config.verbose) {
24108
- console.log("Indented", level, currentIndent);
24109
- }
24110
- if (level !== currentIndent.level) {
24111
- if (module.config.verbose) {
24112
- console.log("skipped nested");
24113
- }
24114
- return $skip;
24115
- }
24116
- return $0;
24035
+ var Dedented$0 = $T($S($N(IndentedAtLeast), EOS), function(value) {
24036
+ return value[1];
24117
24037
  });
24118
- function Nested(state) {
24038
+ function Dedented(state) {
24119
24039
  let eventData;
24120
24040
  if (state.events) {
24121
- const result = state.events.enter?.("Nested", state);
24041
+ const result = state.events.enter?.("Dedented", state);
24122
24042
  if (result) {
24123
24043
  if (result.cache)
24124
24044
  return result.cache;
@@ -24126,14 +24046,14 @@ ${input.slice(result.pos)}
24126
24046
  }
24127
24047
  }
24128
24048
  if (state.tokenize) {
24129
- const result = $TOKEN("Nested", state, Nested$0(state));
24049
+ const result = $TOKEN("Dedented", state, Dedented$0(state));
24130
24050
  if (state.events)
24131
- state.events.exit?.("Nested", state, result, eventData);
24051
+ state.events.exit?.("Dedented", state, result, eventData);
24132
24052
  return result;
24133
24053
  } else {
24134
- const result = Nested$0(state);
24054
+ const result = Dedented$0(state);
24135
24055
  if (state.events)
24136
- state.events.exit?.("Nested", state, result, eventData);
24056
+ state.events.exit?.("Dedented", state, result, eventData);
24137
24057
  return result;
24138
24058
  }
24139
24059
  }
@@ -24161,12 +24081,14 @@ ${input.slice(result.pos)}
24161
24081
  literalValue,
24162
24082
  makeEmptyBlock,
24163
24083
  makeLeftHandSideExpression,
24084
+ makeRef,
24164
24085
  maybeRef,
24165
24086
  modifyString,
24087
+ processAssignmentDeclaration,
24166
24088
  processBinaryOpExpression,
24167
24089
  processCallMemberExpression,
24168
24090
  processCoffeeInterpolation,
24169
- processAssignmentDeclaration,
24091
+ processForInOf,
24170
24092
  processProgram,
24171
24093
  processUnaryExpression,
24172
24094
  quoteString,
@@ -24601,7 +24523,7 @@ var parse;
24601
24523
  var uncacheable;
24602
24524
  ({ parse } = import_parser.default);
24603
24525
  ({ SourceMap: SourceMap2 } = util_exports);
24604
- uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "AllowAll", "AllowClassImplicitCall", "AllowBracedApplication", "AllowIndentedApplication", "AllowMultiLineImplicitObjectLiteral", "AllowNewlineBinaryOp", "AllowTrailingMemberProperty", "AllowedTrailingMemberExpressions", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedApplicationAllowed", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "ClassImplicitCallForbidden", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "ConditionFragment", "Declaration", "Debugger", "Dedented", "ElementListWithIndentedApplicationForbidden", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationForbidden", "ExpressionWithObjectApplicationForbidden", "ExtendedExpression", "FatArrowBody", "ForbidClassImplicitCall", "ForbidBracedApplication", "ForbidIndentedApplication", "ForbidMultiLineImplicitObjectLiteral", "ForbidNewlineBinaryOp", "ForbidTrailingMemberProperty", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedClassSignatureElement", "NestedClassSignatureElements", "NestedDeclareElement", "NestedDeclareElements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedModuleItem", "NestedModuleItems", "NestedNonAssignmentExtendedExpression", "NestedObject", "NestedPropertyDefinitions", "NewlineBinaryOpAllowed", "NonPipelineAssignmentExpression", "NonPipelineExtendedExpression", "NonPipelinePostfixedExpression", "NonSingleBracedBlock", "NotDedented", "ObjectLiteral", "PatternExpressionList", "PopIndent", "PopJSXStack", "PostfixedExpression", "PostfixedStatement", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "RestoreAll", "RestoreClassImplicitCall", "RestoreMultiLineImplicitObjectLiteral", "RestoreBracedApplication", "RestoreIndentedApplication", "RestoreTrailingMemberProperty", "RestoreNewlineBinaryOp", "RHS", "Samedent", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineBinaryOpRHS", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuffixedExpression", "SuffixedStatement", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
24526
+ uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "AllowAll", "AllowClassImplicitCall", "AllowBracedApplication", "AllowIndentedApplication", "AllowMultiLineImplicitObjectLiteral", "AllowNewlineBinaryOp", "AllowTrailingMemberProperty", "AllowedTrailingMemberExpressions", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedApplicationAllowed", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "ClassImplicitCallForbidden", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "ConditionFragment", "Declaration", "Debugger", "Dedented", "ElementListWithIndentedApplicationForbidden", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationForbidden", "ExpressionWithObjectApplicationForbidden", "ExtendedExpression", "FatArrowBody", "ForbidClassImplicitCall", "ForbidBracedApplication", "ForbidIndentedApplication", "ForbidMultiLineImplicitObjectLiteral", "ForbidNewlineBinaryOp", "ForbidTrailingMemberProperty", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedAtLeast", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedClassSignatureElement", "NestedClassSignatureElements", "NestedDeclareElement", "NestedDeclareElements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedModuleItem", "NestedModuleItems", "NestedNonAssignmentExtendedExpression", "NestedObject", "NestedPropertyDefinitions", "NewlineBinaryOpAllowed", "NonPipelineArgumentPart", "NonPipelineArgumentList", "NonPipelineAssignmentExpression", "NonPipelineExtendedExpression", "NonPipelinePostfixedExpression", "NonSingleBracedBlock", "NotDedented", "ObjectLiteral", "PatternExpressionList", "PopIndent", "PopJSXStack", "PostfixedExpression", "PostfixedStatement", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "RestoreAll", "RestoreClassImplicitCall", "RestoreMultiLineImplicitObjectLiteral", "RestoreBracedApplication", "RestoreIndentedApplication", "RestoreTrailingMemberProperty", "RestoreNewlineBinaryOp", "RHS", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineBinaryOpRHS", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuffixedExpression", "SuffixedStatement", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
24605
24527
  var compile = function(src, options) {
24606
24528
  var ast, code, events, filename, ref, result, sm;
24607
24529
  if (!options) {