@danielx/civet 0.8.15 → 0.8.16

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
@@ -66,7 +66,7 @@ var Civet = (() => {
66
66
  $EVENT: () => $EVENT2,
67
67
  $EVENT_C: () => $EVENT_C2,
68
68
  $EXPECT: () => $EXPECT2,
69
- $L: () => $L246,
69
+ $L: () => $L247,
70
70
  $N: () => $N2,
71
71
  $P: () => $P2,
72
72
  $Q: () => $Q2,
@@ -91,7 +91,7 @@ var Civet = (() => {
91
91
  return result;
92
92
  };
93
93
  }
94
- function $L246(str) {
94
+ function $L247(str) {
95
95
  return function(_ctx, state2) {
96
96
  const { input, pos } = state2, { length } = str, end = pos + length;
97
97
  if (input.substring(pos, end) === str) {
@@ -545,6 +545,7 @@ ${body}`;
545
545
  hasAwait: () => hasAwait,
546
546
  hasExportDeclaration: () => hasExportDeclaration,
547
547
  hasImportDeclaration: () => hasImportDeclaration,
548
+ hasTrailingComment: () => hasTrailingComment,
548
549
  hasYield: () => hasYield,
549
550
  insertTrimmingSpace: () => insertTrimmingSpace,
550
551
  isComma: () => isComma,
@@ -770,6 +771,8 @@ ${body}`;
770
771
  if (!(node != null)) {
771
772
  return false;
772
773
  }
774
+ let ref3;
775
+ let ref4;
773
776
  switch (node.type) {
774
777
  case "ReturnStatement":
775
778
  case "ThrowStatement":
@@ -778,13 +781,30 @@ ${body}`;
778
781
  return true;
779
782
  }
780
783
  case "IfStatement": {
781
- return isExit(node.then) && isExit(node.else?.block);
784
+ return (
785
+ // `insertReturn` for IfStatement adds a return to children
786
+ // when there's no else block
787
+ (ref3 = node.children)[ref3.length - 1]?.type === "ReturnStatement" || (ref4 = node.children)[ref4.length - 1]?.[1]?.type === "ReturnStatement" || isExit(node.then) && isExit(node.else?.block)
788
+ );
789
+ }
790
+ case "PatternMatchingStatement": {
791
+ return isExit(node.children[0][1]);
792
+ }
793
+ case "SwitchStatement": {
794
+ return (
795
+ // Ensure exhaustive by requiring an else/default clause
796
+ node.caseBlock.clauses.some(($) => $.type === "DefaultClause") && // Every clause should exit
797
+ node.caseBlock.clauses.every(isExit)
798
+ );
799
+ }
800
+ case "TryStatement": {
801
+ return node.blocks.every(isExit);
782
802
  }
783
803
  case "BlockStatement": {
784
804
  return node.expressions.some((s) => isExit(s[1]));
785
805
  }
786
806
  case "IterationStatement": {
787
- return isLoopStatement(node) && gatherRecursiveWithinFunction(node.block, ($) => $.type === "BreakStatement").length === 0;
807
+ return isLoopStatement(node) && gatherRecursiveWithinFunction(node.block, ($1) => $1.type === "BreakStatement").length === 0;
788
808
  }
789
809
  default: {
790
810
  return false;
@@ -811,6 +831,22 @@ ${body}`;
811
831
  return children;
812
832
  }
813
833
  }
834
+ function hasTrailingComment(node) {
835
+ if (!(node != null)) {
836
+ return false;
837
+ }
838
+ if (node.type === "Comment") {
839
+ return true;
840
+ }
841
+ if (Array.isArray(node)) {
842
+ return hasTrailingComment(node[node.length - 1]);
843
+ }
844
+ if ("children" in node) {
845
+ let ref5;
846
+ return hasTrailingComment((ref5 = node.children)[ref5.length - 1]);
847
+ }
848
+ return false;
849
+ }
814
850
  function insertTrimmingSpace(target, c) {
815
851
  if (!(target != null)) {
816
852
  return target;
@@ -939,7 +975,7 @@ ${body}`;
939
975
  case "false":
940
976
  return false;
941
977
  }
942
- let ref3;
978
+ let ref6;
943
979
  switch (literal.subtype) {
944
980
  case "StringLiteral": {
945
981
  assert.equal(
@@ -955,8 +991,8 @@ ${body}`;
955
991
  return BigInt(raw.slice(0, -1));
956
992
  } else if (raw.match(/[\.eE]/)) {
957
993
  return parseFloat(raw);
958
- } else if ((ref3 = raw.match(/^[+-]?0(.)/)) && Array.isArray(ref3) && len(ref3, 2)) {
959
- const [, base] = ref3;
994
+ } else if ((ref6 = raw.match(/^[+-]?0(.)/)) && Array.isArray(ref6) && len(ref6, 2)) {
995
+ const [, base] = ref6;
960
996
  switch (base.toLowerCase()) {
961
997
  case "x":
962
998
  return parseInt(raw.replace(/0[xX]/, ""), 16);
@@ -1036,16 +1072,16 @@ ${body}`;
1036
1072
  return startsWithPredicate(node.children, predicate);
1037
1073
  }
1038
1074
  function hasAwait(exp) {
1039
- return gatherRecursiveWithinFunction(exp, ($1) => $1.type === "Await").length > 0;
1075
+ return gatherRecursiveWithinFunction(exp, ($2) => $2.type === "Await").length > 0;
1040
1076
  }
1041
1077
  function hasYield(exp) {
1042
- return gatherRecursiveWithinFunction(exp, ($2) => $2.type === "Yield").length > 0;
1078
+ return gatherRecursiveWithinFunction(exp, ($3) => $3.type === "Yield").length > 0;
1043
1079
  }
1044
1080
  function hasImportDeclaration(exp) {
1045
- return gatherRecursiveWithinFunction(exp, ($3) => $3.type === "ImportDeclaration").length > 0;
1081
+ return gatherRecursiveWithinFunction(exp, ($4) => $4.type === "ImportDeclaration").length > 0;
1046
1082
  }
1047
1083
  function hasExportDeclaration(exp) {
1048
- return gatherRecursiveWithinFunction(exp, ($4) => $4.type === "ExportDeclaration").length > 0;
1084
+ return gatherRecursiveWithinFunction(exp, ($5) => $5.type === "ExportDeclaration").length > 0;
1049
1085
  }
1050
1086
  function deepCopy(root) {
1051
1087
  const copied = /* @__PURE__ */ new Map();
@@ -1190,7 +1226,7 @@ ${body}`;
1190
1226
  if (skipParens.has(expression.type)) {
1191
1227
  return expression;
1192
1228
  }
1193
- if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($5) => $5.type === "ObjectExpression")) {
1229
+ if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($6) => $6.type === "ObjectExpression")) {
1194
1230
  return expression;
1195
1231
  }
1196
1232
  }
@@ -1205,7 +1241,7 @@ ${body}`;
1205
1241
  });
1206
1242
  }
1207
1243
  function checkValidLHS(node) {
1208
- let ref4;
1244
+ let ref7;
1209
1245
  switch (node?.type) {
1210
1246
  case "UnaryExpression": {
1211
1247
  node.children.unshift({
@@ -1215,7 +1251,7 @@ ${body}`;
1215
1251
  return true;
1216
1252
  }
1217
1253
  case "CallExpression": {
1218
- const lastType = (ref4 = node.children)[ref4.length - 1]?.type;
1254
+ const lastType = (ref7 = node.children)[ref7.length - 1]?.type;
1219
1255
  switch (lastType) {
1220
1256
  case "PropertyAccess":
1221
1257
  case "SliceExpression":
@@ -1263,8 +1299,8 @@ ${body}`;
1263
1299
  node.parent = parent;
1264
1300
  }
1265
1301
  if (depth && isParent(node)) {
1266
- for (let ref5 = node.children, i9 = 0, len9 = ref5.length; i9 < len9; i9++) {
1267
- const child = ref5[i9];
1302
+ for (let ref8 = node.children, i9 = 0, len9 = ref8.length; i9 < len9; i9++) {
1303
+ const child = ref8[i9];
1268
1304
  updateParentPointers(child, node, depth - 1);
1269
1305
  }
1270
1306
  }
@@ -1312,11 +1348,11 @@ ${body}`;
1312
1348
  const wrap = suffix.type === "ReturnTypeAnnotation";
1313
1349
  spliceChild(suffix, suffix.t, 1, suffix.t = [
1314
1350
  getTrimmingSpace(suffix.t),
1315
- wrap && "(",
1351
+ wrap ? "(" : void 0,
1316
1352
  // TODO: avoid parens if unnecessary
1317
1353
  "undefined | ",
1318
- parenthesizeType(insertTrimmingSpace(suffix.t, "")),
1319
- wrap && ")"
1354
+ parenthesizeType(trimFirstSpace(suffix.t)),
1355
+ wrap ? ")" : void 0
1320
1356
  ]);
1321
1357
  }
1322
1358
  var typeNeedsNoParens = /* @__PURE__ */ new Set([
@@ -1330,7 +1366,11 @@ ${body}`;
1330
1366
  if (typeNeedsNoParens.has(type.type)) {
1331
1367
  return type;
1332
1368
  }
1333
- return ["(", type, ")"];
1369
+ return makeNode({
1370
+ type: "TypeParenthesized",
1371
+ ts: true,
1372
+ children: ["(", type, ")"]
1373
+ });
1334
1374
  }
1335
1375
  function wrapIIFE(expressions, asyncFlag, generator) {
1336
1376
  let awaitPrefix;
@@ -1401,8 +1441,8 @@ ${body}`;
1401
1441
  children.splice(1, 0, ".bind(this)");
1402
1442
  }
1403
1443
  if (gatherRecursiveWithinFunction(block, (a2) => typeof a2 === "object" && a2 != null && "token" in a2 && a2.token === "arguments").length) {
1404
- let ref6;
1405
- children[children.length - 1] = (ref6 = parameters.children)[ref6.length - 1] = "(arguments)";
1444
+ let ref9;
1445
+ children[children.length - 1] = (ref9 = parameters.children)[ref9.length - 1] = "(arguments)";
1406
1446
  }
1407
1447
  }
1408
1448
  let exp = makeNode({
@@ -1429,13 +1469,16 @@ ${body}`;
1429
1469
  }
1430
1470
  return exp;
1431
1471
  }
1432
- function wrapWithReturn(expression) {
1472
+ function wrapWithReturn(expression, parent = expression?.parent, semi = false) {
1433
1473
  const children = expression ? ["return ", expression] : ["return"];
1474
+ if (semi) {
1475
+ children.unshift(";");
1476
+ }
1434
1477
  return makeNode({
1435
1478
  type: "ReturnStatement",
1436
1479
  children,
1437
1480
  expression,
1438
- parent: expression?.parent
1481
+ parent
1439
1482
  });
1440
1483
  }
1441
1484
  function flatJoin(array, separator) {
@@ -1677,9 +1720,11 @@ ${body}`;
1677
1720
  if (l) {
1678
1721
  if (arrayElementHasTrailingComma(after[l - 1]))
1679
1722
  l++;
1723
+ const elements2 = trimFirstSpace(after);
1680
1724
  blockPrefix = {
1681
1725
  type: "PostRestBindingElements",
1682
- children: ["[", trimFirstSpace(after), "] = ", restIdentifier, ".splice(-", l.toString(), ")"],
1726
+ elements: elements2,
1727
+ children: ["[", elements2, "] = ", restIdentifier, ".splice(-", l.toString(), ")"],
1683
1728
  names: after.flatMap((p) => p.names)
1684
1729
  };
1685
1730
  }
@@ -2029,7 +2074,7 @@ ${body}`;
2029
2074
  AutoPromise(ref) {
2030
2075
  state.prelude.push([
2031
2076
  "",
2032
- ts(["type ", ref, "<T> = T extends Promise<unknown> ? T : Promise<T>"]),
2077
+ ts(["type ", ref, "<T> = Promise<Awaited<T>>"]),
2033
2078
  ";\n"
2034
2079
  ]);
2035
2080
  },
@@ -2698,14 +2743,10 @@ ${js}`
2698
2743
  let ref1;
2699
2744
  if (!((ref1 = block.children)[ref1.length - 2]?.type === "ReturnStatement")) {
2700
2745
  let ref2;
2701
- const indent = getIndent((ref2 = block.expressions)[ref2.length - 1]) || ";";
2746
+ const indent = getIndent((ref2 = block.expressions)[ref2.length - 1]);
2702
2747
  block.expressions.push([
2703
- [indent],
2704
- {
2705
- type: "ReturnStatement",
2706
- expression: ref,
2707
- children: ["return ", ref]
2708
- }
2748
+ indent,
2749
+ wrapWithReturn(ref, block, !indent)
2709
2750
  ]);
2710
2751
  }
2711
2752
  return true;
@@ -2717,34 +2758,103 @@ ${js}`
2717
2758
  const index = children.indexOf(pattern.elements);
2718
2759
  if (index < 0)
2719
2760
  throw new Error("failed to find elements in ArrayBindingPattern");
2720
- children[index] = pattern.elements.map((el) => {
2721
- const [ws, e, delim] = el.children;
2722
- return { ...el, children: [ws, patternAsValue(e), delim] };
2723
- });
2724
- return { ...pattern, children };
2761
+ const elements = children[index] = pattern.elements.map(patternAsValue);
2762
+ return { ...pattern, elements, children };
2725
2763
  }
2726
2764
  case "ObjectBindingPattern": {
2727
2765
  const children = [...pattern.children];
2728
2766
  const index = children.indexOf(pattern.properties);
2729
2767
  if (index < 0)
2730
2768
  throw new Error("failed to find properties in ArrayBindingPattern");
2731
- children[index] = pattern.properties.map(patternAsValue);
2732
- return { ...pattern, children };
2769
+ const properties = children[index] = pattern.properties.map(patternAsValue);
2770
+ return { ...pattern, properties, children };
2733
2771
  }
2734
- case "Identifier":
2735
2772
  case "BindingProperty": {
2736
- const children = [
2737
- // { name: value } = ... declares value, not name
2738
- pattern.value ?? pattern.name,
2739
- pattern.delim
2740
- ];
2741
- if (isWhitespaceOrEmpty(pattern.children[0])) {
2742
- children.unshift(pattern.children[0]);
2773
+ let children;
2774
+ if (pattern.value?.type === "Identifier") {
2775
+ children = [pattern.value, pattern.delim];
2776
+ if (isWhitespaceOrEmpty(pattern.children[0])) {
2777
+ children.unshift(pattern.children[0]);
2778
+ }
2779
+ } else {
2780
+ children = [...pattern.children];
2781
+ if (pattern.initializer != null) {
2782
+ const index = children.indexOf(pattern.initializer);
2783
+ assert.notEqual(index, -1, "failed to find initializer in BindingElement");
2784
+ children.splice(index, 1);
2785
+ }
2786
+ if (pattern.value != null) {
2787
+ children = children.map(($2) => $2 === pattern.value ? patternAsValue(pattern.value) : $2);
2788
+ }
2743
2789
  }
2744
2790
  return { ...pattern, children };
2745
2791
  }
2746
- default:
2792
+ case "AtBindingProperty": {
2793
+ const children = [...pattern.children];
2794
+ if (pattern.initializer != null) {
2795
+ const index = children.indexOf(pattern.initializer);
2796
+ assert.notEqual(index, -1, "failed to find initializer in AtBindingProperty");
2797
+ children.splice(index, 1);
2798
+ }
2799
+ return { ...pattern, children };
2800
+ }
2801
+ case "BindingElement": {
2802
+ const children = [...pattern.children];
2803
+ if (pattern.initializer != null) {
2804
+ const index2 = children.indexOf(pattern.initializer);
2805
+ assert.notEqual(index2, -1, "failed to find initializer in BindingElement");
2806
+ children.splice(index2, 1);
2807
+ }
2808
+ const index = children.indexOf(pattern.binding);
2809
+ assert.notEqual(index, -1, "failed to find binding in BindingElement");
2810
+ children[index] = patternAsValue(pattern.binding);
2811
+ return { ...pattern, children };
2812
+ }
2813
+ default: {
2747
2814
  return pattern;
2815
+ }
2816
+ }
2817
+ }
2818
+ function patternBindings(pattern) {
2819
+ const bindings = [];
2820
+ recurse(pattern);
2821
+ return bindings;
2822
+ function recurse(pattern2) {
2823
+ switch (pattern2.type) {
2824
+ case "ArrayBindingPattern": {
2825
+ for (let ref3 = pattern2.elements, i2 = 0, len1 = ref3.length; i2 < len1; i2++) {
2826
+ const element = ref3[i2];
2827
+ recurse(element);
2828
+ }
2829
+ ;
2830
+ break;
2831
+ }
2832
+ case "ObjectBindingPattern": {
2833
+ for (let ref4 = pattern2.properties, i3 = 0, len22 = ref4.length; i3 < len22; i3++) {
2834
+ const property = ref4[i3];
2835
+ recurse(property);
2836
+ }
2837
+ ;
2838
+ break;
2839
+ }
2840
+ case "BindingElement": {
2841
+ recurse(pattern2.binding);
2842
+ break;
2843
+ }
2844
+ case "BindingProperty": {
2845
+ recurse(pattern2.value ?? pattern2.name);
2846
+ break;
2847
+ }
2848
+ case "Binding": {
2849
+ recurse(pattern2.pattern);
2850
+ break;
2851
+ }
2852
+ case "Identifier":
2853
+ case "AtBinding": {
2854
+ bindings.push(pattern2);
2855
+ break;
2856
+ }
2857
+ }
2748
2858
  }
2749
2859
  }
2750
2860
  function assignResults(node, collect) {
@@ -2753,8 +2863,8 @@ ${js}`
2753
2863
  switch (node.type) {
2754
2864
  case "BlockStatement":
2755
2865
  if (node.expressions.length) {
2756
- let ref3;
2757
- assignResults((ref3 = node.expressions)[ref3.length - 1], collect);
2866
+ let ref5;
2867
+ assignResults((ref5 = node.expressions)[ref5.length - 1], collect);
2758
2868
  } else {
2759
2869
  node.expressions.push(["", collect("void 0"), ";"]);
2760
2870
  }
@@ -2789,7 +2899,7 @@ ${js}`
2789
2899
  if (exp.type === "LabelledStatement") {
2790
2900
  exp = exp.statement;
2791
2901
  }
2792
- let ref4;
2902
+ let ref6;
2793
2903
  switch (exp.type) {
2794
2904
  case "BreakStatement":
2795
2905
  case "ContinueStatement":
@@ -2800,14 +2910,14 @@ ${js}`
2800
2910
  return;
2801
2911
  }
2802
2912
  case "Declaration": {
2803
- let ref5;
2913
+ let ref7;
2804
2914
  if (exp.bindings?.length) {
2805
- ref5 = patternAsValue((ref4 = exp.bindings)[ref4.length - 1].pattern);
2915
+ ref7 = patternAsValue((ref6 = exp.bindings)[ref6.length - 1].pattern);
2806
2916
  } else {
2807
- ref5 = "void 0";
2917
+ ref7 = "void 0";
2808
2918
  }
2809
2919
  ;
2810
- const value = ref5;
2920
+ const value = ref7;
2811
2921
  exp.children.push([
2812
2922
  "",
2813
2923
  [";", collect(value)]
@@ -2855,11 +2965,17 @@ ${js}`
2855
2965
  return;
2856
2966
  }
2857
2967
  case "SwitchStatement": {
2858
- assignResults(exp.children[2], collect);
2968
+ for (let ref8 = exp.caseBlock.clauses, i4 = 0, len3 = ref8.length; i4 < len3; i4++) {
2969
+ const clause = ref8[i4];
2970
+ assignResults(clause, collect);
2971
+ }
2859
2972
  return;
2860
2973
  }
2861
2974
  case "TryStatement": {
2862
- exp.blocks.forEach((block) => assignResults(block, collect));
2975
+ for (let ref9 = exp.blocks, i5 = 0, len4 = ref9.length; i5 < len4; i5++) {
2976
+ const block = ref9[i5];
2977
+ assignResults(block, collect);
2978
+ }
2863
2979
  return;
2864
2980
  }
2865
2981
  }
@@ -2880,20 +2996,28 @@ ${js}`
2880
2996
  const last = node.expressions[node.expressions.length - 1];
2881
2997
  insertReturn(last);
2882
2998
  } else {
2883
- if (node.parent.type === "CatchClause") {
2884
- node.expressions.push(["return"]);
2999
+ let m1;
3000
+ if (m1 = node.parent?.type, m1 === "CatchClause" || m1 === "WhenClause") {
3001
+ node.expressions.push(["", wrapWithReturn(void 0, node)]);
2885
3002
  }
2886
3003
  }
2887
3004
  return;
2888
3005
  }
2889
3006
  case "WhenClause": {
2890
3007
  if (node.break) {
2891
- node.children.splice(node.children.indexOf(node.break), 1);
3008
+ const breakIndex = node.children.indexOf(node.break);
3009
+ assert.notEqual(breakIndex, -1, "Could not find break in when clause");
3010
+ node.children.splice(breakIndex, 1);
3011
+ node.break = void 0;
2892
3012
  }
2893
- if (node.block.expressions.length) {
2894
- insertReturn(node.block);
2895
- } else {
2896
- node.block.expressions.push(wrapWithReturn());
3013
+ insertReturn(node.block);
3014
+ if (!isExit(node.block)) {
3015
+ const comment = hasTrailingComment(node.block.expressions);
3016
+ let ref10;
3017
+ node.block.expressions.push([
3018
+ comment ? (ref10 = node.block.expressions)[ref10.length - 1][0] || "\n" : "",
3019
+ wrapWithReturn(void 0, node, !comment)
3020
+ ]);
2897
3021
  }
2898
3022
  return;
2899
3023
  }
@@ -2918,7 +3042,7 @@ ${js}`
2918
3042
  if (exp.type === "LabelledStatement") {
2919
3043
  exp = exp.statement;
2920
3044
  }
2921
- let ref6;
3045
+ let ref11;
2922
3046
  switch (exp.type) {
2923
3047
  case "BreakStatement":
2924
3048
  case "ContinueStatement":
@@ -2929,27 +3053,30 @@ ${js}`
2929
3053
  return;
2930
3054
  }
2931
3055
  case "Declaration": {
2932
- let ref7;
3056
+ let ref12;
2933
3057
  if (exp.bindings?.length) {
2934
- ref7 = [" ", patternAsValue((ref6 = exp.bindings)[ref6.length - 1].pattern)];
3058
+ ref12 = [" ", patternAsValue((ref11 = exp.bindings)[ref11.length - 1].pattern)];
2935
3059
  } else {
2936
- ref7 = [];
3060
+ ref12 = [];
2937
3061
  }
2938
3062
  ;
2939
- const value = ref7;
3063
+ const value = ref12;
2940
3064
  const parent = outer.parent;
2941
3065
  const index = findChildIndex(parent?.expressions, outer);
2942
3066
  assert.notEqual(index, -1, "Could not find declaration in parent");
2943
- parent.expressions.splice(index + 1, 0, ["", {
2944
- type: "ReturnStatement",
2945
- expression: value,
2946
- children: [
2947
- !(parent.expressions[index][2] === ";") ? ";" : void 0,
2948
- "return",
2949
- value
2950
- ],
2951
- parent: exp
2952
- }]);
3067
+ parent.expressions.splice(index + 1, 0, [
3068
+ "",
3069
+ {
3070
+ type: "ReturnStatement",
3071
+ expression: value,
3072
+ children: [
3073
+ !(parent.expressions[index][2] === ";") ? ";" : void 0,
3074
+ "return",
3075
+ value
3076
+ ],
3077
+ parent: exp
3078
+ }
3079
+ ]);
2953
3080
  braceBlock(parent);
2954
3081
  return;
2955
3082
  }
@@ -2960,12 +3087,7 @@ ${js}`
2960
3087
  assert.notEqual(index, -1, "Could not find function declaration in parent");
2961
3088
  parent.expressions.splice(index + 1, 0, [
2962
3089
  "",
2963
- {
2964
- type: "ReturnStatement",
2965
- expression: exp.id,
2966
- children: [";return ", exp.id],
2967
- parent: exp
2968
- }
3090
+ wrapWithReturn(exp.id, exp, true)
2969
3091
  ]);
2970
3092
  braceBlock(parent);
2971
3093
  return;
@@ -2988,12 +3110,11 @@ ${js}`
2988
3110
  if (exp.else)
2989
3111
  insertReturn(exp.else.block);
2990
3112
  else
2991
- exp.children.push(["", {
2992
- type: "ReturnStatement",
2993
- // NOTE: add a prefixed semi-colon because the if block may not be braced
2994
- children: [";return"],
2995
- parent: exp
2996
- }]);
3113
+ exp.children.push([
3114
+ "",
3115
+ // NOTE: add a prefixed semicolon because the if block may not be braced
3116
+ wrapWithReturn(void 0, exp, true)
3117
+ ]);
2997
3118
  return;
2998
3119
  }
2999
3120
  case "PatternMatchingStatement": {
@@ -3001,30 +3122,30 @@ ${js}`
3001
3122
  return;
3002
3123
  }
3003
3124
  case "SwitchStatement": {
3004
- insertSwitchReturns(exp);
3125
+ for (let ref13 = exp.caseBlock.clauses, i6 = 0, len5 = ref13.length; i6 < len5; i6++) {
3126
+ const clause = ref13[i6];
3127
+ insertReturn(clause);
3128
+ }
3005
3129
  return;
3006
3130
  }
3007
3131
  case "TryStatement": {
3008
- exp.blocks.forEach((block) => insertReturn(block));
3132
+ for (let ref14 = exp.blocks, i7 = 0, len6 = ref14.length; i7 < len6; i7++) {
3133
+ const block = ref14[i7];
3134
+ insertReturn(block);
3135
+ }
3009
3136
  return;
3010
3137
  }
3011
3138
  }
3012
3139
  if (node[node.length - 1]?.type === "SemicolonDelimiter") {
3013
3140
  return;
3014
3141
  }
3015
- const returnStatement = wrapWithReturn(node[1]);
3016
- node.splice(1, 1, returnStatement);
3017
- }
3018
- function insertSwitchReturns(exp) {
3019
- exp.caseBlock.clauses.forEach((clause) => {
3020
- return insertReturn(clause);
3021
- });
3142
+ node[1] = wrapWithReturn(node[1]);
3022
3143
  }
3023
3144
  function processBreakContinueWith(statement) {
3024
3145
  let changed = false;
3025
3146
  for (const control of gatherRecursiveWithinFunction(
3026
3147
  statement.block,
3027
- ($2) => $2.type === "BreakStatement" || $2.type === "ContinueStatement"
3148
+ ($3) => $3.type === "BreakStatement" || $3.type === "ContinueStatement"
3028
3149
  )) {
3029
3150
  let controlName2 = function() {
3030
3151
  switch (control.type) {
@@ -3039,8 +3160,8 @@ ${js}`
3039
3160
  var controlName = controlName2;
3040
3161
  if (control.with) {
3041
3162
  if (control.label) {
3042
- let m1;
3043
- if (!(m1 = statement.parent, typeof m1 === "object" && m1 != null && "type" in m1 && m1.type === "LabelledStatement" && "label" in m1 && typeof m1.label === "object" && m1.label != null && "name" in m1.label && m1.label.name === control.label.name)) {
3163
+ let m2;
3164
+ if (!(m2 = statement.parent, typeof m2 === "object" && m2 != null && "type" in m2 && m2.type === "LabelledStatement" && "label" in m2 && typeof m2.label === "object" && m2.label != null && "name" in m2.label && m2.label.name === control.label.name)) {
3044
3165
  continue;
3045
3166
  }
3046
3167
  } else {
@@ -3059,7 +3180,7 @@ ${js}`
3059
3180
  )
3060
3181
  );
3061
3182
  updateParentPointers(control.with, control);
3062
- const i = control.children.findIndex(($3) => $3?.type === "Error");
3183
+ const i = control.children.findIndex(($4) => $4?.type === "Error");
3063
3184
  if (i >= 0) {
3064
3185
  control.children.splice(i, 1);
3065
3186
  }
@@ -3101,7 +3222,7 @@ ${js}`
3101
3222
  }
3102
3223
  const resultsRef = statement.resultsRef = makeRef("results");
3103
3224
  const declaration = iterationDeclaration(statement);
3104
- const { ancestor, child } = findAncestor(statement, ($4) => $4.type === "BlockStatement");
3225
+ const { ancestor, child } = findAncestor(statement, ($5) => $5.type === "BlockStatement");
3105
3226
  assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
3106
3227
  const index = findChildIndex(ancestor.expressions, child);
3107
3228
  assert.notEqual(index, -1, `Could not find ${statement.type} in containing block`);
@@ -3154,6 +3275,9 @@ ${js}`
3154
3275
  case "product": {
3155
3276
  return "1";
3156
3277
  }
3278
+ case "join": {
3279
+ return '""';
3280
+ }
3157
3281
  default: {
3158
3282
  return "0";
3159
3283
  }
@@ -3198,7 +3322,8 @@ ${js}`
3198
3322
  case "count": {
3199
3323
  return ["if (", node, ") ++", resultsRef];
3200
3324
  }
3201
- case "sum": {
3325
+ case "sum":
3326
+ case "join": {
3202
3327
  return [resultsRef, " += ", node];
3203
3328
  }
3204
3329
  case "product": {
@@ -3223,9 +3348,9 @@ ${js}`
3223
3348
  }
3224
3349
  const reduction = statement.type === "ForStatement" && statement.reduction;
3225
3350
  function fillBlock(expression) {
3226
- let ref8;
3227
- let m2;
3228
- if (m2 = (ref8 = block.expressions)[ref8.length - 1], Array.isArray(m2) && m2.length >= 2 && typeof m2[1] === "object" && m2[1] != null && "type" in m2[1] && m2[1].type === "EmptyStatement" && "implicit" in m2[1] && m2[1].implicit === true) {
3351
+ let ref15;
3352
+ let m3;
3353
+ if (m3 = (ref15 = block.expressions)[ref15.length - 1], Array.isArray(m3) && m3.length >= 2 && typeof m3[1] === "object" && m3[1] != null && "type" in m3[1] && m3[1].type === "EmptyStatement" && "implicit" in m3[1] && m3[1].implicit === true) {
3229
3354
  block.expressions.pop();
3230
3355
  }
3231
3356
  block.expressions.push(expression);
@@ -3255,7 +3380,29 @@ ${js}`
3255
3380
  }
3256
3381
  }
3257
3382
  if (statement.type === "ForStatement" && statement.declaration?.type === "ForDeclaration") {
3258
- fillBlock(["", patternAsValue(statement.declaration.binding)]);
3383
+ if (reduction) {
3384
+ const bindings = patternBindings(statement.declaration.binding.pattern);
3385
+ if (bindings.length) {
3386
+ fillBlock(["", bindings[0]]);
3387
+ for (const binding of bindings.slice(1)) {
3388
+ binding.children.unshift({
3389
+ type: "Error",
3390
+ subtype: "Warning",
3391
+ message: "Ignored binding in reduction loop with implicit body"
3392
+ });
3393
+ }
3394
+ } else {
3395
+ fillBlock([
3396
+ "",
3397
+ {
3398
+ type: "Error",
3399
+ message: "Empty binding pattern in reduction loop with implicit body"
3400
+ }
3401
+ ]);
3402
+ }
3403
+ } else {
3404
+ fillBlock(["", patternAsValue(statement.declaration.binding.pattern)]);
3405
+ }
3259
3406
  block.empty = false;
3260
3407
  }
3261
3408
  return false;
@@ -3283,24 +3430,24 @@ ${js}`
3283
3430
  injectParamProps: isConstructor
3284
3431
  });
3285
3432
  if (isConstructor) {
3286
- const { ancestor } = findAncestor(f, ($5) => $5.type === "ClassExpression");
3433
+ const { ancestor } = findAncestor(f, ($6) => $6.type === "ClassExpression");
3287
3434
  if (ancestor != null) {
3288
- const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($6) => $6.type === "FieldDefinition").map(($7) => $7.id).filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "Identifier").map(($8) => $8.name));
3435
+ const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($7) => $7.type === "FieldDefinition").map(($8) => $8.id).filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "Identifier").map(($9) => $9.name));
3289
3436
  const classExpressions = ancestor.body.expressions;
3290
3437
  let index = findChildIndex(classExpressions, f);
3291
3438
  assert.notEqual(index, -1, "Could not find constructor in class");
3292
- let m3;
3293
- while (m3 = classExpressions[index - 1]?.[1], typeof m3 === "object" && m3 != null && "type" in m3 && m3.type === "MethodDefinition" && "name" in m3 && m3.name === "constructor") {
3439
+ let m4;
3440
+ while (m4 = classExpressions[index - 1]?.[1], typeof m4 === "object" && m4 != null && "type" in m4 && m4.type === "MethodDefinition" && "name" in m4 && m4.name === "constructor") {
3294
3441
  index--;
3295
3442
  }
3296
3443
  const fStatement = classExpressions[index];
3297
- for (let ref9 = gatherRecursive(parameters, ($9) => $9.type === "Parameter"), i2 = 0, len1 = ref9.length; i2 < len1; i2++) {
3298
- const parameter = ref9[i2];
3444
+ for (let ref16 = gatherRecursive(parameters, ($10) => $10.type === "Parameter"), i8 = 0, len7 = ref16.length; i8 < len7; i8++) {
3445
+ const parameter = ref16[i8];
3299
3446
  if (!parameter.typeSuffix) {
3300
3447
  continue;
3301
3448
  }
3302
- for (let ref10 = gatherRecursive(parameter, ($10) => $10.type === "AtBinding"), i3 = 0, len22 = ref10.length; i3 < len22; i3++) {
3303
- const binding = ref10[i3];
3449
+ for (let ref17 = gatherRecursive(parameter, ($11) => $11.type === "AtBinding"), i9 = 0, len8 = ref17.length; i9 < len8; i9++) {
3450
+ const binding = ref17[i9];
3304
3451
  const typeSuffix = binding.parent?.typeSuffix;
3305
3452
  if (!typeSuffix) {
3306
3453
  continue;
@@ -3360,8 +3507,8 @@ ${js}`
3360
3507
  }
3361
3508
  if (!f.generator?.length && hasYield(block)) {
3362
3509
  if (f.type === "ArrowFunction") {
3363
- gatherRecursiveWithinFunction(block, ($11) => $11.type === "YieldExpression").forEach((y) => {
3364
- const i = y.children.findIndex(($12) => $12.type === "Yield");
3510
+ gatherRecursiveWithinFunction(block, ($12) => $12.type === "YieldExpression").forEach((y) => {
3511
+ const i = y.children.findIndex(($13) => $13.type === "Yield");
3365
3512
  return y.children.splice(i + 1, 0, {
3366
3513
  type: "Error",
3367
3514
  message: "Can't use yield inside of => arrow function"
@@ -3377,8 +3524,8 @@ ${js}`
3377
3524
  }
3378
3525
  }
3379
3526
  function processFunctions(statements, config2) {
3380
- for (let ref11 = gatherRecursiveAll(statements, ($13) => $13.type === "FunctionExpression" || $13.type === "ArrowFunction"), i4 = 0, len3 = ref11.length; i4 < len3; i4++) {
3381
- const f = ref11[i4];
3527
+ for (let ref18 = gatherRecursiveAll(statements, ($14) => $14.type === "FunctionExpression" || $14.type === "ArrowFunction"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3528
+ const f = ref18[i10];
3382
3529
  if (f.type === "FunctionExpression") {
3383
3530
  implicitFunctionBlock(f);
3384
3531
  }
@@ -3386,8 +3533,8 @@ ${js}`
3386
3533
  processParams(f);
3387
3534
  processReturn(f, config2.implicitReturns);
3388
3535
  }
3389
- for (let ref12 = gatherRecursiveAll(statements, ($14) => $14.type === "MethodDefinition"), i5 = 0, len4 = ref12.length; i5 < len4; i5++) {
3390
- const f = ref12[i5];
3536
+ for (let ref19 = gatherRecursiveAll(statements, ($15) => $15.type === "MethodDefinition"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3537
+ const f = ref19[i11];
3391
3538
  implicitFunctionBlock(f);
3392
3539
  processParams(f);
3393
3540
  processReturn(f, config2.implicitReturns);
@@ -3440,9 +3587,9 @@ ${js}`
3440
3587
  }
3441
3588
  let done;
3442
3589
  if (!async) {
3443
- let ref13;
3444
- if ((ref13 = blockContainingStatement(exp)) && typeof ref13 === "object" && "block" in ref13 && "index" in ref13) {
3445
- const { block: parentBlock, index } = ref13;
3590
+ let ref20;
3591
+ if ((ref20 = blockContainingStatement(exp)) && typeof ref20 === "object" && "block" in ref20 && "index" in ref20) {
3592
+ const { block: parentBlock, index } = ref20;
3446
3593
  statements[0][0] = parentBlock.expressions[index][0];
3447
3594
  parentBlock.expressions.splice(index, index + 1 - index, ...statements);
3448
3595
  updateParentPointers(parentBlock);
@@ -3459,8 +3606,8 @@ ${js}`
3459
3606
  }
3460
3607
  }
3461
3608
  function processIterationExpressions(statements) {
3462
- for (let ref14 = gatherRecursiveAll(statements, ($15) => $15.type === "IterationExpression"), i6 = 0, len5 = ref14.length; i6 < len5; i6++) {
3463
- const s = ref14[i6];
3609
+ for (let ref21 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3610
+ const s = ref21[i12];
3464
3611
  expressionizeIteration(s);
3465
3612
  }
3466
3613
  }
@@ -3486,12 +3633,12 @@ ${js}`
3486
3633
  ...parameters,
3487
3634
  children: (() => {
3488
3635
  const results1 = [];
3489
- for (let ref15 = parameters.children, i7 = 0, len6 = ref15.length; i7 < len6; i7++) {
3490
- let parameter = ref15[i7];
3636
+ for (let ref22 = parameters.children, i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3637
+ let parameter = ref22[i13];
3491
3638
  if (typeof parameter === "object" && parameter != null && "type" in parameter && parameter.type === "Parameter") {
3492
- let ref16;
3493
- if (ref16 = parameter.initializer) {
3494
- const initializer = ref16;
3639
+ let ref23;
3640
+ if (ref23 = parameter.initializer) {
3641
+ const initializer = ref23;
3495
3642
  args.push(initializer.expression, parameter.delim);
3496
3643
  parameter = {
3497
3644
  ...parameter,
@@ -3512,7 +3659,7 @@ ${js}`
3512
3659
  expression = {
3513
3660
  ...expression,
3514
3661
  parameters: newParameters,
3515
- children: expression.children.map(($16) => $16 === parameters ? newParameters : $16)
3662
+ children: expression.children.map(($17) => $17 === parameters ? newParameters : $17)
3516
3663
  };
3517
3664
  }
3518
3665
  return {
@@ -3534,7 +3681,7 @@ ${js}`
3534
3681
  ref = makeRef("$");
3535
3682
  inplacePrepend(ref, body);
3536
3683
  }
3537
- if (startsWithPredicate(body, ($17) => $17.type === "ObjectExpression")) {
3684
+ if (startsWithPredicate(body, ($18) => $18.type === "ObjectExpression")) {
3538
3685
  body = makeLeftHandSideExpression(body);
3539
3686
  }
3540
3687
  const parameters = makeNode({
@@ -4140,7 +4287,7 @@ ${js}`
4140
4287
  // source/parser/pattern-matching.civet
4141
4288
  function processPatternTest(lhs, patterns) {
4142
4289
  const { ref, refAssignmentComma } = maybeRefAssignment(lhs, "m");
4143
- const conditionExpression = flatJoin(patterns.map(($) => getPatternConditions($, ref)).map(($1) => flatJoin($1, " && ")), " || ");
4290
+ const conditionExpression = flatJoin(patterns.map(($1) => getPatternConditions($1, ref)).map(($2) => flatJoin($2, " && ")), " || ");
4144
4291
  return makeLeftHandSideExpression(makeNode({
4145
4292
  type: "PatternTest",
4146
4293
  children: [
@@ -4150,7 +4297,7 @@ ${js}`
4150
4297
  }));
4151
4298
  }
4152
4299
  function processPatternMatching(statements) {
4153
- gatherRecursiveAll(statements, ($2) => $2.type === "SwitchStatement").forEach((s) => {
4300
+ gatherRecursiveAll(statements, ($3) => $3.type === "SwitchStatement").forEach((s) => {
4154
4301
  const { caseBlock } = s;
4155
4302
  const { clauses } = caseBlock;
4156
4303
  for (let i1 = 0, len3 = clauses.length; i1 < len3; i1++) {
@@ -4164,7 +4311,7 @@ ${js}`
4164
4311
  }
4165
4312
  let errors = false;
4166
4313
  let isPattern = false;
4167
- if (clauses.some(($3) => $3.type === "PatternClause")) {
4314
+ if (clauses.some(($4) => $4.type === "PatternClause")) {
4168
4315
  isPattern = true;
4169
4316
  for (let i2 = 0, len1 = clauses.length; i2 < len1; i2++) {
4170
4317
  const c = clauses[i2];
@@ -4202,7 +4349,7 @@ ${js}`
4202
4349
  }
4203
4350
  let { patterns, block } = c;
4204
4351
  let pattern = patterns[0];
4205
- const conditionExpression = flatJoin(patterns.map(($4) => getPatternConditions($4, ref)).map(($5) => flatJoin($5, " && ")), " || ");
4352
+ const conditionExpression = flatJoin(patterns.map(($5) => getPatternConditions($5, ref)).map(($6) => flatJoin($6, " && ")), " || ");
4206
4353
  const condition2 = makeNode({
4207
4354
  type: "ParenthesizedExpression",
4208
4355
  children: ["(", ...refAssignmentComma, conditionExpression, ")"],
@@ -4395,38 +4542,59 @@ ${js}`
4395
4542
  }
4396
4543
  }
4397
4544
  let [splices, thisAssignments] = gatherBindingCode(pattern);
4398
- const patternBindings = nonMatcherBindings(pattern);
4545
+ const patternBindings2 = nonMatcherBindings(pattern);
4399
4546
  splices = splices.map((s) => [", ", nonMatcherBindings(s)]);
4400
- thisAssignments = thisAssignments.map(($6) => ["", $6, ";"]);
4401
- const duplicateDeclarations = aggregateDuplicateBindings([patternBindings, splices]);
4547
+ thisAssignments = thisAssignments.map(($7) => ["", $7, ";"]);
4548
+ const duplicateDeclarations = aggregateDuplicateBindings([patternBindings2, splices]);
4402
4549
  return [
4403
4550
  ["", {
4404
4551
  type: "Declaration",
4405
- children: [decl, patternBindings, suffix, " = ", ref, ...splices],
4552
+ children: [decl, patternBindings2, suffix, " = ", ref, ...splices],
4406
4553
  names: [],
4407
4554
  bindings: []
4408
4555
  // avoid implicit return of any bindings
4409
4556
  }, ";"],
4410
4557
  ...thisAssignments,
4411
- ...duplicateDeclarations.map(($7) => ["", $7, ";"])
4558
+ ...duplicateDeclarations.map(($8) => ["", $8, ";"])
4412
4559
  ];
4413
4560
  }
4414
4561
  function elideMatchersFromArrayBindings(elements) {
4415
- return elements.map((el) => {
4416
- if (el.type === "BindingRestElement") {
4417
- return ["", el, void 0];
4418
- }
4419
- const { children: [ws, e, delim] } = el;
4420
- switch (e.type) {
4421
- case "Literal":
4422
- case "RegularExpressionLiteral":
4423
- case "StringLiteral":
4424
- case "PinPattern":
4425
- return delim;
4426
- default:
4427
- return [ws, nonMatcherBindings(e), delim];
4562
+ const results = [];
4563
+ for (let i5 = 0, len4 = elements.length; i5 < len4; i5++) {
4564
+ const element = elements[i5];
4565
+ switch (element.type) {
4566
+ case "BindingRestElement":
4567
+ case "ElisionElement": {
4568
+ results.push(element);
4569
+ break;
4570
+ }
4571
+ case "BindingElement": {
4572
+ switch (element.binding.type) {
4573
+ case "Literal":
4574
+ case "RegularExpressionLiteral":
4575
+ case "StringLiteral":
4576
+ case "PinPattern": {
4577
+ results.push(element.delim);
4578
+ break;
4579
+ }
4580
+ default: {
4581
+ const binding = nonMatcherBindings(element.binding);
4582
+ results.push(makeNode({
4583
+ ...element,
4584
+ binding,
4585
+ children: element.children.map((c) => {
4586
+ return c === element.binding ? binding : c;
4587
+ })
4588
+ }));
4589
+ }
4590
+ }
4591
+ ;
4592
+ break;
4593
+ }
4428
4594
  }
4429
- });
4595
+ }
4596
+ ;
4597
+ return results;
4430
4598
  }
4431
4599
  function elideMatchersFromPropertyBindings(properties) {
4432
4600
  return properties.map((p) => {
@@ -4434,6 +4602,10 @@ ${js}`
4434
4602
  case "BindingProperty": {
4435
4603
  const { children, name, value } = p;
4436
4604
  const [ws] = children;
4605
+ const shouldElide = name.type === "NumericLiteral" && !value?.name || name.type === "ComputedPropertyName" && value?.subtype === "NumericLiteral";
4606
+ if (shouldElide) {
4607
+ return;
4608
+ }
4437
4609
  switch (value && value.type) {
4438
4610
  case "ArrayBindingPattern":
4439
4611
  case "ObjectBindingPattern": {
@@ -4465,32 +4637,22 @@ ${js}`
4465
4637
  }
4466
4638
  function nonMatcherBindings(pattern) {
4467
4639
  switch (pattern.type) {
4468
- case "ArrayBindingPattern": {
4640
+ case "ArrayBindingPattern":
4641
+ case "PostRestBindingElements": {
4469
4642
  const elements = elideMatchersFromArrayBindings(pattern.elements);
4470
- return {
4643
+ return makeNode({
4471
4644
  ...pattern,
4472
4645
  elements,
4473
- children: pattern.children.map(($8) => $8 === pattern.elements ? elements : $8)
4474
- };
4475
- }
4476
- case "PostRestBindingElements": {
4477
- const els = elideMatchersFromArrayBindings(pattern.children[1]);
4478
- return {
4479
- ...pattern,
4480
- children: [
4481
- pattern.children[0],
4482
- els,
4483
- ...pattern.children.slice(2)
4484
- ]
4485
- };
4646
+ children: pattern.children.map(($9) => $9 === pattern.elements ? elements : $9)
4647
+ });
4486
4648
  }
4487
4649
  case "ObjectBindingPattern": {
4488
4650
  const properties = elideMatchersFromPropertyBindings(pattern.properties);
4489
- return {
4651
+ return makeNode({
4490
4652
  ...pattern,
4491
4653
  properties,
4492
- children: pattern.children.map(($9) => $9 === pattern.properties ? properties : $9)
4493
- };
4654
+ children: pattern.children.map(($10) => $10 === pattern.properties ? properties : $10)
4655
+ });
4494
4656
  }
4495
4657
  default: {
4496
4658
  return pattern;
@@ -4498,32 +4660,26 @@ ${js}`
4498
4660
  }
4499
4661
  }
4500
4662
  function aggregateDuplicateBindings(bindings) {
4501
- const props = gatherRecursiveAll(bindings, ($10) => $10.type === "BindingProperty");
4502
- const arrayBindings = gatherRecursiveAll(bindings, ($11) => $11.type === "ArrayBindingPattern");
4503
- for (let i5 = 0, len4 = arrayBindings.length; i5 < len4; i5++) {
4504
- const { elements } = arrayBindings[i5];
4505
- for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
4506
- const element = elements[i6];
4507
- if (Array.isArray(element)) {
4508
- const [, e] = element;
4509
- if (e.type === "Identifier") {
4510
- props.push(e);
4511
- } else if (e.type === "BindingRestElement") {
4512
- props.push(e);
4513
- }
4514
- }
4515
- }
4516
- }
4663
+ const props = gatherRecursiveAll(
4664
+ bindings,
4665
+ ($) => $.type === "BindingProperty" || // Don't deduplicate ...rest properties; user should do so manually
4666
+ // because ...rest can be named arbitrarily
4667
+ //$.type is "BindingRestProperty"
4668
+ $.type === "Identifier" && $.parent?.type === "BindingElement" || $.type === "BindingRestElement"
4669
+ );
4517
4670
  const declarations = [];
4518
4671
  const propsGroupedByName = /* @__PURE__ */ new Map();
4519
- for (let i7 = 0, len6 = props.length; i7 < len6; i7++) {
4520
- const p = props[i7];
4672
+ for (let i6 = 0, len5 = props.length; i6 < len5; i6++) {
4673
+ const p = props[i6];
4521
4674
  const { name, value } = p;
4522
4675
  let m1;
4523
4676
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern") {
4524
4677
  continue;
4525
4678
  }
4526
4679
  const key = value?.name || name?.name || name;
4680
+ if (key?.type === "NumericLiteral" || key?.type === "ComputedPropertyName") {
4681
+ continue;
4682
+ }
4527
4683
  if (propsGroupedByName.has(key)) {
4528
4684
  propsGroupedByName.get(key).push(p);
4529
4685
  } else {
@@ -4539,8 +4695,8 @@ ${js}`
4539
4695
  pos: 0,
4540
4696
  input: key
4541
4697
  })) {
4542
- for (let i8 = 0, len7 = shared.length; i8 < len7; i8++) {
4543
- const p = shared[i8];
4698
+ for (let i7 = 0, len6 = shared.length; i7 < len6; i7++) {
4699
+ const p = shared[i7];
4544
4700
  aliasBinding(p, makeRef(`_${key}`, key));
4545
4701
  }
4546
4702
  return;
@@ -6566,11 +6722,11 @@ ${js}`
6566
6722
  if (glob?.type === "PropertyGlob") {
6567
6723
  let prefix = children.slice(0, i);
6568
6724
  const parts = [];
6569
- let refAssignmentComma;
6570
- if (prefix.length > 1) {
6571
- const ref = makeRef();
6572
- ({ refAssignmentComma } = makeRefAssignment(ref, prefix));
6573
- prefix = [ref];
6725
+ let ref;
6726
+ if (prefix.length > 1 && glob.object.properties.length > 1) {
6727
+ ref = makeRef();
6728
+ const { refAssignment } = makeRefAssignment(ref, prefix);
6729
+ prefix = [makeLeftHandSideExpression(refAssignment)];
6574
6730
  }
6575
6731
  prefix = prefix.concat(glob.dot);
6576
6732
  for (const part of glob.object.properties) {
@@ -6602,6 +6758,9 @@ ${js}`
6602
6758
  }
6603
6759
  if (!suppressPrefix) {
6604
6760
  value = prefix.concat(trimFirstSpace(value));
6761
+ if (ref != null) {
6762
+ prefix = [ref].concat(glob.dot);
6763
+ }
6605
6764
  }
6606
6765
  if (wValue)
6607
6766
  value.unshift(wValue);
@@ -6612,7 +6771,8 @@ ${js}`
6612
6771
  dots: part.dots,
6613
6772
  delim: part.delim,
6614
6773
  names: part.names,
6615
- children: part.children.slice(0, 2).concat(value, part.delim)
6774
+ children: part.children.slice(0, 2).concat(value, part.delim),
6775
+ usesRef: Boolean(ref)
6616
6776
  });
6617
6777
  } else {
6618
6778
  parts.push({
@@ -6629,12 +6789,13 @@ ${js}`
6629
6789
  value,
6630
6790
  part.delim
6631
6791
  // comma delimiter
6632
- ]
6792
+ ],
6793
+ usesRef: Boolean(ref)
6633
6794
  });
6634
6795
  }
6635
6796
  }
6636
6797
  let ref2;
6637
- let object = {
6798
+ const object = {
6638
6799
  type: "ObjectExpression",
6639
6800
  children: [
6640
6801
  glob.object.children[0],
@@ -6645,13 +6806,6 @@ ${js}`
6645
6806
  ],
6646
6807
  properties: parts
6647
6808
  };
6648
- if (refAssignmentComma) {
6649
- object = makeNode({
6650
- type: "ParenthesizedExpression",
6651
- children: ["(", ...refAssignmentComma, object, ")"],
6652
- expression: object
6653
- });
6654
- }
6655
6809
  if (i === children.length - 1)
6656
6810
  return object;
6657
6811
  return processCallMemberExpression({
@@ -6861,40 +7015,54 @@ ${js}`
6861
7015
  };
6862
7016
  }
6863
7017
  function convertObjectToJSXAttributes(obj) {
6864
- const { properties } = obj;
6865
7018
  const parts = [];
6866
7019
  const rest = [];
6867
- for (let i = 0; i < properties.length; i++) {
7020
+ let i4 = 0;
7021
+ for (const part of obj.properties) {
7022
+ const i = i4++;
7023
+ if (part.usesRef) {
7024
+ rest.push(part);
7025
+ continue;
7026
+ }
6868
7027
  if (i > 0)
6869
7028
  parts.push(" ");
6870
- const part = properties[i];
6871
7029
  switch (part.type) {
6872
- case "Identifier":
7030
+ case "Identifier": {
6873
7031
  parts.push([part.name, "={", part.name, "}"]);
6874
7032
  break;
6875
- case "Property":
7033
+ }
7034
+ case "Property": {
6876
7035
  if (part.name.type === "ComputedPropertyName") {
6877
7036
  rest.push(part);
6878
7037
  } else {
6879
7038
  parts.push([part.name, "={", trimFirstSpace(part.value), "}"]);
6880
7039
  }
7040
+ ;
6881
7041
  break;
6882
- case "SpreadProperty":
7042
+ }
7043
+ case "SpreadProperty": {
6883
7044
  parts.push(["{", part.dots, part.value, "}"]);
6884
7045
  break;
6885
- case "MethodDefinition":
7046
+ }
7047
+ case "MethodDefinition": {
6886
7048
  const func = convertMethodToFunction(part);
6887
7049
  if (func) {
6888
7050
  parts.push([part.name, "={", convertMethodToFunction(part), "}"]);
6889
7051
  } else {
6890
7052
  rest.push(part);
6891
7053
  }
7054
+ ;
6892
7055
  break;
6893
- default:
7056
+ }
7057
+ default: {
6894
7058
  throw new Error(`invalid object literal type in JSX attribute: ${part.type}`);
7059
+ }
6895
7060
  }
6896
7061
  }
6897
7062
  if (rest.length) {
7063
+ if (parts.length && parts[parts.length - 1] !== " ") {
7064
+ parts.push(" ");
7065
+ }
6898
7066
  parts.push(["{...{", ...rest, "}}"]);
6899
7067
  }
6900
7068
  return parts;
@@ -6955,7 +7123,7 @@ ${js}`
6955
7123
  tail.push(...splices.map((s) => [", ", s]), ...thisAssignments.map((a) => [", ", a]));
6956
7124
  }
6957
7125
  function processAssignments(statements) {
6958
- for (let ref7 = gatherRecursiveAll(statements, ($4) => $4.type === "AssignmentExpression" || $4.type === "UpdateExpression"), i4 = 0, len3 = ref7.length; i4 < len3; i4++) {
7126
+ for (let ref7 = gatherRecursiveAll(statements, ($4) => $4.type === "AssignmentExpression" || $4.type === "UpdateExpression"), i5 = 0, len3 = ref7.length; i5 < len3; i5++) {
6959
7127
  let extractAssignment2 = function(lhs) {
6960
7128
  let expr = lhs;
6961
7129
  while (expr.type === "ParenthesizedExpression") {
@@ -6976,7 +7144,7 @@ ${js}`
6976
7144
  return;
6977
7145
  };
6978
7146
  var extractAssignment = extractAssignment2;
6979
- const exp = ref7[i4];
7147
+ const exp = ref7[i5];
6980
7148
  checkValidLHS(exp.assigned);
6981
7149
  const pre = [], post = [];
6982
7150
  let ref8;
@@ -6985,8 +7153,8 @@ ${js}`
6985
7153
  if (!exp.lhs) {
6986
7154
  continue;
6987
7155
  }
6988
- for (let ref9 = exp.lhs, i5 = 0, len4 = ref9.length; i5 < len4; i5++) {
6989
- const lhsPart = ref9[i5];
7156
+ for (let ref9 = exp.lhs, i6 = 0, len4 = ref9.length; i6 < len4; i6++) {
7157
+ const lhsPart = ref9[i6];
6990
7158
  let ref10;
6991
7159
  if (ref10 = extractAssignment2(lhsPart[1])) {
6992
7160
  const newLhs = ref10;
@@ -7030,8 +7198,8 @@ ${js}`
7030
7198
  }
7031
7199
  }
7032
7200
  }
7033
- for (let ref11 = gatherRecursiveAll(statements, ($6) => $6.type === "AssignmentExpression"), i6 = 0, len5 = ref11.length; i6 < len5; i6++) {
7034
- const exp = ref11[i6];
7201
+ for (let ref11 = gatherRecursiveAll(statements, ($6) => $6.type === "AssignmentExpression"), i7 = 0, len5 = ref11.length; i7 < len5; i7++) {
7202
+ const exp = ref11[i7];
7035
7203
  if (!(exp.names === null)) {
7036
7204
  continue;
7037
7205
  }
@@ -7268,101 +7436,149 @@ ${js}`
7268
7436
  }
7269
7437
  }
7270
7438
  function processTypes(node) {
7271
- return gatherRecursiveAll(node, (n) => n.type === "TypeUnary").forEach((unary) => {
7272
- if (!unary.suffix.length) {
7273
- return;
7274
- }
7275
- let ref16;
7276
- let m4;
7277
- if (m4 = (ref16 = unary.suffix)[ref16.length - 1], typeof m4 === "object" && m4 != null && "token" in m4 && m4.token === "?") {
7278
- const { token } = m4;
7279
- let last;
7280
- let count = 0;
7281
- let ref17;
7282
- while (unary.suffix.length && (ref17 = unary.suffix)[ref17.length - 1]?.token === "?") {
7283
- last = unary.suffix.pop();
7284
- count++;
7285
- }
7286
- let ref18;
7287
- while (unary.suffix.length && (ref18 = unary.suffix)[ref18.length - 1]?.type === "NonNullAssertion") {
7288
- unary.suffix.pop();
7289
- }
7290
- let ref19;
7291
- if (unary.suffix.length || unary.prefix.length)
7292
- ref19 = unary;
7293
- else
7294
- ref19 = unary.t;
7295
- const t = ref19;
7296
- if (unary.parent?.type === "TypeElement" && !unary.parent.name) {
7297
- if (count === 1) {
7298
- unary.suffix.push(last);
7299
- return;
7439
+ const results1 = [];
7440
+ for (let ref16 = gatherRecursiveAll(node, ($11) => $11.type === "TypeUnary"), i8 = 0, len6 = ref16.length; i8 < len6; i8++) {
7441
+ const unary = ref16[i8];
7442
+ let suffixIndex = unary.suffix.length - 1;
7443
+ const results2 = [];
7444
+ while (suffixIndex >= 0) {
7445
+ const suffix = unary.suffix[suffixIndex];
7446
+ if (typeof suffix === "object" && suffix != null && "token" in suffix && suffix.token === "?") {
7447
+ const { token } = suffix;
7448
+ let count = 0;
7449
+ let m4;
7450
+ while (m4 = unary.suffix[suffixIndex], typeof m4 === "object" && m4 != null && "token" in m4 && m4.token === "?") {
7451
+ unary.suffix.splice(suffixIndex--, 1);
7452
+ count++;
7300
7453
  }
7301
- replaceNode(unary, [
7302
- getTrimmingSpace(unary),
7303
- "(",
7304
- parenthesizeType(trimFirstSpace(t)),
7305
- " | null)",
7306
- last
7307
- ]);
7308
- } else {
7309
- replaceNode(unary, {
7310
- type: "TypeParenthesized",
7454
+ let m5;
7455
+ while (m5 = unary.suffix[suffixIndex], typeof m5 === "object" && m5 != null && "type" in m5 && m5.type === "NonNullAssertion") {
7456
+ unary.suffix.splice(suffixIndex--, 1);
7457
+ }
7458
+ const { parent, prefix } = unary;
7459
+ unary.prefix = [];
7460
+ unary.children = unary.children.filter((a1) => a1 !== prefix);
7461
+ const outer = unary.suffix.splice(suffixIndex + 1, Infinity);
7462
+ const space = getTrimmingSpace(unary);
7463
+ let replace;
7464
+ if (unary.parent?.type === "TypeElement" && !unary.parent.name) {
7465
+ if (count === 1) {
7466
+ unary.suffix.splice(suffixIndex + 1, 0, suffix);
7467
+ continue;
7468
+ }
7469
+ inplaceInsertTrimmingSpace(unary, "");
7470
+ const t = parenthesizeType(unary.suffix.length ? unary : unary.t);
7471
+ replace = [
7472
+ space,
7473
+ "(",
7474
+ t,
7475
+ " | null)",
7476
+ suffix
7477
+ ];
7478
+ } else {
7479
+ inplaceInsertTrimmingSpace(unary, "");
7480
+ const t = parenthesizeType(unary.suffix.length ? unary : unary.t);
7481
+ replace = makeNode({
7482
+ type: "TypeParenthesized",
7483
+ ts: true,
7484
+ children: [
7485
+ space,
7486
+ "(",
7487
+ t,
7488
+ count === 1 ? " | undefined" : " | undefined | null",
7489
+ ")"
7490
+ ]
7491
+ });
7492
+ }
7493
+ if (prefix.length || outer.length) {
7494
+ replace = makeNode({
7495
+ type: "TypeUnary",
7496
+ ts: true,
7497
+ t: replace,
7498
+ prefix,
7499
+ suffix: outer,
7500
+ children: [prefix, replace, outer]
7501
+ });
7502
+ }
7503
+ results2.push(replaceNode(unary, replace, parent));
7504
+ } else if (typeof suffix === "object" && suffix != null && "type" in suffix && suffix.type === "NonNullAssertion") {
7505
+ const { type } = suffix;
7506
+ let m6;
7507
+ while (m6 = unary.suffix[suffixIndex], typeof m6 === "object" && m6 != null && "type" in m6 && m6.type === "NonNullAssertion") {
7508
+ unary.suffix.splice(suffixIndex--, 1);
7509
+ }
7510
+ let m7;
7511
+ while (m7 = unary.suffix[suffixIndex], typeof m7 === "object" && m7 != null && "token" in m7 && m7.token === "?") {
7512
+ unary.suffix.splice(suffixIndex--, 1);
7513
+ }
7514
+ const { parent, prefix } = unary;
7515
+ unary.prefix = [];
7516
+ unary.children = unary.children.filter((a2) => a2 !== prefix);
7517
+ const outer = unary.suffix.splice(suffixIndex + 1, Infinity);
7518
+ const space = getTrimmingSpace(unary);
7519
+ inplaceInsertTrimmingSpace(unary, "");
7520
+ let ref17;
7521
+ if (unary.suffix.length)
7522
+ ref17 = unary;
7523
+ else
7524
+ ref17 = unary.t;
7525
+ const t = ref17;
7526
+ const arg = makeNode({
7527
+ type: "TypeArgument",
7528
+ ts: true,
7529
+ t,
7530
+ children: [t]
7531
+ });
7532
+ const argArray = [arg];
7533
+ const args = makeNode({
7534
+ type: "TypeArguments",
7311
7535
  ts: true,
7536
+ args: argArray,
7537
+ children: ["<", argArray, ">"]
7538
+ });
7539
+ let replace = makeNode({
7540
+ type: "TypeIdentifier",
7541
+ raw: "NonNullable",
7542
+ args,
7312
7543
  children: [
7313
- getTrimmingSpace(unary),
7314
- "(",
7315
- parenthesizeType(trimFirstSpace(t)),
7316
- count === 1 ? " | undefined" : " | undefined | null",
7317
- ")"
7544
+ space,
7545
+ "NonNullable",
7546
+ args
7318
7547
  ]
7319
7548
  });
7549
+ if (prefix.length || outer.length) {
7550
+ replace = makeNode({
7551
+ type: "TypeUnary",
7552
+ ts: true,
7553
+ t: replace,
7554
+ prefix,
7555
+ suffix: outer,
7556
+ children: [prefix, replace, outer]
7557
+ });
7558
+ }
7559
+ results2.push(replaceNode(unary, replace, parent));
7560
+ } else {
7561
+ results2.push(suffixIndex--);
7320
7562
  }
7321
- } else if (typeof m4 === "object" && m4 != null && "type" in m4 && m4.type === "NonNullAssertion") {
7322
- const { type } = m4;
7323
- let ref20;
7324
- while (unary.suffix.length && (ref20 = unary.suffix)[ref20.length - 1]?.type === "NonNullAssertion") {
7325
- unary.suffix.pop();
7326
- }
7327
- let ref21;
7328
- while (unary.suffix.length && (ref21 = unary.suffix)[ref21.length - 1]?.token === "?") {
7329
- unary.suffix.pop();
7330
- }
7331
- const t = trimFirstSpace(
7332
- unary.suffix.length || unary.prefix.length ? unary : unary.t
7333
- );
7334
- const args = {
7335
- type: "TypeArguments",
7336
- ts: true,
7337
- types: [t],
7338
- children: ["<", t, ">"]
7339
- };
7340
- replaceNode(unary, {
7341
- type: "TypeIdentifier",
7342
- raw: "NonNullable",
7343
- args,
7344
- children: [
7345
- getTrimmingSpace(unary),
7346
- "NonNullable",
7347
- args
7348
- ]
7349
- });
7350
7563
  }
7351
- });
7564
+ results1.push(results2);
7565
+ }
7566
+ ;
7567
+ return results1;
7352
7568
  }
7353
7569
  function processStatementExpressions(statements) {
7354
- for (let ref22 = gatherRecursiveAll(statements, ($11) => $11.type === "StatementExpression"), i7 = 0, len6 = ref22.length; i7 < len6; i7++) {
7355
- const exp = ref22[i7];
7570
+ for (let ref18 = gatherRecursiveAll(statements, ($12) => $12.type === "StatementExpression"), i9 = 0, len7 = ref18.length; i9 < len7; i9++) {
7571
+ const exp = ref18[i9];
7356
7572
  const { maybe, statement } = exp;
7357
7573
  if ((maybe || statement.type === "ThrowStatement") && blockContainingStatement(exp)) {
7358
7574
  replaceNode(exp, statement);
7359
7575
  continue;
7360
7576
  }
7361
- let ref23;
7577
+ let ref19;
7362
7578
  switch (statement.type) {
7363
7579
  case "IfStatement": {
7364
- if (ref23 = expressionizeIfStatement(statement)) {
7365
- const expression = ref23;
7580
+ if (ref19 = expressionizeIfStatement(statement)) {
7581
+ const expression = ref19;
7366
7582
  replaceNode(statement, expression, exp);
7367
7583
  } else {
7368
7584
  replaceNode(statement, wrapIIFE([["", statement]]), exp);
@@ -7420,13 +7636,13 @@ ${js}`
7420
7636
  });
7421
7637
  }
7422
7638
  function processFinallyClauses(statements) {
7423
- for (let ref24 = gatherRecursiveAll(statements, ($) => $.type === "FinallyClause" && $.parent?.type !== "TryStatement"), i8 = 0, len7 = ref24.length; i8 < len7; i8++) {
7424
- let f = ref24[i8];
7425
- let ref25;
7426
- if (!((ref25 = blockContainingStatement(f)) && typeof ref25 === "object" && "block" in ref25 && "index" in ref25)) {
7639
+ for (let ref20 = gatherRecursiveAll(statements, ($) => $.type === "FinallyClause" && $.parent?.type !== "TryStatement"), i10 = 0, len8 = ref20.length; i10 < len8; i10++) {
7640
+ let f = ref20[i10];
7641
+ let ref21;
7642
+ if (!((ref21 = blockContainingStatement(f)) && typeof ref21 === "object" && "block" in ref21 && "index" in ref21)) {
7427
7643
  throw new Error("finally clause must be inside try statement or block");
7428
7644
  }
7429
- const { block, index } = ref25;
7645
+ const { block, index } = ref21;
7430
7646
  const indent = block.expressions[index][0];
7431
7647
  const expressions = block.expressions.slice(index + 1);
7432
7648
  const t = makeNode({
@@ -7463,7 +7679,7 @@ ${js}`
7463
7679
  if (config2.iife || config2.repl) {
7464
7680
  rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
7465
7681
  const newExpressions = [["", rootIIFE]];
7466
- root.children = root.children.map(($12) => $12 === root.expressions ? newExpressions : $12);
7682
+ root.children = root.children.map(($13) => $13 === root.expressions ? newExpressions : $13);
7467
7683
  root.expressions = newExpressions;
7468
7684
  }
7469
7685
  addParentPointers(root);
@@ -7504,10 +7720,10 @@ ${js}`
7504
7720
  await processComptime(statements);
7505
7721
  }
7506
7722
  function processRepl(root, rootIIFE) {
7507
- const topBlock = gatherRecursive(rootIIFE, ($13) => $13.type === "BlockStatement")[0];
7723
+ const topBlock = gatherRecursive(rootIIFE, ($14) => $14.type === "BlockStatement")[0];
7508
7724
  let i = 0;
7509
- for (let ref26 = gatherRecursiveWithinFunction(topBlock, ($14) => $14.type === "Declaration"), i9 = 0, len8 = ref26.length; i9 < len8; i9++) {
7510
- const decl = ref26[i9];
7725
+ for (let ref22 = gatherRecursiveWithinFunction(topBlock, ($15) => $15.type === "Declaration"), i11 = 0, len9 = ref22.length; i11 < len9; i11++) {
7726
+ const decl = ref22[i11];
7511
7727
  if (!decl.names?.length) {
7512
7728
  continue;
7513
7729
  }
@@ -7520,8 +7736,8 @@ ${js}`
7520
7736
  root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")}`, ";"]);
7521
7737
  }
7522
7738
  }
7523
- for (let ref27 = gatherRecursive(topBlock, ($15) => $15.type === "FunctionExpression"), i10 = 0, len9 = ref27.length; i10 < len9; i10++) {
7524
- const func = ref27[i10];
7739
+ for (let ref23 = gatherRecursive(topBlock, ($16) => $16.type === "FunctionExpression"), i12 = 0, len10 = ref23.length; i12 < len10; i12++) {
7740
+ const func = ref23[i12];
7525
7741
  if (func.name && func.parent?.type === "BlockStatement") {
7526
7742
  if (func.parent === topBlock) {
7527
7743
  replaceNode(func, void 0);
@@ -7533,17 +7749,17 @@ ${js}`
7533
7749
  }
7534
7750
  }
7535
7751
  }
7536
- for (let ref28 = gatherRecursiveWithinFunction(topBlock, ($16) => $16.type === "ClassExpression"), i11 = 0, len10 = ref28.length; i11 < len10; i11++) {
7537
- const classExp = ref28[i11];
7538
- let m5;
7539
- if (classExp.name && classExp.parent === topBlock || (m5 = classExp.parent, typeof m5 === "object" && m5 != null && "type" in m5 && m5.type === "ReturnStatement" && "parent" in m5 && m5.parent === topBlock)) {
7752
+ for (let ref24 = gatherRecursiveWithinFunction(topBlock, ($17) => $17.type === "ClassExpression"), i13 = 0, len11 = ref24.length; i13 < len11; i13++) {
7753
+ const classExp = ref24[i13];
7754
+ let m8;
7755
+ if (classExp.name && classExp.parent === topBlock || (m8 = classExp.parent, typeof m8 === "object" && m8 != null && "type" in m8 && m8.type === "ReturnStatement" && "parent" in m8 && m8.parent === topBlock)) {
7540
7756
  classExp.children.unshift(classExp.name, "=");
7541
7757
  root.expressions.splice(i++, 0, ["", `var ${classExp.name}`, ";"]);
7542
7758
  }
7543
7759
  }
7544
7760
  }
7545
7761
  function populateRefs(statements) {
7546
- const refNodes = gatherRecursive(statements, ($17) => $17.type === "Ref");
7762
+ const refNodes = gatherRecursive(statements, ($18) => $18.type === "Ref");
7547
7763
  if (refNodes.length) {
7548
7764
  const ids = gatherRecursive(statements, (s) => s.type === "Identifier");
7549
7765
  const names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
@@ -7566,8 +7782,8 @@ ${js}`
7566
7782
  function processPlaceholders(statements) {
7567
7783
  const placeholderMap = /* @__PURE__ */ new Map();
7568
7784
  const liftedIfs = /* @__PURE__ */ new Set();
7569
- for (let ref29 = gatherRecursiveAll(statements, ($18) => $18.type === "Placeholder"), i12 = 0, len11 = ref29.length; i12 < len11; i12++) {
7570
- const exp = ref29[i12];
7785
+ for (let ref25 = gatherRecursiveAll(statements, ($19) => $19.type === "Placeholder"), i14 = 0, len12 = ref25.length; i14 < len12; i14++) {
7786
+ const exp = ref25[i14];
7571
7787
  let ancestor;
7572
7788
  if (exp.subtype === ".") {
7573
7789
  ({ ancestor } = findAncestor(
@@ -7575,8 +7791,8 @@ ${js}`
7575
7791
  ($) => $.type === "Call" && !$.parent?.implicit
7576
7792
  ));
7577
7793
  ancestor = ancestor?.parent;
7578
- let m6;
7579
- while (ancestor?.parent != null && (m6 = ancestor.parent.type, m6 === "UnaryExpression" || m6 === "NewExpression" || m6 === "AwaitExpression" || m6 === "ThrowStatement" || m6 === "StatementExpression")) {
7794
+ let m9;
7795
+ while (ancestor?.parent != null && (m9 = ancestor.parent.type, m9 === "UnaryExpression" || m9 === "NewExpression" || m9 === "AwaitExpression" || m9 === "ThrowStatement" || m9 === "StatementExpression")) {
7580
7796
  ancestor = ancestor.parent;
7581
7797
  }
7582
7798
  if (!ancestor) {
@@ -7593,10 +7809,10 @@ ${js}`
7593
7809
  if (type === "IfStatement") {
7594
7810
  liftedIfs.add(ancestor2);
7595
7811
  }
7596
- let m7;
7597
- let m8;
7812
+ let m10;
7813
+ let m11;
7598
7814
  return type === "Call" && !ancestor2.parent?.implicit || // Block, except for if/else blocks when condition already lifted
7599
- type === "BlockStatement" && !((m7 = ancestor2.parent, typeof m7 === "object" && m7 != null && "type" in m7 && m7.type === "IfStatement") && liftedIfs.has(ancestor2.parent)) && !((m8 = ancestor2.parent, typeof m8 === "object" && m8 != null && "type" in m8 && m8.type === "ElseClause" && "parent" in m8 && typeof m8.parent === "object" && m8.parent != null && "type" in m8.parent && m8.parent.type === "IfStatement") && liftedIfs.has(ancestor2.parent.parent)) || type === "PipelineExpression" || // Declaration
7815
+ type === "BlockStatement" && !((m10 = ancestor2.parent, typeof m10 === "object" && m10 != null && "type" in m10 && m10.type === "IfStatement") && liftedIfs.has(ancestor2.parent)) && !((m11 = ancestor2.parent, typeof m11 === "object" && m11 != null && "type" in m11 && m11.type === "ElseClause" && "parent" in m11 && typeof m11.parent === "object" && m11.parent != null && "type" in m11.parent && m11.parent.type === "IfStatement") && liftedIfs.has(ancestor2.parent.parent)) || type === "PipelineExpression" || // Declaration
7600
7816
  type === "Initializer" || // Right-hand side of assignment
7601
7817
  type === "AssignmentExpression" && findChildIndex(ancestor2, child2) === ancestor2.children.indexOf(ancestor2.expression) || type === "ReturnStatement" || type === "YieldExpression";
7602
7818
  }));
@@ -7670,11 +7886,11 @@ ${js}`
7670
7886
  for (const [ancestor, placeholders] of placeholderMap) {
7671
7887
  let ref = makeRef("$");
7672
7888
  let typeSuffix;
7673
- for (let i13 = 0, len12 = placeholders.length; i13 < len12; i13++) {
7674
- const placeholder = placeholders[i13];
7889
+ for (let i15 = 0, len13 = placeholders.length; i15 < len13; i15++) {
7890
+ const placeholder = placeholders[i15];
7675
7891
  typeSuffix ??= placeholder.typeSuffix;
7676
- let ref30;
7677
- replaceNode((ref30 = placeholder.children)[ref30.length - 1], ref);
7892
+ let ref26;
7893
+ replaceNode((ref26 = placeholder.children)[ref26.length - 1], ref);
7678
7894
  }
7679
7895
  const { parent } = ancestor;
7680
7896
  const body = maybeUnwrap(ancestor);
@@ -7695,16 +7911,16 @@ ${js}`
7695
7911
  }
7696
7912
  case "PipelineExpression": {
7697
7913
  const i = findChildIndex(parent, ancestor);
7698
- let ref31;
7914
+ let ref27;
7699
7915
  if (i === 1) {
7700
- ref31 = ancestor === parent.children[i];
7916
+ ref27 = ancestor === parent.children[i];
7701
7917
  } else if (i === 2) {
7702
- ref31 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
7918
+ ref27 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3];
7703
7919
  } else {
7704
- ref31 = void 0;
7920
+ ref27 = void 0;
7705
7921
  }
7706
7922
  ;
7707
- outer = ref31;
7923
+ outer = ref27;
7708
7924
  break;
7709
7925
  }
7710
7926
  case "AssignmentExpression":
@@ -7719,9 +7935,9 @@ ${js}`
7719
7935
  fnExp = makeLeftHandSideExpression(fnExp);
7720
7936
  }
7721
7937
  replaceNode(ancestor, fnExp, parent);
7722
- let ref32;
7723
- if (ref32 = getTrimmingSpace(body)) {
7724
- const ws = ref32;
7938
+ let ref28;
7939
+ if (ref28 = getTrimmingSpace(body)) {
7940
+ const ws = ref28;
7725
7941
  inplaceInsertTrimmingSpace(body, "");
7726
7942
  inplacePrepend(ws, fnExp);
7727
7943
  }
@@ -7766,8 +7982,8 @@ ${js}`
7766
7982
  }
7767
7983
  ];
7768
7984
  }
7769
- let ref33;
7770
- if (Array.isArray(rest.delim) && (ref33 = rest.delim)[ref33.length - 1]?.token === ",") {
7985
+ let ref29;
7986
+ if (Array.isArray(rest.delim) && (ref29 = rest.delim)[ref29.length - 1]?.token === ",") {
7771
7987
  rest.delim = rest.delim.slice(0, -1);
7772
7988
  rest.children = [...rest.children.slice(0, -1), rest.delim];
7773
7989
  }
@@ -7864,11 +8080,7 @@ ${js}`
7864
8080
  ApplicationStart,
7865
8081
  ForbiddenImplicitCalls,
7866
8082
  ReservedBinary,
7867
- ArgumentsWithTrailingMemberExpressions,
7868
- TrailingMemberExpressions,
7869
- IndentedTrailingMemberExpressions,
7870
- NestedTrailingMemberExpression,
7871
- AllowedTrailingMemberExpressions,
8083
+ ArgumentsWithTrailingCallExpressions,
7872
8084
  TrailingCallExpressions,
7873
8085
  IndentedTrailingCallExpressions,
7874
8086
  NestedTrailingCallExpression,
@@ -7983,6 +8195,7 @@ ${js}`
7983
8195
  ImplicitAccessStart,
7984
8196
  PropertyAccessModifier,
7985
8197
  PropertyAccess,
8198
+ ExplicitPropertyGlob,
7986
8199
  PropertyGlob,
7987
8200
  PropertyBind,
7988
8201
  SuperProperty,
@@ -8805,125 +9018,126 @@ ${js}`
8805
9018
  var $L124 = (0, import_lib2.$L)("product");
8806
9019
  var $L125 = (0, import_lib2.$L)("min");
8807
9020
  var $L126 = (0, import_lib2.$L)("max");
8808
- var $L127 = (0, import_lib2.$L)("break");
8809
- var $L128 = (0, import_lib2.$L)("continue");
8810
- var $L129 = (0, import_lib2.$L)("debugger");
8811
- var $L130 = (0, import_lib2.$L)("require");
8812
- var $L131 = (0, import_lib2.$L)("with");
8813
- var $L132 = (0, import_lib2.$L)("assert");
8814
- var $L133 = (0, import_lib2.$L)(":=");
8815
- var $L134 = (0, import_lib2.$L)("\u2254");
8816
- var $L135 = (0, import_lib2.$L)(".=");
8817
- var $L136 = (0, import_lib2.$L)("::=");
8818
- var $L137 = (0, import_lib2.$L)("/*");
8819
- var $L138 = (0, import_lib2.$L)("*/");
8820
- var $L139 = (0, import_lib2.$L)("\\");
8821
- var $L140 = (0, import_lib2.$L)(")");
8822
- var $L141 = (0, import_lib2.$L)("abstract");
8823
- var $L142 = (0, import_lib2.$L)("as");
8824
- var $L143 = (0, import_lib2.$L)("@");
8825
- var $L144 = (0, import_lib2.$L)("@@");
8826
- var $L145 = (0, import_lib2.$L)("async");
8827
- var $L146 = (0, import_lib2.$L)("await");
8828
- var $L147 = (0, import_lib2.$L)("`");
8829
- var $L148 = (0, import_lib2.$L)("by");
8830
- var $L149 = (0, import_lib2.$L)("case");
8831
- var $L150 = (0, import_lib2.$L)("catch");
8832
- var $L151 = (0, import_lib2.$L)("class");
8833
- var $L152 = (0, import_lib2.$L)("#{");
8834
- var $L153 = (0, import_lib2.$L)("comptime");
8835
- var $L154 = (0, import_lib2.$L)("declare");
8836
- var $L155 = (0, import_lib2.$L)("default");
8837
- var $L156 = (0, import_lib2.$L)("delete");
8838
- var $L157 = (0, import_lib2.$L)("do");
8839
- var $L158 = (0, import_lib2.$L)("..");
8840
- var $L159 = (0, import_lib2.$L)("\u2025");
8841
- var $L160 = (0, import_lib2.$L)("...");
8842
- var $L161 = (0, import_lib2.$L)("\u2026");
8843
- var $L162 = (0, import_lib2.$L)("::");
8844
- var $L163 = (0, import_lib2.$L)('"');
8845
- var $L164 = (0, import_lib2.$L)("each");
8846
- var $L165 = (0, import_lib2.$L)("else");
8847
- var $L166 = (0, import_lib2.$L)("!");
8848
- var $L167 = (0, import_lib2.$L)("export");
8849
- var $L168 = (0, import_lib2.$L)("extends");
8850
- var $L169 = (0, import_lib2.$L)("finally");
8851
- var $L170 = (0, import_lib2.$L)("for");
8852
- var $L171 = (0, import_lib2.$L)("from");
8853
- var $L172 = (0, import_lib2.$L)("function");
8854
- var $L173 = (0, import_lib2.$L)("get");
8855
- var $L174 = (0, import_lib2.$L)("set");
8856
- var $L175 = (0, import_lib2.$L)("#");
8857
- var $L176 = (0, import_lib2.$L)("if");
8858
- var $L177 = (0, import_lib2.$L)("in");
8859
- var $L178 = (0, import_lib2.$L)("infer");
8860
- var $L179 = (0, import_lib2.$L)("let");
8861
- var $L180 = (0, import_lib2.$L)("const");
8862
- var $L181 = (0, import_lib2.$L)("is");
8863
- var $L182 = (0, import_lib2.$L)("var");
8864
- var $L183 = (0, import_lib2.$L)("like");
8865
- var $L184 = (0, import_lib2.$L)("loop");
8866
- var $L185 = (0, import_lib2.$L)("new");
8867
- var $L186 = (0, import_lib2.$L)("not");
8868
- var $L187 = (0, import_lib2.$L)("of");
8869
- var $L188 = (0, import_lib2.$L)("[");
8870
- var $L189 = (0, import_lib2.$L)("operator");
8871
- var $L190 = (0, import_lib2.$L)("override");
8872
- var $L191 = (0, import_lib2.$L)("own");
8873
- var $L192 = (0, import_lib2.$L)("public");
8874
- var $L193 = (0, import_lib2.$L)("private");
8875
- var $L194 = (0, import_lib2.$L)("protected");
8876
- var $L195 = (0, import_lib2.$L)("||>");
8877
- var $L196 = (0, import_lib2.$L)("|\u25B7");
8878
- var $L197 = (0, import_lib2.$L)("|>=");
8879
- var $L198 = (0, import_lib2.$L)("\u25B7=");
8880
- var $L199 = (0, import_lib2.$L)("|>");
8881
- var $L200 = (0, import_lib2.$L)("\u25B7");
8882
- var $L201 = (0, import_lib2.$L)("readonly");
8883
- var $L202 = (0, import_lib2.$L)("return");
8884
- var $L203 = (0, import_lib2.$L)("satisfies");
8885
- var $L204 = (0, import_lib2.$L)("'");
8886
- var $L205 = (0, import_lib2.$L)("static");
8887
- var $L206 = (0, import_lib2.$L)("${");
8888
- var $L207 = (0, import_lib2.$L)("super");
8889
- var $L208 = (0, import_lib2.$L)("switch");
8890
- var $L209 = (0, import_lib2.$L)("target");
8891
- var $L210 = (0, import_lib2.$L)("then");
8892
- var $L211 = (0, import_lib2.$L)("this");
8893
- var $L212 = (0, import_lib2.$L)("throw");
8894
- var $L213 = (0, import_lib2.$L)('"""');
8895
- var $L214 = (0, import_lib2.$L)("'''");
8896
- var $L215 = (0, import_lib2.$L)("///");
8897
- var $L216 = (0, import_lib2.$L)("```");
8898
- var $L217 = (0, import_lib2.$L)("try");
8899
- var $L218 = (0, import_lib2.$L)("typeof");
8900
- var $L219 = (0, import_lib2.$L)("undefined");
8901
- var $L220 = (0, import_lib2.$L)("unless");
8902
- var $L221 = (0, import_lib2.$L)("until");
8903
- var $L222 = (0, import_lib2.$L)("using");
8904
- var $L223 = (0, import_lib2.$L)("void");
8905
- var $L224 = (0, import_lib2.$L)("when");
8906
- var $L225 = (0, import_lib2.$L)("while");
8907
- var $L226 = (0, import_lib2.$L)("yield");
8908
- var $L227 = (0, import_lib2.$L)("/>");
8909
- var $L228 = (0, import_lib2.$L)("</");
8910
- var $L229 = (0, import_lib2.$L)("<>");
8911
- var $L230 = (0, import_lib2.$L)("</>");
8912
- var $L231 = (0, import_lib2.$L)("<!--");
8913
- var $L232 = (0, import_lib2.$L)("-->");
8914
- var $L233 = (0, import_lib2.$L)("type");
8915
- var $L234 = (0, import_lib2.$L)("enum");
8916
- var $L235 = (0, import_lib2.$L)("interface");
8917
- var $L236 = (0, import_lib2.$L)("global");
8918
- var $L237 = (0, import_lib2.$L)("module");
8919
- var $L238 = (0, import_lib2.$L)("namespace");
8920
- var $L239 = (0, import_lib2.$L)("asserts");
8921
- var $L240 = (0, import_lib2.$L)("keyof");
8922
- var $L241 = (0, import_lib2.$L)("???");
8923
- var $L242 = (0, import_lib2.$L)("unique");
8924
- var $L243 = (0, import_lib2.$L)("symbol");
8925
- var $L244 = (0, import_lib2.$L)("[]");
8926
- var $L245 = (0, import_lib2.$L)("civet");
9021
+ var $L127 = (0, import_lib2.$L)("join");
9022
+ var $L128 = (0, import_lib2.$L)("break");
9023
+ var $L129 = (0, import_lib2.$L)("continue");
9024
+ var $L130 = (0, import_lib2.$L)("debugger");
9025
+ var $L131 = (0, import_lib2.$L)("require");
9026
+ var $L132 = (0, import_lib2.$L)("with");
9027
+ var $L133 = (0, import_lib2.$L)("assert");
9028
+ var $L134 = (0, import_lib2.$L)(":=");
9029
+ var $L135 = (0, import_lib2.$L)("\u2254");
9030
+ var $L136 = (0, import_lib2.$L)(".=");
9031
+ var $L137 = (0, import_lib2.$L)("::=");
9032
+ var $L138 = (0, import_lib2.$L)("/*");
9033
+ var $L139 = (0, import_lib2.$L)("*/");
9034
+ var $L140 = (0, import_lib2.$L)("\\");
9035
+ var $L141 = (0, import_lib2.$L)(")");
9036
+ var $L142 = (0, import_lib2.$L)("abstract");
9037
+ var $L143 = (0, import_lib2.$L)("as");
9038
+ var $L144 = (0, import_lib2.$L)("@");
9039
+ var $L145 = (0, import_lib2.$L)("@@");
9040
+ var $L146 = (0, import_lib2.$L)("async");
9041
+ var $L147 = (0, import_lib2.$L)("await");
9042
+ var $L148 = (0, import_lib2.$L)("`");
9043
+ var $L149 = (0, import_lib2.$L)("by");
9044
+ var $L150 = (0, import_lib2.$L)("case");
9045
+ var $L151 = (0, import_lib2.$L)("catch");
9046
+ var $L152 = (0, import_lib2.$L)("class");
9047
+ var $L153 = (0, import_lib2.$L)("#{");
9048
+ var $L154 = (0, import_lib2.$L)("comptime");
9049
+ var $L155 = (0, import_lib2.$L)("declare");
9050
+ var $L156 = (0, import_lib2.$L)("default");
9051
+ var $L157 = (0, import_lib2.$L)("delete");
9052
+ var $L158 = (0, import_lib2.$L)("do");
9053
+ var $L159 = (0, import_lib2.$L)("..");
9054
+ var $L160 = (0, import_lib2.$L)("\u2025");
9055
+ var $L161 = (0, import_lib2.$L)("...");
9056
+ var $L162 = (0, import_lib2.$L)("\u2026");
9057
+ var $L163 = (0, import_lib2.$L)("::");
9058
+ var $L164 = (0, import_lib2.$L)('"');
9059
+ var $L165 = (0, import_lib2.$L)("each");
9060
+ var $L166 = (0, import_lib2.$L)("else");
9061
+ var $L167 = (0, import_lib2.$L)("!");
9062
+ var $L168 = (0, import_lib2.$L)("export");
9063
+ var $L169 = (0, import_lib2.$L)("extends");
9064
+ var $L170 = (0, import_lib2.$L)("finally");
9065
+ var $L171 = (0, import_lib2.$L)("for");
9066
+ var $L172 = (0, import_lib2.$L)("from");
9067
+ var $L173 = (0, import_lib2.$L)("function");
9068
+ var $L174 = (0, import_lib2.$L)("get");
9069
+ var $L175 = (0, import_lib2.$L)("set");
9070
+ var $L176 = (0, import_lib2.$L)("#");
9071
+ var $L177 = (0, import_lib2.$L)("if");
9072
+ var $L178 = (0, import_lib2.$L)("in");
9073
+ var $L179 = (0, import_lib2.$L)("infer");
9074
+ var $L180 = (0, import_lib2.$L)("let");
9075
+ var $L181 = (0, import_lib2.$L)("const");
9076
+ var $L182 = (0, import_lib2.$L)("is");
9077
+ var $L183 = (0, import_lib2.$L)("var");
9078
+ var $L184 = (0, import_lib2.$L)("like");
9079
+ var $L185 = (0, import_lib2.$L)("loop");
9080
+ var $L186 = (0, import_lib2.$L)("new");
9081
+ var $L187 = (0, import_lib2.$L)("not");
9082
+ var $L188 = (0, import_lib2.$L)("of");
9083
+ var $L189 = (0, import_lib2.$L)("[");
9084
+ var $L190 = (0, import_lib2.$L)("operator");
9085
+ var $L191 = (0, import_lib2.$L)("override");
9086
+ var $L192 = (0, import_lib2.$L)("own");
9087
+ var $L193 = (0, import_lib2.$L)("public");
9088
+ var $L194 = (0, import_lib2.$L)("private");
9089
+ var $L195 = (0, import_lib2.$L)("protected");
9090
+ var $L196 = (0, import_lib2.$L)("||>");
9091
+ var $L197 = (0, import_lib2.$L)("|\u25B7");
9092
+ var $L198 = (0, import_lib2.$L)("|>=");
9093
+ var $L199 = (0, import_lib2.$L)("\u25B7=");
9094
+ var $L200 = (0, import_lib2.$L)("|>");
9095
+ var $L201 = (0, import_lib2.$L)("\u25B7");
9096
+ var $L202 = (0, import_lib2.$L)("readonly");
9097
+ var $L203 = (0, import_lib2.$L)("return");
9098
+ var $L204 = (0, import_lib2.$L)("satisfies");
9099
+ var $L205 = (0, import_lib2.$L)("'");
9100
+ var $L206 = (0, import_lib2.$L)("static");
9101
+ var $L207 = (0, import_lib2.$L)("${");
9102
+ var $L208 = (0, import_lib2.$L)("super");
9103
+ var $L209 = (0, import_lib2.$L)("switch");
9104
+ var $L210 = (0, import_lib2.$L)("target");
9105
+ var $L211 = (0, import_lib2.$L)("then");
9106
+ var $L212 = (0, import_lib2.$L)("this");
9107
+ var $L213 = (0, import_lib2.$L)("throw");
9108
+ var $L214 = (0, import_lib2.$L)('"""');
9109
+ var $L215 = (0, import_lib2.$L)("'''");
9110
+ var $L216 = (0, import_lib2.$L)("///");
9111
+ var $L217 = (0, import_lib2.$L)("```");
9112
+ var $L218 = (0, import_lib2.$L)("try");
9113
+ var $L219 = (0, import_lib2.$L)("typeof");
9114
+ var $L220 = (0, import_lib2.$L)("undefined");
9115
+ var $L221 = (0, import_lib2.$L)("unless");
9116
+ var $L222 = (0, import_lib2.$L)("until");
9117
+ var $L223 = (0, import_lib2.$L)("using");
9118
+ var $L224 = (0, import_lib2.$L)("void");
9119
+ var $L225 = (0, import_lib2.$L)("when");
9120
+ var $L226 = (0, import_lib2.$L)("while");
9121
+ var $L227 = (0, import_lib2.$L)("yield");
9122
+ var $L228 = (0, import_lib2.$L)("/>");
9123
+ var $L229 = (0, import_lib2.$L)("</");
9124
+ var $L230 = (0, import_lib2.$L)("<>");
9125
+ var $L231 = (0, import_lib2.$L)("</>");
9126
+ var $L232 = (0, import_lib2.$L)("<!--");
9127
+ var $L233 = (0, import_lib2.$L)("-->");
9128
+ var $L234 = (0, import_lib2.$L)("type");
9129
+ var $L235 = (0, import_lib2.$L)("enum");
9130
+ var $L236 = (0, import_lib2.$L)("interface");
9131
+ var $L237 = (0, import_lib2.$L)("global");
9132
+ var $L238 = (0, import_lib2.$L)("module");
9133
+ var $L239 = (0, import_lib2.$L)("namespace");
9134
+ var $L240 = (0, import_lib2.$L)("asserts");
9135
+ var $L241 = (0, import_lib2.$L)("keyof");
9136
+ var $L242 = (0, import_lib2.$L)("???");
9137
+ var $L243 = (0, import_lib2.$L)("unique");
9138
+ var $L244 = (0, import_lib2.$L)("symbol");
9139
+ var $L245 = (0, import_lib2.$L)("[]");
9140
+ var $L246 = (0, import_lib2.$L)("civet");
8927
9141
  var $R0 = (0, import_lib2.$R)(new RegExp("(?=async|debugger|if|unless|comptime|do|for|loop|until|while|switch|throw|try)", "suy"));
8928
9142
  var $R1 = (0, import_lib2.$R)(new RegExp("&(?=\\s)", "suy"));
8929
9143
  var $R2 = (0, import_lib2.$R)(new RegExp("(as|of|by|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
@@ -9222,7 +9436,7 @@ ${js}`
9222
9436
  function ExplicitArguments(ctx, state2) {
9223
9437
  return (0, import_lib2.$EVENT)(ctx, state2, "ExplicitArguments", ExplicitArguments$0);
9224
9438
  }
9225
- var ApplicationStart$0 = (0, import_lib2.$S)(IndentedApplicationAllowed, (0, import_lib2.$Y)((0, import_lib2.$S)(IndentedFurther, (0, import_lib2.$N)(IdentifierBinaryOp), (0, import_lib2.$N)(ReservedBinary))), (0, import_lib2.$N)(IndentedTrailingMemberExpressions));
9439
+ var ApplicationStart$0 = (0, import_lib2.$S)(IndentedApplicationAllowed, (0, import_lib2.$Y)((0, import_lib2.$S)(IndentedFurther, (0, import_lib2.$N)(IdentifierBinaryOp), (0, import_lib2.$N)(ReservedBinary))), (0, import_lib2.$N)(IndentedTrailingCallExpressions));
9226
9440
  var ApplicationStart$1 = (0, import_lib2.$S)((0, import_lib2.$N)(EOS), (0, import_lib2.$Y)((0, import_lib2.$S)(_, (0, import_lib2.$C)(BracedApplicationAllowed, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L1, 'ApplicationStart "{"'))), (0, import_lib2.$N)(ForbiddenImplicitCalls))));
9227
9441
  var ApplicationStart$$ = [ApplicationStart$0, ApplicationStart$1];
9228
9442
  function ApplicationStart(ctx, state2) {
@@ -9255,52 +9469,16 @@ ${js}`
9255
9469
  function ReservedBinary(ctx, state2) {
9256
9470
  return (0, import_lib2.$EVENT)(ctx, state2, "ReservedBinary", ReservedBinary$0);
9257
9471
  }
9258
- var ArgumentsWithTrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Arguments, AllowedTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
9472
+ var ArgumentsWithTrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Arguments, (0, import_lib2.$E)(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
9259
9473
  var args = $1;
9260
9474
  var trailing = $2;
9261
- return [args, ...trailing];
9475
+ return [args, ...trailing ?? []];
9262
9476
  });
9263
- function ArgumentsWithTrailingMemberExpressions(ctx, state2) {
9264
- return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingMemberExpressions", ArgumentsWithTrailingMemberExpressions$0);
9265
- }
9266
- var TrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(MemberExpressionRest), (0, import_lib2.$E)(IndentedTrailingMemberExpressions)), function($skip, $loc, $0, $1, $2) {
9267
- if (!$2)
9268
- return $1;
9269
- return [...$1, ...$2];
9270
- });
9271
- function TrailingMemberExpressions(ctx, state2) {
9272
- return (0, import_lib2.$EVENT)(ctx, state2, "TrailingMemberExpressions", TrailingMemberExpressions$0);
9273
- }
9274
- var IndentedTrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$Q)(NestedTrailingMemberExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
9275
- if (!$2.length)
9276
- return $skip;
9277
- return $2.flat();
9278
- });
9279
- var IndentedTrailingMemberExpressions$1 = (0, import_lib2.$TV)((0, import_lib2.$P)(NestedTrailingMemberExpression), function($skip, $loc, $0, $1) {
9280
- return $1.flat();
9281
- });
9282
- var IndentedTrailingMemberExpressions$$ = [IndentedTrailingMemberExpressions$0, IndentedTrailingMemberExpressions$1];
9283
- function IndentedTrailingMemberExpressions(ctx, state2) {
9284
- return (0, import_lib2.$EVENT_C)(ctx, state2, "IndentedTrailingMemberExpressions", IndentedTrailingMemberExpressions$$);
9285
- }
9286
- var NestedTrailingMemberExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Nested, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$EXPECT)($L6, 'NestedTrailingMemberExpression "?"')), (0, import_lib2.$EXPECT)($L7, 'NestedTrailingMemberExpression "."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R3, "NestedTrailingMemberExpression /[0-9]/")))), (0, import_lib2.$P)(MemberExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
9287
- var ws = $1;
9288
- var rests = $3;
9289
- const [first, ...rest] = rests;
9290
- return [prepend(ws, first), ...rest];
9291
- });
9292
- function NestedTrailingMemberExpression(ctx, state2) {
9293
- return (0, import_lib2.$EVENT)(ctx, state2, "NestedTrailingMemberExpression", NestedTrailingMemberExpression$0);
9294
- }
9295
- var AllowedTrailingMemberExpressions$0 = (0, import_lib2.$T)((0, import_lib2.$S)(TrailingMemberPropertyAllowed, TrailingMemberExpressions), function(value) {
9296
- return value[1];
9297
- });
9298
- var AllowedTrailingMemberExpressions$1 = (0, import_lib2.$Q)(MemberExpressionRest);
9299
- var AllowedTrailingMemberExpressions$$ = [AllowedTrailingMemberExpressions$0, AllowedTrailingMemberExpressions$1];
9300
- function AllowedTrailingMemberExpressions(ctx, state2) {
9301
- return (0, import_lib2.$EVENT_C)(ctx, state2, "AllowedTrailingMemberExpressions", AllowedTrailingMemberExpressions$$);
9477
+ function ArgumentsWithTrailingCallExpressions(ctx, state2) {
9478
+ return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingCallExpressions", ArgumentsWithTrailingCallExpressions$0);
9302
9479
  }
9303
9480
  var TrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(CallExpressionRest), (0, import_lib2.$E)(IndentedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
9481
+ $1 = $1.flat();
9304
9482
  if (!$1.length && !$2)
9305
9483
  return $skip;
9306
9484
  if (!$2)
@@ -10519,7 +10697,7 @@ ${js}`
10519
10697
  function LeftHandSideExpression(ctx, state2) {
10520
10698
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LeftHandSideExpression", LeftHandSideExpression$$);
10521
10699
  }
10522
- var CallExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Super, ArgumentsWithTrailingMemberExpressions, (0, import_lib2.$Q)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
10700
+ var CallExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Super, ArgumentsWithTrailingCallExpressions, (0, import_lib2.$Q)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
10523
10701
  var rest = $3;
10524
10702
  return processCallMemberExpression({
10525
10703
  type: "CallExpression",
@@ -10537,7 +10715,7 @@ ${js}`
10537
10715
  var imports = $5;
10538
10716
  return dynamizeImportDeclarationExpression([i, iws, imports, fws, from]);
10539
10717
  });
10540
- var CallExpression$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, (0, import_lib2.$Q)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
10718
+ var CallExpression$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'CallExpression "import"'), ArgumentsWithTrailingCallExpressions, (0, import_lib2.$Q)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
10541
10719
  var rest = $3;
10542
10720
  return processCallMemberExpression({
10543
10721
  type: "CallExpression",
@@ -10572,7 +10750,7 @@ ${js}`
10572
10750
  }
10573
10751
  return literal;
10574
10752
  });
10575
- var CallExpressionRest$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
10753
+ var CallExpressionRest$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(OptionalShorthand), ArgumentsWithTrailingCallExpressions), function($skip, $loc, $0, $1, $2) {
10576
10754
  var optional = $1;
10577
10755
  var argsWithTrailing = $2;
10578
10756
  if (!optional)
@@ -10939,6 +11117,12 @@ ${js}`
10939
11117
  function PropertyAccess(ctx, state2) {
10940
11118
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PropertyAccess", PropertyAccess$$);
10941
11119
  }
11120
+ var ExplicitPropertyGlob$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)(ExplicitAccessStart), PropertyGlob), function(value) {
11121
+ return value[1];
11122
+ });
11123
+ function ExplicitPropertyGlob(ctx, state2) {
11124
+ return (0, import_lib2.$EVENT)(ctx, state2, "ExplicitPropertyGlob", ExplicitPropertyGlob$0);
11125
+ }
10942
11126
  var PropertyGlob$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$S)((0, import_lib2.$E)(PropertyAccessModifier), OptionalDot), (0, import_lib2.$Q)(InlineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
10943
11127
  var dot = $1;
10944
11128
  var object = $3;
@@ -11551,19 +11735,13 @@ ${js}`
11551
11735
  var binding = $2;
11552
11736
  var typeSuffix = $3;
11553
11737
  var initializer = $4;
11554
- if (binding.children) {
11555
- binding = {
11556
- ...binding,
11557
- initializer,
11558
- children: [...binding.children, initializer]
11559
- };
11560
- }
11561
11738
  return {
11562
11739
  type: "BindingElement",
11563
11740
  names: binding.names,
11564
11741
  typeSuffix,
11565
11742
  binding,
11566
- children: [ws, binding]
11743
+ children: [ws, binding, initializer],
11744
+ initializer
11567
11745
  };
11568
11746
  });
11569
11747
  var BindingElement$2 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L17, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
@@ -12267,11 +12445,9 @@ ${js}`
12267
12445
  const expressions = [...stmts];
12268
12446
  if (last)
12269
12447
  expressions.push(last);
12270
- const maybeComment = expressions.at(-1)?.[2]?.children?.[2]?.at(-1);
12271
- const hasTrailingComment = maybeComment?.type === "Comment" && maybeComment.token.startsWith("//");
12272
12448
  const children = [expressions];
12273
- if (hasTrailingComment)
12274
- children.push("\n");
12449
+ if (hasTrailingComment(expressions))
12450
+ children.push(["\n"]);
12275
12451
  return {
12276
12452
  type: "BlockStatement",
12277
12453
  expressions,
@@ -13355,7 +13531,7 @@ ${js}`
13355
13531
  ts: true
13356
13532
  };
13357
13533
  });
13358
- var MethodDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(MethodSignature, (0, import_lib2.$N)((0, import_lib2.$C)(PropertyAccess, UnaryPostfix, NonNullAssertion)), (0, import_lib2.$E)(BracedBlock)), function($skip, $loc, $0, $1, $2, $3) {
13534
+ var MethodDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(MethodSignature, (0, import_lib2.$N)((0, import_lib2.$C)(PropertyAccess, ExplicitPropertyGlob, UnaryPostfix, NonNullAssertion)), (0, import_lib2.$E)(BracedBlock)), function($skip, $loc, $0, $1, $2, $3) {
13359
13535
  var signature = $1;
13360
13536
  var block = $3;
13361
13537
  let children = $0;
@@ -14575,7 +14751,7 @@ ${js}`
14575
14751
  function ForStatementControlWithReduction(ctx, state2) {
14576
14752
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForStatementControlWithReduction", ForStatementControlWithReduction$$);
14577
14753
  }
14578
- var ForReduction$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L120, 'ForReduction "some"'), (0, import_lib2.$EXPECT)($L121, 'ForReduction "every"'), (0, import_lib2.$EXPECT)($L122, 'ForReduction "count"'), (0, import_lib2.$EXPECT)($L123, 'ForReduction "sum"'), (0, import_lib2.$EXPECT)($L124, 'ForReduction "product"'), (0, import_lib2.$EXPECT)($L125, 'ForReduction "min"'), (0, import_lib2.$EXPECT)($L126, 'ForReduction "max"')), NonIdContinue, __), function($skip, $loc, $0, $1, $2, $3) {
14754
+ var ForReduction$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L120, 'ForReduction "some"'), (0, import_lib2.$EXPECT)($L121, 'ForReduction "every"'), (0, import_lib2.$EXPECT)($L122, 'ForReduction "count"'), (0, import_lib2.$EXPECT)($L123, 'ForReduction "sum"'), (0, import_lib2.$EXPECT)($L124, 'ForReduction "product"'), (0, import_lib2.$EXPECT)($L125, 'ForReduction "min"'), (0, import_lib2.$EXPECT)($L126, 'ForReduction "max"'), (0, import_lib2.$EXPECT)($L127, 'ForReduction "join"')), NonIdContinue, __), function($skip, $loc, $0, $1, $2, $3) {
14579
14755
  var subtype = $1;
14580
14756
  var ws = $3;
14581
14757
  return {
@@ -15149,7 +15325,7 @@ ${js}`
15149
15325
  expression
15150
15326
  };
15151
15327
  });
15152
- var Condition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, InsertOpenParen, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, Expression)), InsertCloseParen, PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15328
+ var Condition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, InsertOpenParen, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, PostfixedExpression)), InsertCloseParen, PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15153
15329
  var open = $2;
15154
15330
  var expression = $3;
15155
15331
  var close = $4;
@@ -15178,7 +15354,7 @@ ${js}`
15178
15354
  function Condition(ctx, state2) {
15179
15355
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Condition", Condition$$);
15180
15356
  }
15181
- var BoundedCondition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertOpenParen, Expression, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
15357
+ var BoundedCondition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertOpenParen, PostfixedExpression, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
15182
15358
  var open = $1;
15183
15359
  var expression = $2;
15184
15360
  var close = $3;
@@ -15525,19 +15701,19 @@ ${js}`
15525
15701
  function ThrowStatement(ctx, state2) {
15526
15702
  return (0, import_lib2.$EVENT)(ctx, state2, "ThrowStatement", ThrowStatement$0);
15527
15703
  }
15528
- var Break$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L127, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15704
+ var Break$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L128, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15529
15705
  return { $loc, token: $1 };
15530
15706
  });
15531
15707
  function Break(ctx, state2) {
15532
15708
  return (0, import_lib2.$EVENT)(ctx, state2, "Break", Break$0);
15533
15709
  }
15534
- var Continue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L128, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15710
+ var Continue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L129, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15535
15711
  return { $loc, token: $1 };
15536
15712
  });
15537
15713
  function Continue(ctx, state2) {
15538
15714
  return (0, import_lib2.$EVENT)(ctx, state2, "Continue", Continue$0);
15539
15715
  }
15540
- var Debugger$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L129, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15716
+ var Debugger$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L130, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15541
15717
  return { $loc, token: $1 };
15542
15718
  });
15543
15719
  function Debugger(ctx, state2) {
@@ -15605,7 +15781,7 @@ ${js}`
15605
15781
  function MaybeParenNestedExpression(ctx, state2) {
15606
15782
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeParenNestedExpression", MaybeParenNestedExpression$$);
15607
15783
  }
15608
- var ImportDeclaration$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Import, _, Identifier, (0, import_lib2.$E)(_), Equals, __, (0, import_lib2.$EXPECT)($L130, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15784
+ var ImportDeclaration$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Import, _, Identifier, (0, import_lib2.$E)(_), Equals, __, (0, import_lib2.$EXPECT)($L131, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15609
15785
  const imp = [
15610
15786
  { ...$1, ts: true },
15611
15787
  { ...$1, token: "const", js: true }
@@ -15795,7 +15971,7 @@ ${js}`
15795
15971
  function ImpliedFrom(ctx, state2) {
15796
15972
  return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFrom", ImpliedFrom$0);
15797
15973
  }
15798
- var ImportAssertion$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L131, 'ImportAssertion "with"'), (0, import_lib2.$EXPECT)($L132, 'ImportAssertion "assert"')), NonIdContinue, (0, import_lib2.$E)(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15974
+ var ImportAssertion$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L132, 'ImportAssertion "with"'), (0, import_lib2.$EXPECT)($L133, 'ImportAssertion "assert"')), NonIdContinue, (0, import_lib2.$E)(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15799
15975
  var keyword = $2;
15800
15976
  var object = $5;
15801
15977
  return {
@@ -16121,19 +16297,19 @@ ${js}`
16121
16297
  function LexicalDeclaration(ctx, state2) {
16122
16298
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LexicalDeclaration", LexicalDeclaration$$);
16123
16299
  }
16124
- var ConstAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L133, 'ConstAssignment ":="'), (0, import_lib2.$EXPECT)($L134, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
16300
+ var ConstAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L134, 'ConstAssignment ":="'), (0, import_lib2.$EXPECT)($L135, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
16125
16301
  return { $loc, token: "=", decl: "const " };
16126
16302
  });
16127
16303
  function ConstAssignment(ctx, state2) {
16128
16304
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstAssignment", ConstAssignment$0);
16129
16305
  }
16130
- var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L135, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
16306
+ var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L136, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
16131
16307
  return { $loc, token: "=", decl: "let " };
16132
16308
  });
16133
16309
  function LetAssignment(ctx, state2) {
16134
16310
  return (0, import_lib2.$EVENT)(ctx, state2, "LetAssignment", LetAssignment$0);
16135
16311
  }
16136
- var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L136, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
16312
+ var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L137, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
16137
16313
  return { $loc, token: "=" };
16138
16314
  });
16139
16315
  function TypeAssignment(ctx, state2) {
@@ -16556,7 +16732,7 @@ ${js}`
16556
16732
  function MultiLineComment(ctx, state2) {
16557
16733
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
16558
16734
  }
16559
- var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L137, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R68, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16735
+ var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R68, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16560
16736
  return { type: "Comment", $loc, token: $1 };
16561
16737
  });
16562
16738
  function JSMultiLineComment(ctx, state2) {
@@ -16602,7 +16778,7 @@ ${js}`
16602
16778
  var NonNewlineWhitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R23, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16603
16779
  return { $loc, token: $0 };
16604
16780
  });
16605
- var NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L139, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
16781
+ var NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L140, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
16606
16782
  return " ";
16607
16783
  });
16608
16784
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
@@ -16653,7 +16829,7 @@ ${js}`
16653
16829
  function StatementDelimiter(ctx, state2) {
16654
16830
  return (0, import_lib2.$EVENT_C)(ctx, state2, "StatementDelimiter", StatementDelimiter$$);
16655
16831
  }
16656
- var ClosingDelimiter$0 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L37, 'ClosingDelimiter "}"'), (0, import_lib2.$EXPECT)($L140, 'ClosingDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'ClosingDelimiter "]"'))));
16832
+ var ClosingDelimiter$0 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L37, 'ClosingDelimiter "}"'), (0, import_lib2.$EXPECT)($L141, 'ClosingDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'ClosingDelimiter "]"'))));
16657
16833
  function ClosingDelimiter(ctx, state2) {
16658
16834
  return (0, import_lib2.$EVENT)(ctx, state2, "ClosingDelimiter", ClosingDelimiter$0);
16659
16835
  }
@@ -16676,7 +16852,7 @@ ${js}`
16676
16852
  function Loc(ctx, state2) {
16677
16853
  return (0, import_lib2.$EVENT)(ctx, state2, "Loc", Loc$0);
16678
16854
  }
16679
- var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L141, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
16855
+ var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
16680
16856
  return { $loc, token: $1, ts: true };
16681
16857
  });
16682
16858
  function Abstract(ctx, state2) {
@@ -16688,43 +16864,43 @@ ${js}`
16688
16864
  function Ampersand(ctx, state2) {
16689
16865
  return (0, import_lib2.$EVENT)(ctx, state2, "Ampersand", Ampersand$0);
16690
16866
  }
16691
- var As$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16867
+ var As$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L143, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16692
16868
  return { $loc, token: $1 };
16693
16869
  });
16694
16870
  function As(ctx, state2) {
16695
16871
  return (0, import_lib2.$EVENT)(ctx, state2, "As", As$0);
16696
16872
  }
16697
- var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L143, 'At "@"'), function($skip, $loc, $0, $1) {
16873
+ var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'At "@"'), function($skip, $loc, $0, $1) {
16698
16874
  return { $loc, token: $1 };
16699
16875
  });
16700
16876
  function At(ctx, state2) {
16701
16877
  return (0, import_lib2.$EVENT)(ctx, state2, "At", At$0);
16702
16878
  }
16703
- var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
16879
+ var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L145, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
16704
16880
  return { $loc, token: "@" };
16705
16881
  });
16706
16882
  function AtAt(ctx, state2) {
16707
16883
  return (0, import_lib2.$EVENT)(ctx, state2, "AtAt", AtAt$0);
16708
16884
  }
16709
- var Async$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L145, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16885
+ var Async$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L146, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16710
16886
  return { $loc, token: $1, type: "Async" };
16711
16887
  });
16712
16888
  function Async(ctx, state2) {
16713
16889
  return (0, import_lib2.$EVENT)(ctx, state2, "Async", Async$0);
16714
16890
  }
16715
- var Await$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L146, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16891
+ var Await$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L147, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16716
16892
  return { $loc, token: $1, type: "Await" };
16717
16893
  });
16718
16894
  function Await(ctx, state2) {
16719
16895
  return (0, import_lib2.$EVENT)(ctx, state2, "Await", Await$0);
16720
16896
  }
16721
- var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L147, 'Backtick "`"'), function($skip, $loc, $0, $1) {
16897
+ var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L148, 'Backtick "`"'), function($skip, $loc, $0, $1) {
16722
16898
  return { $loc, token: $1 };
16723
16899
  });
16724
16900
  function Backtick(ctx, state2) {
16725
16901
  return (0, import_lib2.$EVENT)(ctx, state2, "Backtick", Backtick$0);
16726
16902
  }
16727
- var By$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L148, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16903
+ var By$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L149, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16728
16904
  return { $loc, token: $1 };
16729
16905
  });
16730
16906
  function By(ctx, state2) {
@@ -16736,19 +16912,19 @@ ${js}`
16736
16912
  function Caret(ctx, state2) {
16737
16913
  return (0, import_lib2.$EVENT)(ctx, state2, "Caret", Caret$0);
16738
16914
  }
16739
- var Case$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L149, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16915
+ var Case$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L150, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16740
16916
  return { $loc, token: $1 };
16741
16917
  });
16742
16918
  function Case(ctx, state2) {
16743
16919
  return (0, import_lib2.$EVENT)(ctx, state2, "Case", Case$0);
16744
16920
  }
16745
- var Catch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L150, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16921
+ var Catch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L151, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16746
16922
  return { $loc, token: $1 };
16747
16923
  });
16748
16924
  function Catch(ctx, state2) {
16749
16925
  return (0, import_lib2.$EVENT)(ctx, state2, "Catch", Catch$0);
16750
16926
  }
16751
- var Class$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L151, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16927
+ var Class$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L152, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16752
16928
  return { $loc, token: $1 };
16753
16929
  });
16754
16930
  function Class(ctx, state2) {
@@ -16772,13 +16948,13 @@ ${js}`
16772
16948
  function CloseBracket(ctx, state2) {
16773
16949
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseBracket", CloseBracket$0);
16774
16950
  }
16775
- var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L140, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
16951
+ var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L141, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
16776
16952
  return { $loc, token: $1 };
16777
16953
  });
16778
16954
  function CloseParen(ctx, state2) {
16779
16955
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseParen", CloseParen$0);
16780
16956
  }
16781
- var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L152, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
16957
+ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L153, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
16782
16958
  return { $loc, token: "${" };
16783
16959
  });
16784
16960
  function CoffeeSubstitutionStart(ctx, state2) {
@@ -16796,37 +16972,37 @@ ${js}`
16796
16972
  function Comma(ctx, state2) {
16797
16973
  return (0, import_lib2.$EVENT)(ctx, state2, "Comma", Comma$0);
16798
16974
  }
16799
- var Comptime$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L153, 'Comptime "comptime"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L16, 'Comptime ":"'))), function($skip, $loc, $0, $1, $2, $3) {
16975
+ var Comptime$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L154, 'Comptime "comptime"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L16, 'Comptime ":"'))), function($skip, $loc, $0, $1, $2, $3) {
16800
16976
  return { $loc, token: $1 };
16801
16977
  });
16802
16978
  function Comptime(ctx, state2) {
16803
16979
  return (0, import_lib2.$EVENT)(ctx, state2, "Comptime", Comptime$0);
16804
16980
  }
16805
- var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L143, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
16981
+ var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
16806
16982
  return { $loc, token: "constructor" };
16807
16983
  });
16808
16984
  function ConstructorShorthand(ctx, state2) {
16809
16985
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstructorShorthand", ConstructorShorthand$0);
16810
16986
  }
16811
- var Declare$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L154, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16987
+ var Declare$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L155, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16812
16988
  return { $loc, token: $1 };
16813
16989
  });
16814
16990
  function Declare(ctx, state2) {
16815
16991
  return (0, import_lib2.$EVENT)(ctx, state2, "Declare", Declare$0);
16816
16992
  }
16817
- var Default$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L155, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16993
+ var Default$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L156, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16818
16994
  return { $loc, token: $1 };
16819
16995
  });
16820
16996
  function Default(ctx, state2) {
16821
16997
  return (0, import_lib2.$EVENT)(ctx, state2, "Default", Default$0);
16822
16998
  }
16823
- var Delete$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L156, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16999
+ var Delete$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L157, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16824
17000
  return { $loc, token: $1 };
16825
17001
  });
16826
17002
  function Delete(ctx, state2) {
16827
17003
  return (0, import_lib2.$EVENT)(ctx, state2, "Delete", Delete$0);
16828
17004
  }
16829
- var Do$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L157, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17005
+ var Do$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L158, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16830
17006
  return { $loc, token: $1 };
16831
17007
  });
16832
17008
  function Do(ctx, state2) {
@@ -16846,20 +17022,20 @@ ${js}`
16846
17022
  function Dot(ctx, state2) {
16847
17023
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Dot", Dot$$);
16848
17024
  }
16849
- var DotDot$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L158, 'DotDot ".."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
17025
+ var DotDot$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L159, 'DotDot ".."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
16850
17026
  return { $loc, token: $1 };
16851
17027
  });
16852
- var DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L159, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
17028
+ var DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L160, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
16853
17029
  return { $loc, token: ".." };
16854
17030
  });
