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