@danielx/civet 0.4.38 → 0.5.1

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.js CHANGED
@@ -478,6 +478,7 @@ ${input.slice(result.pos)}
478
478
  ExpressionizedStatement,
479
479
  Expression,
480
480
  Arguments,
481
+ ExplicitArguments,
481
482
  ApplicationStart,
482
483
  IndentedApplicationAllowed,
483
484
  ArgumentsWithTrailingCallExpressions,
@@ -807,6 +808,7 @@ ${input.slice(result.pos)}
807
808
  OpenParen,
808
809
  QuestionMark,
809
810
  Return,
811
+ Satisfies,
810
812
  Semicolon,
811
813
  SingleQuote,
812
814
  Star,
@@ -843,6 +845,16 @@ ${input.slice(result.pos)}
843
845
  JSXAttributeInitializer,
844
846
  JSXAttributeValue,
845
847
  InlineJSXAttributeValue,
848
+ InlineJSXBinaryOpRHS,
849
+ InlineJSXUnaryExpression,
850
+ InlineJSXUnaryOp,
851
+ InlineJSXUnaryPostfix,
852
+ InlineJSXUpdateExpression,
853
+ InlineJSXCallExpression,
854
+ InlineJSXCallExpressionRest,
855
+ InlineJSXMemberExpression,
856
+ InlineJSXMemberExpressionRest,
857
+ InlineJSXPrimaryExpression,
846
858
  JSXMixedChildren,
847
859
  JSXChildren,
848
860
  JSXNestedChildren,
@@ -1058,41 +1070,42 @@ ${input.slice(result.pos)}
1058
1070
  var $L122 = $L("[");
1059
1071
  var $L123 = $L("(");
1060
1072
  var $L124 = $L("return");
1061
- var $L125 = $L("'");
1062
- var $L126 = $L("static");
1063
- var $L127 = $L("${");
1064
- var $L128 = $L("switch");
1065
- var $L129 = $L("target");
1066
- var $L130 = $L("then");
1067
- var $L131 = $L("this");
1068
- var $L132 = $L("throw");
1069
- var $L133 = $L('"""');
1070
- var $L134 = $L("'''");
1071
- var $L135 = $L("///");
1072
- var $L136 = $L("```");
1073
- var $L137 = $L("try");
1074
- var $L138 = $L("typeof");
1075
- var $L139 = $L("unless");
1076
- var $L140 = $L("until");
1077
- var $L141 = $L("var");
1078
- var $L142 = $L("void");
1079
- var $L143 = $L("when");
1080
- var $L144 = $L("while");
1081
- var $L145 = $L("yield");
1082
- var $L146 = $L("/>");
1083
- var $L147 = $L("</");
1084
- var $L148 = $L("<>");
1085
- var $L149 = $L("</>");
1086
- var $L150 = $L("declare");
1087
- var $L151 = $L("type");
1088
- var $L152 = $L("interface");
1089
- var $L153 = $L("namespace");
1090
- var $L154 = $L("readonly");
1091
- var $L155 = $L("asserts");
1092
- var $L156 = $L("keyof");
1093
- var $L157 = $L("infer");
1094
- var $L158 = $L("[]");
1095
- var $L159 = $L("civet");
1073
+ var $L125 = $L("satisfies");
1074
+ var $L126 = $L("'");
1075
+ var $L127 = $L("static");
1076
+ var $L128 = $L("${");
1077
+ var $L129 = $L("switch");
1078
+ var $L130 = $L("target");
1079
+ var $L131 = $L("then");
1080
+ var $L132 = $L("this");
1081
+ var $L133 = $L("throw");
1082
+ var $L134 = $L('"""');
1083
+ var $L135 = $L("'''");
1084
+ var $L136 = $L("///");
1085
+ var $L137 = $L("```");
1086
+ var $L138 = $L("try");
1087
+ var $L139 = $L("typeof");
1088
+ var $L140 = $L("unless");
1089
+ var $L141 = $L("until");
1090
+ var $L142 = $L("var");
1091
+ var $L143 = $L("void");
1092
+ var $L144 = $L("when");
1093
+ var $L145 = $L("while");
1094
+ var $L146 = $L("yield");
1095
+ var $L147 = $L("/>");
1096
+ var $L148 = $L("</");
1097
+ var $L149 = $L("<>");
1098
+ var $L150 = $L("</>");
1099
+ var $L151 = $L("declare");
1100
+ var $L152 = $L("type");
1101
+ var $L153 = $L("interface");
1102
+ var $L154 = $L("namespace");
1103
+ var $L155 = $L("readonly");
1104
+ var $L156 = $L("asserts");
1105
+ var $L157 = $L("keyof");
1106
+ var $L158 = $L("infer");
1107
+ var $L159 = $L("[]");
1108
+ var $L160 = $L("civet");
1096
1109
  var $R0 = $R(new RegExp("(for|of|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1097
1110
  var $R1 = $R(new RegExp("[&]", "suy"));
1098
1111
  var $R2 = $R(new RegExp("[!~+-]+", "suy"));
@@ -1129,7 +1142,7 @@ ${input.slice(result.pos)}
1129
1142
  var $R33 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1130
1143
  var $R34 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1131
1144
  var $R35 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1132
- var $R36 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1145
+ var $R36 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|return|satisfies|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1133
1146
  var $R37 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1134
1147
  var $R38 = $R(new RegExp(".", "suy"));
1135
1148
  var $R39 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
@@ -1139,16 +1152,14 @@ ${input.slice(result.pos)}
1139
1152
  var $R43 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1140
1153
  var $R44 = $R(new RegExp("\\s", "suy"));
1141
1154
  var $R45 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1142
- var $R46 = $R(new RegExp('"[^"]*"', "suy"));
1143
- var $R47 = $R(new RegExp("'[^']*'", "suy"));
1144
- var $R48 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1145
- var $R49 = $R(new RegExp("[+-]?", "suy"));
1146
- var $R50 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1147
- var $R51 = $R(new RegExp("[\\t ]*", "suy"));
1148
- var $R52 = $R(new RegExp("[\\s]*", "suy"));
1149
- var $R53 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1150
- var $R54 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1151
- var $R55 = $R(new RegExp("[ \\t]*", "suy"));
1155
+ var $R46 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1156
+ var $R47 = $R(new RegExp("[+-]?", "suy"));
1157
+ var $R48 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1158
+ var $R49 = $R(new RegExp("[\\t ]*", "suy"));
1159
+ var $R50 = $R(new RegExp("[\\s]*", "suy"));
1160
+ var $R51 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1161
+ var $R52 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1162
+ var $R53 = $R(new RegExp("[ \\t]*", "suy"));
1152
1163
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1153
1164
  var statements = $4;
1154
1165
  module2.processProgram(statements);
@@ -1269,7 +1280,7 @@ ${input.slice(result.pos)}
1269
1280
  return result;
1270
1281
  }
1271
1282
  }
1272
- var Arguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1283
+ var Arguments$0 = ExplicitArguments;
1273
1284
  var Arguments$1 = $TS($S(ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1274
1285
  var open = $2;
1275
1286
  var ws = $3;
@@ -1295,6 +1306,25 @@ ${input.slice(result.pos)}
1295
1306
  return result;
1296
1307
  }
1297
1308
  }