16855
17031
  var DotDot$$ = [DotDot$0, DotDot$1];
16856
17032
  function DotDot(ctx, state2) {
16857
17033
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DotDot", DotDot$$);
16858
17034
  }
16859
- var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L160, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
17035
+ var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L161, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
16860
17036
  return { $loc, token: $1 };
16861
17037
  });
16862
- var DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L161, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
17038
+ var DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
16863
17039
  return { $loc, token: "..." };
16864
17040
  });
16865
17041
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
@@ -16872,31 +17048,31 @@ ${js}`
16872
17048
  function InsertDotDotDot(ctx, state2) {
16873
17049
  return (0, import_lib2.$EVENT)(ctx, state2, "InsertDotDotDot", InsertDotDotDot$0);
16874
17050
  }
16875
- var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
17051
+ var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
16876
17052
  return { $loc, token: $1 };
16877
17053
  });
16878
17054
  function DoubleColon(ctx, state2) {
16879
17055
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColon", DoubleColon$0);
16880
17056
  }
16881
- var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
17057
+ var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
16882
17058
  return { $loc, token: ":" };
16883
17059
  });
16884
17060
  function DoubleColonAsColon(ctx, state2) {
16885
17061
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColonAsColon", DoubleColonAsColon$0);
16886
17062
  }
16887
- var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
17063
+ var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
16888
17064
  return { $loc, token: $1 };
16889
17065
  });
16890
17066
  function DoubleQuote(ctx, state2) {
16891
17067
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleQuote", DoubleQuote$0);
16892
17068
  }
16893
- var Each$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L164, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17069
+ var Each$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L165, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16894
17070
  return { $loc, token: $1 };
16895
17071
  });
16896
17072
  function Each(ctx, state2) {
16897
17073
  return (0, import_lib2.$EVENT)(ctx, state2, "Each", Each$0);
16898
17074
  }
16899
- var Else$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L165, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17075
+ var Else$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L166, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16900
17076
  return { $loc, token: $1 };
16901
17077
  });
16902
17078
  function Else(ctx, state2) {
@@ -16908,61 +17084,61 @@ ${js}`
16908
17084
  function Equals(ctx, state2) {
16909
17085
  return (0, import_lib2.$EVENT)(ctx, state2, "Equals", Equals$0);
16910
17086
  }
