@danielx/civet 0.6.20 → 0.6.22

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
@@ -49,6 +49,25 @@ var Civet = (() => {
49
49
  }
50
50
  }
51
51
  }
52
+ function updateParentPointers(node, parent, depth = 1) {
53
+ if (node == null)
54
+ return;
55
+ if (typeof node !== "object")
56
+ return;
57
+ if (Array.isArray(node)) {
58
+ for (const child of node) {
59
+ updateParentPointers(child, parent, depth);
60
+ }
61
+ return;
62
+ }
63
+ if (parent != null)
64
+ node.parent = parent;
65
+ if (depth && node.children) {
66
+ for (const child of node.children) {
67
+ updateParentPointers(child, node, depth - 1);
68
+ }
69
+ }
70
+ }
52
71
  function addPostfixStatement(statement, ws, post) {
53
72
  let children, expressions;
54
73
  if (post.blockPrefix?.length) {
@@ -338,29 +357,26 @@ var Civet = (() => {
338
357
  };
339
358
  }
340
359
  function expressionizeIteration(exp) {
341
- const i = exp.children.indexOf(exp.block);
342
- if (exp.subtype === "DoStatement") {
343
- insertReturn(exp.block);
344
- exp.children.splice(i, 1, ...wrapIIFE(exp.children, exp.async));
360
+ const { async, subtype, block, children, statement } = exp;
361
+ const i = children.indexOf(statement);
362
+ if (i < 0) {
363
+ throw new Error("Could not find iteration statement in iteration expression");
364
+ }
365
+ if (subtype === "DoStatement") {
366
+ insertReturn(block);
367
+ children.splice(i, 1, ...wrapIIFE(statement, async));
345
368
  return;
346
369
  }
347
- const resultsRef = {
348
- type: "Ref",
349
- base: "results",
350
- id: "results"
351
- };
352
- insertPush(exp.block, resultsRef);
353
- exp.children.splice(
370
+ const resultsRef = makeRef("results");
371
+ insertPush(block, resultsRef);
372
+ children.splice(
354
373
  i,
355
374
  1,
356
- wrapIIFE([
357
- "const ",
358
- resultsRef,
359
- "=[];",
360
- ...exp.children,
361
- "; return ",
362
- resultsRef
363
- ], exp.async)
375
+ ...wrapIIFE([
376
+ ["", ["const ", resultsRef, "=[]"], ";"],
377
+ ...children,
378
+ ["", ["; return ", resultsRef]]
379
+ ], async)
364
380
  );
365
381
  }
366
382
  function processBinaryOpExpression($0) {
@@ -426,10 +442,7 @@ var Civet = (() => {
426
442
  const parts = [];
427
443
  let hoistDec, refAssignment;
428
444
  if (prefix.length > 1) {
429
- const ref = {
430
- type: "Ref",
431
- base: "ref"
432
- };
445
+ const ref = makeRef();
433
446
  hoistDec = {
434
447
  type: "Declaration",
435
448
  children: ["let ", ref],
@@ -531,11 +544,7 @@ var Civet = (() => {
531
544
  }
532
545
  return;
533
546
  }
534
- const resultsRef = {
535
- type: "Ref",
536
- base: "results",
537
- id: "results"
538
- };
547
+ const resultsRef = makeRef("results");
539
548
  const declaration = {
540
549
  type: "Declaration",
541
550
  children: ["const ", resultsRef, "=[];"]
@@ -697,6 +706,7 @@ var Civet = (() => {
697
706
  }
698
707
  function processParams(f) {
699
708
  const { type, parameters, block } = f;
709
+ const isConstructor = f.name === "constructor";
700
710
  if (type === "ArrowFunction" && parameters && parameters.tp && parameters.tp.parameters.length === 1) {
701
711
  parameters.tp.parameters.push(",");
702
712
  }
@@ -713,7 +723,7 @@ var Civet = (() => {
713
723
  indent = expressions[0][0];
714
724
  }
715
725
  const [splices, thisAssignments] = gatherBindingCode(parameters, {
716
- injectParamProps: f.name === "constructor"
726
+ injectParamProps: isConstructor
717
727
  });
718
728
  const delimiter = {
719
729
  type: "SemicolonDelimiter",
@@ -725,6 +735,23 @@ var Civet = (() => {
725
735
  children: [indent, ...s.children, delimiter]
726
736
  } : [indent, s, delimiter]
727
737
  );
738
+ if (!prefix.length)
739
+ return;
740
+ if (isConstructor) {
741
+ const superCalls = gatherNodes(expressions, (exp) => exp.type === "CallExpression" && exp.children[0]?.token === "super");
742
+ if (superCalls.length) {
743
+ const { child } = findAncestor(
744
+ superCalls[0],
745
+ (ancestor) => ancestor === block
746
+ );
747
+ const index = findChildIndex(expressions, child);
748
+ if (index < 0) {
749
+ throw new Error("Could not find super call within top-level expressions");
750
+ }
751
+ expressions.splice(index + 1, 0, ...prefix);
752
+ return;
753
+ }
754
+ }
728
755
  expressions.unshift(...prefix);
729
756
  }
730
757
  function removeParentPointers(node) {
@@ -745,6 +772,24 @@ var Civet = (() => {
745
772
  }
746
773
  }
747
774
  }
775
+ function findChildIndex(parent, child) {
776
+ const children = Array.isArray(parent) ? parent : parent.children;
777
+ const len = children.length;
778
+ for (let i = 0; i < len; i++) {
779
+ const c = children[i];
780
+ if (c === child || Array.isArray(c) && arrayRecurse(c))
781
+ return i;
782
+ }
783
+ function arrayRecurse(array) {
784
+ const len2 = array.length;
785
+ for (let i = 0; i < len2; i++) {
786
+ const c = array[i];
787
+ if (c === child || Array.isArray(c) && arrayRecurse(c))
788
+ return true;
789
+ }
790
+ }
791
+ return -1;
792
+ }
748
793
  function findAncestor(node, predicate, stopPredicate) {
749
794
  let { parent } = node;
750
795
  while (parent && !stopPredicate?.(parent, node)) {
@@ -840,11 +885,15 @@ var Civet = (() => {
840
885
  }
841
886
  function insertHoistDec(block, node, dec) {
842
887
  const { expressions } = block;
843
- const index = expressions.findIndex(([, s]) => node === s);
888
+ const index = expressions.findIndex((exp) => exp === node || Array.isArray(exp) && exp[1] === node);
844
889
  if (index < 0)
845
890
  throw new Error("Couldn't find expression in block for hoistable declaration.");
846
- const indent = expressions[index][0];
847
- expressions.splice(index, 0, [indent, dec, ";"]);
891
+ if (expressions[index] === node) {
892
+ expressions.splice(index, 0, ["", dec, ";"]);
893
+ } else {
894
+ const indent = expressions[index][0];
895
+ expressions.splice(index, 0, [indent, dec, ";"]);
896
+ }
848
897
  }
849
898
  function patternAsValue(pattern) {
850
899
  switch (pattern.type) {
@@ -1040,13 +1089,123 @@ var Civet = (() => {
1040
1089
  if (target.token)
1041
1090
  return target.token.match(/^ ?/)[0];
1042
1091
  }
1092
+ function processForInOf($0) {
1093
+ let [awaits, each, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
1094
+ if (exp.type === "RangeExpression" && inOf.token === "of" && !declaration2) {
1095
+ return forRange(open, declaration, exp, step, close);
1096
+ } else if (step) {
1097
+ throw new Error("for..of/in cannot use 'by' except with range literals");
1098
+ }
1099
+ let eachError;
1100
+ let hoistDec, blockPrefix = [];
1101
+ if (each) {
1102
+ if (inOf.token === "of") {
1103
+ const counterRef = makeRef("i");
1104
+ const lenRef = makeRef("len");
1105
+ const expRef = maybeRef(exp);
1106
+ const increment = "++";
1107
+ let indexAssignment, assignmentNames = [...declaration.names];
1108
+ if (declaration2) {
1109
+ const [, , ws22, decl22] = declaration2;
1110
+ blockPrefix.push(["", [
1111
+ insertTrimmingSpace(ws22, ""),
1112
+ decl22,
1113
+ " = ",
1114
+ counterRef
1115
+ ], ";"]);
1116
+ assignmentNames.push(...decl22.names);
1117
+ }
1118
+ const expRefDec = expRef !== exp ? [insertTrimmingSpace(expRef, " "), " = ", insertTrimmingSpace(exp, ""), ", "] : [];
1119
+ blockPrefix.push(["", {
1120
+ type: "AssignmentExpression",
1121
+ children: [declaration, " = ", insertTrimmingSpace(expRef, ""), "[", counterRef, "]"],
1122
+ names: assignmentNames
1123
+ }, ";"]);
1124
+ declaration = {
1125
+ type: "Declaration",
1126
+ children: ["let ", ...expRefDec, counterRef, " = 0, ", lenRef, " = ", insertTrimmingSpace(expRef, ""), ".length"],
1127
+ names: []
1128
+ };
1129
+ const condition = [counterRef, " < ", lenRef, "; "];
1130
+ const children = [open, declaration, "; ", condition, counterRef, increment, close];
1131
+ return { declaration, children, blockPrefix };
1132
+ } else {
1133
+ eachError = {
1134
+ type: "Error",
1135
+ message: "'each' is only meaningful in for..of loops"
1136
+ };
1137
+ }
1138
+ }
1139
+ if (!declaration2) {
1140
+ return {
1141
+ declaration,
1142
+ children: [awaits, eachError, open, declaration, ws, inOf, exp, step, close]
1143
+ };
1144
+ }
1145
+ const [, , ws2, decl2] = declaration2;
1146
+ switch (inOf.token) {
1147
+ case "of": {
1148
+ const counterRef = makeRef("i");
1149
+ hoistDec = {
1150
+ type: "Declaration",
1151
+ children: ["let ", counterRef, " = 0"],
1152
+ names: []
1153
+ };
1154
+ blockPrefix.push(["", {
1155
+ type: "Declaration",
1156
+ children: [insertTrimmingSpace(ws2, ""), decl2, " = ", counterRef, "++"],
1157
+ names: decl2.names
1158
+ }, ";"]);
1159
+ break;
1160
+ }
1161
+ case "in": {
1162
+ const expRef = maybeRef(exp);
1163
+ if (expRef !== exp) {
1164
+ hoistDec = {
1165
+ type: "Declaration",
1166
+ children: ["let ", expRef],
1167
+ names: []
1168
+ };
1169
+ exp = {
1170
+ type: "AssignmentExpression",
1171
+ children: [" ", expRef, " =", exp]
1172
+ };
1173
+ }
1174
+ let { binding } = declaration;
1175
+ if (binding?.type !== "Identifier") {
1176
+ const keyRef = makeRef("key");
1177
+ blockPrefix.push(["", [
1178
+ declaration,
1179
+ " = ",
1180
+ keyRef
1181
+ ], ";"]);
1182
+ declaration = {
1183
+ type: "ForDeclaration",
1184
+ binding: binding = keyRef,
1185
+ children: ["const ", keyRef],
1186
+ names: []
1187
+ };
1188
+ }
1189
+ blockPrefix.push(["", {
1190
+ type: "Declaration",
1191
+ children: [insertTrimmingSpace(ws2, ""), decl2, " = ", insertTrimmingSpace(expRef, ""), "[", insertTrimmingSpace(binding, ""), "]"],
1192
+ names: decl2.names
1193
+ }, ";"]);
1194
+ break;
1195
+ }
1196
+ default:
1197
+ throw new Error(`for item, index must use 'of' or 'in' instead of '${inOf.token}'`);
1198
+ }
1199
+ return {
1200
+ declaration,
1201
+ children: [awaits, eachError, open, declaration, ws, inOf, exp, step, close],
1202
+ blockPrefix,
1203
+ hoistDec
1204
+ };
1205
+ }
1043
1206
  function forRange(open, forDeclaration, range, stepExp, close) {
1044
1207
  const { start, end, inclusive } = range;
1045
- const counterRef = {
1046
- type: "Ref",
1047
- base: "i",
1048
- id: "i"
1049
- };
1208
+ const counterRef = makeRef("i");
1050
1209
  let stepRef;
1051
1210
  if (stepExp) {
1052
1211
  stepExp = insertTrimmingSpace(stepExp, "");
@@ -1064,11 +1223,7 @@ var Civet = (() => {
1064
1223
  } else if (start.type === "Literal" && end.type === "Literal") {
1065
1224
  asc = literalValue(start) <= literalValue(end);
1066
1225
  } else {
1067
- ascRef = {
1068
- type: "Ref",
1069
- base: "asc",
1070
- id: "asc"
1071
- };
1226
+ ascRef = makeRef("asc");
1072
1227
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
1073
1228
  }
1074
1229
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
@@ -1208,15 +1363,6 @@ var Civet = (() => {
1208
1363
  };
1209
1364
  }
1210
1365
  }
1211
- function maybeRef(exp, base = "ref") {
1212
- if (!needsRef(exp))
1213
- return exp;
1214
- return {
1215
- type: "Ref",
1216
- base,
1217
- id: base
1218
- };
1219
- }
1220
1366
  function modifyString(str) {
1221
1367
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
1222
1368
  }
@@ -1312,13 +1458,20 @@ var Civet = (() => {
1312
1458
  case "Identifier":
1313
1459
  case "Literal":
1314
1460
  return;
1315
- default:
1316
- return {
1317
- type: "Ref",
1318
- base,
1319
- id: base
1320
- };
1321
1461
  }
1462
+ return makeRef(base);
1463
+ }
1464
+ function makeRef(base = "ref") {
1465
+ return {
1466
+ type: "Ref",
1467
+ base,
1468
+ id: base
1469
+ };
1470
+ }
1471
+ function maybeRef(exp, base = "ref") {
1472
+ if (!needsRef(exp))
1473
+ return exp;
1474
+ return makeRef(base);
1322
1475
  }
1323
1476
  function processCoffeeInterpolation(s, parts, e, $loc) {
1324
1477
  if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
@@ -1571,20 +1724,20 @@ var Civet = (() => {
1571
1724
  });
1572
1725
  }
1573
1726
  function attachPostfixStatementAsExpression(exp, post) {
1574
- let clause;
1575
1727
  switch (post[1].type) {
1576
1728
  case "ForStatement":
1577
1729
  case "IterationStatement":
1578
- case "DoStatement":
1579
- clause = addPostfixStatement(exp, ...post);
1730
+ case "DoStatement": {
1731
+ const statement = addPostfixStatement(exp, ...post);
1580
1732
  return {
1581
1733
  type: "IterationExpression",
1582
- children: [clause],
1583
- block: clause.block
1734
+ children: [statement],
1735
+ block: statement.block,
1736
+ statement
1584
1737
  };
1738
+ }
1585
1739
  case "IfStatement":
1586
- clause = expressionizeIfClause(post[1], exp);
1587
- return clause;
1740
+ return expressionizeIfClause(post[1], exp);
1588
1741
  default:
1589
1742
  throw new Error("Unknown postfix statement");
1590
1743
  }
@@ -1811,11 +1964,7 @@ var Civet = (() => {
1811
1964
  if (shared.length === 1)
1812
1965
  return;
1813
1966
  const refs = shared.map((p) => {
1814
- const ref = {
1815
- type: "Ref",
1816
- base: key,
1817
- id: key
1818
- };
1967
+ const ref = makeRef(key);
1819
1968
  aliasBinding(p, ref);
1820
1969
  return ref;
1821
1970
  });
@@ -1849,7 +1998,7 @@ var Civet = (() => {
1849
1998
  if (expression.type === "ParenthesizedExpression") {
1850
1999
  expression = expression.expression;
1851
2000
  }
1852
- let hoistDec, refAssignment = [], ref = needsRef(expression, "m") || expression;
2001
+ let hoistDec, refAssignment = [], ref = maybeRef(expression, "m");
1853
2002
  if (ref !== expression) {
1854
2003
  hoistDec = {
1855
2004
  type: "Declaration",
@@ -1975,7 +2124,7 @@ var Civet = (() => {
1975
2124
  arg.children.push(access);
1976
2125
  break outer;
1977
2126
  }
1978
- usingRef = needsRef({});
2127
+ usingRef = makeRef();
1979
2128
  initRef = {
1980
2129
  type: "AssignmentExpression",
1981
2130
  children: [usingRef, " = ", arg, ","]
@@ -2079,8 +2228,8 @@ var Civet = (() => {
2079
2228
  processFunctions(statements, config);
2080
2229
  processSwitchExpressions(statements);
2081
2230
  processTryExpressions(statements);
2082
- hoistRefDecs(statements);
2083
2231
  gatherRecursiveAll(statements, (n) => n.type === "IterationExpression").forEach((e) => expressionizeIteration(e));
2232
+ hoistRefDecs(statements);
2084
2233
  statements.unshift(...m.prelude);
2085
2234
  if (config.autoLet) {
2086
2235
  createLetDecs(statements, []);
@@ -2250,11 +2399,7 @@ var Civet = (() => {
2250
2399
  );
2251
2400
  if (!values.length)
2252
2401
  return false;
2253
- const ref = {
2254
- type: "Ref",
2255
- base: "ret",
2256
- id: "ret"
2257
- };
2402
+ const ref = makeRef("ret");
2258
2403
  let declared;
2259
2404
  values.forEach((value) => {
2260
2405
  value.children = [ref];
@@ -2527,13 +2672,14 @@ var Civet = (() => {
2527
2672
  prefix = "(()=>";
2528
2673
  suffix = ")()";
2529
2674
  }
2530
- const expressions = Array.isArray(exp) ? [[...exp]] : [exp];
2675
+ const expressions = Array.isArray(exp) ? [...exp] : [exp];
2531
2676
  const block = {
2532
2677
  type: "BlockStatement",
2533
2678
  expressions,
2534
2679
  children: ["{", expressions, "}"],
2535
2680
  bare: false
2536
2681
  };
2682
+ updateParentPointers(block);
2537
2683
  return [
2538
2684
  prefix,
2539
2685
  block,
@@ -2583,13 +2729,15 @@ var Civet = (() => {
2583
2729
  makeAsConst,
2584
2730
  makeEmptyBlock,
2585
2731
  makeLeftHandSideExpression,
2732
+ makeRef,
2586
2733
  maybeRef,
2587
2734
  modifyString,
2588
2735
  needsRef,
2736
+ processAssignmentDeclaration,
2589
2737
  processBinaryOpExpression,
2590
2738
  processCallMemberExpression,
2591
2739
  processCoffeeInterpolation,
2592
- processAssignmentDeclaration,
2740
+ processForInOf,
2593
2741
  processParams,
2594
2742
  processProgram,
2595
2743
  processReturnValue,
@@ -3430,6 +3578,7 @@ ${input.slice(result.pos)}
3430
3578
  DotDotDot,
3431
3579
  DoubleColon,
3432
3580
  DoubleQuote,
3581
+ Each,
3433
3582
  Else,
3434
3583
  Equals,
3435
3584
  Export,
@@ -3468,6 +3617,7 @@ ${input.slice(result.pos)}
3468
3617
  Star,
3469
3618
  Static,
3470
3619
  SubstitutionStart,
3620
+ Super,
3471
3621
  Switch,
3472
3622
  Target,
3473
3623
  Then,
@@ -3674,128 +3824,128 @@ ${input.slice(result.pos)}
3674
3824
  var $L13 = $L("implements");
3675
3825
  var $L14 = $L("<:");
3676
3826
  var $L15 = $L("#");
3677
- var $L16 = $L("super");
3678
- var $L17 = $L("import");
3679
- var $L18 = $L("!");
3680
- var $L19 = $L("^");
3681
- var $L20 = $L("-");
3682
- var $L21 = $L("import.meta");
3683
- var $L22 = $L("return.value");
3684
- var $L23 = $L(",");
3685
- var $L24 = $L("->");
3686
- var $L25 = $L("\u2192");
3687
- var $L26 = $L("}");
3688
- var $L27 = $L("null");
3689
- var $L28 = $L("true");
3690
- var $L29 = $L("false");
3691
- var $L30 = $L("yes");
3692
- var $L31 = $L("on");
3693
- var $L32 = $L("no");
3694
- var $L33 = $L("off");
3695
- var $L34 = $L(">");
3696
- var $L35 = $L("]");
3697
- var $L36 = $L("**=");
3698
- var $L37 = $L("*=");
3699
- var $L38 = $L("/=");
3700
- var $L39 = $L("%=");
3701
- var $L40 = $L("+=");
3702
- var $L41 = $L("-=");
3703
- var $L42 = $L("<<=");
3704
- var $L43 = $L(">>>=");
3705
- var $L44 = $L(">>=");
3706
- var $L45 = $L("&&=");
3707
- var $L46 = $L("&=");
3708
- var $L47 = $L("^=");
3709
- var $L48 = $L("||=");
3710
- var $L49 = $L("|=");
3711
- var $L50 = $L("??=");
3712
- var $L51 = $L("?=");
3713
- var $L52 = $L("and=");
3714
- var $L53 = $L("or=");
3715
- var $L54 = $L("**");
3716
- var $L55 = $L("*");
3717
- var $L56 = $L("/");
3718
- var $L57 = $L("%%");
3719
- var $L58 = $L("%");
3720
- var $L59 = $L("+");
3721
- var $L60 = $L("<=");
3722
- var $L61 = $L("\u2264");
3723
- var $L62 = $L(">=");
3724
- var $L63 = $L("\u2265");
3725
- var $L64 = $L("<?");
3726
- var $L65 = $L("!<?");
3727
- var $L66 = $L("<<");
3728
- var $L67 = $L("\xAB");
3729
- var $L68 = $L(">>>");
3730
- var $L69 = $L("\u22D9");
3731
- var $L70 = $L(">>");
3732
- var $L71 = $L("\xBB");
3733
- var $L72 = $L("!==");
3734
- var $L73 = $L("\u2262");
3735
- var $L74 = $L("!=");
3736
- var $L75 = $L("\u2260");
3737
- var $L76 = $L("isnt");
3738
- var $L77 = $L("===");
3739
- var $L78 = $L("\u2263");
3740
- var $L79 = $L("\u2A76");
3741
- var $L80 = $L("==");
3742
- var $L81 = $L("\u2261");
3743
- var $L82 = $L("\u2A75");
3744
- var $L83 = $L("and");
3745
- var $L84 = $L("&&");
3746
- var $L85 = $L("of");
3747
- var $L86 = $L("or");
3748
- var $L87 = $L("||");
3749
- var $L88 = $L("\u2016");
3750
- var $L89 = $L("^^");
3751
- var $L90 = $L("xor");
3752
- var $L91 = $L("xnor");
3753
- var $L92 = $L("??");
3754
- var $L93 = $L("\u2047");
3755
- var $L94 = $L("instanceof");
3756
- var $L95 = $L("\u2208");
3757
- var $L96 = $L("\u220B");
3758
- var $L97 = $L("\u220C");
3759
- var $L98 = $L("\u2209");
3760
- var $L99 = $L("&");
3761
- var $L100 = $L("|");
3762
- var $L101 = $L(";");
3763
- var $L102 = $L("$:");
3764
- var $L103 = $L("own");
3765
- var $L104 = $L("break");
3766
- var $L105 = $L("continue");
3767
- var $L106 = $L("debugger");
3768
- var $L107 = $L("assert");
3769
- var $L108 = $L(":=");
3770
- var $L109 = $L("\u2254");
3771
- var $L110 = $L(".=");
3772
- var $L111 = $L("/*");
3773
- var $L112 = $L("*/");
3774
- var $L113 = $L("\\");
3775
- var $L114 = $L("[");
3776
- var $L115 = $L("`");
3777
- var $L116 = $L("abstract");
3778
- var $L117 = $L("as");
3779
- var $L118 = $L("@");
3780
- var $L119 = $L("@@");
3781
- var $L120 = $L("async");
3782
- var $L121 = $L("await");
3783
- var $L122 = $L("by");
3784
- var $L123 = $L("case");
3785
- var $L124 = $L("catch");
3786
- var $L125 = $L("class");
3787
- var $L126 = $L(")");
3788
- var $L127 = $L("#{");
3789
- var $L128 = $L("declare");
3790
- var $L129 = $L("default");
3791
- var $L130 = $L("delete");
3792
- var $L131 = $L("do");
3793
- var $L132 = $L("..");
3794
- var $L133 = $L("\u2025");
3795
- var $L134 = $L("...");
3796
- var $L135 = $L("\u2026");
3797
- var $L136 = $L("::");
3798
- var $L137 = $L('"');
3827
+ var $L16 = $L("import");
3828
+ var $L17 = $L("!");
3829
+ var $L18 = $L("^");
3830
+ var $L19 = $L("-");
3831
+ var $L20 = $L("import.meta");
3832
+ var $L21 = $L("return.value");
3833
+ var $L22 = $L(",");
3834
+ var $L23 = $L("->");
3835
+ var $L24 = $L("\u2192");
3836
+ var $L25 = $L("}");
3837
+ var $L26 = $L("null");
3838
+ var $L27 = $L("true");
3839
+ var $L28 = $L("false");
3840
+ var $L29 = $L("yes");
3841
+ var $L30 = $L("on");
3842
+ var $L31 = $L("no");
3843
+ var $L32 = $L("off");
3844
+ var $L33 = $L(">");
3845
+ var $L34 = $L("]");
3846
+ var $L35 = $L("**=");
3847
+ var $L36 = $L("*=");
3848
+ var $L37 = $L("/=");
3849
+ var $L38 = $L("%=");
3850
+ var $L39 = $L("+=");
3851
+ var $L40 = $L("-=");
3852
+ var $L41 = $L("<<=");
3853
+ var $L42 = $L(">>>=");
3854
+ var $L43 = $L(">>=");
3855
+ var $L44 = $L("&&=");
3856
+ var $L45 = $L("&=");
3857
+ var $L46 = $L("^=");
3858
+ var $L47 = $L("||=");
3859
+ var $L48 = $L("|=");
3860
+ var $L49 = $L("??=");
3861
+ var $L50 = $L("?=");
3862
+ var $L51 = $L("and=");
3863
+ var $L52 = $L("or=");
3864
+ var $L53 = $L("**");
3865
+ var $L54 = $L("*");
3866
+ var $L55 = $L("/");
3867
+ var $L56 = $L("%%");
3868
+ var $L57 = $L("%");
3869
+ var $L58 = $L("+");
3870
+ var $L59 = $L("<=");
3871
+ var $L60 = $L("\u2264");
3872
+ var $L61 = $L(">=");
3873
+ var $L62 = $L("\u2265");
3874
+ var $L63 = $L("<?");
3875
+ var $L64 = $L("!<?");
3876
+ var $L65 = $L("<<");
3877
+ var $L66 = $L("\xAB");
3878
+ var $L67 = $L(">>>");
3879
+ var $L68 = $L("\u22D9");
3880
+ var $L69 = $L(">>");
3881
+ var $L70 = $L("\xBB");
3882
+ var $L71 = $L("!==");
3883
+ var $L72 = $L("\u2262");
3884
+ var $L73 = $L("!=");
3885
+ var $L74 = $L("\u2260");
3886
+ var $L75 = $L("isnt");
3887
+ var $L76 = $L("===");
3888
+ var $L77 = $L("\u2263");
3889
+ var $L78 = $L("\u2A76");
3890
+ var $L79 = $L("==");
3891
+ var $L80 = $L("\u2261");
3892
+ var $L81 = $L("\u2A75");
3893
+ var $L82 = $L("and");
3894
+ var $L83 = $L("&&");
3895
+ var $L84 = $L("of");
3896
+ var $L85 = $L("or");
3897
+ var $L86 = $L("||");
3898
+ var $L87 = $L("\u2016");
3899
+ var $L88 = $L("^^");
3900
+ var $L89 = $L("xor");
3901
+ var $L90 = $L("xnor");
3902
+ var $L91 = $L("??");
3903
+ var $L92 = $L("\u2047");
3904
+ var $L93 = $L("instanceof");
3905
+ var $L94 = $L("\u2208");
3906
+ var $L95 = $L("\u220B");
3907
+ var $L96 = $L("\u220C");
3908
+ var $L97 = $L("\u2209");
3909
+ var $L98 = $L("&");
3910
+ var $L99 = $L("|");
3911
+ var $L100 = $L(";");
3912
+ var $L101 = $L("$:");
3913
+ var $L102 = $L("own");
3914
+ var $L103 = $L("break");
3915
+ var $L104 = $L("continue");
3916
+ var $L105 = $L("debugger");
3917
+ var $L106 = $L("assert");
3918
+ var $L107 = $L(":=");
3919
+ var $L108 = $L("\u2254");
3920
+ var $L109 = $L(".=");
3921
+ var $L110 = $L("/*");
3922
+ var $L111 = $L("*/");
3923
+ var $L112 = $L("\\");
3924
+ var $L113 = $L("[");
3925
+ var $L114 = $L("`");
3926
+ var $L115 = $L("abstract");
3927
+ var $L116 = $L("as");
3928
+ var $L117 = $L("@");
3929
+ var $L118 = $L("@@");
3930
+ var $L119 = $L("async");
3931
+ var $L120 = $L("await");
3932
+ var $L121 = $L("by");
3933
+ var $L122 = $L("case");
3934
+ var $L123 = $L("catch");
3935
+ var $L124 = $L("class");
3936
+ var $L125 = $L(")");
3937
+ var $L126 = $L("#{");
3938
+ var $L127 = $L("declare");
3939
+ var $L128 = $L("default");
3940
+ var $L129 = $L("delete");
3941
+ var $L130 = $L("do");
3942
+ var $L131 = $L("..");
3943
+ var $L132 = $L("\u2025");
3944
+ var $L133 = $L("...");
3945
+ var $L134 = $L("\u2026");
3946
+ var $L135 = $L("::");
3947
+ var $L136 = $L('"');
3948
+ var $L137 = $L("each");
3799
3949
  var $L138 = $L("else");
3800
3950
  var $L139 = $L("export");
3801
3951
  var $L140 = $L("extends");
@@ -3830,41 +3980,42 @@ ${input.slice(result.pos)}
3830
3980
  var $L169 = $L("'");
3831
3981
  var $L170 = $L("static");
3832
3982
  var $L171 = $L("${");
3833
- var $L172 = $L("switch");
3834
- var $L173 = $L("target");
3835
- var $L174 = $L("then");
3836
- var $L175 = $L("this");
3837
- var $L176 = $L("throw");
3838
- var $L177 = $L('"""');
3839
- var $L178 = $L("'''");
3840
- var $L179 = $L("///");
3841
- var $L180 = $L("```");
3842
- var $L181 = $L("try");
3843
- var $L182 = $L("typeof");
3844
- var $L183 = $L("unless");
3845
- var $L184 = $L("until");
3846
- var $L185 = $L("var");
3847
- var $L186 = $L("void");
3848
- var $L187 = $L("when");
3849
- var $L188 = $L("while");
3850
- var $L189 = $L("yield");
3851
- var $L190 = $L("/>");
3852
- var $L191 = $L("</");
3853
- var $L192 = $L("<>");
3854
- var $L193 = $L("</>");
3855
- var $L194 = $L("<!--");
3856
- var $L195 = $L("-->");
3857
- var $L196 = $L("type");
3858
- var $L197 = $L("enum");
3859
- var $L198 = $L("interface");
3860
- var $L199 = $L("global");
3861
- var $L200 = $L("module");
3862
- var $L201 = $L("namespace");
3863
- var $L202 = $L("asserts");
3864
- var $L203 = $L("keyof");
3865
- var $L204 = $L("infer");
3866
- var $L205 = $L("[]");
3867
- var $L206 = $L("civet");
3983
+ var $L172 = $L("super");
3984
+ var $L173 = $L("switch");
3985
+ var $L174 = $L("target");
3986
+ var $L175 = $L("then");
3987
+ var $L176 = $L("this");
3988
+ var $L177 = $L("throw");
3989
+ var $L178 = $L('"""');
3990
+ var $L179 = $L("'''");
3991
+ var $L180 = $L("///");
3992
+ var $L181 = $L("```");
3993
+ var $L182 = $L("try");
3994
+ var $L183 = $L("typeof");
3995
+ var $L184 = $L("unless");
3996
+ var $L185 = $L("until");
3997
+ var $L186 = $L("var");
3998
+ var $L187 = $L("void");
3999
+ var $L188 = $L("when");
4000
+ var $L189 = $L("while");
4001
+ var $L190 = $L("yield");
4002
+ var $L191 = $L("/>");
4003
+ var $L192 = $L("</");
4004
+ var $L193 = $L("<>");
4005
+ var $L194 = $L("</>");
4006
+ var $L195 = $L("<!--");
4007
+ var $L196 = $L("-->");
4008
+ var $L197 = $L("type");
4009
+ var $L198 = $L("enum");
4010
+ var $L199 = $L("interface");
4011
+ var $L200 = $L("global");
4012
+ var $L201 = $L("module");
4013
+ var $L202 = $L("namespace");
4014
+ var $L203 = $L("asserts");
4015
+ var $L204 = $L("keyof");
4016
+ var $L205 = $L("infer");
4017
+ var $L206 = $L("[]");
4018
+ var $L207 = $L("civet");
3868
4019
  var $R0 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
3869
4020
  var $R1 = $R(new RegExp("[0-9]", "suy"));
3870
4021
  var $R2 = $R(new RegExp("[)}]", "suy"));
@@ -3875,7 +4026,7 @@ ${input.slice(result.pos)}
3875
4026
  var $R7 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
3876
4027
  var $R8 = $R(new RegExp("!\\^\\^?", "suy"));
3877
4028
  var $R9 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])", "suy"));
3878
- var $R10 = $R(new RegExp("(?=[\\s\\)])", "suy"));
4029
+ var $R10 = $R(new RegExp("(?=[\\s\\),])", "suy"));
3879
4030
  var $R11 = $R(new RegExp('[^;"\\s]+', "suy"));
3880
4031
  var $R12 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
3881
4032
  var $R13 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
@@ -5509,10 +5660,7 @@ ${input.slice(result.pos)}
5509
5660
  var head = $2;
5510
5661
  var body = $3;
5511
5662
  if (head.token === "&") {
5512
- const ref = {
5513
- type: "Ref",
5514
- base: "$"
5515
- };
5663
+ const ref = makeRef("$");
5516
5664
  const arrowBody = {
5517
5665
  type: "PipelineExpression",
5518
5666
  children: [ws, ref, body]
@@ -6425,14 +6573,14 @@ ${input.slice(result.pos)}
6425
6573
  return result;
6426
6574
  }
6427
6575
  }
6428
- var CallExpression$0 = $TS($S($EXPECT($L16, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6576
+ var CallExpression$0 = $TS($S(Super, ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6429
6577
  var rest = $3;
6430
6578
  return processCallMemberExpression({
6431
6579
  type: "CallExpression",
6432
6580
  children: [$1, ...$2, ...rest.flat()]
6433
6581
  });
6434
6582
  });
6435
- var CallExpression$1 = $TS($S($EXPECT($L17, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6583
+ var CallExpression$1 = $TS($S($EXPECT($L16, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6436
6584
  var rest = $3;
6437
6585
  return processCallMemberExpression({
6438
6586
  type: "CallExpression",
@@ -6560,7 +6708,7 @@ ${input.slice(result.pos)}
6560
6708
  return result;
6561
6709
  }
6562
6710
  }
6563
- var NonNullAssertion$0 = $T($S($EXPECT($L18, fail, 'NonNullAssertion "!"'), $N($EXPECT($L19, fail, 'NonNullAssertion "^"'))), function(value) {
6711
+ var NonNullAssertion$0 = $T($S($EXPECT($L17, fail, 'NonNullAssertion "!"'), $N($EXPECT($L18, fail, 'NonNullAssertion "^"'))), function(value) {
6564
6712
  return { "type": "NonNullAssertion", "ts": true, "children": value[0] };
6565
6713
  });
6566
6714
  function NonNullAssertion(state) {
@@ -6704,7 +6852,7 @@ ${input.slice(result.pos)}
6704
6852
  ]
6705
6853
  };
6706
6854
  });
6707
- var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L20, fail, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6855
+ var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L19, fail, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6708
6856
  var dot = $1;
6709
6857
  var neg = $2;
6710
6858
  var num = $3;
@@ -6924,8 +7072,8 @@ ${input.slice(result.pos)}
6924
7072
  return result;
6925
7073
  }
6926
7074
  }
6927
- var SuperProperty$0 = $S($EXPECT($L16, fail, 'SuperProperty "super"'), MemberBracketContent);
6928
- var SuperProperty$1 = $S($EXPECT($L16, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
7075
+ var SuperProperty$0 = $S(Super, MemberBracketContent);
7076
+ var SuperProperty$1 = $S(Super, $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
6929
7077
  function SuperProperty(state) {
6930
7078
  let eventData;
6931
7079
  if (state.events) {
@@ -6949,7 +7097,7 @@ ${input.slice(result.pos)}
6949
7097
  }
6950
7098
  }
6951
7099
  var MetaProperty$0 = $S(New, Dot, Target);
6952
- var MetaProperty$1 = $TS($S($EXPECT($L21, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7100
+ var MetaProperty$1 = $TS($S($EXPECT($L20, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6953
7101
  return { $loc, token: $1 };
6954
7102
  });
6955
7103
  var MetaProperty$2 = ReturnValue;
@@ -6975,7 +7123,7 @@ ${input.slice(result.pos)}
6975
7123
  return result;
6976
7124
  }
6977
7125
  }
6978
- var ReturnValue$0 = $TV($C($S($EXPECT($L22, fail, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
7126
+ var ReturnValue$0 = $TV($C($S($EXPECT($L21, fail, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6979
7127
  return { type: "ReturnValue", children: [$1[0]] };
6980
7128
  });
6981
7129
  function ReturnValue(state) {
@@ -7283,11 +7431,7 @@ ${input.slice(result.pos)}
7283
7431
  });
7284
7432
  var AtIdentifierRef$1 = $TV(IdentifierName, function($skip, $loc, $0, $1) {
7285
7433
  var id = $0;
7286
- return {
7287
- type: "Ref",
7288
- base: id.name,
7289
- id: id.name
7290
- };
7434
+ return makeRef(id.name);
7291
7435
  });
7292
7436
  function AtIdentifierRef(state) {
7293
7437
  let eventData;
@@ -7311,7 +7455,7 @@ ${input.slice(result.pos)}
7311
7455
  return result;
7312
7456
  }
7313
7457
  }
7314
- var PinPattern$0 = $TS($S($EXPECT($L19, fail, 'PinPattern "^"'), Identifier), function($skip, $loc, $0, $1, $2) {
7458
+ var PinPattern$0 = $TS($S($EXPECT($L18, fail, 'PinPattern "^"'), Identifier), function($skip, $loc, $0, $1, $2) {
7315
7459
  var identifier = $2;
7316
7460
  return {
7317
7461
  type: "PinPattern",
@@ -7684,7 +7828,7 @@ ${input.slice(result.pos)}
7684
7828
  names: value.names
7685
7829
  };
7686
7830
  });
7687
- var BindingProperty$2 = $TS($S($E(_), $E($EXPECT($L19, fail, 'BindingProperty "^"')), BindingIdentifier, $E(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4) {
7831
+ var BindingProperty$2 = $TS($S($E(_), $E($EXPECT($L18, fail, 'BindingProperty "^"')), BindingIdentifier, $E(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4) {
7688
7832
  var ws = $1;
7689
7833
  var pin = $2;
7690
7834
  var binding = $3;
@@ -7829,7 +7973,7 @@ ${input.slice(result.pos)}
7829
7973
  children: [ws, binding]
7830
7974
  };
7831
7975
  });
7832
- var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L23, fail, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
7976
+ var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L22, fail, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
7833
7977
  return {
7834
7978
  children: [{
7835
7979
  type: "ElisionElement",
@@ -7909,11 +8053,7 @@ ${input.slice(result.pos)}
7909
8053
  }
7910
8054
  }
7911
8055
  var EmptyBindingPattern$0 = $TV($EXPECT($L0, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
7912
- const ref = {
7913
- type: "Ref",
7914
- base: "ref",
7915
- id: "ref"
7916
- };
8056
+ const ref = makeRef();
7917
8057
  return {
7918
8058
  type: "EmptyBinding",
7919
8059
  children: [ref],
@@ -8071,11 +8211,7 @@ ${input.slice(result.pos)}
8071
8211
  return $skip;
8072
8212
  let body, ref;
8073
8213
  if (!rhs) {
8074
- body = ref = {
8075
- type: "Ref",
8076
- base: "$",
8077
- id: "$"
8078
- };
8214
+ body = ref = makeRef("$");
8079
8215
  } else {
8080
8216
  let exp = rhs;
8081
8217
  while (!exp.ref && exp.expression) {
@@ -8255,11 +8391,7 @@ ${input.slice(result.pos)}
8255
8391
  var binopRHS = $3;
8256
8392
  if (!callExpRest && !binopRHS && !unaryPostfix)
8257
8393
  return $skip;
8258
- const ref = {
8259
- type: "Ref",
8260
- base: "$",
8261
- id: "$"
8262
- };
8394
+ const ref = makeRef("$");
8263
8395
  let exp = {
8264
8396
  type: "AmpersandRef",
8265
8397
  children: [ref],
@@ -8379,7 +8511,7 @@ ${input.slice(result.pos)}
8379
8511
  return result;
8380
8512
  }
8381
8513
  }
8382
- var Arrow$0 = $TV($C($EXPECT($L24, fail, 'Arrow "->"'), $EXPECT($L25, fail, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
8514
+ var Arrow$0 = $TV($C($EXPECT($L23, fail, 'Arrow "->"'), $EXPECT($L24, fail, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
8383
8515
  return { $loc, token: "->" };
8384
8516
  });
8385
8517
  function Arrow(state) {
@@ -8909,7 +9041,7 @@ ${input.slice(result.pos)}
8909
9041
  children: [$1, expressions]
8910
9042
  };
8911
9043
  });
8912
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L26, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
9044
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L25, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
8913
9045
  const expressions = [];
8914
9046
  return {
8915
9047
  type: "BlockStatement",
@@ -9090,7 +9222,7 @@ ${input.slice(result.pos)}
9090
9222
  return result;
9091
9223
  }
9092
9224
  }
9093
- var NullLiteral$0 = $TS($S($EXPECT($L27, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9225
+ var NullLiteral$0 = $TS($S($EXPECT($L26, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9094
9226
  return { $loc, token: $1 };
9095
9227
  });
9096
9228
  function NullLiteral(state) {
@@ -9118,7 +9250,7 @@ ${input.slice(result.pos)}
9118
9250
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
9119
9251
  return value[1];
9120
9252
  });
9121
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L28, fail, 'BooleanLiteral "true"'), $EXPECT($L29, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9253
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L27, fail, 'BooleanLiteral "true"'), $EXPECT($L28, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9122
9254
  return { $loc, token: $1 };
9123
9255
  });
9124
9256
  function BooleanLiteral(state) {
@@ -9143,10 +9275,10 @@ ${input.slice(result.pos)}
9143
9275
  return result;
9144
9276
  }
9145
9277
  }
9146
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L30, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L31, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9278
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L29, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L30, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9147
9279
  return { $loc, token: "true" };
9148
9280
  });
9149
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L32, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L33, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9281
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L31, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L32, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9150
9282
  return { $loc, token: "false" };
9151
9283
  });
9152
9284
  function CoffeeScriptBooleanLiteral(state) {
@@ -9252,7 +9384,7 @@ ${input.slice(result.pos)}
9252
9384
  return result;
9253
9385
  }
9254
9386
  }
9255
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, fail, 'UpcomingAssignment "="'), $EXPECT($L34, fail, 'UpcomingAssignment ">"')))));
9387
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, fail, 'UpcomingAssignment "="'), $EXPECT($L33, fail, 'UpcomingAssignment ">"')))));
9256
9388
  function UpcomingAssignment(state) {
9257
9389
  let eventData;
9258
9390
  if (state.events) {
@@ -9516,7 +9648,7 @@ ${input.slice(result.pos)}
9516
9648
  }
9517
9649
  }
9518
9650
  var ArrayElementDelimiter$0 = $S(__, Comma);
9519
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L35, fail, 'ArrayElementDelimiter "]"')));
9651
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L34, fail, 'ArrayElementDelimiter "]"')));
9520
9652
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
9521
9653
  return value[1];
9522
9654
  });
@@ -9637,12 +9769,7 @@ ${input.slice(result.pos)}
9637
9769
  var ws = $2;
9638
9770
  var dots = $3;
9639
9771
  if (!exp) {
9640
- exp = {
9641
- type: "Ref",
9642
- base: "ref",
9643
- id: "ref",
9644
- names: []
9645
- };
9772
+ exp = { ...makeRef(), names: [] };
9646
9773
  }
9647
9774
  return {
9648
9775
  type: "SpreadElement",
@@ -10027,7 +10154,7 @@ ${input.slice(result.pos)}
10027
10154
  }
10028
10155
  }
10029
10156
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
10030
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ObjectPropertyDelimiter "}"')));
10157
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L25, fail, 'ObjectPropertyDelimiter "}"')));
10031
10158
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
10032
10159
  return value[1];
10033
10160
  });
@@ -10307,7 +10434,7 @@ ${input.slice(result.pos)}
10307
10434
  implicit: true
10308
10435
  };
10309
10436
  });
10310
- var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L20, fail, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
10437
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L19, fail, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
10311
10438
  const expression = [$2, $3];
10312
10439
  return {
10313
10440
  type: "ComputedPropertyName",
@@ -10727,22 +10854,22 @@ ${input.slice(result.pos)}
10727
10854
  return result;
10728
10855
  }
10729
10856
  }
10730
- var AssignmentOpSymbol$0 = $EXPECT($L36, fail, 'AssignmentOpSymbol "**="');
10731
- var AssignmentOpSymbol$1 = $EXPECT($L37, fail, 'AssignmentOpSymbol "*="');
10732
- var AssignmentOpSymbol$2 = $EXPECT($L38, fail, 'AssignmentOpSymbol "/="');
10733
- var AssignmentOpSymbol$3 = $EXPECT($L39, fail, 'AssignmentOpSymbol "%="');
10734
- var AssignmentOpSymbol$4 = $EXPECT($L40, fail, 'AssignmentOpSymbol "+="');
10735
- var AssignmentOpSymbol$5 = $EXPECT($L41, fail, 'AssignmentOpSymbol "-="');
10736
- var AssignmentOpSymbol$6 = $EXPECT($L42, fail, 'AssignmentOpSymbol "<<="');
10737
- var AssignmentOpSymbol$7 = $EXPECT($L43, fail, 'AssignmentOpSymbol ">>>="');
10738
- var AssignmentOpSymbol$8 = $EXPECT($L44, fail, 'AssignmentOpSymbol ">>="');
10739
- var AssignmentOpSymbol$9 = $EXPECT($L45, fail, 'AssignmentOpSymbol "&&="');
10740
- var AssignmentOpSymbol$10 = $EXPECT($L46, fail, 'AssignmentOpSymbol "&="');
10741
- var AssignmentOpSymbol$11 = $EXPECT($L47, fail, 'AssignmentOpSymbol "^="');
10742
- var AssignmentOpSymbol$12 = $EXPECT($L48, fail, 'AssignmentOpSymbol "||="');
10743
- var AssignmentOpSymbol$13 = $EXPECT($L49, fail, 'AssignmentOpSymbol "|="');
10744
- var AssignmentOpSymbol$14 = $EXPECT($L50, fail, 'AssignmentOpSymbol "??="');
10745
- var AssignmentOpSymbol$15 = $T($EXPECT($L51, fail, 'AssignmentOpSymbol "?="'), function(value) {
10857
+ var AssignmentOpSymbol$0 = $EXPECT($L35, fail, 'AssignmentOpSymbol "**="');
10858
+ var AssignmentOpSymbol$1 = $EXPECT($L36, fail, 'AssignmentOpSymbol "*="');
10859
+ var AssignmentOpSymbol$2 = $EXPECT($L37, fail, 'AssignmentOpSymbol "/="');
10860
+ var AssignmentOpSymbol$3 = $EXPECT($L38, fail, 'AssignmentOpSymbol "%="');
10861
+ var AssignmentOpSymbol$4 = $EXPECT($L39, fail, 'AssignmentOpSymbol "+="');
10862
+ var AssignmentOpSymbol$5 = $EXPECT($L40, fail, 'AssignmentOpSymbol "-="');
10863
+ var AssignmentOpSymbol$6 = $EXPECT($L41, fail, 'AssignmentOpSymbol "<<="');
10864
+ var AssignmentOpSymbol$7 = $EXPECT($L42, fail, 'AssignmentOpSymbol ">>>="');
10865
+ var AssignmentOpSymbol$8 = $EXPECT($L43, fail, 'AssignmentOpSymbol ">>="');
10866
+ var AssignmentOpSymbol$9 = $EXPECT($L44, fail, 'AssignmentOpSymbol "&&="');
10867
+ var AssignmentOpSymbol$10 = $EXPECT($L45, fail, 'AssignmentOpSymbol "&="');
10868
+ var AssignmentOpSymbol$11 = $EXPECT($L46, fail, 'AssignmentOpSymbol "^="');
10869
+ var AssignmentOpSymbol$12 = $EXPECT($L47, fail, 'AssignmentOpSymbol "||="');
10870
+ var AssignmentOpSymbol$13 = $EXPECT($L48, fail, 'AssignmentOpSymbol "|="');
10871
+ var AssignmentOpSymbol$14 = $EXPECT($L49, fail, 'AssignmentOpSymbol "??="');
10872
+ var AssignmentOpSymbol$15 = $T($EXPECT($L50, fail, 'AssignmentOpSymbol "?="'), function(value) {
10746
10873
  return "??=";
10747
10874
  });
10748
10875
  var AssignmentOpSymbol$16 = $T($S($EXPECT($L3, fail, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, fail, 'AssignmentOpSymbol "="'))), function(value) {
@@ -10773,10 +10900,10 @@ ${input.slice(result.pos)}
10773
10900
  return result;
10774
10901
  }
10775
10902
  }
10776
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L52, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
10903
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L51, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
10777
10904
  return "&&=";
10778
10905
  });
10779
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L53, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
10906
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L52, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
10780
10907
  return "||=";
10781
10908
  });
10782
10909
  function CoffeeWordAssignmentOp(state) {
@@ -10883,27 +11010,27 @@ ${input.slice(result.pos)}
10883
11010
  return result;
10884
11011
  }
10885
11012
  }
10886
- var BinaryOpSymbol$0 = $EXPECT($L54, fail, 'BinaryOpSymbol "**"');
10887
- var BinaryOpSymbol$1 = $EXPECT($L55, fail, 'BinaryOpSymbol "*"');
10888
- var BinaryOpSymbol$2 = $EXPECT($L56, fail, 'BinaryOpSymbol "/"');
10889
- var BinaryOpSymbol$3 = $TV($EXPECT($L57, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
11013
+ var BinaryOpSymbol$0 = $EXPECT($L53, fail, 'BinaryOpSymbol "**"');
11014
+ var BinaryOpSymbol$1 = $EXPECT($L54, fail, 'BinaryOpSymbol "*"');
11015
+ var BinaryOpSymbol$2 = $EXPECT($L55, fail, 'BinaryOpSymbol "/"');
11016
+ var BinaryOpSymbol$3 = $TV($EXPECT($L56, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
10890
11017
  return {
10891
11018
  call: module.getRef("modulo"),
10892
11019
  special: true
10893
11020
  };
10894
11021
  });
10895
- var BinaryOpSymbol$4 = $EXPECT($L58, fail, 'BinaryOpSymbol "%"');
10896
- var BinaryOpSymbol$5 = $EXPECT($L59, fail, 'BinaryOpSymbol "+"');
10897
- var BinaryOpSymbol$6 = $EXPECT($L20, fail, 'BinaryOpSymbol "-"');
10898
- var BinaryOpSymbol$7 = $EXPECT($L60, fail, 'BinaryOpSymbol "<="');
10899
- var BinaryOpSymbol$8 = $T($EXPECT($L61, fail, 'BinaryOpSymbol "\u2264"'), function(value) {
11022
+ var BinaryOpSymbol$4 = $EXPECT($L57, fail, 'BinaryOpSymbol "%"');
11023
+ var BinaryOpSymbol$5 = $EXPECT($L58, fail, 'BinaryOpSymbol "+"');
11024
+ var BinaryOpSymbol$6 = $EXPECT($L19, fail, 'BinaryOpSymbol "-"');
11025
+ var BinaryOpSymbol$7 = $EXPECT($L59, fail, 'BinaryOpSymbol "<="');
11026
+ var BinaryOpSymbol$8 = $T($EXPECT($L60, fail, 'BinaryOpSymbol "\u2264"'), function(value) {
10900
11027
  return "<=";
10901
11028
  });
10902
- var BinaryOpSymbol$9 = $EXPECT($L62, fail, 'BinaryOpSymbol ">="');
10903
- var BinaryOpSymbol$10 = $T($EXPECT($L63, fail, 'BinaryOpSymbol "\u2265"'), function(value) {
11029
+ var BinaryOpSymbol$9 = $EXPECT($L61, fail, 'BinaryOpSymbol ">="');
11030
+ var BinaryOpSymbol$10 = $T($EXPECT($L62, fail, 'BinaryOpSymbol "\u2265"'), function(value) {
10904
11031
  return ">=";
10905
11032
  });
10906
- var BinaryOpSymbol$11 = $TV($EXPECT($L64, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
11033
+ var BinaryOpSymbol$11 = $TV($EXPECT($L63, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
10907
11034
  return {
10908
11035
  $loc,
10909
11036
  token: "instanceof",
@@ -10911,7 +11038,7 @@ ${input.slice(result.pos)}
10911
11038
  special: true
10912
11039
  };
10913
11040
  });
10914
- var BinaryOpSymbol$12 = $TV($EXPECT($L65, fail, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
11041
+ var BinaryOpSymbol$12 = $TV($EXPECT($L64, fail, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
10915
11042
  return {
10916
11043
  $loc,
10917
11044
  token: "instanceof",
@@ -10920,79 +11047,79 @@ ${input.slice(result.pos)}
10920
11047
  negated: true
10921
11048
  };
10922
11049
  });
10923
- var BinaryOpSymbol$13 = $EXPECT($L66, fail, 'BinaryOpSymbol "<<"');
10924
- var BinaryOpSymbol$14 = $T($EXPECT($L67, fail, 'BinaryOpSymbol "\xAB"'), function(value) {
11050
+ var BinaryOpSymbol$13 = $EXPECT($L65, fail, 'BinaryOpSymbol "<<"');
11051
+ var BinaryOpSymbol$14 = $T($EXPECT($L66, fail, 'BinaryOpSymbol "\xAB"'), function(value) {
10925
11052
  return "<<";
10926
11053
  });
10927
11054
  var BinaryOpSymbol$15 = $TR($EXPECT($R7, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10928
11055
  return "<";
10929
11056
  });
10930
- var BinaryOpSymbol$16 = $EXPECT($L68, fail, 'BinaryOpSymbol ">>>"');
10931
- var BinaryOpSymbol$17 = $T($EXPECT($L69, fail, 'BinaryOpSymbol "\u22D9"'), function(value) {
11057
+ var BinaryOpSymbol$16 = $EXPECT($L67, fail, 'BinaryOpSymbol ">>>"');
11058
+ var BinaryOpSymbol$17 = $T($EXPECT($L68, fail, 'BinaryOpSymbol "\u22D9"'), function(value) {
10932
11059
  return ">>>";
10933
11060
  });
10934
- var BinaryOpSymbol$18 = $EXPECT($L70, fail, 'BinaryOpSymbol ">>"');
10935
- var BinaryOpSymbol$19 = $T($EXPECT($L71, fail, 'BinaryOpSymbol "\xBB"'), function(value) {
11061
+ var BinaryOpSymbol$18 = $EXPECT($L69, fail, 'BinaryOpSymbol ">>"');
11062
+ var BinaryOpSymbol$19 = $T($EXPECT($L70, fail, 'BinaryOpSymbol "\xBB"'), function(value) {
10936
11063
  return ">>";
10937
11064
  });
10938
- var BinaryOpSymbol$20 = $EXPECT($L34, fail, 'BinaryOpSymbol ">"');
10939
- var BinaryOpSymbol$21 = $EXPECT($L72, fail, 'BinaryOpSymbol "!=="');
10940
- var BinaryOpSymbol$22 = $T($EXPECT($L73, fail, 'BinaryOpSymbol "\u2262"'), function(value) {
11065
+ var BinaryOpSymbol$20 = $EXPECT($L33, fail, 'BinaryOpSymbol ">"');
11066
+ var BinaryOpSymbol$21 = $EXPECT($L71, fail, 'BinaryOpSymbol "!=="');
11067
+ var BinaryOpSymbol$22 = $T($EXPECT($L72, fail, 'BinaryOpSymbol "\u2262"'), function(value) {
10941
11068
  return "!==";
10942
11069
  });
10943
- var BinaryOpSymbol$23 = $TV($C($EXPECT($L74, fail, 'BinaryOpSymbol "!="'), $EXPECT($L75, fail, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
11070
+ var BinaryOpSymbol$23 = $TV($C($EXPECT($L73, fail, 'BinaryOpSymbol "!="'), $EXPECT($L74, fail, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
10944
11071
  if (module.config.coffeeEq)
10945
11072
  return "!==";
10946
11073
  return "!=";
10947
11074
  });
10948
- var BinaryOpSymbol$24 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11075
+ var BinaryOpSymbol$24 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10949
11076
  if (module.config.coffeeIsnt)
10950
11077
  return "!==";
10951
11078
  return $skip;
10952
11079
  });
10953
- var BinaryOpSymbol$25 = $EXPECT($L77, fail, 'BinaryOpSymbol "==="');
10954
- var BinaryOpSymbol$26 = $T($C($EXPECT($L78, fail, 'BinaryOpSymbol "\u2263"'), $EXPECT($L79, fail, 'BinaryOpSymbol "\u2A76"')), function(value) {
11080
+ var BinaryOpSymbol$25 = $EXPECT($L76, fail, 'BinaryOpSymbol "==="');
11081
+ var BinaryOpSymbol$26 = $T($C($EXPECT($L77, fail, 'BinaryOpSymbol "\u2263"'), $EXPECT($L78, fail, 'BinaryOpSymbol "\u2A76"')), function(value) {
10955
11082
  return "===";
10956
11083
  });
10957
- var BinaryOpSymbol$27 = $TV($C($EXPECT($L80, fail, 'BinaryOpSymbol "=="'), $EXPECT($L81, fail, 'BinaryOpSymbol "\u2261"'), $EXPECT($L82, fail, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
11084
+ var BinaryOpSymbol$27 = $TV($C($EXPECT($L79, fail, 'BinaryOpSymbol "=="'), $EXPECT($L80, fail, 'BinaryOpSymbol "\u2261"'), $EXPECT($L81, fail, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
10958
11085
  if (module.config.coffeeEq)
10959
11086
  return "===";
10960
11087
  return "==";
10961
11088
  });
10962
- var BinaryOpSymbol$28 = $T($S($EXPECT($L83, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
11089
+ var BinaryOpSymbol$28 = $T($S($EXPECT($L82, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
10963
11090
  return "&&";
10964
11091
  });
10965
- var BinaryOpSymbol$29 = $EXPECT($L84, fail, 'BinaryOpSymbol "&&"');
10966
- var BinaryOpSymbol$30 = $T($S(CoffeeOfEnabled, $EXPECT($L85, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
11092
+ var BinaryOpSymbol$29 = $EXPECT($L83, fail, 'BinaryOpSymbol "&&"');
11093
+ var BinaryOpSymbol$30 = $T($S(CoffeeOfEnabled, $EXPECT($L84, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
10967
11094
  return "in";
10968
11095
  });
10969
- var BinaryOpSymbol$31 = $T($S($EXPECT($L86, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
11096
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L85, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
10970
11097
  return "||";
10971
11098
  });
10972
- var BinaryOpSymbol$32 = $EXPECT($L87, fail, 'BinaryOpSymbol "||"');
10973
- var BinaryOpSymbol$33 = $T($EXPECT($L88, fail, 'BinaryOpSymbol "\u2016"'), function(value) {
11099
+ var BinaryOpSymbol$32 = $EXPECT($L86, fail, 'BinaryOpSymbol "||"');
11100
+ var BinaryOpSymbol$33 = $T($EXPECT($L87, fail, 'BinaryOpSymbol "\u2016"'), function(value) {
10974
11101
  return "||";
10975
11102
  });
10976
- var BinaryOpSymbol$34 = $TV($C($EXPECT($L89, fail, 'BinaryOpSymbol "^^"'), $S($EXPECT($L90, fail, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
11103
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L88, fail, 'BinaryOpSymbol "^^"'), $S($EXPECT($L89, fail, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10977
11104
  return {
10978
11105
  call: module.getRef("xor"),
10979
11106
  special: true
10980
11107
  };
10981
11108
  });
10982
- var BinaryOpSymbol$35 = $TV($C($EXPECT($R8, fail, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L91, fail, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
11109
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R8, fail, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L90, fail, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10983
11110
  return {
10984
11111
  call: module.getRef("xnor"),
10985
11112
  special: true
10986
11113
  };
10987
11114
  });
10988
- var BinaryOpSymbol$36 = $EXPECT($L92, fail, 'BinaryOpSymbol "??"');
10989
- var BinaryOpSymbol$37 = $T($EXPECT($L93, fail, 'BinaryOpSymbol "\u2047"'), function(value) {
11115
+ var BinaryOpSymbol$36 = $EXPECT($L91, fail, 'BinaryOpSymbol "??"');
11116
+ var BinaryOpSymbol$37 = $T($EXPECT($L92, fail, 'BinaryOpSymbol "\u2047"'), function(value) {
10990
11117
  return "??";
10991
11118
  });
10992
11119
  var BinaryOpSymbol$38 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L5, fail, 'BinaryOpSymbol "?"')), function(value) {
10993
11120
  return "??";
10994
11121
  });
10995
- var BinaryOpSymbol$39 = $TS($S($EXPECT($L94, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11122
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L93, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10996
11123
  return {
10997
11124
  $loc,
10998
11125
  token: $1,
@@ -11000,7 +11127,7 @@ ${input.slice(result.pos)}
11000
11127
  special: true
11001
11128
  };
11002
11129
  });
11003
- var BinaryOpSymbol$40 = $TS($S(Not, __, $EXPECT($L94, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
11130
+ var BinaryOpSymbol$40 = $TS($S(Not, __, $EXPECT($L93, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
11004
11131
  return {
11005
11132
  $loc,
11006
11133
  token: "instanceof",
@@ -11009,7 +11136,7 @@ ${input.slice(result.pos)}
11009
11136
  negated: true
11010
11137
  };
11011
11138
  });
11012
- var BinaryOpSymbol$41 = $TV($C($S($N(CoffeeOfEnabled), Not, __, In), $S(CoffeeOfEnabled, Not, __, $EXPECT($L85, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
11139
+ var BinaryOpSymbol$41 = $TV($C($S($N(CoffeeOfEnabled), Not, __, In), $S(CoffeeOfEnabled, Not, __, $EXPECT($L84, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
11013
11140
  return {
11014
11141
  $loc,
11015
11142
  token: "in",
@@ -11017,7 +11144,7 @@ ${input.slice(result.pos)}
11017
11144
  negated: true
11018
11145
  };
11019
11146
  });
11020
- var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L95, fail, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
11147
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L94, fail, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
11021
11148
  return {
11022
11149
  method: "includes",
11023
11150
  relational: true,
@@ -11025,14 +11152,14 @@ ${input.slice(result.pos)}
11025
11152
  special: true
11026
11153
  };
11027
11154
  });
11028
- var BinaryOpSymbol$43 = $TV($EXPECT($L96, fail, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
11155
+ var BinaryOpSymbol$43 = $TV($EXPECT($L95, fail, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
11029
11156
  return {
11030
11157
  method: "includes",
11031
11158
  relational: true,
11032
11159
  special: true
11033
11160
  };
11034
11161
  });
11035
- var BinaryOpSymbol$44 = $TV($EXPECT($L97, fail, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
11162
+ var BinaryOpSymbol$44 = $TV($EXPECT($L96, fail, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
11036
11163
  return {
11037
11164
  method: "includes",
11038
11165
  relational: true,
@@ -11049,7 +11176,7 @@ ${input.slice(result.pos)}
11049
11176
  special: true
11050
11177
  };
11051
11178
  });
11052
- var BinaryOpSymbol$46 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L98, fail, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
11179
+ var BinaryOpSymbol$46 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L97, fail, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
11053
11180
  return {
11054
11181
  method: "includes",
11055
11182
  relational: true,
@@ -11093,9 +11220,9 @@ ${input.slice(result.pos)}
11093
11220
  var BinaryOpSymbol$50 = $TS($S(In), function($skip, $loc, $0, $1) {
11094
11221
  return "in";
11095
11222
  });
11096
- var BinaryOpSymbol$51 = $EXPECT($L99, fail, 'BinaryOpSymbol "&"');
11097
- var BinaryOpSymbol$52 = $EXPECT($L19, fail, 'BinaryOpSymbol "^"');
11098
- var BinaryOpSymbol$53 = $EXPECT($L100, fail, 'BinaryOpSymbol "|"');
11223
+ var BinaryOpSymbol$51 = $EXPECT($L98, fail, 'BinaryOpSymbol "&"');
11224
+ var BinaryOpSymbol$52 = $EXPECT($L18, fail, 'BinaryOpSymbol "^"');
11225
+ var BinaryOpSymbol$53 = $EXPECT($L99, fail, 'BinaryOpSymbol "|"');
11099
11226
  function BinaryOpSymbol(state) {
11100
11227
  let eventData;
11101
11228
  if (state.events) {
@@ -11118,8 +11245,8 @@ ${input.slice(result.pos)}
11118
11245
  return result;
11119
11246
  }
11120
11247
  }
11121
- var Xor$0 = $EXPECT($L89, fail, 'Xor "^^"');
11122
- var Xor$1 = $S($EXPECT($L90, fail, 'Xor "xor"'), NonIdContinue);
11248
+ var Xor$0 = $EXPECT($L88, fail, 'Xor "^^"');
11249
+ var Xor$1 = $S($EXPECT($L89, fail, 'Xor "xor"'), NonIdContinue);
11123
11250
  function Xor(state) {
11124
11251
  let eventData;
11125
11252
  if (state.events) {
@@ -11143,7 +11270,7 @@ ${input.slice(result.pos)}
11143
11270
  }
11144
11271
  }
11145
11272
  var Xnor$0 = $R$0($EXPECT($R8, fail, "Xnor /!\\^\\^?/"));
11146
- var Xnor$1 = $EXPECT($L91, fail, 'Xnor "xnor"');
11273
+ var Xnor$1 = $EXPECT($L90, fail, 'Xnor "xnor"');
11147
11274
  function Xnor(state) {
11148
11275
  let eventData;
11149
11276
  if (state.events) {
@@ -11431,7 +11558,7 @@ ${input.slice(result.pos)}
11431
11558
  return result;
11432
11559
  }
11433
11560
  }
11434
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L101, fail, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
11561
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L100, fail, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
11435
11562
  return { type: "EmptyStatement", children: $1 || [] };
11436
11563
  });
11437
11564
  function EmptyStatement(state) {
@@ -11510,7 +11637,7 @@ ${input.slice(result.pos)}
11510
11637
  var w = $3;
11511
11638
  return [id, colon, w];
11512
11639
  });
11513
- var Label$1 = $S($EXPECT($L102, fail, 'Label "$:"'), Whitespace);
11640
+ var Label$1 = $S($EXPECT($L101, fail, 'Label "$:"'), Whitespace);
11514
11641
  function Label(state) {
11515
11642
  let eventData;
11516
11643
  if (state.events) {
@@ -11988,6 +12115,7 @@ ${input.slice(result.pos)}
11988
12115
  subtype: statement.type,
11989
12116
  children: [statement],
11990
12117
  block: statement.block,
12118
+ statement,
11991
12119
  async
11992
12120
  };
11993
12121
  });
@@ -12238,7 +12366,8 @@ ${input.slice(result.pos)}
12238
12366
  children: [$1, ...$2, ...children],
12239
12367
  declaration,
12240
12368
  block: null,
12241
- blockPrefix: c.blockPrefix
12369
+ blockPrefix: c.blockPrefix,
12370
+ hoistDec: c.hoistDec
12242
12371
  };
12243
12372
  });
12244
12373
  function ForClause(state) {
@@ -12346,7 +12475,7 @@ ${input.slice(result.pos)}
12346
12475
  if (step) {
12347
12476
  throw new Error("Can't use 'by' with 'from' in CoffeeScript for loops");
12348
12477
  }
12349
- kind.token = "of";
12478
+ kind = { ...kind, token: "of" };
12350
12479
  } else if (kind.token === "of") {
12351
12480
  if (step) {
12352
12481
  throw new Error("Can't use 'by' with 'of' in CoffeeScript for loops");
@@ -12364,30 +12493,12 @@ ${input.slice(result.pos)}
12364
12493
  }
12365
12494
  kind.token = "in";
12366
12495
  } else if (kind.token === "in") {
12367
- const counterRef = {
12368
- type: "Ref",
12369
- base: "i",
12370
- id: "i"
12371
- };
12372
- const lenRef = {
12373
- type: "Ref",
12374
- base: "len",
12375
- id: "len"
12376
- };
12377
- let expRef;
12378
- switch (exp.type) {
12379
- case "Identifier":
12380
- expRef = exp;
12381
- break;
12382
- case "RangeExpression":
12383
- return forRange(open, declaration, exp, step?.[2], close);
12384
- default:
12385
- expRef = {
12386
- type: "Ref",
12387
- base: "ref",
12388
- id: "ref"
12389
- };
12496
+ const counterRef = makeRef("i");
12497
+ const lenRef = makeRef("len");
12498
+ if (exp.type === "RangeExpression") {
12499
+ return forRange(open, declaration, exp, step?.[2], close);
12390
12500
  }
12501
+ const expRef = maybeRef(exp);
12391
12502
  const varRef = declaration;
12392
12503
  let increment = "++", indexAssignment, assignmentNames = [...varRef.names];
12393
12504
  if (index) {
@@ -12496,7 +12607,7 @@ ${input.slice(result.pos)}
12496
12607
  return result;
12497
12608
  }
12498
12609
  }
12499
- var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L103, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
12610
+ var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L102, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
12500
12611
  var own = $1;
12501
12612
  var binding = $2;
12502
12613
  return {
@@ -12542,39 +12653,11 @@ ${input.slice(result.pos)}
12542
12653
  children: $0
12543
12654
  };
12544
12655
  });
12545
- var ForStatementParameters$2 = $TS($S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12546
- var open = $2;
12547
- var declaration = $4;
12548
- var op = $6;
12549
- var exp = $7;
12550
- var step = $8;
12551
- var close = $10;
12552
- if (exp.type === "RangeExpression" && op.token === "of") {
12553
- return forRange(open, declaration, exp, step, close);
12554
- } else if (step) {
12555
- throw new Error("for..of/in cannot use 'by' except with range literals");
12556
- }
12557
- return {
12558
- declaration,
12559
- children: $0
12560
- };
12656
+ var ForStatementParameters$2 = $TS($S($E($S(Await, __)), $E($S(Each, __)), $S(OpenParen, __), ForInOfDeclaration, $E($S(__, Comma, __, ForInOfDeclaration)), __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12657
+ return processForInOf($0);
12561
12658
  });
12562
- var ForStatementParameters$3 = $TS($S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
12563
- var open = $2;
12564
- var declaration = $3;
12565
- var op = $5;
12566
- var exp = $6;
12567
- var step = $7;
12568
- var close = $8;
12569
- if (exp.type === "RangeExpression" && op.token === "of") {
12570
- return forRange(open, declaration, exp, step, close);
12571
- } else if (step) {
12572
- throw new Error("for..of/in cannot use 'by' except with range literals");
12573
- }
12574
- return {
12575
- declaration,
12576
- children: $0
12577
- };
12659
+ var ForStatementParameters$3 = $TS($S($E($S(Await, __)), $E($S(Each, __)), InsertOpenParen, ForInOfDeclaration, $E($S(__, Comma, __, ForInOfDeclaration)), __, $C(In, Of), ExpressionWithObjectApplicationForbidden, $E($S(__, By, ExpressionWithObjectApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
12660
+ return processForInOf($0);
12578
12661
  });
12579
12662
  var ForStatementParameters$4 = ForRangeParameters;
12580
12663
  function ForStatementParameters(state) {
@@ -12641,6 +12724,7 @@ ${input.slice(result.pos)}
12641
12724
  type: "ForDeclaration",
12642
12725
  children: $0,
12643
12726
  declare: $1,
12727
+ binding,
12644
12728
  names: binding.names
12645
12729
  };
12646
12730
  });
@@ -12675,16 +12759,18 @@ ${input.slice(result.pos)}
12675
12759
  type: "ForDeclaration",
12676
12760
  children: [c, binding],
12677
12761
  declare: c,
12762
+ binding,
12678
12763
  names: binding.names
12679
12764
  };
12680
12765
  });
12681
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R10, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
12766
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R10, fail, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
12682
12767
  var c = $1;
12683
12768
  var binding = $2;
12684
12769
  return {
12685
12770
  type: "ForDeclaration",
12686
12771
  children: [c, binding],
12687
12772
  declare: c,
12773
+ binding,
12688
12774
  names: binding.names
12689
12775
  };
12690
12776
  });
@@ -13419,10 +13505,7 @@ ${input.slice(result.pos)}
13419
13505
  }
13420
13506
  var DeclarationCondition$0 = $TV(LexicalDeclaration, function($skip, $loc, $0, $1) {
13421
13507
  var dec = $0;
13422
- const ref = {
13423
- type: "Ref",
13424
- base: "ref"
13425
- };
13508
+ const ref = makeRef();
13426
13509
  const { decl, bindings } = dec;
13427
13510
  const binding = bindings[0];
13428
13511
  const { pattern, suffix, initializer, splices, thisAssignments } = binding;
@@ -14153,7 +14236,7 @@ ${input.slice(result.pos)}
14153
14236
  return result;
14154
14237
  }
14155
14238
  }
14156
- var Break$0 = $TS($S($EXPECT($L104, fail, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14239
+ var Break$0 = $TS($S($EXPECT($L103, fail, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14157
14240
  return { $loc, token: $1 };
14158
14241
  });
14159
14242
  function Break(state) {
@@ -14178,7 +14261,7 @@ ${input.slice(result.pos)}
14178
14261
  return result;
14179
14262
  }
14180
14263
  }
14181
- var Continue$0 = $TS($S($EXPECT($L105, fail, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14264
+ var Continue$0 = $TS($S($EXPECT($L104, fail, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14182
14265
  return { $loc, token: $1 };
14183
14266
  });
14184
14267
  function Continue(state) {
@@ -14203,7 +14286,7 @@ ${input.slice(result.pos)}
14203
14286
  return result;
14204
14287
  }
14205
14288
  }
14206
- var Debugger$0 = $TS($S($EXPECT($L106, fail, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14289
+ var Debugger$0 = $TS($S($EXPECT($L105, fail, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14207
14290
  return { $loc, token: $1 };
14208
14291
  });
14209
14292
  function Debugger(state) {
@@ -14509,7 +14592,7 @@ ${input.slice(result.pos)}
14509
14592
  return result;
14510
14593
  }
14511
14594
  }
14512
- var ImportAssertion$0 = $S($E(_), $EXPECT($L107, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
14595
+ var ImportAssertion$0 = $S($E(_), $EXPECT($L106, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
14513
14596
  function ImportAssertion(state) {
14514
14597
  let eventData;
14515
14598
  if (state.events) {
@@ -15079,7 +15162,7 @@ ${input.slice(result.pos)}
15079
15162
  return result;
15080
15163
  }
15081
15164
  }
15082
- var ConstAssignment$0 = $TV($C($EXPECT($L108, fail, 'ConstAssignment ":="'), $EXPECT($L109, fail, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
15165
+ var ConstAssignment$0 = $TV($C($EXPECT($L107, fail, 'ConstAssignment ":="'), $EXPECT($L108, fail, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
15083
15166
  return { $loc, token: "=" };
15084
15167
  });
15085
15168
  function ConstAssignment(state) {
@@ -15104,7 +15187,7 @@ ${input.slice(result.pos)}
15104
15187
  return result;
15105
15188
  }
15106
15189
  }
15107
- var LetAssignment$0 = $TV($EXPECT($L110, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
15190
+ var LetAssignment$0 = $TV($EXPECT($L109, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
15108
15191
  return { $loc, token: "=" };
15109
15192
  });
15110
15193
  function LetAssignment(state) {
@@ -15750,7 +15833,7 @@ ${input.slice(result.pos)}
15750
15833
  }
15751
15834
  }
15752
15835
  var RegularExpressionLiteral$0 = HeregexLiteral;
15753
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L56, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L56, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
15836
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L55, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L55, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
15754
15837
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
15755
15838
  });
15756
15839
  function RegularExpressionLiteral(state) {
@@ -16317,7 +16400,7 @@ ${input.slice(result.pos)}
16317
16400
  return result;
16318
16401
  }
16319
16402
  }
16320
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L111, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L112, fail, 'JSMultiLineComment "*/"')), $EXPECT($R42, fail, "JSMultiLineComment /./"))), $EXPECT($L112, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16403
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L110, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L111, fail, 'JSMultiLineComment "*/"')), $EXPECT($R42, fail, "JSMultiLineComment /./"))), $EXPECT($L111, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16321
16404
  return { type: "Comment", $loc, token: $1 };
16322
16405
  });
16323
16406
  function JSMultiLineComment(state) {
@@ -16416,7 +16499,7 @@ ${input.slice(result.pos)}
16416
16499
  return result;
16417
16500
  }
16418
16501
  }
16419
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L111, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L112, fail, 'InlineComment "*/"')), $EXPECT($R46, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L112, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
16502
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L110, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L111, fail, 'InlineComment "*/"')), $EXPECT($R46, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L111, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
16420
16503
  return { $loc, token: $1 };
16421
16504
  });
16422
16505
  function InlineComment(state) {
@@ -16513,7 +16596,7 @@ ${input.slice(result.pos)}
16513
16596
  var NonNewlineWhitespace$0 = $TR($EXPECT($R47, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16514
16597
  return { $loc, token: $0 };
16515
16598
  });
16516
- var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L113, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
16599
+ var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L112, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
16517
16600
  return "";
16518
16601
  });
16519
16602
  function NonNewlineWhitespace(state) {
@@ -16665,7 +16748,7 @@ ${input.slice(result.pos)}
16665
16748
  }
16666
16749
  }
16667
16750
  var StatementDelimiter$0 = SemicolonDelimiter;
16668
- var StatementDelimiter$1 = $S($Y($S(Nested, $C($EXPECT($L4, fail, 'StatementDelimiter "("'), $EXPECT($L114, fail, 'StatementDelimiter "["'), $EXPECT($L115, fail, 'StatementDelimiter "`"'), $EXPECT($L59, fail, 'StatementDelimiter "+"'), $EXPECT($L20, fail, 'StatementDelimiter "-"'), $EXPECT($L55, fail, 'StatementDelimiter "*"'), $EXPECT($L56, fail, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, FatArrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L4, fail, 'StatementDelimiter "("'))))), InsertSemicolon);
16751
+ var StatementDelimiter$1 = $S($Y($S(Nested, $C($EXPECT($L4, fail, 'StatementDelimiter "("'), $EXPECT($L113, fail, 'StatementDelimiter "["'), $EXPECT($L114, fail, 'StatementDelimiter "`"'), $EXPECT($L58, fail, 'StatementDelimiter "+"'), $EXPECT($L19, fail, 'StatementDelimiter "-"'), $EXPECT($L54, fail, 'StatementDelimiter "*"'), $EXPECT($L55, fail, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, FatArrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L4, fail, 'StatementDelimiter "("'))))), InsertSemicolon);
16669
16752
  var StatementDelimiter$2 = $Y(EOS);
16670
16753
  function StatementDelimiter(state) {
16671
16754
  let eventData;
@@ -16765,7 +16848,7 @@ ${input.slice(result.pos)}
16765
16848
  return result;
16766
16849
  }
16767
16850
  }
16768
- var Abstract$0 = $TV($TEXT($S($EXPECT($L116, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L11, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
16851
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L115, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L11, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
16769
16852
  return { $loc, token: $1, ts: true };
16770
16853
  });
16771
16854
  function Abstract(state) {
@@ -16790,7 +16873,7 @@ ${input.slice(result.pos)}
16790
16873
  return result;
16791
16874
  }
16792
16875
  }
16793
- var Ampersand$0 = $TV($EXPECT($L99, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
16876
+ var Ampersand$0 = $TV($EXPECT($L98, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
16794
16877
  return { $loc, token: $1 };
16795
16878
  });
16796
16879
  function Ampersand(state) {
@@ -16815,7 +16898,7 @@ ${input.slice(result.pos)}
16815
16898
  return result;
16816
16899
  }
16817
16900
  }
16818
- var As$0 = $TS($S($EXPECT($L117, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16901
+ var As$0 = $TS($S($EXPECT($L116, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16819
16902
  return { $loc, token: $1 };
16820
16903
  });
16821
16904
  function As(state) {
@@ -16840,7 +16923,7 @@ ${input.slice(result.pos)}
16840
16923
  return result;
16841
16924
  }
16842
16925
  }
16843
- var At$0 = $TV($EXPECT($L118, fail, 'At "@"'), function($skip, $loc, $0, $1) {
16926
+ var At$0 = $TV($EXPECT($L117, fail, 'At "@"'), function($skip, $loc, $0, $1) {
16844
16927
  return { $loc, token: $1 };
16845
16928
  });
16846
16929
  function At(state) {
@@ -16865,7 +16948,7 @@ ${input.slice(result.pos)}
16865
16948
  return result;
16866
16949
  }
16867
16950
  }
16868
- var AtAt$0 = $TV($EXPECT($L119, fail, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
16951
+ var AtAt$0 = $TV($EXPECT($L118, fail, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
16869
16952
  return { $loc, token: "@" };
16870
16953
  });
16871
16954
  function AtAt(state) {
@@ -16890,7 +16973,7 @@ ${input.slice(result.pos)}
16890
16973
  return result;
16891
16974
  }
16892
16975
  }
16893
- var Async$0 = $TS($S($EXPECT($L120, fail, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16976
+ var Async$0 = $TS($S($EXPECT($L119, fail, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16894
16977
  return { $loc, token: $1, type: "Async" };
16895
16978
  });
16896
16979
  function Async(state) {
@@ -16915,7 +16998,7 @@ ${input.slice(result.pos)}
16915
16998
  return result;
16916
16999
  }
16917
17000
  }
16918
- var Await$0 = $TS($S($EXPECT($L121, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17001
+ var Await$0 = $TS($S($EXPECT($L120, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16919
17002
  return { $loc, token: $1, type: "Await" };
16920
17003
  });
16921
17004
  function Await(state) {
@@ -16940,7 +17023,7 @@ ${input.slice(result.pos)}
16940
17023
  return result;
16941
17024
  }
16942
17025
  }
16943
- var Backtick$0 = $TV($EXPECT($L115, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
17026
+ var Backtick$0 = $TV($EXPECT($L114, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
16944
17027
  return { $loc, token: $1 };
16945
17028
  });
16946
17029
  function Backtick(state) {
@@ -16965,7 +17048,7 @@ ${input.slice(result.pos)}
16965
17048
  return result;
16966
17049
  }
16967
17050
  }
16968
- var By$0 = $TS($S($EXPECT($L122, fail, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17051
+ var By$0 = $TS($S($EXPECT($L121, fail, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16969
17052
  return { $loc, token: $1 };
16970
17053
  });
16971
17054
  function By(state) {
@@ -16990,7 +17073,7 @@ ${input.slice(result.pos)}
16990
17073
  return result;
16991
17074
  }
16992
17075
  }
16993
- var Case$0 = $TS($S($EXPECT($L123, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17076
+ var Case$0 = $TS($S($EXPECT($L122, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16994
17077
  return { $loc, token: $1 };
16995
17078
  });
16996
17079
  function Case(state) {
@@ -17015,7 +17098,7 @@ ${input.slice(result.pos)}
17015
17098
  return result;
17016
17099
  }
17017
17100
  }
17018
- var Catch$0 = $TS($S($EXPECT($L124, fail, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17101
+ var Catch$0 = $TS($S($EXPECT($L123, fail, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17019
17102
  return { $loc, token: $1 };
17020
17103
  });
17021
17104
  function Catch(state) {
@@ -17040,7 +17123,7 @@ ${input.slice(result.pos)}
17040
17123
  return result;
17041
17124
  }
17042
17125
  }
17043
- var Class$0 = $TS($S($EXPECT($L125, fail, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17126
+ var Class$0 = $TS($S($EXPECT($L124, fail, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17044
17127
  return { $loc, token: $1 };
17045
17128
  });
17046
17129
  function Class(state) {
@@ -17065,7 +17148,7 @@ ${input.slice(result.pos)}
17065
17148
  return result;
17066
17149
  }
17067
17150
  }
17068
- var CloseBrace$0 = $TV($EXPECT($L26, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
17151
+ var CloseBrace$0 = $TV($EXPECT($L25, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
17069
17152
  return { $loc, token: $1 };
17070
17153
  });
17071
17154
  function CloseBrace(state) {
@@ -17090,7 +17173,7 @@ ${input.slice(result.pos)}
17090
17173
  return result;
17091
17174
  }
17092
17175
  }
17093
- var CloseBracket$0 = $TV($EXPECT($L35, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
17176
+ var CloseBracket$0 = $TV($EXPECT($L34, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
17094
17177
  return { $loc, token: $1 };
17095
17178
  });
17096
17179
  function CloseBracket(state) {
@@ -17115,7 +17198,7 @@ ${input.slice(result.pos)}
17115
17198
  return result;
17116
17199
  }
17117
17200
  }
17118
- var CloseParen$0 = $TV($EXPECT($L126, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
17201
+ var CloseParen$0 = $TV($EXPECT($L125, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
17119
17202
  return { $loc, token: $1 };
17120
17203
  });
17121
17204
  function CloseParen(state) {
@@ -17140,7 +17223,7 @@ ${input.slice(result.pos)}
17140
17223
  return result;
17141
17224
  }
17142
17225
  }
17143
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L127, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
17226
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L126, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
17144
17227
  return { $loc, token: "${" };
17145
17228
  });
17146
17229
  function CoffeeSubstitutionStart(state) {
@@ -17190,7 +17273,7 @@ ${input.slice(result.pos)}
17190
17273
  return result;
17191
17274
  }
17192
17275
  }
17193
- var Comma$0 = $TV($EXPECT($L23, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
17276
+ var Comma$0 = $TV($EXPECT($L22, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
17194
17277
  return { $loc, token: $1 };
17195
17278
  });
17196
17279
  function Comma(state) {
@@ -17215,7 +17298,7 @@ ${input.slice(result.pos)}
17215
17298
  return result;
17216
17299
  }
17217
17300
  }
17218
- var ConstructorShorthand$0 = $TV($EXPECT($L118, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
17301
+ var ConstructorShorthand$0 = $TV($EXPECT($L117, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
17219
17302
  return { $loc, token: "constructor" };
17220
17303
  });
17221
17304
  function ConstructorShorthand(state) {
@@ -17240,7 +17323,7 @@ ${input.slice(result.pos)}
17240
17323
  return result;
17241
17324
  }
17242
17325
  }
17243
- var Declare$0 = $TS($S($EXPECT($L128, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17326
+ var Declare$0 = $TS($S($EXPECT($L127, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17244
17327
  return { $loc, token: $1 };
17245
17328
  });
17246
17329
  function Declare(state) {
@@ -17265,7 +17348,7 @@ ${input.slice(result.pos)}
17265
17348
  return result;
17266
17349
  }
17267
17350
  }
17268
- var Default$0 = $TS($S($EXPECT($L129, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17351
+ var Default$0 = $TS($S($EXPECT($L128, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17269
17352
  return { $loc, token: $1 };
17270
17353
  });
17271
17354
  function Default(state) {
@@ -17290,7 +17373,7 @@ ${input.slice(result.pos)}
17290
17373
  return result;
17291
17374
  }
17292
17375
  }
17293
- var Delete$0 = $TS($S($EXPECT($L130, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17376
+ var Delete$0 = $TS($S($EXPECT($L129, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17294
17377
  return { $loc, token: $1 };
17295
17378
  });
17296
17379
  function Delete(state) {
@@ -17315,7 +17398,7 @@ ${input.slice(result.pos)}
17315
17398
  return result;
17316
17399
  }
17317
17400
  }
17318
- var Do$0 = $TS($S($EXPECT($L131, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17401
+ var Do$0 = $TS($S($EXPECT($L130, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17319
17402
  return { $loc, token: $1 };
17320
17403
  });
17321
17404
  function Do(state) {
@@ -17372,10 +17455,10 @@ ${input.slice(result.pos)}
17372
17455
  return result;
17373
17456
  }
17374
17457
  }
17375
- var DotDot$0 = $TS($S($EXPECT($L132, fail, 'DotDot ".."'), $N($EXPECT($L6, fail, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
17458
+ var DotDot$0 = $TS($S($EXPECT($L131, fail, 'DotDot ".."'), $N($EXPECT($L6, fail, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
17376
17459
  return { $loc, token: $1 };
17377
17460
  });
17378
- var DotDot$1 = $TV($EXPECT($L133, fail, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
17461
+ var DotDot$1 = $TV($EXPECT($L132, fail, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
17379
17462
  return { $loc, token: ".." };
17380
17463
  });
17381
17464
  function DotDot(state) {
@@ -17400,10 +17483,10 @@ ${input.slice(result.pos)}
17400
17483
  return result;
17401
17484
  }
17402
17485
  }
17403
- var DotDotDot$0 = $TV($EXPECT($L134, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
17486
+ var DotDotDot$0 = $TV($EXPECT($L133, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
17404
17487
  return { $loc, token: $1 };
17405
17488
  });
17406
- var DotDotDot$1 = $TV($EXPECT($L135, fail, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
17489
+ var DotDotDot$1 = $TV($EXPECT($L134, fail, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
17407
17490
  return { $loc, token: "..." };
17408
17491
  });
17409
17492
  function DotDotDot(state) {
@@ -17428,7 +17511,7 @@ ${input.slice(result.pos)}
17428
17511
  return result;
17429
17512
  }
17430
17513
  }
17431
- var DoubleColon$0 = $TV($EXPECT($L136, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
17514
+ var DoubleColon$0 = $TV($EXPECT($L135, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
17432
17515
  return { $loc, token: $1 };
17433
17516
  });
17434
17517
  function DoubleColon(state) {
@@ -17453,7 +17536,7 @@ ${input.slice(result.pos)}
17453
17536
  return result;
17454
17537
  }
17455
17538
  }
17456
- var DoubleQuote$0 = $TV($EXPECT($L137, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
17539
+ var DoubleQuote$0 = $TV($EXPECT($L136, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
17457
17540
  return { $loc, token: $1 };
17458
17541
  });
17459
17542
  function DoubleQuote(state) {
@@ -17478,6 +17561,31 @@ ${input.slice(result.pos)}
17478
17561
  return result;
17479
17562
  }
17480
17563
  }
17564
+ var Each$0 = $TS($S($EXPECT($L137, fail, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17565
+ return { $loc, token: $1 };
17566
+ });
17567
+ function Each(state) {
17568
+ let eventData;
17569
+ if (state.events) {
17570
+ const result = state.events.enter?.("Each", state);
17571
+ if (result) {
17572
+ if (result.cache)
17573
+ return result.cache;
17574
+ eventData = result.data;
17575
+ }
17576
+ }
17577
+ if (state.tokenize) {
17578
+ const result = $TOKEN("Each", state, Each$0(state));
17579
+ if (state.events)
17580
+ state.events.exit?.("Each", state, result, eventData);
17581
+ return result;
17582
+ } else {
17583
+ const result = Each$0(state);
17584
+ if (state.events)
17585
+ state.events.exit?.("Each", state, result, eventData);
17586
+ return result;
17587
+ }
17588
+ }
17481
17589
  var Else$0 = $TS($S($EXPECT($L138, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17482
17590
  return { $loc, token: $1 };
17483
17591
  });
@@ -17728,7 +17836,7 @@ ${input.slice(result.pos)}
17728
17836
  return result;
17729
17837
  }
17730
17838
  }
17731
- var Import$0 = $TS($S($EXPECT($L17, fail, 'Import "import"'), $Y($EXPECT($R50, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17839
+ var Import$0 = $TS($S($EXPECT($L16, fail, 'Import "import"'), $Y($EXPECT($R50, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17732
17840
  return { $loc, token: $1 };
17733
17841
  });
17734
17842
  function Import(state) {
@@ -17952,7 +18060,7 @@ ${input.slice(result.pos)}
17952
18060
  return result;
17953
18061
  }
17954
18062
  }
17955
- var Of$0 = $TS($S($EXPECT($L85, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18063
+ var Of$0 = $TS($S($EXPECT($L84, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
17956
18064
  return { $loc, token: $1 };
17957
18065
  });
17958
18066
  function Of(state) {
@@ -18027,7 +18135,7 @@ ${input.slice(result.pos)}
18027
18135
  return result;
18028
18136
  }
18029
18137
  }
18030
- var OpenBracket$0 = $TV($EXPECT($L114, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
18138
+ var OpenBracket$0 = $TV($EXPECT($L113, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
18031
18139
  return { $loc, token: $1 };
18032
18140
  });
18033
18141
  function OpenBracket(state) {
@@ -18308,7 +18416,7 @@ ${input.slice(result.pos)}
18308
18416
  return result;
18309
18417
  }
18310
18418
  }
18311
- var Semicolon$0 = $TV($EXPECT($L101, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
18419
+ var Semicolon$0 = $TV($EXPECT($L100, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
18312
18420
  return { $loc, token: $1 };
18313
18421
  });
18314
18422
  function Semicolon(state) {
@@ -18358,7 +18466,7 @@ ${input.slice(result.pos)}
18358
18466
  return result;
18359
18467
  }
18360
18468
  }
18361
- var Star$0 = $TV($EXPECT($L55, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
18469
+ var Star$0 = $TV($EXPECT($L54, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
18362
18470
  return { $loc, token: $1 };
18363
18471
  });
18364
18472
  function Star(state) {
@@ -18386,7 +18494,7 @@ ${input.slice(result.pos)}
18386
18494
  var Static$0 = $TS($S($EXPECT($L170, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18387
18495
  return { $loc, token: $1 };
18388
18496
  });
18389
- var Static$1 = $TS($S($EXPECT($L118, fail, 'Static "@"'), $N($C($EXPECT($L4, fail, 'Static "("'), $EXPECT($L118, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
18497
+ var Static$1 = $TS($S($EXPECT($L117, fail, 'Static "@"'), $N($C($EXPECT($L4, fail, 'Static "("'), $EXPECT($L117, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
18390
18498
  return { $loc, token: "static " };
18391
18499
  });
18392
18500
  function Static(state) {
@@ -18436,7 +18544,32 @@ ${input.slice(result.pos)}
18436
18544
  return result;
18437
18545
  }
18438
18546
  }
18439
- var Switch$0 = $TS($S($EXPECT($L172, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18547
+ var Super$0 = $TS($S($EXPECT($L172, fail, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18548
+ return { $loc, token: $1 };
18549
+ });
18550
+ function Super(state) {
18551
+ let eventData;
18552
+ if (state.events) {
18553
+ const result = state.events.enter?.("Super", state);
18554
+ if (result) {
18555
+ if (result.cache)
18556
+ return result.cache;
18557
+ eventData = result.data;
18558
+ }
18559
+ }
18560
+ if (state.tokenize) {
18561
+ const result = $TOKEN("Super", state, Super$0(state));
18562
+ if (state.events)
18563
+ state.events.exit?.("Super", state, result, eventData);
18564
+ return result;
18565
+ } else {
18566
+ const result = Super$0(state);
18567
+ if (state.events)
18568
+ state.events.exit?.("Super", state, result, eventData);
18569
+ return result;
18570
+ }
18571
+ }
18572
+ var Switch$0 = $TS($S($EXPECT($L173, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18440
18573
  return { $loc, token: $1 };
18441
18574
  });
18442
18575
  function Switch(state) {
@@ -18461,7 +18594,7 @@ ${input.slice(result.pos)}
18461
18594
  return result;
18462
18595
  }
18463
18596
  }
18464
- var Target$0 = $TS($S($EXPECT($L173, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18597
+ var Target$0 = $TS($S($EXPECT($L174, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18465
18598
  return { $loc, token: $1 };
18466
18599
  });
18467
18600
  function Target(state) {
@@ -18486,7 +18619,7 @@ ${input.slice(result.pos)}
18486
18619
  return result;
18487
18620
  }
18488
18621
  }
18489
- var Then$0 = $TS($S(__, $EXPECT($L174, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
18622
+ var Then$0 = $TS($S(__, $EXPECT($L175, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
18490
18623
  return { $loc, token: "" };
18491
18624
  });
18492
18625
  function Then(state) {
@@ -18511,7 +18644,7 @@ ${input.slice(result.pos)}
18511
18644
  return result;
18512
18645
  }
18513
18646
  }
18514
- var This$0 = $TS($S($EXPECT($L175, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18647
+ var This$0 = $TS($S($EXPECT($L176, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18515
18648
  return { $loc, token: $1 };
18516
18649
  });
18517
18650
  function This(state) {
@@ -18536,7 +18669,7 @@ ${input.slice(result.pos)}
18536
18669
  return result;
18537
18670
  }
18538
18671
  }
18539
- var Throw$0 = $TS($S($EXPECT($L176, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18672
+ var Throw$0 = $TS($S($EXPECT($L177, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18540
18673
  return { $loc, token: $1 };
18541
18674
  });
18542
18675
  function Throw(state) {
@@ -18561,7 +18694,7 @@ ${input.slice(result.pos)}
18561
18694
  return result;
18562
18695
  }
18563
18696
  }
18564
- var TripleDoubleQuote$0 = $TV($EXPECT($L177, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
18697
+ var TripleDoubleQuote$0 = $TV($EXPECT($L178, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
18565
18698
  return { $loc, token: "`" };
18566
18699
  });
18567
18700
  function TripleDoubleQuote(state) {
@@ -18586,7 +18719,7 @@ ${input.slice(result.pos)}
18586
18719
  return result;
18587
18720
  }
18588
18721
  }
18589
- var TripleSingleQuote$0 = $TV($EXPECT($L178, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
18722
+ var TripleSingleQuote$0 = $TV($EXPECT($L179, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
18590
18723
  return { $loc, token: "`" };
18591
18724
  });
18592
18725
  function TripleSingleQuote(state) {
@@ -18611,7 +18744,7 @@ ${input.slice(result.pos)}
18611
18744
  return result;
18612
18745
  }
18613
18746
  }
18614
- var TripleSlash$0 = $TV($EXPECT($L179, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
18747
+ var TripleSlash$0 = $TV($EXPECT($L180, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
18615
18748
  return { $loc, token: "/" };
18616
18749
  });
18617
18750
  function TripleSlash(state) {
@@ -18636,7 +18769,7 @@ ${input.slice(result.pos)}
18636
18769
  return result;
18637
18770
  }
18638
18771
  }
18639
- var TripleTick$0 = $TV($EXPECT($L180, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
18772
+ var TripleTick$0 = $TV($EXPECT($L181, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
18640
18773
  return { $loc, token: "`" };
18641
18774
  });
18642
18775
  function TripleTick(state) {
@@ -18661,7 +18794,7 @@ ${input.slice(result.pos)}
18661
18794
  return result;
18662
18795
  }
18663
18796
  }
18664
- var Try$0 = $TS($S($EXPECT($L181, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18797
+ var Try$0 = $TS($S($EXPECT($L182, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18665
18798
  return { $loc, token: $1 };
18666
18799
  });
18667
18800
  function Try(state) {
@@ -18686,7 +18819,7 @@ ${input.slice(result.pos)}
18686
18819
  return result;
18687
18820
  }
18688
18821
  }
18689
- var Typeof$0 = $TS($S($EXPECT($L182, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18822
+ var Typeof$0 = $TS($S($EXPECT($L183, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18690
18823
  return { $loc, token: $1 };
18691
18824
  });
18692
18825
  function Typeof(state) {
@@ -18711,7 +18844,7 @@ ${input.slice(result.pos)}
18711
18844
  return result;
18712
18845
  }
18713
18846
  }
18714
- var Unless$0 = $TS($S($EXPECT($L183, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18847
+ var Unless$0 = $TS($S($EXPECT($L184, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18715
18848
  return { $loc, token: $1 };
18716
18849
  });
18717
18850
  function Unless(state) {
@@ -18736,7 +18869,7 @@ ${input.slice(result.pos)}
18736
18869
  return result;
18737
18870
  }
18738
18871
  }
18739
- var Until$0 = $TS($S($EXPECT($L184, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18872
+ var Until$0 = $TS($S($EXPECT($L185, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18740
18873
  return { $loc, token: $1 };
18741
18874
  });
18742
18875
  function Until(state) {
@@ -18761,7 +18894,7 @@ ${input.slice(result.pos)}
18761
18894
  return result;
18762
18895
  }
18763
18896
  }
18764
- var Var$0 = $TS($S($EXPECT($L185, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18897
+ var Var$0 = $TS($S($EXPECT($L186, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18765
18898
  return { $loc, token: $1 };
18766
18899
  });
18767
18900
  function Var(state) {
@@ -18786,7 +18919,7 @@ ${input.slice(result.pos)}
18786
18919
  return result;
18787
18920
  }
18788
18921
  }
18789
- var Void$0 = $TS($S($EXPECT($L186, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18922
+ var Void$0 = $TS($S($EXPECT($L187, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18790
18923
  return { $loc, token: $1 };
18791
18924
  });
18792
18925
  function Void(state) {
@@ -18811,7 +18944,7 @@ ${input.slice(result.pos)}
18811
18944
  return result;
18812
18945
  }
18813
18946
  }
18814
- var When$0 = $TS($S($EXPECT($L187, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18947
+ var When$0 = $TS($S($EXPECT($L188, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18815
18948
  return { $loc, token: "case" };
18816
18949
  });
18817
18950
  function When(state) {
@@ -18836,7 +18969,7 @@ ${input.slice(result.pos)}
18836
18969
  return result;
18837
18970
  }
18838
18971
  }
18839
- var While$0 = $TS($S($EXPECT($L188, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18972
+ var While$0 = $TS($S($EXPECT($L189, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18840
18973
  return { $loc, token: $1 };
18841
18974
  });
18842
18975
  function While(state) {
@@ -18861,7 +18994,7 @@ ${input.slice(result.pos)}
18861
18994
  return result;
18862
18995
  }
18863
18996
  }
18864
- var Yield$0 = $TS($S($EXPECT($L189, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18997
+ var Yield$0 = $TS($S($EXPECT($L190, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
18865
18998
  return { $loc, token: $1, type: "Yield" };
18866
18999
  });
18867
19000
  function Yield(state) {
@@ -19006,7 +19139,7 @@ ${input.slice(result.pos)}
19006
19139
  return result;
19007
19140
  }
19008
19141
  }
19009
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L155, fail, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L190, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
19142
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L155, fail, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L191, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
19010
19143
  return { type: "JSXElement", children: $0, tag: $2 };
19011
19144
  });
19012
19145
  function JSXSelfClosingElement(state) {
@@ -19082,7 +19215,7 @@ ${input.slice(result.pos)}
19082
19215
  return result;
19083
19216
  }
19084
19217
  }
19085
- var JSXOpeningElement$0 = $S($EXPECT($L155, fail, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L34, fail, 'JSXOpeningElement ">"'));
19218
+ var JSXOpeningElement$0 = $S($EXPECT($L155, fail, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L33, fail, 'JSXOpeningElement ">"'));
19086
19219
  function JSXOpeningElement(state) {
19087
19220
  let eventData;
19088
19221
  if (state.events) {
@@ -19134,7 +19267,7 @@ ${input.slice(result.pos)}
19134
19267
  return result;
19135
19268
  }
19136
19269
  }
19137
- var JSXClosingElement$0 = $S($EXPECT($L191, fail, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L34, fail, 'JSXClosingElement ">"'));
19270
+ var JSXClosingElement$0 = $S($EXPECT($L192, fail, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L33, fail, 'JSXClosingElement ">"'));
19138
19271
  function JSXClosingElement(state) {
19139
19272
  let eventData;
19140
19273
  if (state.events) {
@@ -19172,7 +19305,7 @@ ${input.slice(result.pos)}
19172
19305
  ];
19173
19306
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
19174
19307
  });
19175
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L192, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
19308
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L193, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
19176
19309
  var children = $3;
19177
19310
  $0 = $0.slice(1);
19178
19311
  return {
@@ -19203,7 +19336,7 @@ ${input.slice(result.pos)}
19203
19336
  return result;
19204
19337
  }
19205
19338
  }
19206
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L192, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
19339
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L193, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
19207
19340
  module.JSXTagStack.push("");
19208
19341
  return $1;
19209
19342
  });
@@ -19257,7 +19390,7 @@ ${input.slice(result.pos)}
19257
19390
  return result;
19258
19391
  }
19259
19392
  }
19260
- var JSXClosingFragment$0 = $EXPECT($L193, fail, 'JSXClosingFragment "</>"');
19393
+ var JSXClosingFragment$0 = $EXPECT($L194, fail, 'JSXClosingFragment "</>"');
19261
19394
  function JSXClosingFragment(state) {
19262
19395
  let eventData;
19263
19396
  if (state.events) {
@@ -19837,7 +19970,7 @@ ${input.slice(result.pos)}
19837
19970
  return result;
19838
19971
  }
19839
19972
  }
19840
- var InlineJSXCallExpression$0 = $TS($S($EXPECT($L16, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
19973
+ var InlineJSXCallExpression$0 = $TS($S(Super, ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
19841
19974
  var args = $2;
19842
19975
  var rest = $3;
19843
19976
  return processCallMemberExpression({
@@ -19849,7 +19982,7 @@ ${input.slice(result.pos)}
19849
19982
  ]
19850
19983
  });
19851
19984
  });
19852
- var InlineJSXCallExpression$1 = $TS($S($EXPECT($L17, fail, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
19985
+ var InlineJSXCallExpression$1 = $TS($S($EXPECT($L16, fail, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
19853
19986
  var args = $2;
19854
19987
  var rest = $3;
19855
19988
  return processCallMemberExpression({
@@ -20097,7 +20230,7 @@ ${input.slice(result.pos)}
20097
20230
  }
20098
20231
  return $skip;
20099
20232
  });
20100
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L26, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
20233
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L25, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
20101
20234
  return { children: [], jsxChildren: [] };
20102
20235
  });
20103
20236
  function JSXNestedChildren(state) {
@@ -20226,7 +20359,7 @@ ${input.slice(result.pos)}
20226
20359
  return result;
20227
20360
  }
20228
20361
  }
20229
- var JSXComment$0 = $TS($S($EXPECT($L194, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L195, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
20362
+ var JSXComment$0 = $TS($S($EXPECT($L195, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L196, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
20230
20363
  return ["{/*", $2, "*/}"];
20231
20364
  });
20232
20365
  function JSXComment(state) {
@@ -20555,7 +20688,7 @@ ${input.slice(result.pos)}
20555
20688
  return result;
20556
20689
  }
20557
20690
  }
20558
- var TypeKeyword$0 = $TS($S($EXPECT($L196, fail, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20691
+ var TypeKeyword$0 = $TS($S($EXPECT($L197, fail, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20559
20692
  return { $loc, token: $1 };
20560
20693
  });
20561
20694
  function TypeKeyword(state) {
@@ -20580,7 +20713,7 @@ ${input.slice(result.pos)}
20580
20713
  return result;
20581
20714
  }
20582
20715
  }
20583
- var Enum$0 = $TS($S($EXPECT($L197, fail, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20716
+ var Enum$0 = $TS($S($EXPECT($L198, fail, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20584
20717
  return { $loc, token: $1 };
20585
20718
  });
20586
20719
  function Enum(state) {
@@ -20605,7 +20738,7 @@ ${input.slice(result.pos)}
20605
20738
  return result;
20606
20739
  }
20607
20740
  }
20608
- var Interface$0 = $TS($S($EXPECT($L198, fail, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20741
+ var Interface$0 = $TS($S($EXPECT($L199, fail, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20609
20742
  return { $loc, token: $1 };
20610
20743
  });
20611
20744
  function Interface(state) {
@@ -20630,7 +20763,7 @@ ${input.slice(result.pos)}
20630
20763
  return result;
20631
20764
  }
20632
20765
  }
20633
- var Global$0 = $TS($S($EXPECT($L199, fail, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20766
+ var Global$0 = $TS($S($EXPECT($L200, fail, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20634
20767
  return { $loc, token: $1 };
20635
20768
  });
20636
20769
  function Global(state) {
@@ -20655,7 +20788,7 @@ ${input.slice(result.pos)}
20655
20788
  return result;
20656
20789
  }
20657
20790
  }
20658
- var Module$0 = $TS($S($EXPECT($L200, fail, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20791
+ var Module$0 = $TS($S($EXPECT($L201, fail, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20659
20792
  return { $loc, token: $1 };
20660
20793
  });
20661
20794
  function Module(state) {
@@ -20680,7 +20813,7 @@ ${input.slice(result.pos)}
20680
20813
  return result;
20681
20814
  }
20682
20815
  }
20683
- var Namespace$0 = $TS($S($EXPECT($L201, fail, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20816
+ var Namespace$0 = $TS($S($EXPECT($L202, fail, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
20684
20817
  return { $loc, token: $1 };
20685
20818
  });
20686
20819
  function Namespace(state) {
@@ -21374,7 +21507,7 @@ ${input.slice(result.pos)}
21374
21507
  return result;
21375
21508
  }
21376
21509
  }
21377
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L202, fail, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
21510
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L203, fail, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
21378
21511
  var asserts = $1;
21379
21512
  var t = $2;
21380
21513
  if (asserts) {
@@ -21556,9 +21689,9 @@ ${input.slice(result.pos)}
21556
21689
  return result;
21557
21690
  }
21558
21691
  }
21559
- var TypeUnaryOp$0 = $S($EXPECT($L203, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
21560
- var TypeUnaryOp$1 = $S($EXPECT($L182, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
21561
- var TypeUnaryOp$2 = $S($EXPECT($L204, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
21692
+ var TypeUnaryOp$0 = $S($EXPECT($L204, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
21693
+ var TypeUnaryOp$1 = $S($EXPECT($L183, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
21694
+ var TypeUnaryOp$2 = $S($EXPECT($L205, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
21562
21695
  var TypeUnaryOp$3 = $S($EXPECT($L166, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
21563
21696
  function TypeUnaryOp(state) {
21564
21697
  let eventData;
@@ -21650,8 +21783,8 @@ ${input.slice(result.pos)}
21650
21783
  return result;
21651
21784
  }
21652
21785
  }
21653
- var ImportType$0 = $S($EXPECT($L17, fail, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
21654
- var ImportType$1 = $S($EXPECT($L17, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
21786
+ var ImportType$0 = $S($EXPECT($L16, fail, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
21787
+ var ImportType$1 = $S($EXPECT($L16, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
21655
21788
  function ImportType(state) {
21656
21789
  let eventData;
21657
21790
  if (state.events) {
@@ -21954,10 +22087,10 @@ ${input.slice(result.pos)}
21954
22087
  }
21955
22088
  var TypeLiteral$0 = TypeTemplateLiteral;
21956
22089
  var TypeLiteral$1 = Literal;
21957
- var TypeLiteral$2 = $TS($S($EXPECT($L186, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
22090
+ var TypeLiteral$2 = $TS($S($EXPECT($L187, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
21958
22091
  return { type: "VoidType", $loc, token: $1 };
21959
22092
  });
21960
- var TypeLiteral$3 = $TV($EXPECT($L205, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
22093
+ var TypeLiteral$3 = $TV($EXPECT($L206, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
21961
22094
  return { $loc, token: "[]" };
21962
22095
  });
21963
22096
  function TypeLiteral(state) {
@@ -22032,7 +22165,7 @@ ${input.slice(result.pos)}
22032
22165
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
22033
22166
  return value[1];
22034
22167
  });
22035
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L12, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L126, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L35, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L26, fail, 'InlineInterfacePropertyDelimiter "}"'))));
22168
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L12, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L125, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L34, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L25, fail, 'InlineInterfacePropertyDelimiter "}"'))));
22036
22169
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
22037
22170
  function InlineInterfacePropertyDelimiter(state) {
22038
22171
  let eventData;
@@ -22056,10 +22189,10 @@ ${input.slice(result.pos)}
22056
22189
  return result;
22057
22190
  }
22058
22191
  }
22059
- var TypeBinaryOp$0 = $TV($EXPECT($L100, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
22192
+ var TypeBinaryOp$0 = $TV($EXPECT($L99, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
22060
22193
  return { $loc, token: "|" };
22061
22194
  });
22062
- var TypeBinaryOp$1 = $TV($EXPECT($L99, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
22195
+ var TypeBinaryOp$1 = $TV($EXPECT($L98, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
22063
22196
  return { $loc, token: "&" };
22064
22197
  });
22065
22198
  function TypeBinaryOp(state) {
@@ -22113,7 +22246,7 @@ ${input.slice(result.pos)}
22113
22246
  return result;
22114
22247
  }
22115
22248
  }
22116
- var TypeArrowFunction$0 = $TV($C($EXPECT($L9, fail, 'TypeArrowFunction "=>"'), $EXPECT($L10, fail, 'TypeArrowFunction "\u21D2"'), $EXPECT($L24, fail, 'TypeArrowFunction "->"'), $EXPECT($L25, fail, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
22249
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L9, fail, 'TypeArrowFunction "=>"'), $EXPECT($L10, fail, 'TypeArrowFunction "\u21D2"'), $EXPECT($L23, fail, 'TypeArrowFunction "->"'), $EXPECT($L24, fail, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
22117
22250
  return { $loc, token: "=>" };
22118
22251
  });
22119
22252
  function TypeArrowFunction(state) {
@@ -22138,7 +22271,7 @@ ${input.slice(result.pos)}
22138
22271
  return result;
22139
22272
  }
22140
22273
  }
22141
- var TypeArguments$0 = $TS($S($EXPECT($L155, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L34, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
22274
+ var TypeArguments$0 = $TS($S($EXPECT($L155, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
22142
22275
  var args = $2;
22143
22276
  return { ts: true, types: args.map(([, t]) => t), children: $0 };
22144
22277
  });
@@ -22210,7 +22343,7 @@ ${input.slice(result.pos)}
22210
22343
  return result;
22211
22344
  }
22212
22345
  }
22213
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L155, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L34, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
22346
+ var TypeParameters$0 = $TS($S($E(_), $EXPECT($L155, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
22214
22347
  var parameters = $3;
22215
22348
  return {
22216
22349
  type: "TypeParameters",
@@ -22311,7 +22444,7 @@ ${input.slice(result.pos)}
22311
22444
  }
22312
22445
  }
22313
22446
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
22314
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L34, fail, 'TypeParameterDelimiter ">"')));
22447
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L33, fail, 'TypeParameterDelimiter ">"')));
22315
22448
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
22316
22449
  return value[1];
22317
22450
  });
@@ -22415,7 +22548,7 @@ ${input.slice(result.pos)}
22415
22548
  return result;
22416
22549
  }
22417
22550
  }
22418
- var CivetPrologueContent$0 = $TS($S($EXPECT($L206, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R63, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
22551
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L207, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R63, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
22419
22552
  var options = $3;
22420
22553
  return {
22421
22554
  type: "CivetPrologue",
@@ -23658,11 +23791,7 @@ ${input.slice(result.pos)}
23658
23791
  module.getRef = function(base) {
23659
23792
  if (refs.hasOwnProperty(base))
23660
23793
  return refs[base];
23661
- const ref = {
23662
- type: "Ref",
23663
- base,
23664
- id: base
23665
- };
23794
+ const ref = makeRef(base);
23666
23795
  if (declareRef.hasOwnProperty(base))
23667
23796
  declareRef[base](ref);
23668
23797
  return refs[base] = ref;
@@ -24043,12 +24172,14 @@ ${input.slice(result.pos)}
24043
24172
  literalValue,
24044
24173
  makeEmptyBlock,
24045
24174
  makeLeftHandSideExpression,
24175
+ makeRef,
24046
24176
  maybeRef,
24047
24177
  modifyString,
24178
+ processAssignmentDeclaration,
24048
24179
  processBinaryOpExpression,
24049
24180
  processCallMemberExpression,
24050
24181
  processCoffeeInterpolation,
24051
- processAssignmentDeclaration,
24182
+ processForInOf,
24052
24183
  processProgram,
24053
24184
  processUnaryExpression,
24054
24185
  quoteString,