1309
+ var ExplicitArguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1310
+ function ExplicitArguments(state) {
1311
+ if (state.events) {
1312
+ const result = state.events.enter?.("ExplicitArguments", state);
1313
+ if (result)
1314
+ return result.cache;
1315
+ }
1316
+ if (state.tokenize) {
1317
+ const result = $TOKEN("ExplicitArguments", state, ExplicitArguments$0(state));
1318
+ if (state.events)
1319
+ state.events.exit?.("ExplicitArguments", state, result);
1320
+ return result;
1321
+ } else {
1322
+ const result = ExplicitArguments$0(state);
1323
+ if (state.events)
1324
+ state.events.exit?.("ExplicitArguments", state, result);
1325
+ return result;
1326
+ }
1327
+ }
1298
1328
  var ApplicationStart$0 = $S(IndentedApplicationAllowed, $Y(NestedImplicitObjectLiteral));
1299
1329
  var ApplicationStart$1 = $S($N(EOS), $Y($S($P(_), $N(AdditionalReservedWords))));
1300
1330
  function ApplicationStart(state) {
@@ -1487,9 +1517,8 @@ ${input.slice(result.pos)}
1487
1517
  }
1488
1518
  }
1489
1519
  var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q(BinaryOpRHS)), function($skip, $loc, $0, $1, $2) {
1490
- if ($2.length) {
1520
+ if ($2.length)
1491
1521
  return module2.processBinaryOpExpression($0);
1492
- }
1493
1522
  return $1;
1494
1523
  });
1495
1524
  function BinaryOpExpression(state) {
@@ -1552,53 +1581,7 @@ ${input.slice(result.pos)}
1552
1581
  var pre = $1;
1553
1582
  var exp = $2;
1554
1583
  var post = $3;
1555
- if (post?.token === "?") {
1556
- post = {
1557
- $loc: post.$loc,
1558
- token: " != null"
1559
- };
1560
- switch (exp.type) {
1561
- case "Identifier":
1562
- case "Literal":
1563
- return {
1564
- ...exp,
1565
- children: [...pre, ...exp.children, post]
1566
- };
1567
- default:
1568
- return {
1569
- type: "ParenthesizedExpression",
1570
- children: ["(", ...pre, "(", exp, ")", post, ")"]
1571
- };
1572
- }
1573
- }
1574
- if (exp.type === "Literal") {
1575
- if (pre.length === 1 && pre[0].token === "-") {
1576
- const children = [pre[0], ...exp.children];
1577
- if (post)
1578
- exp.children.push(post);
1579
- return {
1580
- type: "Literal",
1581
- children,
1582
- raw: `-${exp.raw}`
1583
- };
1584
- }
1585
- }
1586
- if (exp.children) {
1587
- const children = [...pre, ...exp.children];
1588
- if (post)
1589
- children.push(post);
1590
- return Object.assign({}, exp, { children });
1591
- } else if (Array.isArray(exp)) {
1592
- const children = [...pre, ...exp];
1593
- if (post)
1594
- children.push(post);
1595
- return { children };
1596
- } else {
1597
- const children = [...pre, exp];
1598
- if (post)
1599
- children.push(post);
1600
- return { children };
1601
- }
1584
+ return module2.processUnaryExpression(pre, exp, post);
1602
1585
  });
1603
1586
  var UnaryExpression$1 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
1604
1587
  var ws = $3;
@@ -1628,6 +1611,9 @@ ${input.slice(result.pos)}
1628
1611
  var UnaryPostfix$1 = $T($P($S(__, As, Type)), function(value) {
1629
1612
  return { "ts": true, "children": value };
1630
1613
  });
1614
+ var UnaryPostfix$2 = $T($P($S(__, Satisfies, Type)), function(value) {
1615
+ return { "ts": true, "children": value };
1616
+ });
1631
1617
  function UnaryPostfix(state) {
1632
1618
  if (state.events) {
1633
1619
  const result = state.events.enter?.("UnaryPostfix", state);
@@ -1635,12 +1621,12 @@ ${input.slice(result.pos)}
1635
1621
  return result.cache;
1636
1622
  }
1637
1623
  if (state.tokenize) {
1638
- const result = $TOKEN("UnaryPostfix", state, UnaryPostfix$0(state) || UnaryPostfix$1(state));
1624
+ const result = $TOKEN("UnaryPostfix", state, UnaryPostfix$0(state) || UnaryPostfix$1(state) || UnaryPostfix$2(state));
1639
1625
  if (state.events)
1640
1626
  state.events.exit?.("UnaryPostfix", state, result);
1641
1627
  return result;
1642
1628
  } else {
1643
- const result = UnaryPostfix$0(state) || UnaryPostfix$1(state);
1629
+ const result = UnaryPostfix$0(state) || UnaryPostfix$1(state) || UnaryPostfix$2(state);
1644
1630
  if (state.events)
1645
1631
  state.events.exit?.("UnaryPostfix", state, result);
1646
1632
  return result;
@@ -2082,7 +2068,7 @@ ${input.slice(result.pos)}
2082
2068
  return result;
2083
2069
  }
2084
2070
  }