16911
- var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L166, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
17087
+ var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L167, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
16912
17088
  return { $loc, token: $1 };
16913
17089
  });
16914
17090
  function ExclamationPoint(ctx, state2) {
16915
17091
  return (0, import_lib2.$EVENT)(ctx, state2, "ExclamationPoint", ExclamationPoint$0);
16916
17092
  }
16917
- var Export$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L167, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17093
+ var Export$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L168, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16918
17094
  return { $loc, token: $1 };
16919
17095
  });
16920
17096
  function Export(ctx, state2) {
16921
17097
  return (0, import_lib2.$EVENT)(ctx, state2, "Export", Export$0);
16922
17098
  }
16923
- var Extends$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L168, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17099
+ var Extends$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L169, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16924
17100
  return { $loc, token: $1 };
16925
17101
  });
16926
17102
  function Extends(ctx, state2) {
16927
17103
  return (0, import_lib2.$EVENT)(ctx, state2, "Extends", Extends$0);
16928
17104
  }
16929
- var Finally$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L169, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17105
+ var Finally$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L170, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16930
17106
  return { $loc, token: $1 };
16931
17107
  });
16932
17108
  function Finally(ctx, state2) {
16933
17109
  return (0, import_lib2.$EVENT)(ctx, state2, "Finally", Finally$0);
16934
17110
  }
16935
- var For$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L170, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17111
+ var For$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L171, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16936
17112
  return { $loc, token: $1 };
16937
17113
  });
16938
17114
  function For(ctx, state2) {
16939
17115
  return (0, import_lib2.$EVENT)(ctx, state2, "For", For$0);
16940
17116
  }
16941
- var From$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L171, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17117
+ var From$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L172, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16942
17118
  return { $loc, token: $1 };
16943
17119
  });
16944
17120
  function From(ctx, state2) {
16945
17121
  return (0, import_lib2.$EVENT)(ctx, state2, "From", From$0);
16946
17122
  }
16947
- var Function$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L172, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17123
+ var Function$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L173, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16948
17124
  return { $loc, token: $1 };
16949
17125
  });
16950
17126
  function Function2(ctx, state2) {
16951
17127
  return (0, import_lib2.$EVENT)(ctx, state2, "Function", Function$0);
16952
17128
  }
16953
- var GetOrSet$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L173, 'GetOrSet "get"'), (0, import_lib2.$EXPECT)($L174, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17129
+ var GetOrSet$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L174, 'GetOrSet "get"'), (0, import_lib2.$EXPECT)($L175, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16954
17130
  return { $loc, token: $1, type: "GetOrSet" };
16955
17131
  });
16956
17132
  function GetOrSet(ctx, state2) {
16957
17133
  return (0, import_lib2.$EVENT)(ctx, state2, "GetOrSet", GetOrSet$0);
16958
17134
  }