2085
- var ClassExpression$0 = $S($E(Decorators), Class, $E($S(BindingIdentifier, $E(TypeArguments))), $E(ClassHeritage), ClassBody);
2071
+ var ClassExpression$0 = $S($E(Decorators), Class, $E($S(BindingIdentifier, $E(TypeParameters))), $E(ClassHeritage), ClassBody);
2086
2072
  function ClassExpression(state) {
2087
2073
  if (state.events) {
2088
2074
  const result = state.events.enter?.("ClassExpression", state);
@@ -8315,10 +8301,9 @@ ${input.slice(result.pos)}
8315
8301
  var s = $2;
8316
8302
  var parts = $3;
8317
8303
  var e = $4;
8318
- const noInterpolations = parts.length === 1 && parts[0].token != null;
8319
- if (noInterpolations) {
8304
+ if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
8320
8305
  return {
8321
- token: `"${module2.modifyString(parts[0].token)}"`,
8306
+ token: parts.length ? `"${module2.modifyString(parts[0].token)}"` : '""',
8322
8307
  $loc
8323
8308
  };
8324
8309
  }
@@ -8717,7 +8702,7 @@ ${input.slice(result.pos)}
8717
8702
  var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R33, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
8718
8703
  var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R34, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
8719
8704
  var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R35, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
8720
- var ReservedWord$4 = $R$0($EXPECT($R36, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
8705
+ var ReservedWord$4 = $R$0($EXPECT($R36, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|return|satisfies|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
8721
8706
  function ReservedWord(state) {
8722
8707
  if (state.events) {
8723
8708
  const result = state.events.enter?.("ReservedWord", state);
@@ -10072,6 +10057,27 @@ ${input.slice(result.pos)}
10072
10057
  return result;
10073
10058
  }
10074
10059
  }
10060
+ var Satisfies$0 = $TS($S($EXPECT($L125, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10061
+ return { $loc, token: $1 };
10062
+ });
10063
+ function Satisfies(state) {
10064
+ if (state.events) {
10065
+ const result = state.events.enter?.("Satisfies", state);
10066
+ if (result)
10067
+ return result.cache;
10068
+ }
10069
+ if (state.tokenize) {
10070
+ const result = $TOKEN("Satisfies", state, Satisfies$0(state));
10071
+ if (state.events)
10072
+ state.events.exit?.("Satisfies", state, result);
10073
+ return result;
10074
+ } else {
10075
+ const result = Satisfies$0(state);
10076
+ if (state.events)
10077
+ state.events.exit?.("Satisfies", state, result);
10078
+ return result;
10079
+ }
10080
+ }
10075
10081
  var Semicolon$0 = $TV($EXPECT($L78, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
10076
10082
  return { $loc, token: $1 };
10077
10083
  });
@@ -10093,7 +10099,7 @@ ${input.slice(result.pos)}
10093
10099
  return result;
10094
10100
  }
10095
10101
  }
10096
- var SingleQuote$0 = $TV($EXPECT($L125, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
10102
+ var SingleQuote$0 = $TV($EXPECT($L126, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
10097
10103
  return { $loc, token: $1 };
10098
10104
  });
10099
10105
  function SingleQuote(state) {
@@ -10135,7 +10141,7 @@ ${input.slice(result.pos)}
10135
10141
  return result;
10136
10142
  }
10137
10143
  }
10138
- var Static$0 = $TV($EXPECT($L126, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
10144
+ var Static$0 = $TV($EXPECT($L127, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
10139
10145
  return { $loc, token: $1 };
10140
10146
  });
10141
10147
  var Static$1 = $TS($S($EXPECT($L93, fail, 'Static "@"'), $N($C($EXPECT($L123, fail, 'Static "("'), $EXPECT($L93, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
@@ -10159,7 +10165,7 @@ ${input.slice(result.pos)}
10159
10165
  return result;
10160
10166
  }
10161
10167
  }
10162
- var SubstitutionStart$0 = $TV($EXPECT($L127, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
10168
+ var SubstitutionStart$0 = $TV($EXPECT($L128, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
10163
10169
  return { $loc, token: $1 };
10164
10170
  });
10165
10171
  function SubstitutionStart(state) {
@@ -10180,7 +10186,7 @@ ${input.slice(result.pos)}
10180
10186
  return result;
10181
10187
  }
10182
10188
  }
10183
- var Switch$0 = $TS($S($EXPECT($L128, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10189
+ var Switch$0 = $TS($S($EXPECT($L129, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10184
10190
  return { $loc, token: $1 };
10185
10191
  });
10186
10192
  function Switch(state) {
@@ -10201,7 +10207,7 @@ ${input.slice(result.pos)}
10201
10207
  return result;
10202
10208
  }
10203
10209
  }
10204
- var Target$0 = $TS($S($EXPECT($L129, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10210
+ var Target$0 = $TS($S($EXPECT($L130, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10205
10211
  return { $loc, token: $1 };
10206
10212
  });
10207
10213
  function Target(state) {
@@ -10222,7 +10228,7 @@ ${input.slice(result.pos)}
10222
10228
  return result;
10223
10229
  }
10224
10230
  }
10225
- var Then$0 = $TS($S(__, $EXPECT($L130, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
10231
+ var Then$0 = $TS($S(__, $EXPECT($L131, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
10226
10232
  return { $loc, token: "" };
10227
10233
  });
10228
10234
  function Then(state) {
@@ -10243,7 +10249,7 @@ ${input.slice(result.pos)}
10243
10249
  return result;
10244
10250
  }
10245
10251
  }
10246
- var This$0 = $TS($S($EXPECT($L131, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10252
+ var This$0 = $TS($S($EXPECT($L132, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10247
10253
  return { $loc, token: $1 };
10248
10254
  });
10249
10255
  function This(state) {
@@ -10264,7 +10270,7 @@ ${input.slice(result.pos)}
10264
10270
  return result;
10265
10271
  }
10266
10272
  }
10267
- var Throw$0 = $TS($S($EXPECT($L132, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10273
+ var Throw$0 = $TS($S($EXPECT($L133, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10268
10274
  return { $loc, token: $1 };
10269
10275
  });
10270
10276
  function Throw(state) {
@@ -10285,7 +10291,7 @@ ${input.slice(result.pos)}
10285
10291
  return result;
10286
10292
  }
10287
10293
  }
10288
- var TripleDoubleQuote$0 = $TV($EXPECT($L133, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
10294
+ var TripleDoubleQuote$0 = $TV($EXPECT($L134, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
10289
10295
  return { $loc, token: "`" };
10290
10296
  });
10291
10297
  function TripleDoubleQuote(state) {
@@ -10306,7 +10312,7 @@ ${input.slice(result.pos)}
10306
10312
  return result;
10307
10313
  }
10308
10314
  }
10309
- var TripleSingleQuote$0 = $TV($EXPECT($L134, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
10315
+ var TripleSingleQuote$0 = $TV($EXPECT($L135, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
10310
10316
  return { $loc, token: "`" };
10311
10317
  });
10312
10318
  function TripleSingleQuote(state) {
@@ -10327,7 +10333,7 @@ ${input.slice(result.pos)}
10327
10333
  return result;
10328
10334
  }
10329
10335
  }
10330
- var TripleSlash$0 = $TV($EXPECT($L135, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
10336
+ var TripleSlash$0 = $TV($EXPECT($L136, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
10331
10337
  return { $loc, token: "/" };
10332
10338
  });
10333
10339
  function TripleSlash(state) {
@@ -10348,7 +10354,7 @@ ${input.slice(result.pos)}
10348
10354
  return result;
10349
10355
  }
10350
10356
  }
10351
- var TripleTick$0 = $TV($EXPECT($L136, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
10357
+ var TripleTick$0 = $TV($EXPECT($L137, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
10352
10358
  return { $loc, token: "`" };
10353
10359
  });
10354
10360
  function TripleTick(state) {
@@ -10369,7 +10375,7 @@ ${input.slice(result.pos)}
10369
10375
  return result;
10370
10376
  }
10371
10377
  }
10372
- var Try$0 = $TS($S($EXPECT($L137, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10378
+ var Try$0 = $TS($S($EXPECT($L138, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10373
10379
  return { $loc, token: $1 };
10374
10380
  });
10375
10381
  function Try(state) {
@@ -10390,7 +10396,7 @@ ${input.slice(result.pos)}
10390
10396
  return result;
10391
10397
  }
10392
10398
  }
10393
- var Typeof$0 = $TS($S($EXPECT($L138, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10399
+ var Typeof$0 = $TS($S($EXPECT($L139, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10394
10400
  return { $loc, token: $1 };
10395
10401
  });
10396
10402
  function Typeof(state) {
@@ -10411,7 +10417,7 @@ ${input.slice(result.pos)}
10411
10417
  return result;
10412
10418
  }
10413
10419
  }
10414
- var Unless$0 = $TS($S($EXPECT($L139, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10420
+ var Unless$0 = $TS($S($EXPECT($L140, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10415
10421
  return { $loc, token: $1 };
10416
10422
  });
10417
10423
  function Unless(state) {
@@ -10432,7 +10438,7 @@ ${input.slice(result.pos)}
10432
10438
  return result;
10433
10439
  }
10434
10440
  }
10435
- var Until$0 = $TS($S($EXPECT($L140, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10441
+ var Until$0 = $TS($S($EXPECT($L141, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10436
10442
  return { $loc, token: $1 };
10437
10443
  });
10438
10444
  function Until(state) {
@@ -10453,7 +10459,7 @@ ${input.slice(result.pos)}
10453
10459
  return result;
10454
10460
  }
10455
10461
  }
10456
- var Var$0 = $TS($S($EXPECT($L141, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10462
+ var Var$0 = $TS($S($EXPECT($L142, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10457
10463
  return { $loc, token: $1 };
10458
10464
  });
10459
10465
  function Var(state) {
@@ -10474,7 +10480,7 @@ ${input.slice(result.pos)}
10474
10480
  return result;
10475
10481
  }
10476
10482
  }
10477
- var Void$0 = $TS($S($EXPECT($L142, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10483
+ var Void$0 = $TS($S($EXPECT($L143, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10478
10484
  return { $loc, token: $1 };
10479
10485
  });
10480
10486
  function Void(state) {
@@ -10495,7 +10501,7 @@ ${input.slice(result.pos)}
10495
10501
  return result;
10496
10502
  }
10497
10503
  }
10498
- var When$0 = $TS($S($EXPECT($L143, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10504
+ var When$0 = $TS($S($EXPECT($L144, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10499
10505
  return { $loc, token: "case" };
10500
10506
  });
10501
10507
  function When(state) {
@@ -10516,7 +10522,7 @@ ${input.slice(result.pos)}
10516
10522
  return result;
10517
10523
  }
10518
10524
  }
10519
- var While$0 = $TS($S($EXPECT($L144, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10525
+ var While$0 = $TS($S($EXPECT($L145, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10520
10526
  return { $loc, token: $1 };
10521
10527
  });
10522
10528
  function While(state) {
@@ -10537,7 +10543,7 @@ ${input.slice(result.pos)}
10537
10543
  return result;
10538
10544
  }
10539
10545
  }
10540
- var Yield$0 = $TS($S($EXPECT($L145, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10546
+ var Yield$0 = $TS($S($EXPECT($L146, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10541
10547
  return { $loc, token: $1 };
10542
10548
  });
10543
10549
  function Yield(state) {
@@ -10594,7 +10600,7 @@ ${input.slice(result.pos)}
10594
10600
  return result;
10595
10601
  }
10596
10602
  }
10597
- var JSXSelfClosingElement$0 = $S($EXPECT($L5, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L146, fail, 'JSXSelfClosingElement "/>"'));
10603
+ var JSXSelfClosingElement$0 = $S($EXPECT($L5, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L147, fail, 'JSXSelfClosingElement "/>"'));
10598
10604
  function JSXSelfClosingElement(state) {
10599
10605
  if (state.events) {
10600
10606
  const result = state.events.enter?.("JSXSelfClosingElement", state);
@@ -10632,7 +10638,7 @@ ${input.slice(result.pos)}
10632
10638
  return result;
10633
10639
  }
10634
10640
  }
10635
- var JSXClosingElement$0 = $S($EXPECT($L147, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L27, fail, 'JSXClosingElement ">"'));
10641
+ var JSXClosingElement$0 = $S($EXPECT($L148, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L27, fail, 'JSXClosingElement ">"'));
10636
10642
  function JSXClosingElement(state) {
10637
10643
  if (state.events) {
10638
10644
  const result = state.events.enter?.("JSXClosingElement", state);
@@ -10651,8 +10657,8 @@ ${input.slice(result.pos)}
10651
10657
  return result;
10652
10658
  }
10653
10659
  }
10654
- var JSXFragment$0 = $S($EXPECT($L148, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L149, fail, 'JSXFragment "</>"'));
10655
- var JSXFragment$1 = $TS($S($EXPECT($L148, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
10660
+ var JSXFragment$0 = $S($EXPECT($L149, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L150, fail, 'JSXFragment "</>"'));
10661
+ var JSXFragment$1 = $TS($S($EXPECT($L149, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
10656
10662
  return [...$0, "</>"];
10657
10663
  });
10658
10664
  function JSXFragment(state) {
@@ -10842,12 +10848,15 @@ ${input.slice(result.pos)}
10842
10848
  return result;
10843
10849
  }
10844
10850
  }
10845
- var JSXAttributeValue$0 = $R$0($EXPECT($R46, fail, 'JSXAttributeValue /"[^"]*"/'));
10846
- var JSXAttributeValue$1 = $R$0($EXPECT($R47, fail, "JSXAttributeValue /'[^']*'/"));
10847
- var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
10848
- var JSXAttributeValue$3 = JSXElement;
10849
- var JSXAttributeValue$4 = JSXFragment;
10850
- var JSXAttributeValue$5 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
10851
+ var JSXAttributeValue$0 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
10852
+ if (module2.isTemplateLiteral($1))
10853
+ return $skip;
10854
+ return $1;
10855
+ });
10856
+ var JSXAttributeValue$1 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
10857
+ var JSXAttributeValue$2 = JSXElement;
10858
+ var JSXAttributeValue$3 = JSXFragment;
10859
+ var JSXAttributeValue$4 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
10851
10860
  function JSXAttributeValue(state) {
10852
10861
  if (state.events) {
10853
10862
  const result = state.events.enter?.("JSXAttributeValue", state);
@@ -10855,27 +10864,22 @@ ${input.slice(result.pos)}
10855
10864
  return result.cache;
10856
10865
  }
10857
10866
  if (state.tokenize) {
10858
- const result = $TOKEN("JSXAttributeValue", state, JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state) || JSXAttributeValue$5(state));
10867
+ const result = $TOKEN("JSXAttributeValue", state, JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state));
10859
10868
  if (state.events)
10860
10869
  state.events.exit?.("JSXAttributeValue", state, result);
10861
10870
  return result;
10862
10871
  } else {
10863
- const result = JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state) || JSXAttributeValue$5(state);
10872
+ const result = JSXAttributeValue$0(state) || JSXAttributeValue$1(state) || JSXAttributeValue$2(state) || JSXAttributeValue$3(state) || JSXAttributeValue$4(state);
10864
10873
  if (state.events)
10865
10874
  state.events.exit?.("JSXAttributeValue", state, result);
10866
10875
  return result;
10867
10876
  }
10868
10877
  }
10869
- var InlineJSXAttributeValue$0 = NullLiteral;
10870
- var InlineJSXAttributeValue$1 = BooleanLiteral;
10871
- var InlineJSXAttributeValue$2 = NumericLiteral;
10872
- var InlineJSXAttributeValue$3 = ThisLiteral;
10873
- var InlineJSXAttributeValue$4 = ArrayLiteral;
10874
- var InlineJSXAttributeValue$5 = BracedObjectLiteral;
10875
- var InlineJSXAttributeValue$6 = IdentifierReference;
10876
- var InlineJSXAttributeValue$7 = RegularExpressionLiteral;
10877
- var InlineJSXAttributeValue$8 = TemplateLiteral;
10878
- var InlineJSXAttributeValue$9 = ParenthesizedExpression;
10878
+ var InlineJSXAttributeValue$0 = $TS($S(InlineJSXUnaryExpression, $Q(InlineJSXBinaryOpRHS)), function($skip, $loc, $0, $1, $2) {
10879
+ if ($2.length)
10880
+ return module2.processBinaryOpExpression($0);
10881
+ return $1;
10882
+ });
10879
10883
  function InlineJSXAttributeValue(state) {
10880
10884
  if (state.events) {
10881
10885
  const result = state.events.enter?.("InlineJSXAttributeValue", state);
@@ -10883,17 +10887,255 @@ ${input.slice(result.pos)}
10883
10887
  return result.cache;
10884
10888
  }
10885
10889
  if (state.tokenize) {
10886
- const result = $TOKEN("InlineJSXAttributeValue", state, InlineJSXAttributeValue$0(state) || InlineJSXAttributeValue$1(state) || InlineJSXAttributeValue$2(state) || InlineJSXAttributeValue$3(state) || InlineJSXAttributeValue$4(state) || InlineJSXAttributeValue$5(state) || InlineJSXAttributeValue$6(state) || InlineJSXAttributeValue$7(state) || InlineJSXAttributeValue$8(state) || InlineJSXAttributeValue$9(state));
10890
+ const result = $TOKEN("InlineJSXAttributeValue", state, InlineJSXAttributeValue$0(state));
10887
10891
  if (state.events)
10888
10892
  state.events.exit?.("InlineJSXAttributeValue", state, result);
10889
10893
  return result;
10890
10894
  } else {
10891
- const result = InlineJSXAttributeValue$0(state) || InlineJSXAttributeValue$1(state) || InlineJSXAttributeValue$2(state) || InlineJSXAttributeValue$3(state) || InlineJSXAttributeValue$4(state) || InlineJSXAttributeValue$5(state) || InlineJSXAttributeValue$6(state) || InlineJSXAttributeValue$7(state) || InlineJSXAttributeValue$8(state) || InlineJSXAttributeValue$9(state);
10895
+ const result = InlineJSXAttributeValue$0(state);
10892
10896
  if (state.events)
10893
10897
  state.events.exit?.("InlineJSXAttributeValue", state, result);
10894
10898
  return result;
10895
10899
  }
10896
10900
  }
10901
+ var InlineJSXBinaryOpRHS$0 = $TS($S(BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2) {
10902
+ return [[], $1, [], $2];
10903
+ });
10904
+ function InlineJSXBinaryOpRHS(state) {
10905
+ if (state.events) {
10906
+ const result = state.events.enter?.("InlineJSXBinaryOpRHS", state);
10907
+ if (result)
10908
+ return result.cache;
10909
+ }
10910
+ if (state.tokenize) {
10911
+ const result = $TOKEN("InlineJSXBinaryOpRHS", state, InlineJSXBinaryOpRHS$0(state));
10912
+ if (state.events)
10913
+ state.events.exit?.("InlineJSXBinaryOpRHS", state, result);
10914
+ return result;
10915
+ } else {
10916
+ const result = InlineJSXBinaryOpRHS$0(state);
10917
+ if (state.events)
10918
+ state.events.exit?.("InlineJSXBinaryOpRHS", state, result);
10919
+ return result;
10920
+ }
10921
+ }
10922
+ var InlineJSXUnaryExpression$0 = $TS($S($Q(InlineJSXUnaryOp), InlineJSXUpdateExpression, $E(InlineJSXUnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
10923
+ var pre = $1;
10924
+ var exp = $2;
10925
+ var post = $3;
10926
+ return module2.processUnaryExpression(pre, exp, post);
10927
+ });
10928
+ function InlineJSXUnaryExpression(state) {
10929
+ if (state.events) {
10930
+ const result = state.events.enter?.("InlineJSXUnaryExpression", state);
10931
+ if (result)
10932
+ return result.cache;
10933
+ }
10934
+ if (state.tokenize) {
10935
+ const result = $TOKEN("InlineJSXUnaryExpression", state, InlineJSXUnaryExpression$0(state));
10936
+ if (state.events)
10937
+ state.events.exit?.("InlineJSXUnaryExpression", state, result);
10938
+ return result;
10939
+ } else {
10940
+ const result = InlineJSXUnaryExpression$0(state);
10941
+ if (state.events)
10942
+ state.events.exit?.("InlineJSXUnaryExpression", state, result);
10943
+ return result;
10944
+ }
10945
+ }
10946
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R6, fail, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10947
+ return { $loc, token: $0 };
10948
+ });
10949
+ function InlineJSXUnaryOp(state) {
10950
+ if (state.events) {
10951
+ const result = state.events.enter?.("InlineJSXUnaryOp", state);
10952
+ if (result)
10953
+ return result.cache;
10954
+ }
10955
+ if (state.tokenize) {
10956
+ const result = $TOKEN("InlineJSXUnaryOp", state, InlineJSXUnaryOp$0(state));
10957
+ if (state.events)
10958
+ state.events.exit?.("InlineJSXUnaryOp", state, result);
10959
+ return result;
10960
+ } else {
10961
+ const result = InlineJSXUnaryOp$0(state);
10962
+ if (state.events)
10963
+ state.events.exit?.("InlineJSXUnaryOp", state, result);
10964
+ return result;
10965
+ }
10966
+ }
10967
+ var InlineJSXUnaryPostfix$0 = QuestionMark;
10968
+ function InlineJSXUnaryPostfix(state) {
10969
+ if (state.events) {
10970
+ const result = state.events.enter?.("InlineJSXUnaryPostfix", state);
10971
+ if (result)
10972
+ return result.cache;
10973
+ }
10974
+ if (state.tokenize) {
10975
+ const result = $TOKEN("InlineJSXUnaryPostfix", state, InlineJSXUnaryPostfix$0(state));
10976
+ if (state.events)
10977
+ state.events.exit?.("InlineJSXUnaryPostfix", state, result);
10978
+ return result;
10979
+ } else {
10980
+ const result = InlineJSXUnaryPostfix$0(state);
10981
+ if (state.events)
10982
+ state.events.exit?.("InlineJSXUnaryPostfix", state, result);
10983
+ return result;
10984
+ }
10985
+ }
10986
+ var InlineJSXUpdateExpression$0 = $S(UpdateExpressionSymbol, UnaryExpression);
10987
+ var InlineJSXUpdateExpression$1 = $TS($S(InlineJSXCallExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
10988
+ if ($2)
10989
+ return $0;
10990
+ return $1;
10991
+ });
10992
+ function InlineJSXUpdateExpression(state) {
10993
+ if (state.events) {
10994
+ const result = state.events.enter?.("InlineJSXUpdateExpression", state);
10995
+ if (result)
10996
+ return result.cache;
10997
+ }
10998
+ if (state.tokenize) {
10999
+ const result = $TOKEN("InlineJSXUpdateExpression", state, InlineJSXUpdateExpression$0(state) || InlineJSXUpdateExpression$1(state));
11000
+ if (state.events)
11001
+ state.events.exit?.("InlineJSXUpdateExpression", state, result);
11002
+ return result;
11003
+ } else {
11004
+ const result = InlineJSXUpdateExpression$0(state) || InlineJSXUpdateExpression$1(state);
11005
+ if (state.events)
11006
+ state.events.exit?.("InlineJSXUpdateExpression", state, result);
11007
+ return result;
11008
+ }
11009
+ }
11010
+ var InlineJSXCallExpression$0 = $S($EXPECT($L10, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
11011
+ var InlineJSXCallExpression$1 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
11012
+ var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
11013
+ if ($2.length)
11014
+ return $0;
11015
+ return $1;
11016
+ });
11017
+ function InlineJSXCallExpression(state) {
11018
+ if (state.events) {
11019
+ const result = state.events.enter?.("InlineJSXCallExpression", state);
11020
+ if (result)
11021
+ return result.cache;
11022
+ }
11023
+ if (state.tokenize) {
11024
+ const result = $TOKEN("InlineJSXCallExpression", state, InlineJSXCallExpression$0(state) || InlineJSXCallExpression$1(state) || InlineJSXCallExpression$2(state));
11025
+ if (state.events)
11026
+ state.events.exit?.("InlineJSXCallExpression", state, result);
11027
+ return result;
11028
+ } else {
11029
+ const result = InlineJSXCallExpression$0(state) || InlineJSXCallExpression$1(state) || InlineJSXCallExpression$2(state);
11030
+ if (state.events)
11031
+ state.events.exit?.("InlineJSXCallExpression", state, result);
11032
+ return result;
11033
+ }
11034
+ }
11035
+ var InlineJSXCallExpressionRest$0 = MemberExpressionRest;
11036
+ var InlineJSXCallExpressionRest$1 = TemplateLiteral;
11037
+ var InlineJSXCallExpressionRest$2 = $S($E($C(OptionalShorthand, NonNullAssertion)), ExplicitArguments);
11038
+ function InlineJSXCallExpressionRest(state) {
11039
+ if (state.events) {
11040
+ const result = state.events.enter?.("InlineJSXCallExpressionRest", state);
11041
+ if (result)
11042
+ return result.cache;
11043
+ }
11044
+ if (state.tokenize) {
11045
+ const result = $TOKEN("InlineJSXCallExpressionRest", state, InlineJSXCallExpressionRest$0(state) || InlineJSXCallExpressionRest$1(state) || InlineJSXCallExpressionRest$2(state));
11046
+ if (state.events)
11047
+ state.events.exit?.("InlineJSXCallExpressionRest", state, result);
11048
+ return result;
11049
+ } else {
11050
+ const result = InlineJSXCallExpressionRest$0(state) || InlineJSXCallExpressionRest$1(state) || InlineJSXCallExpressionRest$2(state);
11051
+ if (state.events)
11052
+ state.events.exit?.("InlineJSXCallExpressionRest", state, result);
11053
+ return result;
11054
+ }
11055
+ }
11056
+ var InlineJSXMemberExpression$0 = $TS($S(InlineJSXPrimaryExpression, $Q(InlineJSXMemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
11057
+ if ($2.length)
11058
+ return $0;
11059
+ return $1;
11060
+ });
11061
+ var InlineJSXMemberExpression$1 = SuperProperty;
11062
+ var InlineJSXMemberExpression$2 = MetaProperty;
11063
+ function InlineJSXMemberExpression(state) {
11064
+ if (state.events) {
11065
+ const result = state.events.enter?.("InlineJSXMemberExpression", state);
11066
+ if (result)
11067
+ return result.cache;
11068
+ }
11069
+ if (state.tokenize) {
11070
+ const result = $TOKEN("InlineJSXMemberExpression", state, InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state));
11071
+ if (state.events)
11072
+ state.events.exit?.("InlineJSXMemberExpression", state, result);
11073
+ return result;
11074
+ } else {
11075
+ const result = InlineJSXMemberExpression$0(state) || InlineJSXMemberExpression$1(state) || InlineJSXMemberExpression$2(state);
11076
+ if (state.events)
11077
+ state.events.exit?.("InlineJSXMemberExpression", state, result);
11078
+ return result;
11079
+ }
11080
+ }
11081
+ var InlineJSXMemberExpressionRest$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
11082
+ if ($1) {
11083
+ if ($1.length === 2 && $2.type === "SliceExpression") {
11084
+ return [$1[0], $2];
11085
+ }
11086
+ return $0;
11087
+ }
11088
+ return $2;
11089
+ });
11090
+ var InlineJSXMemberExpressionRest$1 = PropertyAccess;
11091
+ var InlineJSXMemberExpressionRest$2 = NonNullAssertion;
11092
+ function InlineJSXMemberExpressionRest(state) {
11093
+ if (state.events) {
11094
+ const result = state.events.enter?.("InlineJSXMemberExpressionRest", state);
11095
+ if (result)
11096
+ return result.cache;
11097
+ }
11098
+ if (state.tokenize) {
11099
+ const result = $TOKEN("InlineJSXMemberExpressionRest", state, InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state));
11100
+ if (state.events)
11101
+ state.events.exit?.("InlineJSXMemberExpressionRest", state, result);
11102
+ return result;
11103
+ } else {
11104
+ const result = InlineJSXMemberExpressionRest$0(state) || InlineJSXMemberExpressionRest$1(state) || InlineJSXMemberExpressionRest$2(state);
11105
+ if (state.events)
11106
+ state.events.exit?.("InlineJSXMemberExpressionRest", state, result);
11107
+ return result;
11108
+ }
11109
+ }
11110
+ var InlineJSXPrimaryExpression$0 = NullLiteral;
11111
+ var InlineJSXPrimaryExpression$1 = BooleanLiteral;
11112
+ var InlineJSXPrimaryExpression$2 = NumericLiteral;
11113
+ var InlineJSXPrimaryExpression$3 = StringLiteral;
11114
+ var InlineJSXPrimaryExpression$4 = ThisLiteral;
11115
+ var InlineJSXPrimaryExpression$5 = ArrayLiteral;
11116
+ var InlineJSXPrimaryExpression$6 = BracedObjectLiteral;
11117
+ var InlineJSXPrimaryExpression$7 = IdentifierReference;
11118
+ var InlineJSXPrimaryExpression$8 = RegularExpressionLiteral;
11119
+ var InlineJSXPrimaryExpression$9 = TemplateLiteral;
11120
+ var InlineJSXPrimaryExpression$10 = ParenthesizedExpression;
11121
+ function InlineJSXPrimaryExpression(state) {
11122
+ if (state.events) {
11123
+ const result = state.events.enter?.("InlineJSXPrimaryExpression", state);
11124
+ if (result)
11125
+ return result.cache;
11126
+ }
11127
+ if (state.tokenize) {
11128
+ const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state));
11129
+ if (state.events)
11130
+ state.events.exit?.("InlineJSXPrimaryExpression", state, result);
11131
+ return result;
11132
+ } else {
11133
+ const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state);
11134
+ if (state.events)
11135
+ state.events.exit?.("InlineJSXPrimaryExpression", state, result);
11136
+ return result;
11137
+ }
11138
+ }
10897
11139
  var JSXMixedChildren$0 = $TS($S($Q($C(_, JSXChild)), JSXNestedChildren), function($skip, $loc, $0, $1, $2) {
10898
11140
  var c1 = $1;
10899
11141
  var c2 = $2;
@@ -10984,7 +11226,7 @@ ${input.slice(result.pos)}
10984
11226
  return result;
10985
11227
  }
10986
11228
  }
10987
- var JSXText$0 = $R$0($EXPECT($R48, fail, "JSXText /[^{}<>\\r\\n]+/"));
11229
+ var JSXText$0 = $R$0($EXPECT($R46, fail, "JSXText /[^{}<>\\r\\n]+/"));
10988
11230
  function JSXText(state) {
10989
11231
  if (state.events) {
10990
11232
  const result = state.events.enter?.("JSXText", state);
@@ -11043,7 +11285,7 @@ ${input.slice(result.pos)}
11043
11285
  return result;
11044
11286
  }
11045
11287
  }
11046
- var TypeDeclarationModifier$0 = $S($EXPECT($L150, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
11288
+ var TypeDeclarationModifier$0 = $S($EXPECT($L151, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
11047
11289
  var TypeDeclarationModifier$1 = Export;
11048
11290
  function TypeDeclarationModifier(state) {
11049
11291
  if (state.events) {
@@ -11085,7 +11327,7 @@ ${input.slice(result.pos)}
11085
11327
  return result;
11086
11328
  }
11087
11329
  }
11088
- var TypeKeyword$0 = $S($EXPECT($L151, fail, 'TypeKeyword "type"'), NonIdContinue);
11330
+ var TypeKeyword$0 = $S($EXPECT($L152, fail, 'TypeKeyword "type"'), NonIdContinue);
11089
11331
  function TypeKeyword(state) {
11090
11332
  if (state.events) {
11091
11333
  const result = state.events.enter?.("TypeKeyword", state);
@@ -11104,7 +11346,7 @@ ${input.slice(result.pos)}
11104
11346
  return result;
11105
11347
  }
11106
11348
  }
11107
- var Interface$0 = $S($EXPECT($L152, fail, 'Interface "interface"'), NonIdContinue);
11349
+ var Interface$0 = $S($EXPECT($L153, fail, 'Interface "interface"'), NonIdContinue);
11108
11350
  function Interface(state) {
11109
11351
  if (state.events) {
11110
11352
  const result = state.events.enter?.("Interface", state);
@@ -11123,7 +11365,7 @@ ${input.slice(result.pos)}
11123
11365
  return result;
11124
11366
  }
11125
11367
  }
11126
- var Namespace$0 = $S($EXPECT($L153, fail, 'Namespace "namespace"'), NonIdContinue);
11368
+ var Namespace$0 = $S($EXPECT($L154, fail, 'Namespace "namespace"'), NonIdContinue);
11127
11369
  function Namespace(state) {
11128
11370
  if (state.events) {
11129
11371
  const result = state.events.enter?.("Namespace", state);
@@ -11312,7 +11554,7 @@ ${input.slice(result.pos)}
11312
11554
  return result;
11313
11555
  }
11314
11556
  }
11315
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R49, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L154, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R4, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
11557
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R47, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L155, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R4, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
11316
11558
  function TypeIndexSignature(state) {
11317
11559
  if (state.events) {
11318
11560
  const result = state.events.enter?.("TypeIndexSignature", state);
@@ -11372,7 +11614,7 @@ ${input.slice(result.pos)}
11372
11614
  return result;
11373
11615
  }
11374
11616
  }
11375
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L155, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
11617
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L156, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
11376
11618
  const children = [...$1, $2];
11377
11619
  if ($3)
11378
11620
  children.push($3);
@@ -11507,10 +11749,10 @@ ${input.slice(result.pos)}
11507
11749
  return result;
11508
11750
  }
11509
11751
  }
11510
- var TypeUnaryOp$0 = $EXPECT($L156, fail, 'TypeUnaryOp "keyof"');
11511
- var TypeUnaryOp$1 = $EXPECT($L138, fail, 'TypeUnaryOp "typeof"');
11512
- var TypeUnaryOp$2 = $EXPECT($L157, fail, 'TypeUnaryOp "infer"');
11513
- var TypeUnaryOp$3 = $EXPECT($L154, fail, 'TypeUnaryOp "readonly"');
11752
+ var TypeUnaryOp$0 = $EXPECT($L157, fail, 'TypeUnaryOp "keyof"');
11753
+ var TypeUnaryOp$1 = $EXPECT($L139, fail, 'TypeUnaryOp "typeof"');
11754
+ var TypeUnaryOp$2 = $EXPECT($L158, fail, 'TypeUnaryOp "infer"');
11755
+ var TypeUnaryOp$3 = $EXPECT($L155, fail, 'TypeUnaryOp "readonly"');
11514
11756
  function TypeUnaryOp(state) {
11515
11757
  if (state.events) {
11516
11758
  const result = state.events.enter?.("TypeUnaryOp", state);
@@ -11679,10 +11921,10 @@ ${input.slice(result.pos)}
11679
11921
  }
11680
11922
  var TypeLiteral$0 = Literal;
11681
11923
  var TypeLiteral$1 = TemplateLiteral;
11682
- var TypeLiteral$2 = $TV($EXPECT($L142, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
11924
+ var TypeLiteral$2 = $TV($EXPECT($L143, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
11683
11925
  return { $loc, token: "void" };
11684
11926
  });
11685
- var TypeLiteral$3 = $TV($EXPECT($L158, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
11927
+ var TypeLiteral$3 = $TV($EXPECT($L159, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
11686
11928
  return { $loc, token: "[]" };
11687
11929
  });
11688
11930
  function TypeLiteral(state) {
@@ -11746,7 +11988,9 @@ ${input.slice(result.pos)}
11746
11988
  return result;
11747
11989
  }
11748
11990
  }
11749
- var TypeArguments$0 = $S(__, $EXPECT($L5, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeArguments ">"'));
11991
+ var TypeArguments$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
11992
+ return { ts: true, children: $0 };
11993
+ });
11750
11994
  function TypeArguments(state) {
11751
11995
  if (state.events) {
11752
11996
  const result = state.events.enter?.("TypeArguments", state);
@@ -11765,7 +12009,7 @@ ${input.slice(result.pos)}
11765
12009
  return result;
11766
12010
  }
11767
12011
  }
11768
- var TypeParameters$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
12012
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L5, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11769
12013
  return { ts: true, children: $0 };
11770
12014
  });
11771
12015
  function TypeParameters(state) {
@@ -11825,11 +12069,8 @@ ${input.slice(result.pos)}
11825
12069
  }
11826
12070
  }
11827
12071
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
11828
- var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
11829
- var TypeParameterDelimiter$2 = $T($S($Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"'))), InsertComma), function(value) {
11830
- return value[1];
11831
- });
11832
- var TypeParameterDelimiter$3 = $T($S($Y(EOS), InsertComma), function(value) {
12072
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
12073
+ var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
11833
12074
  return value[1];
11834
12075
  });
11835
12076
  function TypeParameterDelimiter(state) {
@@ -11839,18 +12080,18 @@ ${input.slice(result.pos)}
11839
12080
  return result.cache;
11840
12081
  }
11841
12082
  if (state.tokenize) {
11842
- const result = $TOKEN("TypeParameterDelimiter", state, TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state));
12083
+ const result = $TOKEN("TypeParameterDelimiter", state, TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state));
11843
12084
  if (state.events)
11844
12085
  state.events.exit?.("TypeParameterDelimiter", state, result);
11845
12086
  return result;
11846
12087
  } else {
11847
- const result = TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
12088
+ const result = TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state);
11848
12089
  if (state.events)
11849
12090
  state.events.exit?.("TypeParameterDelimiter", state, result);
11850
12091
  return result;
11851
12092
  }
11852
12093
  }
11853
- var Shebang$0 = $S($R$0($EXPECT($R50, fail, "Shebang /#![^\\r\\n]*/")), EOL);
12094
+ var Shebang$0 = $S($R$0($EXPECT($R48, fail, "Shebang /#![^\\r\\n]*/")), EOL);
11854
12095
  function Shebang(state) {
11855
12096
  if (state.events) {
11856
12097
  const result = state.events.enter?.("Shebang", state);
@@ -11869,11 +12110,11 @@ ${input.slice(result.pos)}
11869
12110
  return result;
11870
12111
  }
11871
12112
  }
11872
- var CivetPrologue$0 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
12113
+ var CivetPrologue$0 = $T($S($EXPECT($R49, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11873
12114
  var content = value[2];
11874
12115
  return content;
11875
12116
  });
11876
- var CivetPrologue$1 = $T($S($EXPECT($R51, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
12117
+ var CivetPrologue$1 = $T($S($EXPECT($R49, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
11877
12118
  var content = value[2];
11878
12119
  return content;
11879
12120
  });
@@ -11895,7 +12136,7 @@ ${input.slice(result.pos)}
11895
12136
  return result;
11896
12137
  }
11897
12138
  }
11898
- var CivetPrologueContent$0 = $TS($S($EXPECT($L159, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R52, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
12139
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L160, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R50, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
11899
12140
  var options = $2;
11900
12141
  return {
11901
12142
  type: "CivetPrologue",
@@ -11921,7 +12162,7 @@ ${input.slice(result.pos)}
11921
12162
  return result;
11922
12163
  }
11923
12164
  }
11924
- var CivetOption$0 = $TR($EXPECT($R53, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12165
+ var CivetOption$0 = $TR($EXPECT($R51, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11925
12166
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
11926
12167
  if (l)
11927
12168
  return l.toUpperCase();
@@ -11953,7 +12194,7 @@ ${input.slice(result.pos)}
11953
12194
  return result;
11954
12195
  }
11955
12196
  }
11956
- var UnknownPrologue$0 = $S($R$0($EXPECT($R51, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
12197
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R49, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
11957
12198
  function UnknownPrologue(state) {
11958
12199
  if (state.events) {
11959
12200
  const result = state.events.enter?.("UnknownPrologue", state);
@@ -12011,7 +12252,7 @@ ${input.slice(result.pos)}
12011
12252
  return result;
12012
12253
  }
12013
12254
  }
12014
- var EOL$0 = $TR($EXPECT($R54, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12255
+ var EOL$0 = $TR($EXPECT($R52, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12015
12256
  return { $loc, token: $0 };
12016
12257
  });
12017
12258
  function EOL(state) {
@@ -12638,6 +12879,7 @@ ${input.slice(result.pos)}
12638
12879
  }
12639
12880
  module2.config = parse2.config = {
12640
12881
  autoVar: false,
12882
+ autoLet: false,
12641
12883
  coffeeBinaryExistential: false,
12642
12884
  coffeeBooleans: false,
12643
12885
  coffeeClasses: false,
@@ -12762,6 +13004,55 @@ ${input.slice(result.pos)}
12762
13004
  Object.assign(module2.config, directive.config);
12763
13005
  }
12764
13006
  });
13007
+ module2.processUnaryExpression = (pre, exp, post) => {
13008
+ if (post?.token === "?") {
13009
+ post = {
13010
+ $loc: post.$loc,
13011
+ token: " != null"
13012
+ };
13013
+ switch (exp.type) {
13014
+ case "Identifier":
13015
+ case "Literal":
13016
+ return {
13017
+ ...exp,
13018
+ children: [...pre, ...exp.children, post]
13019
+ };
13020
+ default:
13021
+ return {
13022
+ type: "ParenthesizedExpression",
13023
+ children: ["(", ...pre, "(", exp, ")", post, ")"]
13024
+ };
13025
+ }
13026
+ }
13027
+ if (exp.type === "Literal") {
13028
+ if (pre.length === 1 && pre[0].token === "-") {
13029
+ const children = [pre[0], ...exp.children];
13030
+ if (post)
13031
+ exp.children.push(post);
13032
+ return {
13033
+ type: "Literal",
13034
+ children,
13035
+ raw: `-${exp.raw}`
13036
+ };
13037
+ }
13038
+ }
13039
+ if (exp.children) {
13040
+ const children = [...pre, ...exp.children];
13041
+ if (post)
13042
+ children.push(post);
13043
+ return Object.assign({}, exp, { children });
13044
+ } else if (Array.isArray(exp)) {
13045
+ const children = [...pre, ...exp];
13046
+ if (post)
13047
+ children.push(post);
13048
+ return { children };
13049
+ } else {
13050
+ const children = [...pre, exp];
13051
+ if (post)
13052
+ children.push(post);
13053
+ return { children };
13054
+ }
13055
+ };
12765
13056
  module2.expressionizeIfClause = function(clause, b, e) {
12766
13057
  const children = clause.children.slice(1);
12767
13058
  children.push("?", b);
@@ -12995,6 +13286,12 @@ ${input.slice(result.pos)}
12995
13286
  if (Array.isArray(node))
12996
13287
  return node.every(module2.isWhitespaceOrEmpty);
12997
13288
  };
13289
+ module2.isTemplateLiteral = function(node) {
13290
+ let s = node;
13291
+ while (s && s[0] && !s.token)
13292
+ s = s[0];
13293
+ return s.token?.startsWith?.("`");
13294
+ };
12998
13295
  module2.processBinaryOpExpression = function($02) {
12999
13296
  const expandedOps = module2.expandChainedComparisons($02);
13000
13297
  let i = 2;
@@ -13417,7 +13714,9 @@ ${input.slice(result.pos)}
13417
13714
  gatherRecursiveAll(statements, (n) => n.type === "IterationExpression").forEach((e) => expressionizeIteration(e));
13418
13715
  checkSpliceRef(statements);
13419
13716
  statements.unshift(...module2.prelude);
13420
- if (module2.config.autoVar) {
13717
+ if (module2.config.autoLet) {
13718
+ createLetDecs(statements, []);
13719
+ } else if (module2.config.autoVar) {
13421
13720
  createVarDecs(statements, []);
13422
13721
  }
13423
13722
  populateRefs(statements);
@@ -13518,6 +13817,52 @@ ${input.slice(result.pos)}
13518
13817
  statements.unshift([indent, "var ", varIds.join(", "), "\n"]);
13519
13818
  }
13520
13819
  }
13820
+ function createLetDecs(statements, scopes) {
13821
+ function hasDec(name) {
13822
+ return scopes.some((s) => s.has(name));
13823
+ }
13824
+ function insertBeforeAssignment(assignment, content) {
13825
+ if (assignment.children && assignment.children.length) {
13826
+ let indent = assignment.children[0][0][0];
13827
+ if (Array.isArray(indent))
13828
+ indent = indent[indent.length - 1];
13829
+ assignment.children.unshift([indent, ...content]);
13830
+ }
13831
+ }
13832
+ let currentScope = /* @__PURE__ */ new Set();
13833
+ scopes.push(currentScope);
13834
+ const fnNodes = gatherNodes(statements, (s) => s.type === "FunctionExpression");
13835
+ const forNodes = gatherNodes(statements, (s) => s.type === "ForStatement");
13836
+ const nodes = gatherNodes(statements, (s) => s.type === "BlockStatement" || s.type === "AssignmentExpression");
13837
+ for (const node of nodes) {
13838
+ if (node.type == "AssignmentExpression") {
13839
+ let undeclaredIdentifiers = node.names.filter((name) => !hasDec(name));
13840
+ if (node.children.length)
13841
+ createLetDecs(node.children, scopes);
13842
+ undeclaredIdentifiers.forEach((name) => currentScope.add(name));
13843
+ if (node.names.length === undeclaredIdentifiers.length) {
13844
+ insertBeforeAssignment(node, ["let "]);
13845
+ } else if (undeclaredIdentifiers.length > 0) {
13846
+ insertBeforeAssignment(node, ["let ", undeclaredIdentifiers.join(", "), "\n"]);
13847
+ }
13848
+ } else {
13849
+ let block = node;
13850
+ let fnNode = fnNodes.find((fnNode2) => fnNode2.block === block);
13851
+ let forNode = forNodes.find((forNode2) => forNode2.block === block);
13852
+ if (fnNode != null) {
13853
+ scopes.push(new Set(fnNode.parameters.names));
13854
+ createLetDecs(block.expressions, scopes);
13855
+ scopes.pop();
13856
+ } else if (forNode != null) {
13857
+ scopes.push(new Set(forNode.declaration.names));
13858
+ createLetDecs(block.expressions, scopes);
13859
+ scopes.pop();
13860
+ } else
13861
+ createLetDecs(block.expressions, scopes);
13862
+ }
13863
+ }
13864
+ scopes.pop();
13865
+ }
13521
13866
  function gatherBindingCode(statements) {
13522
13867
  const thisAssignments = [];
13523
13868
  const splices = [];
@@ -13557,7 +13902,7 @@ ${input.slice(result.pos)}
13557
13902
  return result;
13558
13903
  }
13559
13904
  }
13560
- var Indent$0 = $TR($EXPECT($R55, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13905
+ var Indent$0 = $TR($EXPECT($R53, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13561
13906
  let level;
13562
13907
  if (module2.config.tab) {
13563
13908
  const tabs = $0.match(/\t/g);