16959
- var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L175, 'Hash "#"'), function($skip, $loc, $0, $1) {
17135
+ var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L176, 'Hash "#"'), function($skip, $loc, $0, $1) {
16960
17136
  return { $loc, token: $1 };
16961
17137
  });
16962
17138
  function Hash(ctx, state2) {
16963
17139
  return (0, import_lib2.$EVENT)(ctx, state2, "Hash", Hash$0);
16964
17140
  }
16965
- var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L176, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
17141
+ var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L177, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
16966
17142
  return { $loc, token: $1 };
16967
17143
  });
16968
17144
  function If(ctx, state2) {
@@ -16974,67 +17150,67 @@ ${js}`
16974
17150
  function Import(ctx, state2) {
16975
17151
  return (0, import_lib2.$EVENT)(ctx, state2, "Import", Import$0);
16976
17152
  }
16977
- var In$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L177, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17153
+ var In$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16978
17154
  return { $loc, token: $1 };
16979
17155
  });
16980
17156
  function In(ctx, state2) {
16981
17157
  return (0, import_lib2.$EVENT)(ctx, state2, "In", In$0);
16982
17158
  }
16983
- var Infer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17159
+ var Infer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L179, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16984
17160
  return { $loc, token: $1 };
16985
17161
  });
16986
17162
  function Infer(ctx, state2) {
16987
17163
  return (0, import_lib2.$EVENT)(ctx, state2, "Infer", Infer$0);
16988
17164
  }
16989
- var LetOrConst$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L179, 'LetOrConst "let"'), (0, import_lib2.$EXPECT)($L180, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17165
+ var LetOrConst$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L180, 'LetOrConst "let"'), (0, import_lib2.$EXPECT)($L181, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16990
17166
  return { $loc, token: $1 };
16991
17167
  });
16992
17168
  function LetOrConst(ctx, state2) {
16993
17169
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConst", LetOrConst$0);
16994
17170
  }
16995
- var Const$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L180, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17171
+ var Const$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L181, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16996
17172
  return { $loc, token: $1 };
16997
17173
  });
16998
17174
  function Const(ctx, state2) {
16999
17175
  return (0, import_lib2.$EVENT)(ctx, state2, "Const", Const$0);
17000
17176
  }
17001
- var Is$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L181, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17177
+ var Is$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L182, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17002
17178
  return { $loc, token: $1 };
17003
17179
  });
17004
17180
  function Is(ctx, state2) {
17005
17181
  return (0, import_lib2.$EVENT)(ctx, state2, "Is", Is$0);
17006
17182
  }
17007
- var LetOrConstOrVar$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L179, 'LetOrConstOrVar "let"'), (0, import_lib2.$EXPECT)($L180, 'LetOrConstOrVar "const"'), (0, import_lib2.$EXPECT)($L182, 'LetOrConstOrVar "var"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17183
+ var LetOrConstOrVar$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L180, 'LetOrConstOrVar "let"'), (0, import_lib2.$EXPECT)($L181, 'LetOrConstOrVar "const"'), (0, import_lib2.$EXPECT)($L183, 'LetOrConstOrVar "var"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17008
17184
  return { $loc, token: $1 };
17009
17185
  });
17010
17186
  function LetOrConstOrVar(ctx, state2) {
17011
17187
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConstOrVar", LetOrConstOrVar$0);
17012
17188
  }
17013
- var Like$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L183, 'Like "like"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17189
+ var Like$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L184, 'Like "like"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17014
17190
  return { $loc, token: $1 };
17015
17191
  });
17016
17192
  function Like(ctx, state2) {
17017
17193
  return (0, import_lib2.$EVENT)(ctx, state2, "Like", Like$0);
17018
17194
  }
17019
- var Loop$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L184, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17195
+ var Loop$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L185, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17020
17196
  return { $loc, token: "while" };
17021
17197
  });
17022
17198
  function Loop(ctx, state2) {
17023
17199
  return (0, import_lib2.$EVENT)(ctx, state2, "Loop", Loop$0);
17024
17200
  }
17025
- var New$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L185, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17201
+ var New$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L186, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17026
17202
  return { $loc, token: $1 };
17027
17203
  });
17028
17204
  function New(ctx, state2) {
17029
17205
  return (0, import_lib2.$EVENT)(ctx, state2, "New", New$0);
17030
17206
  }
17031
- var Not$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L186, 'Not "not"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L16, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
17207
+ var Not$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L187, 'Not "not"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L16, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
17032
17208
  return { $loc, token: "!" };
17033
17209
  });
17034
17210
  function Not(ctx, state2) {
17035
17211
  return (0, import_lib2.$EVENT)(ctx, state2, "Not", Not$0);
17036
17212
  }
17037
- var Of$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L187, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17213
+ var Of$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L188, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17038
17214
  return { $loc, token: $1 };
17039
17215
  });
17040
17216
  function Of(ctx, state2) {
@@ -17052,7 +17228,7 @@ ${js}`
17052
17228
  function OpenBrace(ctx, state2) {
17053
17229
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenBrace", OpenBrace$0);
17054
17230
  }
17055
- var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L188, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
17231
+ var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L189, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
17056
17232
  return { $loc, token: $1 };
17057
17233
  });
17058
17234
  function OpenBracket(ctx, state2) {
@@ -17064,49 +17240,49 @@ ${js}`
17064
17240
  function OpenParen(ctx, state2) {
17065
17241
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenParen", OpenParen$0);
17066
17242
  }
17067
- var Operator$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L189, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17243
+ var Operator$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L190, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17068
17244
  return { $loc, token: $1 };
17069
17245
  });
17070
17246
  function Operator(ctx, state2) {
17071
17247
  return (0, import_lib2.$EVENT)(ctx, state2, "Operator", Operator$0);
17072
17248
  }
17073
- var Override$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L190, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17249
+ var Override$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L191, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17074
17250
  return { $loc, token: $1, ts: true };
17075
17251
  });
17076
17252
  function Override(ctx, state2) {
17077
17253
  return (0, import_lib2.$EVENT)(ctx, state2, "Override", Override$0);
17078
17254
  }
17079
- var Own$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L191, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17255
+ var Own$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L192, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17080
17256
  return { $loc, token: $1 };
17081
17257
  });
17082
17258
  function Own(ctx, state2) {
17083
17259
  return (0, import_lib2.$EVENT)(ctx, state2, "Own", Own$0);
17084
17260
  }
17085
- var Public$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L192, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17261
+ var Public$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L193, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17086
17262
  return { $loc, token: $1 };
17087
17263
  });
17088
17264
  function Public(ctx, state2) {
17089
17265
  return (0, import_lib2.$EVENT)(ctx, state2, "Public", Public$0);
17090
17266
  }
17091
- var Private$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L193, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17267
+ var Private$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L194, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17092
17268
  return { $loc, token: $1 };
17093
17269
  });
17094
17270
  function Private(ctx, state2) {
17095
17271
  return (0, import_lib2.$EVENT)(ctx, state2, "Private", Private$0);
17096
17272
  }
17097
- var Protected$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L194, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17273
+ var Protected$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L195, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17098
17274
  return { $loc, token: $1 };
17099
17275
  });
17100
17276
  function Protected(ctx, state2) {
17101
17277
  return (0, import_lib2.$EVENT)(ctx, state2, "Protected", Protected$0);
17102
17278
  }
17103
- var Pipe$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L195, 'Pipe "||>"'), (0, import_lib2.$EXPECT)($L196, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
17279
+ var Pipe$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L196, 'Pipe "||>"'), (0, import_lib2.$EXPECT)($L197, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
17104
17280
  return { $loc, token: "||>" };
17105
17281
  });
17106
- var Pipe$1 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L197, 'Pipe "|>="'), (0, import_lib2.$EXPECT)($L198, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
17282
+ var Pipe$1 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L198, 'Pipe "|>="'), (0, import_lib2.$EXPECT)($L199, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
17107
17283
  return { $loc, token: "|>=" };
17108
17284
  });
17109
- var Pipe$2 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L199, 'Pipe "|>"'), (0, import_lib2.$EXPECT)($L200, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
17285
+ var Pipe$2 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L200, 'Pipe "|>"'), (0, import_lib2.$EXPECT)($L201, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
17110
17286
  return { $loc, token: "|>" };
17111
17287
  });
17112
17288
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -17119,19 +17295,19 @@ ${js}`
17119
17295
  function QuestionMark(ctx, state2) {
17120
17296
  return (0, import_lib2.$EVENT)(ctx, state2, "QuestionMark", QuestionMark$0);
17121
17297
  }
17122
- var Readonly$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L201, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17298
+ var Readonly$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17123
17299
  return { $loc, token: $1, ts: true };
17124
17300
  });
17125
17301
  function Readonly(ctx, state2) {
17126
17302
  return (0, import_lib2.$EVENT)(ctx, state2, "Readonly", Readonly$0);
17127
17303
  }
17128
- var Return$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17304
+ var Return$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L203, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17129
17305
  return { $loc, token: $1 };
17130
17306
  });
17131
17307
  function Return(ctx, state2) {
17132
17308
  return (0, import_lib2.$EVENT)(ctx, state2, "Return", Return$0);
17133
17309
  }
17134
- var Satisfies$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L203, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17310
+ var Satisfies$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L204, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17135
17311
  return { $loc, token: $1 };
17136
17312
  });
17137
17313
  function Satisfies(ctx, state2) {
@@ -17143,7 +17319,7 @@ ${js}`
17143
17319
  function Semicolon(ctx, state2) {
17144
17320
  return (0, import_lib2.$EVENT)(ctx, state2, "Semicolon", Semicolon$0);
17145
17321
  }
17146
- var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L204, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
17322
+ var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L205, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
17147
17323
  return { $loc, token: $1 };
17148
17324
  });
17149
17325
  function SingleQuote(ctx, state2) {
@@ -17155,149 +17331,149 @@ ${js}`
17155
17331
  function Star(ctx, state2) {
17156
17332
  return (0, import_lib2.$EVENT)(ctx, state2, "Star", Star$0);
17157
17333
  }
17158
- var Static$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L205, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17334
+ var Static$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L206, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17159
17335
  return { $loc, token: $1 };
17160
17336
  });
17161
- var Static$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L143, 'Static "@"'), (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L4, 'Static "("'), (0, import_lib2.$EXPECT)($L143, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
17337
+ var Static$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Static "@"'), (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L4, 'Static "("'), (0, import_lib2.$EXPECT)($L144, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
17162
17338
  return { $loc, token: "static " };
17163
17339
  });
17164
17340
  var Static$$ = [Static$0, Static$1];
17165
17341
  function Static(ctx, state2) {
17166
17342
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Static", Static$$);
17167
17343
  }
17168
- var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L206, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
17344
+ var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
17169
17345
  return { $loc, token: $1 };
17170
17346
  });
17171
17347
  function SubstitutionStart(ctx, state2) {
17172
17348
  return (0, import_lib2.$EVENT)(ctx, state2, "SubstitutionStart", SubstitutionStart$0);
17173
17349
  }
17174
- var Super$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L207, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17350
+ var Super$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L208, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17175
17351
  return { $loc, token: $1 };
17176
17352
  });
17177
17353
  function Super(ctx, state2) {
17178
17354
  return (0, import_lib2.$EVENT)(ctx, state2, "Super", Super$0);
17179
17355
  }
17180
- var Switch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L208, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17356
+ var Switch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L209, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17181
17357
  return { $loc, token: $1 };
17182
17358
  });
17183
17359
  function Switch(ctx, state2) {
17184
17360
  return (0, import_lib2.$EVENT)(ctx, state2, "Switch", Switch$0);
17185
17361
  }
17186
- var Target$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L209, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17362
+ var Target$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L210, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17187
17363
  return { $loc, token: $1 };
17188
17364
  });
17189
17365
  function Target(ctx, state2) {
17190
17366
  return (0, import_lib2.$EVENT)(ctx, state2, "Target", Target$0);
17191
17367
  }
17192
- var Then$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L210, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
17368
+ var Then$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L211, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
17193
17369
  return { $loc, token: "" };
17194
17370
  });
17195
17371
  function Then(ctx, state2) {
17196
17372
  return (0, import_lib2.$EVENT)(ctx, state2, "Then", Then$0);
17197
17373
  }
17198
- var This$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L211, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17374
+ var This$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L212, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17199
17375
  return { $loc, token: $1 };
17200
17376
  });
17201
17377
  function This(ctx, state2) {
17202
17378
  return (0, import_lib2.$EVENT)(ctx, state2, "This", This$0);
17203
17379
  }
17204
- var Throw$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L212, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17380
+ var Throw$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L213, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17205
17381
  return { $loc, token: $1 };
17206
17382
  });
17207
17383
  function Throw(ctx, state2) {
17208
17384
  return (0, import_lib2.$EVENT)(ctx, state2, "Throw", Throw$0);
17209
17385
  }
17210
- var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L213, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
17386
+ var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L214, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
17211
17387
  return { $loc, token: "`" };
17212
17388
  });
17213
17389
  function TripleDoubleQuote(ctx, state2) {
17214
17390
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleQuote", TripleDoubleQuote$0);
17215
17391
  }
17216
- var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L214, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
17392
+ var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L215, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
17217
17393
  return { $loc, token: "`" };
17218
17394
  });
17219
17395
  function TripleSingleQuote(ctx, state2) {
17220
17396
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSingleQuote", TripleSingleQuote$0);
17221
17397
  }
17222
- var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L215, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
17398
+ var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
17223
17399
  return { $loc, token: "/" };
17224
17400
  });
17225
17401
  function TripleSlash(ctx, state2) {
17226
17402
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlash", TripleSlash$0);
17227
17403
  }
17228
- var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
17404
+ var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
17229
17405
  return { $loc, token: "`" };
17230
17406
  });
17231
17407
  function TripleTick(ctx, state2) {
17232
17408
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleTick", TripleTick$0);
17233
17409
  }
17234
- var Try$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L217, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17410
+ var Try$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L218, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17235
17411
  return { $loc, token: $1 };
17236
17412
  });
17237
17413
  function Try(ctx, state2) {
17238
17414
  return (0, import_lib2.$EVENT)(ctx, state2, "Try", Try$0);
17239
17415
  }
17240
- var Typeof$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L218, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17416
+ var Typeof$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L219, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17241
17417
  return { $loc, token: $1 };
17242
17418
  });
17243
17419
  function Typeof(ctx, state2) {
17244
17420
  return (0, import_lib2.$EVENT)(ctx, state2, "Typeof", Typeof$0);
17245
17421
  }
17246
- var Undefined$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L219, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17422
+ var Undefined$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L220, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17247
17423
  return { $loc, token: $1 };
17248
17424
  });
17249
17425
  function Undefined(ctx, state2) {
17250
17426
  return (0, import_lib2.$EVENT)(ctx, state2, "Undefined", Undefined$0);
17251
17427
  }
17252
- var Unless$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L220, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17428
+ var Unless$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L221, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17253
17429
  return { $loc, token: $1, negated: true };
17254
17430
  });
17255
17431
  function Unless(ctx, state2) {
17256
17432
  return (0, import_lib2.$EVENT)(ctx, state2, "Unless", Unless$0);
17257
17433
  }
17258
- var Until$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L221, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17434
+ var Until$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L222, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17259
17435
  return { $loc, token: $1, negated: true };
17260
17436
  });
17261
17437
  function Until(ctx, state2) {
17262
17438
  return (0, import_lib2.$EVENT)(ctx, state2, "Until", Until$0);
17263
17439
  }
17264
- var Using$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L222, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17440
+ var Using$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L223, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17265
17441
  return { $loc, token: $1 };
17266
17442
  });
17267
17443
  function Using(ctx, state2) {
17268
17444
  return (0, import_lib2.$EVENT)(ctx, state2, "Using", Using$0);
17269
17445
  }
17270
- var Var$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L182, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17446
+ var Var$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L183, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17271
17447
  return { $loc, token: $1 };
17272
17448
  });
17273
17449
  function Var(ctx, state2) {
17274
17450
  return (0, import_lib2.$EVENT)(ctx, state2, "Var", Var$0);
17275
17451
  }
17276
- var Void$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L223, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17452
+ var Void$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17277
17453
  return { $loc, token: $1 };
17278
17454
  });
17279
17455
  function Void(ctx, state2) {
17280
17456
  return (0, import_lib2.$EVENT)(ctx, state2, "Void", Void$0);
17281
17457
  }
17282
- var When$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17458
+ var When$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L225, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17283
17459
  return { $loc, token: "case" };
17284
17460
  });
17285
17461
  function When(ctx, state2) {
17286
17462
  return (0, import_lib2.$EVENT)(ctx, state2, "When", When$0);
17287
17463
  }
17288
- var While$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L225, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17464
+ var While$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17289
17465
  return { $loc, token: $1 };
17290
17466
  });
17291
17467
  function While(ctx, state2) {
17292
17468
  return (0, import_lib2.$EVENT)(ctx, state2, "While", While$0);
17293
17469
  }
17294
- var With$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L131, 'With "with"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17470
+ var With$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L132, 'With "with"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17295
17471
  return { $loc, token: $1 };
17296
17472
  });
17297
17473
  function With(ctx, state2) {
17298
17474
  return (0, import_lib2.$EVENT)(ctx, state2, "With", With$0);
17299
17475
  }
17300
- var Yield$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17476
+ var Yield$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L227, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17301
17477
  return { $loc, token: $1, type: "Yield" };
17302
17478
  });
17303
17479
  function Yield(ctx, state2) {
@@ -17376,7 +17552,7 @@ ${js}`
17376
17552
  function JSXElement(ctx, state2) {
17377
17553
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
17378
17554
  }
17379
- var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L227, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
17555
+ var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L228, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
17380
17556
  return { type: "JSXElement", children: $0, tag: $2 };
17381
17557
  });
17382
17558
  function JSXSelfClosingElement(ctx, state2) {
@@ -17410,7 +17586,7 @@ ${js}`
17410
17586
  function JSXOptionalClosingElement(ctx, state2) {
17411
17587
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
17412
17588
  }
17413
- var JSXClosingElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L228, 'JSXClosingElement "</"'), (0, import_lib2.$E)(Whitespace), JSXElementName, (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXClosingElement ">"'));
17589
+ var JSXClosingElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L229, 'JSXClosingElement "</"'), (0, import_lib2.$E)(Whitespace), JSXElementName, (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXClosingElement ">"'));
17414
17590
  function JSXClosingElement(ctx, state2) {
17415
17591
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingElement", JSXClosingElement$0);
17416
17592
  }
@@ -17431,7 +17607,7 @@ ${js}`
17431
17607
  ];
17432
17608
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
17433
17609
  });
17434
- var JSXFragment$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeJSXEnabled, (0, import_lib2.$EXPECT)($L229, 'JSXFragment "<>"'), (0, import_lib2.$E)(JSXChildren), (0, import_lib2.$E)(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17610
+ var JSXFragment$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeJSXEnabled, (0, import_lib2.$EXPECT)($L230, 'JSXFragment "<>"'), (0, import_lib2.$E)(JSXChildren), (0, import_lib2.$E)(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
17435
17611
  var children = $3;
17436
17612
  $0 = $0.slice(1);
17437
17613
  return {
@@ -17444,7 +17620,7 @@ ${js}`
17444
17620
  function JSXFragment(ctx, state2) {
17445
17621
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXFragment", JSXFragment$$);
17446
17622
  }
17447
- var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L229, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
17623
+ var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L230, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
17448
17624
  state.JSXTagStack.push("");
17449
17625
  return $1;
17450
17626
  });
@@ -17461,11 +17637,11 @@ ${js}`
17461
17637
  function JSXOptionalClosingFragment(ctx, state2) {
17462
17638
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
17463
17639
  }
17464
- var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L230, 'JSXClosingFragment "</>"');
17640
+ var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L231, 'JSXClosingFragment "</>"');
17465
17641
  function JSXClosingFragment(ctx, state2) {
17466
17642
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingFragment", JSXClosingFragment$0);
17467
17643
  }
17468
- var JSXElementName$0 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L175, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
17644
+ var JSXElementName$0 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L176, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
17469
17645
  return config.defaultElement;
17470
17646
  });
17471
17647
  var JSXElementName$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)(JSXIdentifierName, (0, import_lib2.$C)((0, import_lib2.$S)(Colon, JSXIdentifierName), (0, import_lib2.$Q)((0, import_lib2.$S)(Dot, JSXIdentifierName)))));
@@ -17646,7 +17822,7 @@ ${js}`
17646
17822
  }
17647
17823
  return $skip;
17648
17824
  });
17649
- var JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L175, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17825
+ var JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L176, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
17650
17826
  return [" ", "id=", $2];
17651
17827
  });
17652
17828
  var JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -17991,7 +18167,7 @@ ${js}`
17991
18167
  function JSXChildGeneral(ctx, state2) {
17992
18168
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXChildGeneral", JSXChildGeneral$$);
17993
18169
  }
17994
- var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L231, 'JSXComment "<!--"'), JSXCommentContent, (0, import_lib2.$EXPECT)($L232, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
18170
+ var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L232, 'JSXComment "<!--"'), JSXCommentContent, (0, import_lib2.$EXPECT)($L233, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
17995
18171
  return ["{/*", $2, "*/}"];
17996
18172
  });
17997
18173
  function JSXComment(ctx, state2) {
@@ -18279,37 +18455,37 @@ ${js}`
18279
18455
  function InterfaceExtendsTarget(ctx, state2) {
18280
18456
  return (0, import_lib2.$EVENT)(ctx, state2, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
18281
18457
  }
18282
- var TypeKeyword$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L233, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18458
+ var TypeKeyword$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L234, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18283
18459
  return { $loc, token: $1 };
18284
18460
  });
18285
18461
  function TypeKeyword(ctx, state2) {
18286
18462
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeKeyword", TypeKeyword$0);
18287
18463
  }
18288
- var Enum$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L234, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18464
+ var Enum$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L235, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18289
18465
  return { $loc, token: $1 };
18290
18466
  });
18291
18467
  function Enum(ctx, state2) {
18292
18468
  return (0, import_lib2.$EVENT)(ctx, state2, "Enum", Enum$0);
18293
18469
  }
18294
- var Interface$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L235, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18470
+ var Interface$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L236, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18295
18471
  return { $loc, token: $1 };
18296
18472
  });
18297
18473
  function Interface(ctx, state2) {
18298
18474
  return (0, import_lib2.$EVENT)(ctx, state2, "Interface", Interface$0);
18299
18475
  }
18300
- var Global$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L236, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18476
+ var Global$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L237, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18301
18477
  return { $loc, token: $1 };
18302
18478
  });
18303
18479
  function Global(ctx, state2) {
18304
18480
  return (0, import_lib2.$EVENT)(ctx, state2, "Global", Global$0);
18305
18481
  }
18306
- var Module$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L237, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18482
+ var Module$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L238, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18307
18483
  return { $loc, token: $1 };
18308
18484
  });
18309
18485
  function Module(ctx, state2) {
18310
18486
  return (0, import_lib2.$EVENT)(ctx, state2, "Module", Module$0);
18311
18487
  }
18312
- var Namespace$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L238, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18488
+ var Namespace$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L239, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18313
18489
  return { $loc, token: $1 };
18314
18490
  });
18315
18491
  function Namespace(ctx, state2) {
@@ -18623,7 +18799,7 @@ ${js}`
18623
18799
  function ReturnTypeSuffix(ctx, state2) {
18624
18800
  return (0, import_lib2.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
18625
18801
  }
18626
- var ReturnType$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L239, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib2.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
18802
+ var ReturnType$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L240, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib2.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
18627
18803
  var asserts = $1;
18628
18804
  var t = $3;
18629
18805
  if (!t)
@@ -18724,8 +18900,8 @@ ${js}`
18724
18900
  function TypeUnarySuffix(ctx, state2) {
18725
18901
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnarySuffix", TypeUnarySuffix$$);
18726
18902
  }
18727
- var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L240, 'TypeUnaryOp "keyof"'), NonIdContinue);
18728
- var TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L201, 'TypeUnaryOp "readonly"'), NonIdContinue);
18903
+ var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L241, 'TypeUnaryOp "keyof"'), NonIdContinue);
18904
+ var TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'TypeUnaryOp "readonly"'), NonIdContinue);
18729
18905
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
18730
18906
  function TypeUnaryOp(ctx, state2) {
18731
18907
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnaryOp", TypeUnaryOp$$);
@@ -18755,7 +18931,7 @@ ${js}`
18755
18931
  function TypeIndexedAccess(ctx, state2) {
18756
18932
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeIndexedAccess", TypeIndexedAccess$$);
18757
18933
  }
18758
- var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L241, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
18934
+ var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L242, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
18759
18935
  return { $loc, token: "unknown" };
18760
18936
  });
18761
18937
  function UnknownAlias(ctx, state2) {
@@ -19148,13 +19324,13 @@ ${js}`
19148
19324
  return num;
19149
19325
  return $0;
19150
19326
  });
19151
- var TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L223, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
19327
+ var TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
19152
19328
  return { type: "VoidType", $loc, token: $1 };
19153
19329
  });
19154
- var TypeLiteral$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L242, 'TypeLiteral "unique"'), _, (0, import_lib2.$EXPECT)($L243, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
19330
+ var TypeLiteral$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L243, 'TypeLiteral "unique"'), _, (0, import_lib2.$EXPECT)($L244, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
19155
19331
  return { type: "UniqueSymbolType", children: $0 };
19156
19332
  });
19157
- var TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L244, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
19333
+ var TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L245, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
19158
19334
  return { $loc, token: "[]" };
19159
19335
  });
19160
19336
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4, TypeLiteral$5];
@@ -19173,7 +19349,7 @@ ${js}`
19173
19349
  var InlineInterfacePropertyDelimiter$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)((0, import_lib2.$S)(SameLineOrIndentedFurther, InlineBasicInterfaceProperty)), InsertComma), function(value) {
19174
19350
  return value[1];
19175
19351
  });
19176
- var InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L140, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"'))));
19352
+ var InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L141, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"'))));
19177
19353
  var InlineInterfacePropertyDelimiter$3 = (0, import_lib2.$Y)(EOS);
19178
19354
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
19179
19355
  function InlineInterfacePropertyDelimiter(ctx, state2) {
@@ -19239,14 +19415,17 @@ ${js}`
19239
19415
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeFunctionArrow", TypeFunctionArrow$0);
19240
19416
  }
19241
19417
  var TypeArguments$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenAngleBracket, (0, import_lib2.$P)((0, import_lib2.$S)(__, TypeArgumentDelimited)), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
19418
+ var open = $1;
19242
19419
  var args = $2;
19243
- args = args.flatMap(([ws, [arg, delim]]) => [prepend(ws, arg), delim]);
19420
+ var ws = $3;
19421
+ var close = $4;
19422
+ args = args.flatMap(([ws2, [arg, delim]]) => [prepend(ws2, arg), delim]);
19244
19423
  args.pop();
19245
19424
  return {
19246
19425
  type: "TypeArguments",
19247
19426
  ts: true,
19248
19427
  args,
19249
- children: $0
19428
+ children: [open, args, ws, close]
19250
19429
  };
19251
19430
  });
19252
19431
  function TypeArguments(ctx, state2) {
@@ -19412,7 +19591,7 @@ ${js}`
19412
19591
  function CivetPrologue(ctx, state2) {
19413
19592
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19414
19593
  }
19415
- var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L245, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R96, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19594
+ var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L246, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R96, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19416
19595
  var options = $3;
19417
19596
  return {
19418
19597
  type: "CivetPrologue",