@danielx/civet 0.6.92 → 0.7.0

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.
Files changed (4) hide show
  1. package/dist/browser.js +1182 -954
  2. package/dist/main.js +1182 -954
  3. package/dist/main.mjs +1182 -954
  4. package/package.json +3 -2
package/dist/browser.js CHANGED
@@ -471,6 +471,32 @@ var Civet = (() => {
471
471
  }
472
472
  }
473
473
  }
474
+ function maybeWrap(node, parent) {
475
+ if (!isASTNodeObject(node)) {
476
+ updateParentPointers(node = {
477
+ type: "Wrapper",
478
+ children: [node],
479
+ parent
480
+ });
481
+ }
482
+ return node;
483
+ }
484
+ function maybeUnwrap(node) {
485
+ if (node?.type === "Wrapper") {
486
+ return node.children[0];
487
+ } else {
488
+ return node;
489
+ }
490
+ }
491
+ function isASTNodeObject(node) {
492
+ return typeof node === "object" && node != null && !Array.isArray(node);
493
+ }
494
+ function isParent(node) {
495
+ return node != null && node.children != null;
496
+ }
497
+ function isToken(node) {
498
+ return node != null && node.token != null;
499
+ }
474
500
  function isEmptyBareBlock(node) {
475
501
  if (node?.type !== "BlockStatement")
476
502
  return false;
@@ -499,12 +525,32 @@ var Civet = (() => {
499
525
  return;
500
526
  }
501
527
  function isExit(node) {
502
- return [
503
- "ReturnStatement",
504
- "ThrowStatement",
505
- "BreakStatement",
506
- "ContinueStatement"
507
- ].includes(node?.type);
528
+ if (!(node != null)) {
529
+ return false;
530
+ }
531
+ switch (node.type) {
532
+ case "ReturnStatement":
533
+ case "ThrowStatement":
534
+ case "BreakStatement":
535
+ case "ContinueStatement": {
536
+ return true;
537
+ }
538
+ case "IfStatement": {
539
+ return isExit(node.then) && isExit(node.else?.at(-1));
540
+ }
541
+ case "BlockStatement": {
542
+ return isExit(node.expressions.at(-1)?.[1]);
543
+ }
544
+ case "IterationStatement": {
545
+ return node.condition?.type === "ParenthesizedExpression" && node.condition.expression?.type === "Literal" && node.condition.expression?.raw === "true" && gatherRecursiveWithinFunction(
546
+ node.block,
547
+ ({ type }) => type === "BreakStatement"
548
+ ).length === 0;
549
+ }
550
+ default: {
551
+ return false;
552
+ }
553
+ }
508
554
  }
509
555
  function isComma(node) {
510
556
  if (node?.token === ",") {
@@ -516,7 +562,7 @@ var Civet = (() => {
516
562
  return;
517
563
  }
518
564
  function insertTrimmingSpace(target, c) {
519
- if (!target) {
565
+ if (!(target != null)) {
520
566
  return target;
521
567
  }
522
568
  if (Array.isArray(target)) {
@@ -526,35 +572,80 @@ var Civet = (() => {
526
572
  return target.map((e, i) => {
527
573
  if (i === 0) {
528
574
  return insertTrimmingSpace(e, c);
575
+ } else {
576
+ return e;
529
577
  }
530
- return e;
531
578
  });
532
- }
533
- if (target.children) {
579
+ } else if (isParent(target)) {
534
580
  return {
535
581
  ...target,
536
582
  children: insertTrimmingSpace(target.children, c)
537
583
  };
538
- }
539
- if (target.token) {
584
+ } else if (isToken(target)) {
540
585
  return {
541
586
  ...target,
542
587
  token: target.token.replace(/^ ?/, c)
543
588
  };
589
+ } else {
590
+ return target;
591
+ }
592
+ }
593
+ function inplaceInsertTrimmingSpace(target, c) {
594
+ if (!(target != null)) {
595
+ return target;
596
+ }
597
+ if (Array.isArray(target)) {
598
+ inplaceInsertTrimmingSpace(target[0], c);
599
+ } else if (isParent(target)) {
600
+ inplaceInsertTrimmingSpace(target.children, c);
601
+ } else if (isToken(target)) {
602
+ target.token = target.token.replace(/^ ?/, c);
544
603
  }
545
- return target;
546
604
  }
547
605
  function getTrimmingSpace(target) {
548
- if (!target)
606
+ if (!(target != null)) {
549
607
  return;
550
- if (Array.isArray(target))
608
+ }
609
+ if (Array.isArray(target)) {
551
610
  return getTrimmingSpace(target[0]);
552
- if (target.children)
611
+ } else if (isParent(target)) {
553
612
  return getTrimmingSpace(target.children[0]);
554
- if (target.token)
613
+ } else if (isToken(target)) {
555
614
  return target.token.match(/^ ?/)[0];
615
+ }
616
+ ;
556
617
  return;
557
618
  }
619
+ function prepend(prefix, node) {
620
+ if (!(prefix && prefix.length)) {
621
+ return node;
622
+ }
623
+ if (Array.isArray(node)) {
624
+ return [prefix, ...node];
625
+ } else if (isParent(node)) {
626
+ return {
627
+ ...node,
628
+ children: [prefix, ...node.children]
629
+ };
630
+ } else {
631
+ return [prefix, node];
632
+ }
633
+ }
634
+ function inplacePrepend(prefix, node) {
635
+ if (!prefix) {
636
+ return;
637
+ }
638
+ if (Array.isArray(prefix) && !prefix.length) {
639
+ return;
640
+ }
641
+ if (Array.isArray(node)) {
642
+ node.unshift(prefix);
643
+ } else if (isParent(node)) {
644
+ node.children.unshift(prefix);
645
+ } else {
646
+ throw new Error("Can't prepend to a leaf node");
647
+ }
648
+ }
558
649
  function literalValue(literal) {
559
650
  let { raw } = literal;
560
651
  switch (raw) {
@@ -609,12 +700,12 @@ var Civet = (() => {
609
700
  return startsWith(target[i], value);
610
701
  }
611
702
  }
703
+ if (typeof target === "string")
704
+ return value.test(target);
612
705
  if (target.children)
613
706
  return startsWith(target.children, value);
614
707
  if (target.token)
615
708
  return value.test(target.token);
616
- if (typeof target === "string")
617
- return value.test(target);
618
709
  return;
619
710
  }
620
711
  function hasAwait(exp) {
@@ -634,70 +725,60 @@ var Civet = (() => {
634
725
  if (Array.isArray(node)) {
635
726
  return node.map(deepCopy);
636
727
  }
728
+ if (node?.type === "Ref")
729
+ return node;
637
730
  return Object.fromEntries(
638
731
  Object.entries(node).map(([key, value]) => {
639
732
  return [key, deepCopy(value)];
640
733
  })
641
734
  );
642
735
  }
643
- function makeAmpersandFunction(bodyAfterRef = []) {
644
- const ref = makeRef("$");
645
- const body = [ref, ...bodyAfterRef];
646
- const parameters = {
647
- type: "Parameters",
648
- children: [ref],
649
- names: []
650
- };
651
- const block = {
652
- expressions: body
653
- };
654
- return {
655
- type: "ArrowFunction",
656
- signature: {
657
- modifier: {}
658
- },
659
- children: [parameters, " => ", body],
660
- ref,
661
- body,
662
- ampersandBlock: true,
663
- block,
664
- parameters
665
- };
666
- }
667
- function makeAmpersandFunctionExpression(prefix, rhs) {
668
- let ref, body, typeSuffix;
669
- if (!rhs) {
670
- body = ref = makeRef("$");
671
- } else {
672
- ({ ref, typeSuffix } = rhs);
673
- if (!ref) {
674
- throw new Error("Could not find ref in ampersand shorthand block");
736
+ function removeHoistDecs(node) {
737
+ if (node == null)
738
+ return;
739
+ if (typeof node !== "object")
740
+ return;
741
+ if ("hoistDec" in node) {
742
+ node.hoistDec = void 0;
743
+ }
744
+ if (Array.isArray(node)) {
745
+ for (const child of node) {
746
+ removeHoistDecs(child);
675
747
  }
676
- body = rhs;
748
+ return;
677
749
  }
678
- if (prefix.length) {
679
- body = {
680
- type: "UnaryExpression",
681
- children: [processUnaryExpression(prefix, body, void 0)]
682
- };
750
+ if (node.children) {
751
+ for (const child of node.children) {
752
+ removeHoistDecs(child);
753
+ }
683
754
  }
684
- const parameters = {
755
+ }
756
+ function makeAmpersandFunction(rhs) {
757
+ let { ref, typeSuffix, body } = rhs;
758
+ if (!(ref != null)) {
759
+ ref = makeRef("$");
760
+ inplacePrepend(ref, body);
761
+ }
762
+ if (body?.type === "ObjectExpression") {
763
+ body = makeLeftHandSideExpression(body);
764
+ }
765
+ const parameters = makeNode({
685
766
  type: "Parameters",
686
767
  children: typeSuffix ? ["(", ref, typeSuffix, ")"] : [ref],
687
768
  names: []
688
- };
769
+ });
689
770
  const expressions = [body];
690
- const block = {
771
+ const block = makeNode({
691
772
  bare: true,
692
773
  expressions,
693
774
  children: [expressions]
694
- };
775
+ });
695
776
  const children = [parameters, " => ", block];
696
777
  const async = hasAwait(body);
697
778
  if (async) {
698
779
  children.unshift("async ");
699
780
  }
700
- return {
781
+ return makeNode({
701
782
  type: "ArrowFunction",
702
783
  signature: {
703
784
  modifier: {
@@ -710,45 +791,7 @@ var Civet = (() => {
710
791
  ampersandBlock: true,
711
792
  block,
712
793
  parameters
713
- };
714
- }
715
- function makeAmpersandBlockRHSBody(typeSuffix, callExpRest, unaryPostfix, assign, binopRHS) {
716
- const ref = makeRef("$");
717
- let exp = {
718
- type: "AmpersandRef",
719
- children: [ref],
720
- names: [],
721
- ref
722
- };
723
- if (callExpRest) {
724
- exp.children.push(...callExpRest[1]);
725
- }
726
- if (unaryPostfix) {
727
- exp = processUnaryExpression([], exp, unaryPostfix);
728
- }
729
- if (assign) {
730
- const [op1, more, rhs] = assign;
731
- const lhs = [
732
- [void 0, exp, ...op1],
733
- ...more.map((x) => [x[0], x[1], ...x[2]])
734
- ];
735
- exp = {
736
- type: "AssignmentExpression",
737
- children: [lhs, rhs],
738
- names: null,
739
- lhs,
740
- assigned: exp,
741
- exp: rhs
742
- };
743
- }
744
- if (binopRHS) {
745
- exp = {
746
- children: processBinaryOpExpression([exp, binopRHS[1]])
747
- };
748
- }
749
- exp.ref = ref;
750
- exp.typeSuffix = typeSuffix;
751
- return exp;
794
+ });
752
795
  }
753
796
  function makeLeftHandSideExpression(expression) {
754
797
  if (expression.parenthesized) {
@@ -765,6 +808,7 @@ var Civet = (() => {
765
808
  case "NewExpression":
766
809
  case "ParenthesizedExpression":
767
810
  case "Ref":
811
+ case "Placeholder":
768
812
  case "StatementExpression":
769
813
  return expression;
770
814
  }
@@ -777,10 +821,12 @@ var Civet = (() => {
777
821
  });
778
822
  }
779
823
  function updateParentPointers(node, parent, depth = 1) {
780
- if (node == null)
824
+ if (!(node != null)) {
781
825
  return;
782
- if (typeof node !== "object")
826
+ }
827
+ if (!(typeof node === "object")) {
783
828
  return;
829
+ }
784
830
  if (Array.isArray(node)) {
785
831
  for (const child of node) {
786
832
  updateParentPointers(child, parent, depth);
@@ -788,9 +834,10 @@ var Civet = (() => {
788
834
  return;
789
835
  }
790
836
  node = node;
791
- if (parent != null)
837
+ if (parent != null) {
792
838
  node.parent = parent;
793
- if (depth && node.children) {
839
+ }
840
+ if (depth && isParent(node)) {
794
841
  for (const child of node.children) {
795
842
  updateParentPointers(child, node, depth - 1);
796
843
  }
@@ -962,7 +1009,13 @@ var Civet = (() => {
962
1009
  return gatherRecursive(node, predicate, isFunction);
963
1010
  }
964
1011
  function findChildIndex(parent, child) {
1012
+ if (!(parent != null)) {
1013
+ return -1;
1014
+ }
965
1015
  const children = Array.isArray(parent) ? parent : parent.children;
1016
+ if (!(children != null)) {
1017
+ return -1;
1018
+ }
966
1019
  for (let i1 = 0, len = children.length; i1 < len; i1++) {
967
1020
  const i = i1;
968
1021
  const c = children[i1];
@@ -971,18 +1024,13 @@ var Civet = (() => {
971
1024
  }
972
1025
  }
973
1026
  function arrayRecurse(array) {
974
- const results = [];
975
1027
  for (let i2 = 0, len1 = array.length; i2 < len1; i2++) {
976
- const i = i2;
977
1028
  const c = array[i2];
978
1029
  if (c === child || Array.isArray(c) && arrayRecurse(c)) {
979
1030
  return true;
980
- } else {
981
- results.push(void 0);
982
1031
  }
983
1032
  }
984
- ;
985
- return results;
1033
+ return false;
986
1034
  }
987
1035
  return -1;
988
1036
  }
@@ -993,7 +1041,7 @@ var Civet = (() => {
993
1041
  return { ancestor: parent, child: node };
994
1042
  }
995
1043
  node = parent;
996
- parent = node.parent;
1044
+ ({ parent } = node);
997
1045
  }
998
1046
  return { ancestor: void 0, child: node };
999
1047
  }
@@ -1182,7 +1230,7 @@ var Civet = (() => {
1182
1230
  }
1183
1231
  function processBlocks(statements) {
1184
1232
  insertSemicolon(statements);
1185
- gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(function({ expressions }) {
1233
+ gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(({ expressions }) => {
1186
1234
  return processBlocks(expressions);
1187
1235
  });
1188
1236
  }
@@ -1192,7 +1240,7 @@ var Civet = (() => {
1192
1240
  const i = i1;
1193
1241
  const s = statements[i1];
1194
1242
  if (i < l - 1) {
1195
- if (needsPrecedingSemicolon(statements[i + 1])) {
1243
+ if (needsPrecedingSemicolon(statements[i + 1][1])) {
1196
1244
  const delim = s[2];
1197
1245
  if (!delim) {
1198
1246
  s[2] = ";";
@@ -1204,40 +1252,45 @@ var Civet = (() => {
1204
1252
  }
1205
1253
  }
1206
1254
  function needsPrecedingSemicolon(exp) {
1207
- let following;
1208
- if (Array.isArray(exp)) {
1209
- [, following] = exp;
1210
- } else {
1211
- following = exp;
1255
+ if (!exp) {
1256
+ return false;
1212
1257
  }
1213
- if (!following) {
1258
+ if (Array.isArray(exp)) {
1259
+ for (let i2 = 0, len1 = exp.length; i2 < len1; i2++) {
1260
+ const child = exp[i2];
1261
+ if (!(child != null)) {
1262
+ continue;
1263
+ }
1264
+ return needsPrecedingSemicolon(child);
1265
+ }
1214
1266
  return false;
1215
1267
  }
1216
- if (Array.isArray(following)) {
1217
- return needsPrecedingSemicolon(following[0]);
1268
+ if (typeof exp === "string") {
1269
+ return /^\s*[\(\[\`\+\-\/]/.test(exp);
1218
1270
  }
1219
- switch (following.type) {
1271
+ switch (exp.type) {
1220
1272
  case "ParenthesizedExpression":
1221
1273
  case "ArrayExpression":
1222
1274
  case "ArrowFunction":
1223
1275
  case "TemplateLiteral":
1224
1276
  case "RegularExpressionLiteral":
1225
- case "RangeExpression": {
1277
+ case "RangeExpression":
1278
+ case "ComputedPropertyName": {
1226
1279
  return true;
1227
1280
  }
1228
1281
  case "AssignmentExpression": {
1229
- return startsWith(following, /^(\[|\()/);
1282
+ return startsWith(exp, /^(\[|\()/);
1230
1283
  }
1231
1284
  case "Literal": {
1232
- return following.raw?.startsWith("-") || following.raw?.startsWith("+");
1285
+ return exp.raw?.startsWith("-") || exp.raw?.startsWith("+");
1233
1286
  }
1234
1287
  case "PipelineExpression":
1235
1288
  case "UnwrappedExpression": {
1236
- return needsPrecedingSemicolon(following.children[1]);
1289
+ return needsPrecedingSemicolon(exp.children[1]);
1237
1290
  }
1238
1291
  default: {
1239
- if (following.children) {
1240
- return needsPrecedingSemicolon(following.children[0]);
1292
+ if (exp.children) {
1293
+ return needsPrecedingSemicolon(exp.children);
1241
1294
  }
1242
1295
  ;
1243
1296
  return;
@@ -1376,8 +1429,7 @@ var Civet = (() => {
1376
1429
  const { clauses } = caseBlock;
1377
1430
  for (const c of clauses) {
1378
1431
  if (c.type === "WhenClause" && c.break) {
1379
- const last = c.block?.expressions?.at(-1)?.[1];
1380
- if (isExit(last)) {
1432
+ if (isExit(c.block)) {
1381
1433
  c.children.splice(c.children.indexOf(c.break), 1);
1382
1434
  c.break = void 0;
1383
1435
  }
@@ -1936,10 +1988,16 @@ var Civet = (() => {
1936
1988
  if (!Array.isArray(node)) {
1937
1989
  return;
1938
1990
  }
1939
- let [, exp] = node;
1991
+ let [, exp, semi] = node;
1992
+ if (semi?.type === "SemicolonDelimiter") {
1993
+ return;
1994
+ }
1940
1995
  if (!exp) {
1941
1996
  return;
1942
1997
  }
1998
+ if (isExit(exp)) {
1999
+ return;
2000
+ }
1943
2001
  const outer = exp;
1944
2002
  let { type } = exp;
1945
2003
  if (type === "LabelledStatement") {
@@ -2031,6 +2089,9 @@ var Civet = (() => {
2031
2089
  if (!exp) {
2032
2090
  return;
2033
2091
  }
2092
+ if (isExit(exp)) {
2093
+ return;
2094
+ }
2034
2095
  const outer = exp;
2035
2096
  let { type } = exp;
2036
2097
  if (type === "LabelledStatement") {
@@ -2231,9 +2292,6 @@ var Civet = (() => {
2231
2292
  function skipImplicitArguments(args) {
2232
2293
  if (args.length === 1) {
2233
2294
  let arg0 = args[0];
2234
- if (Array.isArray(arg0)) {
2235
- arg0 = arg0[1];
2236
- }
2237
2295
  if (arg0.type === "StatementExpression") {
2238
2296
  arg0 = arg0.statement;
2239
2297
  }
@@ -2263,7 +2321,11 @@ var Civet = (() => {
2263
2321
  let [splices, assignments] = gatherBindingCode(pattern);
2264
2322
  splices = splices.map((s) => [", ", s]);
2265
2323
  const thisAssignments = assignments.map((a) => ["", a, ";"]);
2266
- const initializer = [ws, assign, e];
2324
+ const initializer = makeNode({
2325
+ type: "Initializer",
2326
+ exp: e,
2327
+ children: [ws, assign, e]
2328
+ });
2267
2329
  const binding = makeNode({
2268
2330
  type: "Binding",
2269
2331
  pattern,
@@ -2302,7 +2364,7 @@ var Civet = (() => {
2302
2364
  });
2303
2365
  }
2304
2366
  function prependStatementExpressionBlock(initializer, statement) {
2305
- let exp = initializer[2];
2367
+ let { exp } = initializer;
2306
2368
  let ws;
2307
2369
  if (Array.isArray(exp)) {
2308
2370
  ws = exp[0];
@@ -2322,7 +2384,7 @@ var Civet = (() => {
2322
2384
  const statement2 = statementExp.statement;
2323
2385
  blockStatement[1] = statement2;
2324
2386
  if (statement2.type === "DoStatement") {
2325
- ref = initializer[2] = makeRef();
2387
+ ref = initializer.exp = initializer.children[2] = makeRef();
2326
2388
  assignResults(blockStatement, (resultNode) => {
2327
2389
  return makeNode({
2328
2390
  type: "AssignmentExpression",
@@ -2338,10 +2400,10 @@ var Civet = (() => {
2338
2400
  } else {
2339
2401
  wrapIterationReturningResults(statement2, { children: blockStatement }, function() {
2340
2402
  });
2341
- ref = initializer[2] = statement2.resultsRef;
2403
+ ref = initializer.exp = initializer.children[2] = statement2.resultsRef;
2342
2404
  }
2343
2405
  } else {
2344
- ref = initializer[2] = makeRef();
2406
+ ref = initializer.exp = initializer.children[2] = makeRef();
2345
2407
  assignResults(blockStatement, (resultNode) => {
2346
2408
  return makeNode({
2347
2409
  type: "AssignmentExpression",
@@ -2540,8 +2602,7 @@ var Civet = (() => {
2540
2602
  }
2541
2603
  })();
2542
2604
  const c = "const";
2543
- const initializer = [
2544
- " = ",
2605
+ const exp = [
2545
2606
  justDefault ? "(" : void 0,
2546
2607
  { type: "Await", children: ["await"] },
2547
2608
  " ",
@@ -2550,6 +2611,11 @@ var Civet = (() => {
2550
2611
  dynamizeFromClause(decl.from),
2551
2612
  justDefault ? ").default" : void 0
2552
2613
  ];
2614
+ const initializer = {
2615
+ type: "Initializer",
2616
+ exp,
2617
+ children: [" ", "= ", exp]
2618
+ };
2553
2619
  const bindings = [{
2554
2620
  type: "Binding",
2555
2621
  names: pattern.names,
@@ -2559,11 +2625,15 @@ var Civet = (() => {
2559
2625
  }];
2560
2626
  if (binding && specifiers) {
2561
2627
  const pattern2 = binding;
2562
- const initializer2 = [
2563
- " = ",
2628
+ const exp2 = [
2564
2629
  pattern,
2565
2630
  ".default"
2566
2631
  ];
2632
+ const initializer2 = {
2633
+ type: "Initializer",
2634
+ exp,
2635
+ children: [" ", "= ", exp2]
2636
+ };
2567
2637
  bindings.push({
2568
2638
  type: "Binding",
2569
2639
  names: binding.names,
@@ -2572,10 +2642,11 @@ var Civet = (() => {
2572
2642
  children: [pattern2, initializer2]
2573
2643
  });
2574
2644
  const pattern3 = convertNamedImportsToObject(imports.children.at(-1), true);
2575
- const initializer3 = [
2576
- " = ",
2577
- pattern
2578
- ];
2645
+ const initializer3 = {
2646
+ type: "Initializer",
2647
+ exp: pattern,
2648
+ children: [" ", "= ", pattern]
2649
+ };
2579
2650
  bindings.push({
2580
2651
  type: "Binding",
2581
2652
  names: specifiers.names,
@@ -2723,6 +2794,7 @@ var Civet = (() => {
2723
2794
  switch (access.type) {
2724
2795
  case "PropertyAccess":
2725
2796
  case "SliceExpression":
2797
+ case "Index":
2726
2798
  break;
2727
2799
  default:
2728
2800
  children.unshift({
@@ -2759,6 +2831,7 @@ var Civet = (() => {
2759
2831
  exp: children
2760
2832
  });
2761
2833
  arg = clone(arg);
2834
+ removeHoistDecs(arg);
2762
2835
  if (arg.children[0].type === "Ref") {
2763
2836
  arg.children[0] = usingRef;
2764
2837
  }
@@ -3382,9 +3455,7 @@ var Civet = (() => {
3382
3455
  isWhitespaceOrEmpty: () => isWhitespaceOrEmpty,
3383
3456
  lastAccessInCallExpression: () => lastAccessInCallExpression,
3384
3457
  literalValue: () => literalValue,
3385
- makeAmpersandBlockRHSBody: () => makeAmpersandBlockRHSBody,
3386
3458
  makeAmpersandFunction: () => makeAmpersandFunction,
3387
- makeAmpersandFunctionExpression: () => makeAmpersandFunctionExpression,
3388
3459
  makeEmptyBlock: () => makeEmptyBlock,
3389
3460
  makeExpressionStatement: () => makeExpressionStatement,
3390
3461
  makeGetterMethod: () => makeGetterMethod,
@@ -3394,6 +3465,7 @@ var Civet = (() => {
3394
3465
  modifyString: () => modifyString,
3395
3466
  negateCondition: () => negateCondition,
3396
3467
  precedenceStep: () => precedenceStep,
3468
+ prepend: () => prepend,
3397
3469
  processAssignmentDeclaration: () => processAssignmentDeclaration,
3398
3470
  processBinaryOpExpression: () => processBinaryOpExpression,
3399
3471
  processCallMemberExpression: () => processCallMemberExpression,
@@ -3733,8 +3805,9 @@ var Civet = (() => {
3733
3805
  }
3734
3806
  return node;
3735
3807
  }
3736
- function replaceNode(node, newNode) {
3737
- if (!(node.parent != null)) {
3808
+ function replaceNode(node, newNode, parent) {
3809
+ parent ??= node.parent;
3810
+ if (!(parent != null)) {
3738
3811
  throw new Error("replaceNode failed: node has no parent");
3739
3812
  }
3740
3813
  function recurse(children) {
@@ -3752,12 +3825,20 @@ var Civet = (() => {
3752
3825
  }
3753
3826
  return false;
3754
3827
  }
3755
- if (!recurse(node.parent.children)) {
3828
+ if (!recurse(parent.children)) {
3756
3829
  throw new Error("replaceNode failed: didn't find child node in parent");
3757
3830
  }
3758
- if (typeof newNode === "object" && !Array.isArray(newNode)) {
3759
- newNode.parent = node.parent;
3831
+ for (const key in parent) {
3832
+ const value = parent[key];
3833
+ if (value === node) {
3834
+ parent[key] = newNode;
3835
+ return;
3836
+ }
3837
+ }
3838
+ if (isASTNodeObject(newNode)) {
3839
+ newNode.parent = parent;
3760
3840
  }
3841
+ node.parent = void 0;
3761
3842
  }
3762
3843
  function makeExpressionStatement(expression) {
3763
3844
  if (Array.isArray(expression) && expression[1]?.[0]?.[0]?.[1]?.token === ",") {
@@ -4021,10 +4102,13 @@ var Civet = (() => {
4021
4102
  (exp) => {
4022
4103
  let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
4023
4104
  let block;
4024
- if (exp.parent.type === "BlockStatement" && !$1.at(-1)?.at(-1)?.special) {
4105
+ if (exp.parent?.type === "BlockStatement" && !$1.at(-1)?.at(-1)?.special) {
4025
4106
  block = makeBlockFragment();
4026
4107
  let ref4;
4027
- if (ref4 = prependStatementExpressionBlock([null, null, $2], block)) {
4108
+ if (ref4 = prependStatementExpressionBlock(
4109
+ { type: "Initializer", exp: $2, children: [void 0, void 0, $2] },
4110
+ block
4111
+ )) {
4028
4112
  const ref = ref4;
4029
4113
  exp.children = exp.children.map(function(c) {
4030
4114
  if (c === $2)
@@ -4347,7 +4431,7 @@ var Civet = (() => {
4347
4431
  assert.equal(m.JSXTagStack.length, 1, "JSXTagStack");
4348
4432
  addParentPointers(root);
4349
4433
  const { expressions: statements } = root;
4350
- processPartialPlaceholders(statements);
4434
+ processPlaceholders(statements);
4351
4435
  processNegativeIndexAccess(statements);
4352
4436
  processTypes(statements);
4353
4437
  processDeclarationConditions(statements, m.getRef);
@@ -4392,40 +4476,140 @@ var Civet = (() => {
4392
4476
  });
4393
4477
  }
4394
4478
  }
4395
- function processPartialPlaceholders(statements) {
4396
- const partialMap = /* @__PURE__ */ new Map();
4397
- gatherRecursiveAll(statements, ($3) => $3.type === "PartialPlaceholder").forEach((_exp) => {
4479
+ function processPlaceholders(statements) {
4480
+ const placeholderMap = /* @__PURE__ */ new Map();
4481
+ gatherRecursiveAll(statements, ($3) => $3.type === "Placeholder").forEach((_exp) => {
4398
4482
  const exp = _exp;
4399
- let { ancestor } = findAncestor(exp, ($4) => $4?.type === "Call");
4400
- ancestor = ancestor?.parent;
4401
- while (ancestor?.parent?.type === "UnaryExpression") {
4402
- ancestor = ancestor.parent;
4483
+ let ancestor;
4484
+ if (exp.subtype === ".") {
4485
+ ({ ancestor } = findAncestor(exp, ($4) => $4.type === "Call"));
4486
+ ancestor = ancestor?.parent;
4487
+ while (ancestor?.parent?.type === "UnaryExpression" || ancestor?.parent?.type === "NewExpression") {
4488
+ ancestor = ancestor.parent;
4489
+ }
4490
+ if (!ancestor) {
4491
+ replaceNode(exp, {
4492
+ type: "Error",
4493
+ message: "Partial placeholder . outside of call expression"
4494
+ });
4495
+ return;
4496
+ }
4497
+ } else {
4498
+ let child;
4499
+ ({ ancestor, child } = findAncestor(exp, (ancestor2, child2) => {
4500
+ const { type } = ancestor2;
4501
+ return type === "Call" || type === "BlockStatement" || type === "PipelineExpression" || // Declaration
4502
+ type === "Initializer" || // Right-hand side of assignment
4503
+ type === "AssignmentExpression" && ancestor2.exp === child2;
4504
+ }));
4505
+ switch (ancestor?.type) {
4506
+ case "Call": {
4507
+ const i = findChildIndex(ancestor.args, child);
4508
+ if (i >= 0) {
4509
+ ancestor.args[i] = maybeWrap(ancestor.args[i], ancestor);
4510
+ ancestor = ancestor.args[i];
4511
+ } else {
4512
+ ancestor = void 0;
4513
+ }
4514
+ ;
4515
+ break;
4516
+ }
4517
+ case "BlockStatement": {
4518
+ const i = findChildIndex(ancestor.expressions, child);
4519
+ if (i >= 0) {
4520
+ ancestor.expressions[i][1] = maybeWrap(ancestor.expressions[i][1], ancestor);
4521
+ ancestor = ancestor.expressions[i][1];
4522
+ } else {
4523
+ ancestor = void 0;
4524
+ }
4525
+ ;
4526
+ break;
4527
+ }
4528
+ case "PipelineExpression": {
4529
+ const i = findChildIndex(ancestor, child);
4530
+ if (i === 1) {
4531
+ ancestor = ancestor;
4532
+ } else if (i === 2) {
4533
+ const j = findChildIndex(ancestor.children[i], child);
4534
+ ancestor.children[i][j][3] = maybeWrap(ancestor.children[i][j][3], ancestor);
4535
+ ancestor = ancestor.children[i][j][3];
4536
+ } else {
4537
+ ancestor = void 0;
4538
+ }
4539
+ ;
4540
+ break;
4541
+ }
4542
+ case "AssignmentExpression":
4543
+ case "Initializer": {
4544
+ const i = findChildIndex(ancestor, child);
4545
+ if (i >= 0 && ancestor.exp === ancestor.children[i]) {
4546
+ ancestor.exp = ancestor.children[i] = maybeWrap(ancestor.exp, ancestor);
4547
+ ancestor = ancestor.exp;
4548
+ } else {
4549
+ ancestor = void 0;
4550
+ }
4551
+ ;
4552
+ break;
4553
+ }
4554
+ }
4555
+ if (!ancestor) {
4556
+ replaceNode(exp, {
4557
+ type: "Error",
4558
+ message: "Ampersand placeholder & outside of block"
4559
+ });
4560
+ }
4403
4561
  }
4404
- if (ancestor) {
4405
- if (partialMap.has(ancestor)) {
4406
- return partialMap.get(ancestor).push(exp);
4562
+ if (ancestor != null) {
4563
+ if (placeholderMap.has(ancestor)) {
4564
+ return placeholderMap.get(ancestor).push(exp);
4407
4565
  } else {
4408
- return partialMap.set(ancestor, [exp]);
4566
+ return placeholderMap.set(ancestor, [exp]);
4409
4567
  }
4410
- } else {
4411
- return replaceNode(exp, {
4412
- type: "Error",
4413
- message: "Partial placeholder outside of call expression",
4414
- parent: exp.parent
4415
- });
4416
4568
  }
4569
+ ;
4570
+ return;
4417
4571
  });
4418
- for (const [ancestor, placeholders] of partialMap) {
4572
+ for (const [ancestor, placeholders] of placeholderMap) {
4419
4573
  let ref = makeRef("$");
4420
- placeholders.forEach((exp) => {
4421
- return replaceNode(exp.children.at(-1), ref);
4422
- });
4423
- const rhs = {
4424
- ref,
4425
- children: [ancestor]
4426
- };
4427
- const fnExp = makeAmpersandFunctionExpression([], rhs);
4428
- replaceNode(ancestor, fnExp);
4574
+ let typeSuffix;
4575
+ for (let i4 = 0, len3 = placeholders.length; i4 < len3; i4++) {
4576
+ const placeholder = placeholders[i4];
4577
+ typeSuffix ??= placeholder.typeSuffix;
4578
+ replaceNode(placeholder.children.at(-1), ref);
4579
+ }
4580
+ const { parent } = ancestor;
4581
+ const body = maybeUnwrap(ancestor);
4582
+ let fnExp = makeAmpersandFunction({ ref, typeSuffix, body });
4583
+ let outer;
4584
+ switch (parent?.type) {
4585
+ case "Call": {
4586
+ outer = ancestor === parent.args[findChildIndex(parent.args, ancestor)];
4587
+ break;
4588
+ }
4589
+ case "BlockStatement": {
4590
+ outer = ancestor === parent.expressions[findChildIndex(parent.expressions, ancestor)][1];
4591
+ break;
4592
+ }
4593
+ case "PipelineExpression": {
4594
+ outer = ancestor === parent.children[2][findChildIndex(parent.children[2], ancestor)][3];
4595
+ break;
4596
+ }
4597
+ case "AssignmentExpression":
4598
+ case "Initializer": {
4599
+ outer = ancestor === parent.exp;
4600
+ break;
4601
+ }
4602
+ }
4603
+ if (!outer) {
4604
+ fnExp = makeLeftHandSideExpression(fnExp);
4605
+ }
4606
+ replaceNode(ancestor, fnExp, parent);
4607
+ let ref7;
4608
+ if (ref7 = getTrimmingSpace(body)) {
4609
+ const ws = ref7;
4610
+ inplaceInsertTrimmingSpace(body, "");
4611
+ inplacePrepend(ws, fnExp);
4612
+ }
4429
4613
  }
4430
4614
  return;
4431
4615
  }
@@ -4496,9 +4680,9 @@ var Civet = (() => {
4496
4680
  return root;
4497
4681
  }
4498
4682
  }
4499
- for (let i4 = 0, len3 = array.length; i4 < len3; i4++) {
4500
- const i = i4;
4501
- const node = array[i4];
4683
+ for (let i5 = 0, len4 = array.length; i5 < len4; i5++) {
4684
+ const i = i5;
4685
+ const node = array[i5];
4502
4686
  if (!(node != null)) {
4503
4687
  return;
4504
4688
  }
@@ -4522,9 +4706,9 @@ var Civet = (() => {
4522
4706
  return root;
4523
4707
  }
4524
4708
  }
4525
- for (let i5 = 0, len4 = array.length; i5 < len4; i5++) {
4526
- const i = i5;
4527
- const node = array[i5];
4709
+ for (let i6 = 0, len5 = array.length; i6 < len5; i6++) {
4710
+ const i = i6;
4711
+ const node = array[i6];
4528
4712
  if (!(node != null)) {
4529
4713
  continue;
4530
4714
  }
@@ -5121,6 +5305,7 @@ ${input.slice(result.pos)}
5121
5305
  ExplicitArguments,
5122
5306
  ApplicationStart,
5123
5307
  ForbiddenImplicitCalls,
5308
+ ReservedBinary,
5124
5309
  ArgumentsWithTrailingMemberExpressions,
5125
5310
  TrailingMemberExpressions,
5126
5311
  AllowedTrailingMemberExpressions,
@@ -5153,8 +5338,11 @@ ${input.slice(result.pos)}
5153
5338
  AssignmentExpression,
5154
5339
  NonPipelineAssignmentExpression,
5155
5340
  SingleLineAssignmentExpression,
5341
+ NonPipelineSingleLineAssignmentExpression,
5156
5342
  AssignmentExpressionTail,
5343
+ NonPipelineAssignmentExpressionTail,
5157
5344
  ActualAssignment,
5345
+ NonPipelineActualAssignment,
5158
5346
  YieldExpression,
5159
5347
  YieldTail,
5160
5348
  ArrowFunction,
@@ -5171,7 +5359,8 @@ ${input.slice(result.pos)}
5171
5359
  PipelineTailItem,
5172
5360
  PrimaryExpression,
5173
5361
  ParenthesizedExpression,
5174
- PartialPlaceholder,
5362
+ Placeholder,
5363
+ AmpersandTypeSuffix,
5175
5364
  ClassDeclaration,
5176
5365
  ClassExpression,
5177
5366
  ClassBinding,
@@ -5260,15 +5449,11 @@ ${input.slice(result.pos)}
5260
5449
  FunctionDeclaration,
5261
5450
  FunctionSignature,
5262
5451
  FunctionExpression,
5263
- AmpersandFunctionExpression,
5264
5452
  OperatorDeclaration,
5265
5453
  OperatorSignature,
5266
5454
  OperatorBehavior,
5267
5455
  OperatorPrecedence,
5268
5456
  OperatorAssociativity,
5269
- AmpersandBlockRHS,
5270
- AmpersandTypeSuffix,
5271
- AmpersandBlockRHSBody,
5272
5457
  ThinArrowFunction,
5273
5458
  Arrow,
5274
5459
  ExplicitBlock,
@@ -5857,302 +6042,302 @@ ${input.slice(result.pos)}
5857
6042
  var $L23 = $L("import.meta");
5858
6043
  var $L24 = $L("return.value");
5859
6044
  var $L25 = $L(",");
5860
- var $L26 = $L("(&)");
5861
- var $L27 = $L("tighter");
5862
- var $L28 = $L("looser");
5863
- var $L29 = $L("same");
5864
- var $L30 = $L("left");
5865
- var $L31 = $L("right");
5866
- var $L32 = $L("non");
5867
- var $L33 = $L("relational");
5868
- var $L34 = $L("arguments");
5869
- var $L35 = $L("->");
5870
- var $L36 = $L("\u2192");
5871
- var $L37 = $L("}");
5872
- var $L38 = $L("null");
5873
- var $L39 = $L("true");
5874
- var $L40 = $L("false");
5875
- var $L41 = $L("yes");
5876
- var $L42 = $L("on");
5877
- var $L43 = $L("no");
5878
- var $L44 = $L("off");
5879
- var $L45 = $L(">");
5880
- var $L46 = $L("]");
5881
- var $L47 = $L("**=");
5882
- var $L48 = $L("*=");
5883
- var $L49 = $L("/=");
5884
- var $L50 = $L("%=");
5885
- var $L51 = $L("+=");
5886
- var $L52 = $L("-=");
5887
- var $L53 = $L("<<=");
5888
- var $L54 = $L(">>>=");
5889
- var $L55 = $L(">>=");
5890
- var $L56 = $L("&&=");
5891
- var $L57 = $L("&=");
5892
- var $L58 = $L("^=");
5893
- var $L59 = $L("||=");
5894
- var $L60 = $L("|=");
5895
- var $L61 = $L("??=");
5896
- var $L62 = $L("?=");
5897
- var $L63 = $L("and=");
5898
- var $L64 = $L("or=");
5899
- var $L65 = $L("**");
5900
- var $L66 = $L("*");
5901
- var $L67 = $L("/");
5902
- var $L68 = $L("%%");
5903
- var $L69 = $L("%");
5904
- var $L70 = $L("+");
5905
- var $L71 = $L("<=");
5906
- var $L72 = $L("\u2264");
5907
- var $L73 = $L(">=");
5908
- var $L74 = $L("\u2265");
5909
- var $L75 = $L("<?");
5910
- var $L76 = $L("!<?");
5911
- var $L77 = $L("<<");
5912
- var $L78 = $L("\xAB");
5913
- var $L79 = $L(">>>");
5914
- var $L80 = $L("\u22D9");
5915
- var $L81 = $L(">>");
5916
- var $L82 = $L("\xBB");
5917
- var $L83 = $L("!==");
5918
- var $L84 = $L("\u2262");
5919
- var $L85 = $L("!=");
5920
- var $L86 = $L("\u2260");
5921
- var $L87 = $L("isnt");
5922
- var $L88 = $L("===");
5923
- var $L89 = $L("\u2263");
5924
- var $L90 = $L("\u2A76");
5925
- var $L91 = $L("==");
5926
- var $L92 = $L("\u2261");
5927
- var $L93 = $L("\u2A75");
5928
- var $L94 = $L("and");
5929
- var $L95 = $L("&&");
5930
- var $L96 = $L("or");
5931
- var $L97 = $L("||");
5932
- var $L98 = $L("\u2016");
5933
- var $L99 = $L("^^");
5934
- var $L100 = $L("xor");
5935
- var $L101 = $L("xnor");
5936
- var $L102 = $L("??");
5937
- var $L103 = $L("\u2047");
5938
- var $L104 = $L("instanceof");
5939
- var $L105 = $L("\u2208");
5940
- var $L106 = $L("\u220B");
5941
- var $L107 = $L("\u220C");
5942
- var $L108 = $L("\u2209");
5943
- var $L109 = $L("&");
5944
- var $L110 = $L("|");
5945
- var $L111 = $L("$:");
5946
- var $L112 = $L(";");
5947
- var $L113 = $L("break");
5948
- var $L114 = $L("continue");
5949
- var $L115 = $L("debugger");
5950
- var $L116 = $L("require");
5951
- var $L117 = $L("with");
5952
- var $L118 = $L("assert");
5953
- var $L119 = $L(":=");
5954
- var $L120 = $L("\u2254");
5955
- var $L121 = $L(".=");
5956
- var $L122 = $L("::=");
5957
- var $L123 = $L("/*");
5958
- var $L124 = $L("*/");
5959
- var $L125 = $L("\\");
5960
- var $L126 = $L(")");
5961
- var $L127 = $L("abstract");
5962
- var $L128 = $L("as");
5963
- var $L129 = $L("@");
5964
- var $L130 = $L("@@");
5965
- var $L131 = $L("async");
5966
- var $L132 = $L("await");
5967
- var $L133 = $L("`");
5968
- var $L134 = $L("by");
5969
- var $L135 = $L("case");
5970
- var $L136 = $L("catch");
5971
- var $L137 = $L("class");
5972
- var $L138 = $L("#{");
5973
- var $L139 = $L("declare");
5974
- var $L140 = $L("default");
5975
- var $L141 = $L("delete");
5976
- var $L142 = $L("do");
5977
- var $L143 = $L("..");
5978
- var $L144 = $L("\u2025");
5979
- var $L145 = $L("...");
5980
- var $L146 = $L("\u2026");
5981
- var $L147 = $L("::");
5982
- var $L148 = $L('"');
5983
- var $L149 = $L("each");
5984
- var $L150 = $L("else");
5985
- var $L151 = $L("!");
5986
- var $L152 = $L("export");
5987
- var $L153 = $L("extends");
5988
- var $L154 = $L("finally");
5989
- var $L155 = $L("for");
5990
- var $L156 = $L("from");
5991
- var $L157 = $L("function");
5992
- var $L158 = $L("get");
5993
- var $L159 = $L("set");
5994
- var $L160 = $L("#");
5995
- var $L161 = $L("if");
5996
- var $L162 = $L("in");
5997
- var $L163 = $L("infer");
5998
- var $L164 = $L("let");
5999
- var $L165 = $L("const");
6000
- var $L166 = $L("is");
6001
- var $L167 = $L("loop");
6002
- var $L168 = $L("new");
6003
- var $L169 = $L("not");
6004
- var $L170 = $L("of");
6005
- var $L171 = $L("[");
6006
- var $L172 = $L("operator");
6007
- var $L173 = $L("override");
6008
- var $L174 = $L("own");
6009
- var $L175 = $L("public");
6010
- var $L176 = $L("private");
6011
- var $L177 = $L("protected");
6012
- var $L178 = $L("||>");
6013
- var $L179 = $L("|\u25B7");
6014
- var $L180 = $L("|>=");
6015
- var $L181 = $L("\u25B7=");
6016
- var $L182 = $L("|>");
6017
- var $L183 = $L("\u25B7");
6018
- var $L184 = $L("readonly");
6019
- var $L185 = $L("return");
6020
- var $L186 = $L("satisfies");
6021
- var $L187 = $L("'");
6022
- var $L188 = $L("static");
6023
- var $L189 = $L("${");
6024
- var $L190 = $L("super");
6025
- var $L191 = $L("switch");
6026
- var $L192 = $L("target");
6027
- var $L193 = $L("then");
6028
- var $L194 = $L("this");
6029
- var $L195 = $L("throw");
6030
- var $L196 = $L('"""');
6031
- var $L197 = $L("'''");
6032
- var $L198 = $L("///");
6033
- var $L199 = $L("```");
6034
- var $L200 = $L("try");
6035
- var $L201 = $L("typeof");
6036
- var $L202 = $L("undefined");
6037
- var $L203 = $L("unless");
6038
- var $L204 = $L("until");
6039
- var $L205 = $L("using");
6040
- var $L206 = $L("var");
6041
- var $L207 = $L("void");
6042
- var $L208 = $L("when");
6043
- var $L209 = $L("while");
6044
- var $L210 = $L("yield");
6045
- var $L211 = $L("/>");
6046
- var $L212 = $L("</");
6047
- var $L213 = $L("<>");
6048
- var $L214 = $L("</>");
6049
- var $L215 = $L("<!--");
6050
- var $L216 = $L("-->");
6051
- var $L217 = $L("type");
6052
- var $L218 = $L("enum");
6053
- var $L219 = $L("interface");
6054
- var $L220 = $L("global");
6055
- var $L221 = $L("module");
6056
- var $L222 = $L("namespace");
6057
- var $L223 = $L("asserts");
6058
- var $L224 = $L("keyof");
6059
- var $L225 = $L("???");
6060
- var $L226 = $L("[]");
6061
- var $L227 = $L("civet");
6045
+ var $L26 = $L("tighter");
6046
+ var $L27 = $L("looser");
6047
+ var $L28 = $L("same");
6048
+ var $L29 = $L("left");
6049
+ var $L30 = $L("right");
6050
+ var $L31 = $L("non");
6051
+ var $L32 = $L("relational");
6052
+ var $L33 = $L("arguments");
6053
+ var $L34 = $L("->");
6054
+ var $L35 = $L("\u2192");
6055
+ var $L36 = $L("}");
6056
+ var $L37 = $L("null");
6057
+ var $L38 = $L("true");
6058
+ var $L39 = $L("false");
6059
+ var $L40 = $L("yes");
6060
+ var $L41 = $L("on");
6061
+ var $L42 = $L("no");
6062
+ var $L43 = $L("off");
6063
+ var $L44 = $L(">");
6064
+ var $L45 = $L("]");
6065
+ var $L46 = $L("**=");
6066
+ var $L47 = $L("*=");
6067
+ var $L48 = $L("/=");
6068
+ var $L49 = $L("%=");
6069
+ var $L50 = $L("+=");
6070
+ var $L51 = $L("-=");
6071
+ var $L52 = $L("<<=");
6072
+ var $L53 = $L(">>>=");
6073
+ var $L54 = $L(">>=");
6074
+ var $L55 = $L("&&=");
6075
+ var $L56 = $L("&=");
6076
+ var $L57 = $L("^=");
6077
+ var $L58 = $L("||=");
6078
+ var $L59 = $L("|=");
6079
+ var $L60 = $L("??=");
6080
+ var $L61 = $L("?=");
6081
+ var $L62 = $L("and=");
6082
+ var $L63 = $L("or=");
6083
+ var $L64 = $L("**");
6084
+ var $L65 = $L("*");
6085
+ var $L66 = $L("/");
6086
+ var $L67 = $L("%%");
6087
+ var $L68 = $L("%");
6088
+ var $L69 = $L("+");
6089
+ var $L70 = $L("<=");
6090
+ var $L71 = $L("\u2264");
6091
+ var $L72 = $L(">=");
6092
+ var $L73 = $L("\u2265");
6093
+ var $L74 = $L("<?");
6094
+ var $L75 = $L("!<?");
6095
+ var $L76 = $L("<<");
6096
+ var $L77 = $L("\xAB");
6097
+ var $L78 = $L(">>>");
6098
+ var $L79 = $L("\u22D9");
6099
+ var $L80 = $L(">>");
6100
+ var $L81 = $L("\xBB");
6101
+ var $L82 = $L("!==");
6102
+ var $L83 = $L("\u2262");
6103
+ var $L84 = $L("!=");
6104
+ var $L85 = $L("\u2260");
6105
+ var $L86 = $L("isnt");
6106
+ var $L87 = $L("===");
6107
+ var $L88 = $L("\u2263");
6108
+ var $L89 = $L("\u2A76");
6109
+ var $L90 = $L("==");
6110
+ var $L91 = $L("\u2261");
6111
+ var $L92 = $L("\u2A75");
6112
+ var $L93 = $L("and");
6113
+ var $L94 = $L("&&");
6114
+ var $L95 = $L("or");
6115
+ var $L96 = $L("||");
6116
+ var $L97 = $L("\u2016");
6117
+ var $L98 = $L("^^");
6118
+ var $L99 = $L("xor");
6119
+ var $L100 = $L("xnor");
6120
+ var $L101 = $L("??");
6121
+ var $L102 = $L("\u2047");
6122
+ var $L103 = $L("instanceof");
6123
+ var $L104 = $L("\u2208");
6124
+ var $L105 = $L("\u220B");
6125
+ var $L106 = $L("\u220C");
6126
+ var $L107 = $L("\u2209");
6127
+ var $L108 = $L("&");
6128
+ var $L109 = $L("|");
6129
+ var $L110 = $L("$:");
6130
+ var $L111 = $L(";");
6131
+ var $L112 = $L("break");
6132
+ var $L113 = $L("continue");
6133
+ var $L114 = $L("debugger");
6134
+ var $L115 = $L("require");
6135
+ var $L116 = $L("with");
6136
+ var $L117 = $L("assert");
6137
+ var $L118 = $L(":=");
6138
+ var $L119 = $L("\u2254");
6139
+ var $L120 = $L(".=");
6140
+ var $L121 = $L("::=");
6141
+ var $L122 = $L("/*");
6142
+ var $L123 = $L("*/");
6143
+ var $L124 = $L("\\");
6144
+ var $L125 = $L(")");
6145
+ var $L126 = $L("abstract");
6146
+ var $L127 = $L("as");
6147
+ var $L128 = $L("@");
6148
+ var $L129 = $L("@@");
6149
+ var $L130 = $L("async");
6150
+ var $L131 = $L("await");
6151
+ var $L132 = $L("`");
6152
+ var $L133 = $L("by");
6153
+ var $L134 = $L("case");
6154
+ var $L135 = $L("catch");
6155
+ var $L136 = $L("class");
6156
+ var $L137 = $L("#{");
6157
+ var $L138 = $L("declare");
6158
+ var $L139 = $L("default");
6159
+ var $L140 = $L("delete");
6160
+ var $L141 = $L("do");
6161
+ var $L142 = $L("..");
6162
+ var $L143 = $L("\u2025");
6163
+ var $L144 = $L("...");
6164
+ var $L145 = $L("\u2026");
6165
+ var $L146 = $L("::");
6166
+ var $L147 = $L('"');
6167
+ var $L148 = $L("each");
6168
+ var $L149 = $L("else");
6169
+ var $L150 = $L("!");
6170
+ var $L151 = $L("export");
6171
+ var $L152 = $L("extends");
6172
+ var $L153 = $L("finally");
6173
+ var $L154 = $L("for");
6174
+ var $L155 = $L("from");
6175
+ var $L156 = $L("function");
6176
+ var $L157 = $L("get");
6177
+ var $L158 = $L("set");
6178
+ var $L159 = $L("#");
6179
+ var $L160 = $L("if");
6180
+ var $L161 = $L("in");
6181
+ var $L162 = $L("infer");
6182
+ var $L163 = $L("let");
6183
+ var $L164 = $L("const");
6184
+ var $L165 = $L("is");
6185
+ var $L166 = $L("loop");
6186
+ var $L167 = $L("new");
6187
+ var $L168 = $L("not");
6188
+ var $L169 = $L("of");
6189
+ var $L170 = $L("[");
6190
+ var $L171 = $L("operator");
6191
+ var $L172 = $L("override");
6192
+ var $L173 = $L("own");
6193
+ var $L174 = $L("public");
6194
+ var $L175 = $L("private");
6195
+ var $L176 = $L("protected");
6196
+ var $L177 = $L("||>");
6197
+ var $L178 = $L("|\u25B7");
6198
+ var $L179 = $L("|>=");
6199
+ var $L180 = $L("\u25B7=");
6200
+ var $L181 = $L("|>");
6201
+ var $L182 = $L("\u25B7");
6202
+ var $L183 = $L("readonly");
6203
+ var $L184 = $L("return");
6204
+ var $L185 = $L("satisfies");
6205
+ var $L186 = $L("'");
6206
+ var $L187 = $L("static");
6207
+ var $L188 = $L("${");
6208
+ var $L189 = $L("super");
6209
+ var $L190 = $L("switch");
6210
+ var $L191 = $L("target");
6211
+ var $L192 = $L("then");
6212
+ var $L193 = $L("this");
6213
+ var $L194 = $L("throw");
6214
+ var $L195 = $L('"""');
6215
+ var $L196 = $L("'''");
6216
+ var $L197 = $L("///");
6217
+ var $L198 = $L("```");
6218
+ var $L199 = $L("try");
6219
+ var $L200 = $L("typeof");
6220
+ var $L201 = $L("undefined");
6221
+ var $L202 = $L("unless");
6222
+ var $L203 = $L("until");
6223
+ var $L204 = $L("using");
6224
+ var $L205 = $L("var");
6225
+ var $L206 = $L("void");
6226
+ var $L207 = $L("when");
6227
+ var $L208 = $L("while");
6228
+ var $L209 = $L("yield");
6229
+ var $L210 = $L("/>");
6230
+ var $L211 = $L("</");
6231
+ var $L212 = $L("<>");
6232
+ var $L213 = $L("</>");
6233
+ var $L214 = $L("<!--");
6234
+ var $L215 = $L("-->");
6235
+ var $L216 = $L("type");
6236
+ var $L217 = $L("enum");
6237
+ var $L218 = $L("interface");
6238
+ var $L219 = $L("global");
6239
+ var $L220 = $L("module");
6240
+ var $L221 = $L("namespace");
6241
+ var $L222 = $L("asserts");
6242
+ var $L223 = $L("keyof");
6243
+ var $L224 = $L("???");
6244
+ var $L225 = $L("[]");
6245
+ var $L226 = $L("civet");
6062
6246
  var $R0 = $R(new RegExp("(?=async|debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
6063
- var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
6064
- var $R2 = $R(new RegExp("[0-9]", "suy"));
6065
- var $R3 = $R(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
6066
- var $R4 = $R(new RegExp("[ \\t]", "suy"));
6067
- var $R5 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$.])", "suy"));
6068
- var $R6 = $R(new RegExp("(?=['\"`])", "suy"));
6069
- var $R7 = $R(new RegExp("(?=[\\/?])", "suy"));
6070
- var $R8 = $R(new RegExp("(?=[\\/\\[{?.!@#'\u2019:])", "suy"));
6071
- var $R9 = $R(new RegExp("[)}]", "suy"));
6072
- var $R10 = $R(new RegExp("[+-]", "suy"));
6073
- var $R11 = $R(new RegExp("\\+\\+|--|[\\+-]\\S", "suy"));
6074
- var $R12 = $R(new RegExp("[&]", "suy"));
6075
- var $R13 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
6076
- var $R14 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
6077
- var $R15 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
6078
- var $R16 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
6079
- var $R17 = $R(new RegExp("(?=\\[)", "suy"));
6080
- var $R18 = $R(new RegExp("[!+-]?", "suy"));
6081
- var $R19 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
6082
- var $R20 = $R(new RegExp("!\\^\\^?", "suy"));
6083
- var $R21 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
6084
- var $R22 = $R(new RegExp("[:.]", "suy"));
6085
- var $R23 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
6086
- var $R24 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
6087
- var $R25 = $R(new RegExp("(?=[\\s\\),])", "suy"));
6088
- var $R26 = $R(new RegExp('[^;"\\s]+', "suy"));
6089
- var $R27 = $R(new RegExp("(?=[0-9.])", "suy"));
6090
- var $R28 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
6091
- var $R29 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
6092
- var $R30 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
6093
- var $R31 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
6094
- var $R32 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
6095
- var $R33 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
6096
- var $R34 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
6097
- var $R35 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
6098
- var $R36 = $R(new RegExp("(?=[0-9])", "suy"));
6099
- var $R37 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
6100
- var $R38 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
6101
- var $R39 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
6102
- var $R40 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
6103
- var $R41 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
6104
- var $R42 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
6105
- var $R43 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
6106
- var $R44 = $R(new RegExp("(?:\\\\.)", "suy"));
6107
- var $R45 = $R(new RegExp("[\\s]+", "suy"));
6108
- var $R46 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
6109
- var $R47 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
6110
- var $R48 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
6111
- var $R49 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
6112
- var $R50 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
6113
- var $R51 = $R(new RegExp("(?=[`'\"])", "suy"));
6114
- var $R52 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
6115
- var $R53 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
6116
- var $R54 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
6117
- var $R55 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
6118
- var $R56 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
6119
- var $R57 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
6120
- var $R58 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
6121
- var $R59 = $R(new RegExp("(?=\\/|#)", "suy"));
6122
- var $R60 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
6123
- var $R61 = $R(new RegExp(".", "suy"));
6124
- var $R62 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
6125
- var $R63 = $R(new RegExp("[^]*?###", "suy"));
6126
- var $R64 = $R(new RegExp("###(?!#)", "suy"));
6127
- var $R65 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
6128
- var $R66 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
6129
- var $R67 = $R(new RegExp("[ \\t]+", "suy"));
6130
- var $R68 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
6131
- var $R69 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
6132
- var $R70 = $R(new RegExp("[=:]", "suy"));
6133
- var $R71 = $R(new RegExp("['\u2019]s", "suy"));
6134
- var $R72 = $R(new RegExp("\\s", "suy"));
6135
- var $R73 = $R(new RegExp("(?=[<])", "suy"));
6136
- var $R74 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
6137
- var $R75 = $R(new RegExp("[!+-]", "suy"));
6138
- var $R76 = $R(new RegExp("[\\s>]|\\/>", "suy"));
6139
- var $R77 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
6140
- var $R78 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
6141
- var $R79 = $R(new RegExp("[<>]", "suy"));
6142
- var $R80 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
6143
- var $R81 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
6144
- var $R82 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
6145
- var $R83 = $R(new RegExp("[+-]?", "suy"));
6146
- var $R84 = $R(new RegExp("(?=if|unless)", "suy"));
6147
- var $R85 = $R(new RegExp("#![^\\r\\n]*", "suy"));
6148
- var $R86 = $R(new RegExp("[\\t ]*", "suy"));
6149
- var $R87 = $R(new RegExp("[ \\t]*", "suy"));
6150
- var $R88 = $R(new RegExp("[\\s]*", "suy"));
6151
- var $R89 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
6152
- var $R90 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
6153
- var $R91 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
6154
- var $R92 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
6155
- var $R93 = $R(new RegExp("[^]*", "suy"));
6247
+ var $R1 = $R(new RegExp("&(?=\\s)", "suy"));
6248
+ var $R2 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
6249
+ var $R3 = $R(new RegExp("[0-9]", "suy"));
6250
+ var $R4 = $R(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
6251
+ var $R5 = $R(new RegExp("[ \\t]", "suy"));
6252
+ var $R6 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$.])", "suy"));
6253
+ var $R7 = $R(new RegExp("[&=]", "suy"));
6254
+ var $R8 = $R(new RegExp("(?=['\"`])", "suy"));
6255
+ var $R9 = $R(new RegExp("(?=[\\/?])", "suy"));
6256
+ var $R10 = $R(new RegExp("(?=[\\/\\[{?.!@#'\u2019:])", "suy"));
6257
+ var $R11 = $R(new RegExp("[)}]", "suy"));
6258
+ var $R12 = $R(new RegExp("[+-]", "suy"));
6259
+ var $R13 = $R(new RegExp("\\+\\+|--|[\\+\\-&]\\S", "suy"));
6260
+ var $R14 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
6261
+ var $R15 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
6262
+ var $R16 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
6263
+ var $R17 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
6264
+ var $R18 = $R(new RegExp("(?=\\[)", "suy"));
6265
+ var $R19 = $R(new RegExp("[!+-]?", "suy"));
6266
+ var $R20 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
6267
+ var $R21 = $R(new RegExp("!\\^\\^?", "suy"));
6268
+ var $R22 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
6269
+ var $R23 = $R(new RegExp("[:.]", "suy"));
6270
+ var $R24 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
6271
+ var $R25 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
6272
+ var $R26 = $R(new RegExp("(?=[\\s\\),])", "suy"));
6273
+ var $R27 = $R(new RegExp('[^;"\\s]+', "suy"));
6274
+ var $R28 = $R(new RegExp("(?=[0-9.])", "suy"));
6275
+ var $R29 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
6276
+ var $R30 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
6277
+ var $R31 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
6278
+ var $R32 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
6279
+ var $R33 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
6280
+ var $R34 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
6281
+ var $R35 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
6282
+ var $R36 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
6283
+ var $R37 = $R(new RegExp("(?=[0-9])", "suy"));
6284
+ var $R38 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
6285
+ var $R39 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
6286
+ var $R40 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
6287
+ var $R41 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
6288
+ var $R42 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
6289
+ var $R43 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
6290
+ var $R44 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
6291
+ var $R45 = $R(new RegExp("(?:\\\\.)", "suy"));
6292
+ var $R46 = $R(new RegExp("[\\s]+", "suy"));
6293
+ var $R47 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
6294
+ var $R48 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
6295
+ var $R49 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
6296
+ var $R50 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
6297
+ var $R51 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
6298
+ var $R52 = $R(new RegExp("(?=[`'\"])", "suy"));
6299
+ var $R53 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
6300
+ var $R54 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
6301
+ var $R55 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
6302
+ var $R56 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
6303
+ var $R57 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
6304
+ var $R58 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
6305
+ var $R59 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
6306
+ var $R60 = $R(new RegExp("(?=\\/|#)", "suy"));
6307
+ var $R61 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
6308
+ var $R62 = $R(new RegExp(".", "suy"));
6309
+ var $R63 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
6310
+ var $R64 = $R(new RegExp("[^]*?###", "suy"));
6311
+ var $R65 = $R(new RegExp("###(?!#)", "suy"));
6312
+ var $R66 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
6313
+ var $R67 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
6314
+ var $R68 = $R(new RegExp("[ \\t]+", "suy"));
6315
+ var $R69 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
6316
+ var $R70 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
6317
+ var $R71 = $R(new RegExp("[=:]", "suy"));
6318
+ var $R72 = $R(new RegExp("['\u2019]s", "suy"));
6319
+ var $R73 = $R(new RegExp("\\s", "suy"));
6320
+ var $R74 = $R(new RegExp("(?=[<])", "suy"));
6321
+ var $R75 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
6322
+ var $R76 = $R(new RegExp("[!+-]", "suy"));
6323
+ var $R77 = $R(new RegExp("[\\s>]|\\/>", "suy"));
6324
+ var $R78 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
6325
+ var $R79 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
6326
+ var $R80 = $R(new RegExp("[<>]", "suy"));
6327
+ var $R81 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
6328
+ var $R82 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
6329
+ var $R83 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
6330
+ var $R84 = $R(new RegExp("[+-]?", "suy"));
6331
+ var $R85 = $R(new RegExp("(?=if|unless)", "suy"));
6332
+ var $R86 = $R(new RegExp("#![^\\r\\n]*", "suy"));
6333
+ var $R87 = $R(new RegExp("[\\t ]*", "suy"));
6334
+ var $R88 = $R(new RegExp("[ \\t]*", "suy"));
6335
+ var $R89 = $R(new RegExp("[\\s]*", "suy"));
6336
+ var $R90 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
6337
+ var $R91 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
6338
+ var $R92 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
6339
+ var $R93 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
6340
+ var $R94 = $R(new RegExp("[^]*", "suy"));
6156
6341
  var Program$0 = $TS($S(Reset, Init, $E(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6157
6342
  var statements = $4;
6158
6343
  processProgram({
@@ -6211,12 +6396,7 @@ ${input.slice(result.pos)}
6211
6396
  var ws = $2;
6212
6397
  var statement = $3;
6213
6398
  var delimiter = $4;
6214
- if (ws) {
6215
- statement = {
6216
- ...statement,
6217
- children: [ws, ...statement.children]
6218
- };
6219
- }
6399
+ statement = prepend(ws, statement);
6220
6400
  return [statement, delimiter];
6221
6401
  });
6222
6402
  function TopLevelStatement(ctx, state) {
@@ -6329,7 +6509,7 @@ ${input.slice(result.pos)}
6329
6509
  function Arguments(ctx, state) {
6330
6510
  return $EVENT_C(ctx, state, "Arguments", Arguments$$);
6331
6511
  }
6332
- var ImplicitArguments$0 = $TS($S(ApplicationStart, InsertOpenParen, $E(_), NonPipelineArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6512
+ var ImplicitArguments$0 = $TS($S(ApplicationStart, InsertOpenParen, $E(Trimmed_), NonPipelineArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6333
6513
  var open = $2;
6334
6514
  var ws = $3;
6335
6515
  var args = $4;
@@ -6339,7 +6519,7 @@ ${input.slice(result.pos)}
6339
6519
  return {
6340
6520
  type: "Call",
6341
6521
  args,
6342
- children: [open, insertTrimmingSpace(ws, ""), args, close]
6522
+ children: [open, ws, args, close]
6343
6523
  };
6344
6524
  });
6345
6525
  function ImplicitArguments(ctx, state) {
@@ -6374,27 +6554,32 @@ ${input.slice(result.pos)}
6374
6554
  function ApplicationStart(ctx, state) {
6375
6555
  return $EVENT_C(ctx, state, "ApplicationStart", ApplicationStart$$);
6376
6556
  }
6377
- var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R1, "ForbiddenImplicitCalls /(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
6557
+ var ForbiddenImplicitCalls$0 = ReservedBinary;
6378
6558
  var ForbiddenImplicitCalls$1 = $EXPECT($L2, 'ForbiddenImplicitCalls "/ "');
6379
- var ForbiddenImplicitCalls$2 = $S(ClassImplicitCallForbidden, $C(Class, AtAt));
6380
- var ForbiddenImplicitCalls$3 = $S(Identifier, $EXPECT($L3, 'ForbiddenImplicitCalls "="'), Whitespace);
6381
- var ForbiddenImplicitCalls$4 = $TS($S(Identifier, $N($EXPECT($L4, 'ForbiddenImplicitCalls "("'))), function($skip, $loc, $0, $1, $2) {
6559
+ var ForbiddenImplicitCalls$2 = $S($Y($S($R$0($EXPECT($R1, "ForbiddenImplicitCalls /&(?=\\s)/")), $N($S(NotDedented, $C(Ampersand, ReservedBinary))), $C(IndentedFurther, $N(EOS)))), BinaryOpRHS);
6560
+ var ForbiddenImplicitCalls$3 = $S(ClassImplicitCallForbidden, $C(Class, AtAt));
6561
+ var ForbiddenImplicitCalls$4 = $S(Identifier, $EXPECT($L3, 'ForbiddenImplicitCalls "="'), Whitespace);
6562
+ var ForbiddenImplicitCalls$5 = $TS($S(Identifier, $N($EXPECT($L4, 'ForbiddenImplicitCalls "("'))), function($skip, $loc, $0, $1, $2) {
6382
6563
  var id = $1;
6383
6564
  if (module.operators.has(id.name))
6384
6565
  return $0;
6385
6566
  return $skip;
6386
6567
  });
6387
- var ForbiddenImplicitCalls$5 = $TS($S(OmittedNegation, $E(_), Identifier), function($skip, $loc, $0, $1, $2, $3) {
6568
+ var ForbiddenImplicitCalls$6 = $TS($S(OmittedNegation, $E(_), Identifier), function($skip, $loc, $0, $1, $2, $3) {
6388
6569
  var id = $3;
6389
6570
  if (module.operators.has(id.name))
6390
6571
  return $0;
6391
6572
  return $skip;
6392
6573
  });
6393
- var ForbiddenImplicitCalls$6 = $EXPECT($L5, 'ForbiddenImplicitCalls "... "');
6394
- var ForbiddenImplicitCalls$$ = [ForbiddenImplicitCalls$0, ForbiddenImplicitCalls$1, ForbiddenImplicitCalls$2, ForbiddenImplicitCalls$3, ForbiddenImplicitCalls$4, ForbiddenImplicitCalls$5, ForbiddenImplicitCalls$6];
6574
+ var ForbiddenImplicitCalls$7 = $EXPECT($L5, 'ForbiddenImplicitCalls "... "');
6575
+ var ForbiddenImplicitCalls$$ = [ForbiddenImplicitCalls$0, ForbiddenImplicitCalls$1, ForbiddenImplicitCalls$2, ForbiddenImplicitCalls$3, ForbiddenImplicitCalls$4, ForbiddenImplicitCalls$5, ForbiddenImplicitCalls$6, ForbiddenImplicitCalls$7];
6395
6576
  function ForbiddenImplicitCalls(ctx, state) {
6396
6577
  return $EVENT_C(ctx, state, "ForbiddenImplicitCalls", ForbiddenImplicitCalls$$);
6397
6578
  }
6579
+ var ReservedBinary$0 = $R$0($EXPECT($R2, "ReservedBinary /(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
6580
+ function ReservedBinary(ctx, state) {
6581
+ return $EVENT(ctx, state, "ReservedBinary", ReservedBinary$0);
6582
+ }
6398
6583
  var ArgumentsWithTrailingMemberExpressions$0 = $TS($S(Arguments, AllowedTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
6399
6584
  var args = $1;
6400
6585
  var trailing = $2;
@@ -6403,8 +6588,16 @@ ${input.slice(result.pos)}
6403
6588
  function ArgumentsWithTrailingMemberExpressions(ctx, state) {
6404
6589
  return $EVENT(ctx, state, "ArgumentsWithTrailingMemberExpressions", ArgumentsWithTrailingMemberExpressions$0);
6405
6590
  }
6406
- var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S(IndentedAtLeast, $Y($S($E($EXPECT($L6, 'TrailingMemberExpressions "?"')), $EXPECT($L7, 'TrailingMemberExpressions "."'), $N($EXPECT($R2, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
6407
- return $1.concat($2);
6591
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S(IndentedAtLeast, $Y($S($E($EXPECT($L6, 'TrailingMemberExpressions "?"')), $EXPECT($L7, 'TrailingMemberExpressions "."'), $N($EXPECT($R3, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
6592
+ return $1.concat($2.map(([ws, , memberExpressionRest]) => {
6593
+ if (Array.isArray(memberExpressionRest)) {
6594
+ return [ws, ...memberExpressionRest];
6595
+ }
6596
+ return {
6597
+ ...memberExpressionRest,
6598
+ children: [ws, ...memberExpressionRest.children]
6599
+ };
6600
+ }));
6408
6601
  });
6409
6602
  function TrailingMemberExpressions(ctx, state) {
6410
6603
  return $EVENT(ctx, state, "TrailingMemberExpressions", TrailingMemberExpressions$0);
@@ -6417,7 +6610,7 @@ ${input.slice(result.pos)}
6417
6610
  function AllowedTrailingMemberExpressions(ctx, state) {
6418
6611
  return $EVENT_C(ctx, state, "AllowedTrailingMemberExpressions", AllowedTrailingMemberExpressions$$);
6419
6612
  }
6420
- var TrailingCallExpressions$0 = $P($S(IndentedAtLeast, $Y($S($E($EXPECT($L6, 'TrailingCallExpressions "?"')), $EXPECT($L7, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R2, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
6613
+ var TrailingCallExpressions$0 = $P($S(IndentedAtLeast, $Y($S($E($EXPECT($L6, 'TrailingCallExpressions "?"')), $EXPECT($L7, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R3, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
6421
6614
  function TrailingCallExpressions(ctx, state) {
6422
6615
  return $EVENT(ctx, state, "TrailingCallExpressions", TrailingCallExpressions$0);
6423
6616
  }
@@ -6431,10 +6624,10 @@ ${input.slice(result.pos)}
6431
6624
  function CommaDelimiter(ctx, state) {
6432
6625
  return $EVENT(ctx, state, "CommaDelimiter", CommaDelimiter$0);
6433
6626
  }
6434
- var ArgumentList$0 = $TS($S(ArgumentPart, $Q($S(CommaDelimiter, $N(EOS), ArgumentPart)), $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
6627
+ var ArgumentList$0 = $TS($S(ArgumentPart, $Q($S(CommaDelimiter, $N(EOS), $E(_), ArgumentPart)), $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
6435
6628
  return [
6436
6629
  $1,
6437
- ...$2.flatMap(([comma, eos, arg]) => [comma, arg]),
6630
+ ...$2.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
6438
6631
  ...$3.flatMap(
6439
6632
  ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
6440
6633
  )
@@ -6444,17 +6637,20 @@ ${input.slice(result.pos)}
6444
6637
  return [insertTrimmingSpace($1, "")];
6445
6638
  });
6446
6639
  var ArgumentList$2 = NestedArgumentList;
6447
- var ArgumentList$3 = $TS($S($S($E(_), ArgumentPart), $Q($S(CommaDelimiter, $S($E(_), ArgumentPart)))), function($skip, $loc, $0, $1, $2) {
6448
- return [$1, ...$2.flat()];
6640
+ var ArgumentList$3 = $TS($S($E(_), ArgumentPart, $Q($S(CommaDelimiter, $E(_), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
6641
+ return [
6642
+ prepend($1, $2),
6643
+ ...$3.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
6644
+ ];
6449
6645
  });
6450
6646
  var ArgumentList$$ = [ArgumentList$0, ArgumentList$1, ArgumentList$2, ArgumentList$3];
6451
6647
  function ArgumentList(ctx, state) {
6452
6648
  return $EVENT_C(ctx, state, "ArgumentList", ArgumentList$$);
6453
6649
  }
6454
- var NonPipelineArgumentList$0 = $TS($S(NonPipelineArgumentPart, $Q($S(CommaDelimiter, $N(EOS), NonPipelineArgumentPart)), $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
6650
+ var NonPipelineArgumentList$0 = $TS($S(NonPipelineArgumentPart, $Q($S(CommaDelimiter, $N(EOS), $E(_), NonPipelineArgumentPart)), $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
6455
6651
  return [
6456
6652
  $1,
6457
- ...$2.flatMap(([comma, eos, arg]) => [comma, arg]),
6653
+ ...$2.flatMap(([comma, eos, ws, arg]) => [comma, prepend(ws, arg)]),
6458
6654
  ...$3.flatMap(
6459
6655
  ([comma, args]) => Array.isArray(args) ? [comma, ...args] : [comma, args]
6460
6656
  )
@@ -6464,8 +6660,11 @@ ${input.slice(result.pos)}
6464
6660
  return [insertTrimmingSpace($1, "")];
6465
6661
  });
6466
6662
  var NonPipelineArgumentList$2 = NestedArgumentList;
6467
- var NonPipelineArgumentList$3 = $TS($S($S($E(_), NonPipelineArgumentPart), $Q($S(CommaDelimiter, $S($E(_), NonPipelineArgumentPart)))), function($skip, $loc, $0, $1, $2) {
6468
- return [$1, ...$2.flat()];
6663
+ var NonPipelineArgumentList$3 = $TS($S($E(_), NonPipelineArgumentPart, $Q($S(CommaDelimiter, $E(_), NonPipelineArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
6664
+ return [
6665
+ prepend($1, $2),
6666
+ ...$3.flatMap(([comma, ws, arg]) => [comma, prepend(ws, arg)])
6667
+ ];
6469
6668
  });
6470
6669
  var NonPipelineArgumentList$$ = [NonPipelineArgumentList$0, NonPipelineArgumentList$1, NonPipelineArgumentList$2, NonPipelineArgumentList$3];
6471
6670
  function NonPipelineArgumentList(ctx, state) {
@@ -6571,20 +6770,19 @@ ${input.slice(result.pos)}
6571
6770
  function RHS(ctx, state) {
6572
6771
  return $EVENT_C(ctx, state, "RHS", RHS$$);
6573
6772
  }
6574
- var UnaryExpression$0 = AmpersandFunctionExpression;
6575
- var UnaryExpression$1 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
6773
+ var UnaryExpression$0 = $TS($S($Q(UnaryOp), UnaryBody, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3) {
6576
6774
  var pre = $1;
6577
6775
  var exp = $2;
6578
6776
  var post = $3;
6579
6777
  return processUnaryExpression(pre, exp, post);
6580
6778
  });
6581
- var UnaryExpression$2 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
6779
+ var UnaryExpression$1 = $TS($S(CoffeeDoEnabled, Do, __, $C($S(LeftHandSideExpression, $N($S(__, AssignmentOpSymbol))), ArrowFunction, ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
6582
6780
  var ws = $3;
6583
6781
  var exp = $4;
6584
6782
  ws = insertTrimmingSpace(ws, "");
6585
6783
  return ["(", ...ws, exp, ")()"];
6586
6784
  });
6587
- var UnaryExpression$$ = [UnaryExpression$0, UnaryExpression$1, UnaryExpression$2];
6785
+ var UnaryExpression$$ = [UnaryExpression$0, UnaryExpression$1];
6588
6786
  function UnaryExpression(ctx, state) {
6589
6787
  return $EVENT_C(ctx, state, "UnaryExpression", UnaryExpression$$);
6590
6788
  }
@@ -6625,7 +6823,7 @@ ${input.slice(result.pos)}
6625
6823
  var TypePostfix$0 = $TS($S(_, NWTypePostfix), function($skip, $loc, $0, $1, $2) {
6626
6824
  var ws = $1;
6627
6825
  var postfix = $2;
6628
- return [ws, postfix];
6826
+ return prepend(ws, postfix);
6629
6827
  });
6630
6828
  function TypePostfix(ctx, state) {
6631
6829
  return $EVENT(ctx, state, "TypePostfix", TypePostfix$0);
@@ -6671,7 +6869,7 @@ ${input.slice(result.pos)}
6671
6869
  children: $0
6672
6870
  };
6673
6871
  });
6674
- var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E($S(UpdateExpressionSymbol, $EXPECT($R3, "UpdateExpression /(?!\\p{ID_Start}|[_$0-9(\\[{])/")))), function($skip, $loc, $0, $1, $2) {
6872
+ var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E($S(UpdateExpressionSymbol, $EXPECT($R4, "UpdateExpression /(?!\\p{ID_Start}|[_$0-9(\\[{])/")))), function($skip, $loc, $0, $1, $2) {
6675
6873
  if (!$2)
6676
6874
  return $1;
6677
6875
  return {
@@ -6697,15 +6895,20 @@ ${input.slice(result.pos)}
6697
6895
  function UpdateExpressionSymbol(ctx, state) {
6698
6896
  return $EVENT_C(ctx, state, "UpdateExpressionSymbol", UpdateExpressionSymbol$$);
6699
6897
  }
6700
- var AssignmentExpression$0 = PipelineExpression;
6701
- var AssignmentExpression$1 = SingleLineAssignmentExpression;
6702
- var AssignmentExpression$2 = $S(__, AssignmentExpressionTail);
6703
- var AssignmentExpression$$ = [AssignmentExpression$0, AssignmentExpression$1, AssignmentExpression$2];
6898
+ var AssignmentExpression$0 = $TS($S($E(_), ActualAssignment), function($skip, $loc, $0, $1, $2) {
6899
+ var ws = $1;
6900
+ var assign = $2;
6901
+ return prepend(ws, assign);
6902
+ });
6903
+ var AssignmentExpression$1 = PipelineExpression;
6904
+ var AssignmentExpression$2 = SingleLineAssignmentExpression;
6905
+ var AssignmentExpression$3 = $S(__, AssignmentExpressionTail);
6906
+ var AssignmentExpression$$ = [AssignmentExpression$0, AssignmentExpression$1, AssignmentExpression$2, AssignmentExpression$3];
6704
6907
  function AssignmentExpression(ctx, state) {
6705
6908
  return $EVENT_C(ctx, state, "AssignmentExpression", AssignmentExpression$$);
6706
6909
  }
6707
- var NonPipelineAssignmentExpression$0 = SingleLineAssignmentExpression;
6708
- var NonPipelineAssignmentExpression$1 = $S(__, AssignmentExpressionTail);
6910
+ var NonPipelineAssignmentExpression$0 = NonPipelineSingleLineAssignmentExpression;
6911
+ var NonPipelineAssignmentExpression$1 = $S(__, NonPipelineAssignmentExpressionTail);
6709
6912
  var NonPipelineAssignmentExpression$$ = [NonPipelineAssignmentExpression$0, NonPipelineAssignmentExpression$1];
6710
6913
  function NonPipelineAssignmentExpression(ctx, state) {
6711
6914
  return $EVENT_C(ctx, state, "NonPipelineAssignmentExpression", NonPipelineAssignmentExpression$$);
@@ -6713,20 +6916,19 @@ ${input.slice(result.pos)}
6713
6916
  var SingleLineAssignmentExpression$0 = $TS($S($E(_), AssignmentExpressionTail), function($skip, $loc, $0, $1, $2) {
6714
6917
  var ws = $1;
6715
6918
  var tail = $2;
6716
- if (ws?.length) {
6717
- if (tail.children && tail.type !== "IterationExpression") {
6718
- return {
6719
- ...tail,
6720
- children: [...ws, ...tail.children]
6721
- };
6722
- }
6723
- return $0;
6724
- }
6725
- return tail;
6919
+ return prepend(ws, tail);
6726
6920
  });
6727
6921
  function SingleLineAssignmentExpression(ctx, state) {
6728
6922
  return $EVENT(ctx, state, "SingleLineAssignmentExpression", SingleLineAssignmentExpression$0);
6729
6923
  }
6924
+ var NonPipelineSingleLineAssignmentExpression$0 = $TS($S($E(_), NonPipelineAssignmentExpressionTail), function($skip, $loc, $0, $1, $2) {
6925
+ var ws = $1;
6926
+ var tail = $2;
6927
+ return prepend(ws, tail);
6928
+ });
6929
+ function NonPipelineSingleLineAssignmentExpression(ctx, state) {
6930
+ return $EVENT(ctx, state, "NonPipelineSingleLineAssignmentExpression", NonPipelineSingleLineAssignmentExpression$0);
6931
+ }
6730
6932
  var AssignmentExpressionTail$0 = YieldExpression;
6731
6933
  var AssignmentExpressionTail$1 = ArrowFunction;
6732
6934
  var AssignmentExpressionTail$2 = ActualAssignment;
@@ -6735,6 +6937,14 @@ ${input.slice(result.pos)}
6735
6937
  function AssignmentExpressionTail(ctx, state) {
6736
6938
  return $EVENT_C(ctx, state, "AssignmentExpressionTail", AssignmentExpressionTail$$);
6737
6939
  }
6940
+ var NonPipelineAssignmentExpressionTail$0 = YieldExpression;
6941
+ var NonPipelineAssignmentExpressionTail$1 = ArrowFunction;
6942
+ var NonPipelineAssignmentExpressionTail$2 = NonPipelineActualAssignment;
6943
+ var NonPipelineAssignmentExpressionTail$3 = ConditionalExpression;
6944
+ var NonPipelineAssignmentExpressionTail$$ = [NonPipelineAssignmentExpressionTail$0, NonPipelineAssignmentExpressionTail$1, NonPipelineAssignmentExpressionTail$2, NonPipelineAssignmentExpressionTail$3];
6945
+ function NonPipelineAssignmentExpressionTail(ctx, state) {
6946
+ return $EVENT_C(ctx, state, "NonPipelineAssignmentExpressionTail", NonPipelineAssignmentExpressionTail$$);
6947
+ }
6738
6948
  var ActualAssignment$0 = $TS($S($P($S(NotDedented, UpdateExpression, WAssignmentOp)), ExtendedExpression), function($skip, $loc, $0, $1, $2) {
6739
6949
  $1 = $1.map((x) => [x[0], x[1], ...x[2]]);
6740
6950
  $0 = [$1, $2];
@@ -6752,6 +6962,23 @@ ${input.slice(result.pos)}
6752
6962
  function ActualAssignment(ctx, state) {
6753
6963
  return $EVENT(ctx, state, "ActualAssignment", ActualAssignment$0);
6754
6964
  }
6965
+ var NonPipelineActualAssignment$0 = $TS($S($P($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression), function($skip, $loc, $0, $1, $2) {
6966
+ $1 = $1.map((x) => [x[0], x[1], ...x[2]]);
6967
+ $0 = [$1, $2];
6968
+ return {
6969
+ type: "AssignmentExpression",
6970
+ children: $0,
6971
+ // NOTE: This null marks the assignment for later processing to distinguish it
6972
+ // from fake assignments that only add a name to a scope
6973
+ names: null,
6974
+ lhs: $1,
6975
+ assigned: $1[0][1],
6976
+ exp: $2
6977
+ };
6978
+ });
6979
+ function NonPipelineActualAssignment(ctx, state) {
6980
+ return $EVENT(ctx, state, "NonPipelineActualAssignment", NonPipelineActualAssignment$0);
6981
+ }
6755
6982
  var YieldExpression$0 = $S(Yield, YieldTail);
6756
6983
  function YieldExpression(ctx, state) {
6757
6984
  return $EVENT(ctx, state, "YieldExpression", YieldExpression$0);
@@ -6820,7 +7047,7 @@ ${input.slice(result.pos)}
6820
7047
  if (exp.type === "ObjectExpression") {
6821
7048
  exp = makeLeftHandSideExpression(exp);
6822
7049
  }
6823
- const expressions = [exp];
7050
+ const expressions = [["", exp]];
6824
7051
  return {
6825
7052
  type: "BlockStatement",
6826
7053
  bare: true,
@@ -6844,7 +7071,7 @@ ${input.slice(result.pos)}
6844
7071
  return $EVENT(ctx, state, "ConditionalExpression", ConditionalExpression$0);
6845
7072
  }
6846
7073
  var TernaryRest$0 = NestedTernaryRest;
6847
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R4, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
7074
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R5, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
6848
7075
  return $0.slice(2);
6849
7076
  });
6850
7077
  var TernaryRest$$ = [TernaryRest$0, TernaryRest$1];
@@ -6867,9 +7094,6 @@ ${input.slice(result.pos)}
6867
7094
  var ws = $1;
6868
7095
  var head = $2;
6869
7096
  var body = $3;
6870
- if (head.token === "&") {
6871
- head = makeAmpersandFunction();
6872
- }
6873
7097
  if (head.type === "ArrowFunction" && head.ampersandBlock) {
6874
7098
  const expressions = [{
6875
7099
  type: "PipelineExpression",
@@ -6893,8 +7117,7 @@ ${input.slice(result.pos)}
6893
7117
  }
6894
7118
  var PipelineHeadItem$0 = NonPipelineExtendedExpression;
6895
7119
  var PipelineHeadItem$1 = ParenthesizedExpression;
6896
- var PipelineHeadItem$2 = Ampersand;
6897
- var PipelineHeadItem$$ = [PipelineHeadItem$0, PipelineHeadItem$1, PipelineHeadItem$2];
7120
+ var PipelineHeadItem$$ = [PipelineHeadItem$0, PipelineHeadItem$1];
6898
7121
  function PipelineHeadItem(ctx, state) {
6899
7122
  return $EVENT_C(ctx, state, "PipelineHeadItem", PipelineHeadItem$$);
6900
7123
  }
@@ -6908,13 +7131,14 @@ ${input.slice(result.pos)}
6908
7131
  return value[0];
6909
7132
  });
6910
7133
  var PipelineTailItem$3 = $TS($S(NWTypePostfix, $Q(TypePostfix)), function($skip, $loc, $0, $1, $2) {
6911
- return makeAmpersandFunction([" ", $1, ...$2]);
7134
+ return makeAmpersandFunction({
7135
+ body: [" ", $1, ...$2]
7136
+ });
6912
7137
  });
6913
- var PipelineTailItem$4 = AmpersandFunctionExpression;
6914
- var PipelineTailItem$5 = $T($S($N(Ampersand), PipelineHeadItem), function(value) {
6915
- return value[1];
7138
+ var PipelineTailItem$4 = $T($S(PipelineHeadItem), function(value) {
7139
+ return value[0];
6916
7140
  });
6917
- var PipelineTailItem$$ = [PipelineTailItem$0, PipelineTailItem$1, PipelineTailItem$2, PipelineTailItem$3, PipelineTailItem$4, PipelineTailItem$5];
7141
+ var PipelineTailItem$$ = [PipelineTailItem$0, PipelineTailItem$1, PipelineTailItem$2, PipelineTailItem$3, PipelineTailItem$4];
6918
7142
  function PipelineTailItem(ctx, state) {
6919
7143
  return $EVENT_C(ctx, state, "PipelineTailItem", PipelineTailItem$$);
6920
7144
  }
@@ -6928,7 +7152,7 @@ ${input.slice(result.pos)}
6928
7152
  var PrimaryExpression$7 = ClassExpression;
6929
7153
  var PrimaryExpression$8 = RegularExpressionLiteral;
6930
7154
  var PrimaryExpression$9 = ParenthesizedExpression;
6931
- var PrimaryExpression$10 = PartialPlaceholder;
7155
+ var PrimaryExpression$10 = Placeholder;
6932
7156
  var PrimaryExpression$11 = JSXImplicitFragment;
6933
7157
  var PrimaryExpression$$ = [PrimaryExpression$0, PrimaryExpression$1, PrimaryExpression$2, PrimaryExpression$3, PrimaryExpression$4, PrimaryExpression$5, PrimaryExpression$6, PrimaryExpression$7, PrimaryExpression$8, PrimaryExpression$9, PrimaryExpression$10, PrimaryExpression$11];
6934
7158
  function PrimaryExpression(ctx, state) {
@@ -6964,15 +7188,40 @@ ${input.slice(result.pos)}
6964
7188
  function ParenthesizedExpression(ctx, state) {
6965
7189
  return $EVENT(ctx, state, "ParenthesizedExpression", ParenthesizedExpression$0);
6966
7190
  }
6967
- var PartialPlaceholder$0 = $TS($S(Dot, $N($EXPECT($R5, "PartialPlaceholder /(?:\\p{ID_Continue}|[\\u200C\\u200D$.])/"))), function($skip, $loc, $0, $1, $2) {
7191
+ var Placeholder$0 = $TS($S(Dot, $N($EXPECT($R6, "Placeholder /(?:\\p{ID_Continue}|[\\u200C\\u200D$.])/"))), function($skip, $loc, $0, $1, $2) {
6968
7192
  var dot = $1;
6969
7193
  return {
6970
- type: "PartialPlaceholder",
7194
+ type: "Placeholder",
7195
+ subtype: ".",
6971
7196
  children: [dot]
6972
7197
  };
6973
7198
  });
6974
- function PartialPlaceholder(ctx, state) {
6975
- return $EVENT(ctx, state, "PartialPlaceholder", PartialPlaceholder$0);
7199
+ var Placeholder$1 = $TS($S(Ampersand, $N($EXPECT($R7, "Placeholder /[&=]/")), $E(AmpersandTypeSuffix)), function($skip, $loc, $0, $1, $2, $3) {
7200
+ var amp = $1;
7201
+ var typeSuffix = $3;
7202
+ return {
7203
+ type: "Placeholder",
7204
+ subtype: "&",
7205
+ typeSuffix,
7206
+ children: [amp]
7207
+ };
7208
+ });
7209
+ var Placeholder$2 = $TS($S($Y(AccessStart), $Y(PropertyAccess), $N(NumericLiteral)), function($skip, $loc, $0, $1, $2, $3) {
7210
+ return {
7211
+ type: "Placeholder",
7212
+ subtype: "&",
7213
+ children: [{ token: "&" }]
7214
+ };
7215
+ });
7216
+ var Placeholder$$ = [Placeholder$0, Placeholder$1, Placeholder$2];
7217
+ function Placeholder(ctx, state) {
7218
+ return $EVENT_C(ctx, state, "Placeholder", Placeholder$$);
7219
+ }
7220
+ var AmpersandTypeSuffix$0 = $T($S($Y($S($E(_), $E(QuestionMark), $E(_), Colon)), TypeSuffix), function(value) {
7221
+ return value[1];
7222
+ });
7223
+ function AmpersandTypeSuffix(ctx, state) {
7224
+ return $EVENT(ctx, state, "AmpersandTypeSuffix", AmpersandTypeSuffix$0);
6976
7225
  }
6977
7226
  var ClassDeclaration$0 = $TS($S(ClassExpression), function($skip, $loc, $0, $1) {
6978
7227
  if ($1.id)
@@ -7123,19 +7372,25 @@ ${input.slice(result.pos)}
7123
7372
  return $EVENT(ctx, state, "ImplementsTarget", ImplementsTarget$0);
7124
7373
  }
7125
7374
  var ClassBody$0 = $TS($S(__, OpenBrace, $E(NestedClassElements), __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7126
- var elements = $3;
7375
+ var expressions = $3;
7376
+ if (!expressions)
7377
+ expressions = $0[2] = [];
7127
7378
  return {
7128
- type: "ClassBody",
7379
+ type: "BlockStatement",
7380
+ subtype: "ClassBody",
7129
7381
  children: $0,
7130
- elements
7382
+ expressions
7131
7383
  };
7132
7384
  });
7133
7385
  var ClassBody$1 = $TS($S(InsertOpenBrace, $E(NestedClassElements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7134
- var elements = $2;
7386
+ var expressions = $2;
7387
+ if (!expressions)
7388
+ expressions = $0[1] = [];
7135
7389
  return {
7136
- type: "ClassBody",
7390
+ type: "BlockStatement",
7391
+ subtype: "ClassBody",
7137
7392
  children: $0,
7138
- elements
7393
+ expressions
7139
7394
  };
7140
7395
  });
7141
7396
  var ClassBody$$ = [ClassBody$0, ClassBody$1];
@@ -7407,7 +7662,7 @@ ${input.slice(result.pos)}
7407
7662
  var CallExpressionRest$1 = $T($S(TypeArguments, $N($C(IdentifierName, NumericLiteral))), function(value) {
7408
7663
  return value[0];
7409
7664
  });
7410
- var CallExpressionRest$2 = $TS($S($EXPECT($R6, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
7665
+ var CallExpressionRest$2 = $TS($S($EXPECT($R8, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
7411
7666
  var literal = $2;
7412
7667
  if (literal.type === "StringLiteral") {
7413
7668
  literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
@@ -7430,7 +7685,7 @@ ${input.slice(result.pos)}
7430
7685
  function CallExpressionRest(ctx, state) {
7431
7686
  return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
7432
7687
  }
7433
- var OptionalShorthand$0 = $TS($S($EXPECT($R7, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
7688
+ var OptionalShorthand$0 = $TS($S($EXPECT($R9, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
7434
7689
  var comments = $2;
7435
7690
  var q = $3;
7436
7691
  var d = $4;
@@ -7484,7 +7739,7 @@ ${input.slice(result.pos)}
7484
7739
  function MemberBase(ctx, state) {
7485
7740
  return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
7486
7741
  }
7487
- var MemberExpressionRest$0 = $TS($S($EXPECT($R8, "MemberExpressionRest /(?=[\\/\\[{?.!@#'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
7742
+ var MemberExpressionRest$0 = $TS($S($EXPECT($R10, "MemberExpressionRest /(?=[\\/\\[{?.!@#'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
7488
7743
  var comments = $2;
7489
7744
  var body = $3;
7490
7745
  if (Array.isArray(body))
@@ -7926,10 +8181,7 @@ ${input.slice(result.pos)}
7926
8181
  var ws = $1;
7927
8182
  var params = $2;
7928
8183
  params = [...params];
7929
- params[0] = {
7930
- ...params[0],
7931
- children: [ws, ...params[0].children]
7932
- };
8184
+ params[0] = prepend(ws, params[0]);
7933
8185
  return params;
7934
8186
  });
7935
8187
  function NestedParameter(ctx, state) {
@@ -7968,7 +8220,7 @@ ${input.slice(result.pos)}
7968
8220
  return $EVENT(ctx, state, "ParameterElement", ParameterElement$0);
7969
8221
  }
7970
8222
  var ParameterElementDelimiter$0 = $S($E(_), Comma);
7971
- var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R9, "ParameterElementDelimiter /[)}]/"))));
8223
+ var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R11, "ParameterElementDelimiter /[)}]/"))));
7972
8224
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
7973
8225
  return value[1];
7974
8226
  });
@@ -7979,7 +8231,7 @@ ${input.slice(result.pos)}
7979
8231
  var BindingIdentifier$0 = $TS($S(__, NWBindingIdentifier), function($skip, $loc, $0, $1, $2) {
7980
8232
  var ws = $1;
7981
8233
  var identifier = $2;
7982
- return { ...identifier, children: [...ws, ...identifier.children] };
8234
+ return prepend(ws, identifier);
7983
8235
  });
7984
8236
  function BindingIdentifier(ctx, state) {
7985
8237
  return $EVENT(ctx, state, "BindingIdentifier", BindingIdentifier$0);
@@ -8037,7 +8289,7 @@ ${input.slice(result.pos)}
8037
8289
  expression
8038
8290
  };
8039
8291
  });
8040
- var PinPattern$2 = $TV($S($EXPECT($R10, "PinPattern /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1) {
8292
+ var PinPattern$2 = $TV($S($EXPECT($R12, "PinPattern /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1) {
8041
8293
  var expression = $0;
8042
8294
  return {
8043
8295
  type: "PinPattern",
@@ -8182,10 +8434,7 @@ ${input.slice(result.pos)}
8182
8434
  return props.map((prop, i) => {
8183
8435
  if (i > 0)
8184
8436
  return prop;
8185
- return {
8186
- ...prop,
8187
- children: [ws, ...prop.children]
8188
- };
8437
+ return prepend(ws, prop);
8189
8438
  });
8190
8439
  });
8191
8440
  function NestedBindingPropertyList(ctx, state) {
@@ -8421,10 +8670,7 @@ ${input.slice(result.pos)}
8421
8670
  block
8422
8671
  };
8423
8672
  });
8424
- var FunctionExpression$1 = $TV($EXPECT($L26, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
8425
- return makeAmpersandFunction();
8426
- });
8427
- var FunctionExpression$2 = $TS($S(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
8673
+ var FunctionExpression$1 = $TS($S(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
8428
8674
  var open = $1;
8429
8675
  var op = $2;
8430
8676
  var close = $3;
@@ -8455,7 +8701,7 @@ ${input.slice(result.pos)}
8455
8701
  parameters
8456
8702
  };
8457
8703
  });
8458
- var FunctionExpression$3 = $TS($S(OpenParen, NonPipelineAssignmentExpression, __, BinaryOp, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8704
+ var FunctionExpression$2 = $TS($S(OpenParen, NonPipelineAssignmentExpression, __, BinaryOp, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8459
8705
  var open = $1;
8460
8706
  var lhs = $2;
8461
8707
  var ws1 = $3;
@@ -8488,7 +8734,7 @@ ${input.slice(result.pos)}
8488
8734
  parameters
8489
8735
  };
8490
8736
  });
8491
- var FunctionExpression$4 = $TS($S(OpenParen, __, $N($EXPECT($R11, "FunctionExpression /\\+\\+|--|[\\+-]\\S/")), BinaryOp, __, NonPipelineAssignmentExpression, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8737
+ var FunctionExpression$3 = $TS($S(OpenParen, __, $N($EXPECT($R13, "FunctionExpression /\\+\\+|--|[\\+\\-&]\\S/")), BinaryOp, __, NonPipelineAssignmentExpression, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8492
8738
  var open = $1;
8493
8739
  var ws1 = $2;
8494
8740
  var op = $4;
@@ -8521,21 +8767,10 @@ ${input.slice(result.pos)}
8521
8767
  parameters
8522
8768
  };
8523
8769
  });
8524
- var FunctionExpression$5 = AmpersandFunctionExpression;
8525
- var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3, FunctionExpression$4, FunctionExpression$5];
8770
+ var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3];
8526
8771
  function FunctionExpression(ctx, state) {
8527
8772
  return $EVENT_C(ctx, state, "FunctionExpression", FunctionExpression$$);
8528
8773
  }
8529
- var AmpersandFunctionExpression$0 = $TS($S($Q(UnaryOp), $C(Ampersand, $S($N(NumericLiteral), $Y($S($E(QuestionMark), Dot, $N(Dot))))), $E(AmpersandBlockRHS)), function($skip, $loc, $0, $1, $2, $3) {
8530
- var prefix = $1;
8531
- var rhs = $3;
8532
- if (!prefix.length && !rhs)
8533
- return $skip;
8534
- return makeAmpersandFunctionExpression(prefix, rhs);
8535
- });
8536
- function AmpersandFunctionExpression(ctx, state) {
8537
- return $EVENT(ctx, state, "AmpersandFunctionExpression", AmpersandFunctionExpression$0);
8538
- }
8539
8774
  var OperatorDeclaration$0 = $TS($S(Operator, $E(OperatorBehavior), _, LexicalDeclaration), function($skip, $loc, $0, $1, $2, $3, $4) {
8540
8775
  var op = $1;
8541
8776
  var behavior = $2;
@@ -8616,7 +8851,7 @@ ${input.slice(result.pos)}
8616
8851
  function OperatorBehavior(ctx, state) {
8617
8852
  return $EVENT_C(ctx, state, "OperatorBehavior", OperatorBehavior$$);
8618
8853
  }
8619
- var OperatorPrecedence$0 = $TS($S($E(_), $C($EXPECT($L27, 'OperatorPrecedence "tighter"'), $EXPECT($L28, 'OperatorPrecedence "looser"'), $EXPECT($L29, 'OperatorPrecedence "same"')), NonIdContinue, $E(_), $C(Identifier, $S(OpenParen, BinaryOp, CloseParen))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8854
+ var OperatorPrecedence$0 = $TS($S($E(_), $C($EXPECT($L26, 'OperatorPrecedence "tighter"'), $EXPECT($L27, 'OperatorPrecedence "looser"'), $EXPECT($L28, 'OperatorPrecedence "same"')), NonIdContinue, $E(_), $C(Identifier, $S(OpenParen, BinaryOp, CloseParen))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8620
8855
  var mod = $2;
8621
8856
  var op = $5;
8622
8857
  let prec = op.type === "Identifier" ? module.operators.get(op.name).prec : getPrecedence(op[1]);
@@ -8633,7 +8868,7 @@ ${input.slice(result.pos)}
8633
8868
  function OperatorPrecedence(ctx, state) {
8634
8869
  return $EVENT(ctx, state, "OperatorPrecedence", OperatorPrecedence$0);
8635
8870
  }
8636
- var OperatorAssociativity$0 = $TS($S($E(_), $C($EXPECT($L30, 'OperatorAssociativity "left"'), $EXPECT($L31, 'OperatorAssociativity "right"'), $EXPECT($L32, 'OperatorAssociativity "non"'), $EXPECT($L33, 'OperatorAssociativity "relational"'), $EXPECT($L34, 'OperatorAssociativity "arguments"')), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
8871
+ var OperatorAssociativity$0 = $TS($S($E(_), $C($EXPECT($L29, 'OperatorAssociativity "left"'), $EXPECT($L30, 'OperatorAssociativity "right"'), $EXPECT($L31, 'OperatorAssociativity "non"'), $EXPECT($L32, 'OperatorAssociativity "relational"'), $EXPECT($L33, 'OperatorAssociativity "arguments"')), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
8637
8872
  var assoc = $2;
8638
8873
  if (assoc === "relational") {
8639
8874
  return { relational: true, assoc: "non" };
@@ -8643,33 +8878,6 @@ ${input.slice(result.pos)}
8643
8878
  function OperatorAssociativity(ctx, state) {
8644
8879
  return $EVENT(ctx, state, "OperatorAssociativity", OperatorAssociativity$0);
8645
8880
  }
8646
- var AmpersandBlockRHS$0 = $TS($S(ForbidTrailingMemberProperty, $E(AmpersandBlockRHSBody), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
8647
- if (!$2)
8648
- return $skip;
8649
- return $2;
8650
- });
8651
- function AmpersandBlockRHS(ctx, state) {
8652
- return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
8653
- }
8654
- var AmpersandTypeSuffix$0 = $T($S($Y($S($E(_), $E(QuestionMark), $E(_), Colon)), TypeSuffix), function(value) {
8655
- return value[1];
8656
- });
8657
- function AmpersandTypeSuffix(ctx, state) {
8658
- return $EVENT(ctx, state, "AmpersandTypeSuffix", AmpersandTypeSuffix$0);
8659
- }
8660
- var AmpersandBlockRHSBody$0 = $TS($S($E(AmpersandTypeSuffix), $E($S($N(_), $P(CallExpressionRest))), $E(UnaryPostfix), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R12, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8661
- var typeSuffix = $1;
8662
- var callExpRest = $2;
8663
- var unaryPostfix = $3;
8664
- var assign = $4;
8665
- var binopRHS = $5;
8666
- if (!typeSuffix && !callExpRest && !binopRHS && !unaryPostfix)
8667
- return $skip;
8668
- return makeAmpersandBlockRHSBody(typeSuffix, callExpRest, unaryPostfix, assign, binopRHS);
8669
- });
8670
- function AmpersandBlockRHSBody(ctx, state) {
8671
- return $EVENT(ctx, state, "AmpersandBlockRHSBody", AmpersandBlockRHSBody$0);
8672
- }
8673
8881
  var ThinArrowFunction$0 = $TS($S($E($S(Async, _)), ArrowParameters, $E(ReturnTypeSuffix), $E(_), Arrow, NoCommaBracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
8674
8882
  var async = $1;
8675
8883
  var parameters = $2;
@@ -8713,7 +8921,7 @@ ${input.slice(result.pos)}
8713
8921
  function ThinArrowFunction(ctx, state) {
8714
8922
  return $EVENT(ctx, state, "ThinArrowFunction", ThinArrowFunction$0);
8715
8923
  }
8716
- var Arrow$0 = $TV($C($EXPECT($L35, 'Arrow "->"'), $EXPECT($L36, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
8924
+ var Arrow$0 = $TV($C($EXPECT($L34, 'Arrow "->"'), $EXPECT($L35, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
8717
8925
  return { $loc, token: "->" };
8718
8926
  });
8719
8927
  function Arrow(ctx, state) {
@@ -9016,7 +9224,7 @@ ${input.slice(result.pos)}
9016
9224
  }
9017
9225
  var BracedContent$0 = NestedBlockStatements;
9018
9226
  var BracedContent$1 = SingleLineStatements;
9019
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L37, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
9227
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L36, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
9020
9228
  const expressions = [];
9021
9229
  return {
9022
9230
  type: "BlockStatement",
@@ -9058,15 +9266,14 @@ ${input.slice(result.pos)}
9058
9266
  var ws = $2;
9059
9267
  var statement = $3;
9060
9268
  var delimiter = $4;
9061
- if (ws) {
9062
- statement = { ...statement, children: [ws, ...statement.children] };
9063
- }
9269
+ if (ws)
9270
+ statement = prepend(ws, statement);
9064
9271
  return [statement, delimiter];
9065
9272
  });
9066
9273
  function BlockStatementPart(ctx, state) {
9067
9274
  return $EVENT(ctx, state, "BlockStatementPart", BlockStatementPart$0);
9068
9275
  }
9069
- var Literal$0 = $TS($S($EXPECT($R13, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
9276
+ var Literal$0 = $TS($S($EXPECT($R14, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
9070
9277
  var literal = $2;
9071
9278
  return {
9072
9279
  type: "Literal",
@@ -9086,13 +9293,13 @@ ${input.slice(result.pos)}
9086
9293
  function LiteralContent(ctx, state) {
9087
9294
  return $EVENT_C(ctx, state, "LiteralContent", LiteralContent$$);
9088
9295
  }
9089
- var NullLiteral$0 = $TS($S($EXPECT($L38, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9296
+ var NullLiteral$0 = $TS($S($EXPECT($L37, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9090
9297
  return { $loc, token: $1 };
9091
9298
  });
9092
9299
  function NullLiteral(ctx, state) {
9093
9300
  return $EVENT(ctx, state, "NullLiteral", NullLiteral$0);
9094
9301
  }
9095
- var BooleanLiteral$0 = $T($S($EXPECT($R14, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
9302
+ var BooleanLiteral$0 = $T($S($EXPECT($R15, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
9096
9303
  return value[1];
9097
9304
  });
9098
9305
  function BooleanLiteral(ctx, state) {
@@ -9101,31 +9308,31 @@ ${input.slice(result.pos)}
9101
9308
  var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
9102
9309
  return value[1];
9103
9310
  });
9104
- var _BooleanLiteral$1 = $TS($S($C($EXPECT($L39, '_BooleanLiteral "true"'), $EXPECT($L40, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9311
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L38, '_BooleanLiteral "true"'), $EXPECT($L39, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9105
9312
  return { $loc, token: $1 };
9106
9313
  });
9107
9314
  var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
9108
9315
  function _BooleanLiteral(ctx, state) {
9109
9316
  return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
9110
9317
  }
9111
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L41, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L42, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9318
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L40, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L41, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9112
9319
  return { $loc, token: "true" };
9113
9320
  });
9114
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L43, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L44, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9321
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L42, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L43, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9115
9322
  return { $loc, token: "false" };
9116
9323
  });
9117
9324
  var CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
9118
9325
  function CoffeeScriptBooleanLiteral(ctx, state) {
9119
9326
  return $EVENT_C(ctx, state, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
9120
9327
  }
9121
- var Identifier$0 = $T($S($EXPECT($R15, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
9328
+ var Identifier$0 = $T($S($EXPECT($R16, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
9122
9329
  var id = value[2];
9123
9330
  return id;
9124
9331
  });
9125
9332
  function Identifier(ctx, state) {
9126
9333
  return $EVENT(ctx, state, "Identifier", Identifier$0);
9127
9334
  }
9128
- var IdentifierName$0 = $TR($EXPECT($R16, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9335
+ var IdentifierName$0 = $TR($EXPECT($R17, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9129
9336
  return {
9130
9337
  type: "Identifier",
9131
9338
  name: $0,
@@ -9143,11 +9350,11 @@ ${input.slice(result.pos)}
9143
9350
  function IdentifierReference(ctx, state) {
9144
9351
  return $EVENT(ctx, state, "IdentifierReference", IdentifierReference$0);
9145
9352
  }
9146
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L45, 'UpcomingAssignment ">"')))));
9353
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L44, 'UpcomingAssignment ">"')))));
9147
9354
  function UpcomingAssignment(ctx, state) {
9148
9355
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
9149
9356
  }
9150
- var ArrayLiteral$0 = $T($S($EXPECT($R17, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
9357
+ var ArrayLiteral$0 = $T($S($EXPECT($R18, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
9151
9358
  return value[1];
9152
9359
  });
9153
9360
  function ArrayLiteral(ctx, state) {
@@ -9162,10 +9369,7 @@ ${input.slice(result.pos)}
9162
9369
  return $skip;
9163
9370
  const [content, ws, close] = $3;
9164
9371
  if (content.type === "RangeExpression") {
9165
- return {
9166
- ...content,
9167
- children: [...content.children, ...ws]
9168
- };
9372
+ return prepend(ws, content);
9169
9373
  }
9170
9374
  let children;
9171
9375
  if (Array.isArray(content)) {
@@ -9319,7 +9523,7 @@ ${input.slice(result.pos)}
9319
9523
  return $EVENT(ctx, state, "NestedElement", NestedElement$0);
9320
9524
  }
9321
9525
  var ArrayElementDelimiter$0 = $S(__, Comma);
9322
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L46, 'ArrayElementDelimiter "]"')));
9526
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L45, 'ArrayElementDelimiter "]"')));
9323
9527
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
9324
9528
  return value[1];
9325
9529
  });
@@ -9515,7 +9719,7 @@ ${input.slice(result.pos)}
9515
9719
  prop = [prop];
9516
9720
  if (i === 0) {
9517
9721
  const [first, ...rest] = prop;
9518
- prop = [{ ...first, children: [...ws, ...first.children] }, ...rest];
9722
+ prop = [prepend(ws, first), ...rest];
9519
9723
  }
9520
9724
  const last = prop[prop.length - 1];
9521
9725
  prop = [
@@ -9573,7 +9777,7 @@ ${input.slice(result.pos)}
9573
9777
  return $EVENT(ctx, state, "InlineObjectPropertyDelimiter", InlineObjectPropertyDelimiter$0);
9574
9778
  }
9575
9779
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
9576
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L37, 'ObjectPropertyDelimiter "}"')));
9780
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L36, 'ObjectPropertyDelimiter "}"')));
9577
9781
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
9578
9782
  return value[1];
9579
9783
  });
@@ -9584,12 +9788,9 @@ ${input.slice(result.pos)}
9584
9788
  var PropertyDefinition$0 = $TS($S($E(_), NamedProperty), function($skip, $loc, $0, $1, $2) {
9585
9789
  var ws = $1;
9586
9790
  var prop = $2;
9587
- return {
9588
- ...prop,
9589
- children: [ws, ...prop.children]
9590
- };
9791
+ return prepend(ws, prop);
9591
9792
  });
9592
- var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R18, "PropertyDefinition /[!+-]?/")), PropertyName, $Y(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
9793
+ var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R19, "PropertyDefinition /[!+-]?/")), PropertyName, $Y(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
9593
9794
  var ws = $1;
9594
9795
  var toggle = $2;
9595
9796
  var id = $3;
@@ -9621,10 +9822,7 @@ ${input.slice(result.pos)}
9621
9822
  }
9622
9823
  if (!def.block || def.block.empty)
9623
9824
  return $skip;
9624
- return {
9625
- ...def,
9626
- children: [ws, ...def.children]
9627
- };
9825
+ return prepend(ws, def);
9628
9826
  });
9629
9827
  var PropertyDefinition$3 = $TS($S($E(_), DotDotDot, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3) {
9630
9828
  var ws = $1;
@@ -9638,7 +9836,7 @@ ${input.slice(result.pos)}
9638
9836
  value: exp
9639
9837
  };
9640
9838
  });
9641
- var PropertyDefinition$4 = $TS($S($E(_), $N(EOS), $Q(UnaryOp), CallExpression, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9839
+ var PropertyDefinition$4 = $TS($S($E(_), $N($C(EOS, $EXPECT($L7, 'PropertyDefinition "."'))), $Q(UnaryOp), CallExpression, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9642
9840
  var ws = $1;
9643
9841
  var pre = $3;
9644
9842
  var value = $4;
@@ -9646,7 +9844,7 @@ ${input.slice(result.pos)}
9646
9844
  if (!pre.length && !post) {
9647
9845
  switch (value.type) {
9648
9846
  case "Identifier":
9649
- return { ...value, children: [ws, ...value.children] };
9847
+ return prepend(ws, value);
9650
9848
  case "ObjectExpression":
9651
9849
  let first = value.properties[0];
9652
9850
  if (first) {
@@ -9774,7 +9972,7 @@ ${input.slice(result.pos)}
9774
9972
  implicit: true
9775
9973
  };
9776
9974
  });
9777
- var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($R10, "ComputedPropertyName /[+-]/"), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
9975
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($R12, "ComputedPropertyName /[+-]/"), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
9778
9976
  const expression = [$2, $3];
9779
9977
  return {
9780
9978
  type: "ComputedPropertyName",
@@ -9783,10 +9981,10 @@ ${input.slice(result.pos)}
9783
9981
  implicit: true
9784
9982
  };
9785
9983
  });
9786
- var ComputedPropertyName$3 = $TS($S(InsertOpenBracket, PartialPlaceholder, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
9787
- var open = $1;
9788
- var expression = $2;
9789
- var close = $3;
9984
+ var ComputedPropertyName$3 = $TS($S($Y($EXPECT($L7, 'ComputedPropertyName "."')), InsertOpenBracket, Placeholder, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
9985
+ var open = $2;
9986
+ var expression = $3;
9987
+ var close = $4;
9790
9988
  return {
9791
9989
  type: "ComputedPropertyName",
9792
9990
  expression,
@@ -10091,10 +10289,10 @@ ${input.slice(result.pos)}
10091
10289
  function OperatorAssignmentOp(ctx, state) {
10092
10290
  return $EVENT_C(ctx, state, "OperatorAssignmentOp", OperatorAssignmentOp$$);
10093
10291
  }
10094
- var AssignmentOpSymbol$0 = $EXPECT($L47, 'AssignmentOpSymbol "**="');
10095
- var AssignmentOpSymbol$1 = $EXPECT($L48, 'AssignmentOpSymbol "*="');
10096
- var AssignmentOpSymbol$2 = $EXPECT($L49, 'AssignmentOpSymbol "/="');
10097
- var AssignmentOpSymbol$3 = $EXPECT($L50, 'AssignmentOpSymbol "%="');
10292
+ var AssignmentOpSymbol$0 = $EXPECT($L46, 'AssignmentOpSymbol "**="');
10293
+ var AssignmentOpSymbol$1 = $EXPECT($L47, 'AssignmentOpSymbol "*="');
10294
+ var AssignmentOpSymbol$2 = $EXPECT($L48, 'AssignmentOpSymbol "/="');
10295
+ var AssignmentOpSymbol$3 = $EXPECT($L49, 'AssignmentOpSymbol "%="');
10098
10296
  var AssignmentOpSymbol$4 = $TS($S($C($EXPECT($L9, 'AssignmentOpSymbol "++"'), $EXPECT($L11, 'AssignmentOpSymbol "\u29FA"')), Equals), function($skip, $loc, $0, $1, $2) {
10099
10297
  return {
10100
10298
  special: true,
@@ -10103,18 +10301,18 @@ ${input.slice(result.pos)}
10103
10301
  children: [$2]
10104
10302
  };
10105
10303
  });
10106
- var AssignmentOpSymbol$5 = $EXPECT($L51, 'AssignmentOpSymbol "+="');
10107
- var AssignmentOpSymbol$6 = $EXPECT($L52, 'AssignmentOpSymbol "-="');
10108
- var AssignmentOpSymbol$7 = $EXPECT($L53, 'AssignmentOpSymbol "<<="');
10109
- var AssignmentOpSymbol$8 = $EXPECT($L54, 'AssignmentOpSymbol ">>>="');
10110
- var AssignmentOpSymbol$9 = $EXPECT($L55, 'AssignmentOpSymbol ">>="');
10111
- var AssignmentOpSymbol$10 = $EXPECT($L56, 'AssignmentOpSymbol "&&="');
10112
- var AssignmentOpSymbol$11 = $EXPECT($L57, 'AssignmentOpSymbol "&="');
10113
- var AssignmentOpSymbol$12 = $EXPECT($L58, 'AssignmentOpSymbol "^="');
10114
- var AssignmentOpSymbol$13 = $EXPECT($L59, 'AssignmentOpSymbol "||="');
10115
- var AssignmentOpSymbol$14 = $EXPECT($L60, 'AssignmentOpSymbol "|="');
10116
- var AssignmentOpSymbol$15 = $EXPECT($L61, 'AssignmentOpSymbol "??="');
10117
- var AssignmentOpSymbol$16 = $T($EXPECT($L62, 'AssignmentOpSymbol "?="'), function(value) {
10304
+ var AssignmentOpSymbol$5 = $EXPECT($L50, 'AssignmentOpSymbol "+="');
10305
+ var AssignmentOpSymbol$6 = $EXPECT($L51, 'AssignmentOpSymbol "-="');
10306
+ var AssignmentOpSymbol$7 = $EXPECT($L52, 'AssignmentOpSymbol "<<="');
10307
+ var AssignmentOpSymbol$8 = $EXPECT($L53, 'AssignmentOpSymbol ">>>="');
10308
+ var AssignmentOpSymbol$9 = $EXPECT($L54, 'AssignmentOpSymbol ">>="');
10309
+ var AssignmentOpSymbol$10 = $EXPECT($L55, 'AssignmentOpSymbol "&&="');
10310
+ var AssignmentOpSymbol$11 = $EXPECT($L56, 'AssignmentOpSymbol "&="');
10311
+ var AssignmentOpSymbol$12 = $EXPECT($L57, 'AssignmentOpSymbol "^="');
10312
+ var AssignmentOpSymbol$13 = $EXPECT($L58, 'AssignmentOpSymbol "||="');
10313
+ var AssignmentOpSymbol$14 = $EXPECT($L59, 'AssignmentOpSymbol "|="');
10314
+ var AssignmentOpSymbol$15 = $EXPECT($L60, 'AssignmentOpSymbol "??="');
10315
+ var AssignmentOpSymbol$16 = $T($EXPECT($L61, 'AssignmentOpSymbol "?="'), function(value) {
10118
10316
  return "??=";
10119
10317
  });
10120
10318
  var AssignmentOpSymbol$17 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
@@ -10127,10 +10325,10 @@ ${input.slice(result.pos)}
10127
10325
  function AssignmentOpSymbol(ctx, state) {
10128
10326
  return $EVENT_C(ctx, state, "AssignmentOpSymbol", AssignmentOpSymbol$$);
10129
10327
  }
10130
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L63, 'CoffeeWordAssignmentOp "and="'), function(value) {
10328
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L62, 'CoffeeWordAssignmentOp "and="'), function(value) {
10131
10329
  return "&&=";
10132
10330
  });
10133
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L64, 'CoffeeWordAssignmentOp "or="'), function(value) {
10331
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L63, 'CoffeeWordAssignmentOp "or="'), function(value) {
10134
10332
  return "||=";
10135
10333
  });
10136
10334
  var CoffeeWordAssignmentOp$$ = [CoffeeWordAssignmentOp$0, CoffeeWordAssignmentOp$1];
@@ -10164,7 +10362,7 @@ ${input.slice(result.pos)}
10164
10362
  function IdentifierBinaryOp(ctx, state) {
10165
10363
  return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
10166
10364
  }
10167
- var BinaryOp$0 = $T($S($EXPECT($R19, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
10365
+ var BinaryOp$0 = $T($S($EXPECT($R20, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
10168
10366
  var op = value[1];
10169
10367
  return op;
10170
10368
  });
@@ -10201,33 +10399,33 @@ ${input.slice(result.pos)}
10201
10399
  function _BinaryOp(ctx, state) {
10202
10400
  return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
10203
10401
  }
10204
- var BinaryOpSymbol$0 = $EXPECT($L65, 'BinaryOpSymbol "**"');
10205
- var BinaryOpSymbol$1 = $EXPECT($L66, 'BinaryOpSymbol "*"');
10206
- var BinaryOpSymbol$2 = $EXPECT($L67, 'BinaryOpSymbol "/"');
10207
- var BinaryOpSymbol$3 = $TV($EXPECT($L68, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
10402
+ var BinaryOpSymbol$0 = $EXPECT($L64, 'BinaryOpSymbol "**"');
10403
+ var BinaryOpSymbol$1 = $EXPECT($L65, 'BinaryOpSymbol "*"');
10404
+ var BinaryOpSymbol$2 = $EXPECT($L66, 'BinaryOpSymbol "/"');
10405
+ var BinaryOpSymbol$3 = $TV($EXPECT($L67, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
10208
10406
  return {
10209
10407
  call: module.getRef("modulo"),
10210
10408
  special: true
10211
10409
  };
10212
10410
  });
10213
- var BinaryOpSymbol$4 = $EXPECT($L69, 'BinaryOpSymbol "%"');
10411
+ var BinaryOpSymbol$4 = $EXPECT($L68, 'BinaryOpSymbol "%"');
10214
10412
  var BinaryOpSymbol$5 = $TV($C($EXPECT($L9, 'BinaryOpSymbol "++"'), $EXPECT($L11, 'BinaryOpSymbol "\u29FA"')), function($skip, $loc, $0, $1) {
10215
10413
  return {
10216
10414
  method: "concat",
10217
10415
  special: true
10218
10416
  };
10219
10417
  });
10220
- var BinaryOpSymbol$6 = $EXPECT($L70, 'BinaryOpSymbol "+"');
10418
+ var BinaryOpSymbol$6 = $EXPECT($L69, 'BinaryOpSymbol "+"');
10221
10419
  var BinaryOpSymbol$7 = $EXPECT($L22, 'BinaryOpSymbol "-"');
10222
- var BinaryOpSymbol$8 = $EXPECT($L71, 'BinaryOpSymbol "<="');
10223
- var BinaryOpSymbol$9 = $T($EXPECT($L72, 'BinaryOpSymbol "\u2264"'), function(value) {
10420
+ var BinaryOpSymbol$8 = $EXPECT($L70, 'BinaryOpSymbol "<="');
10421
+ var BinaryOpSymbol$9 = $T($EXPECT($L71, 'BinaryOpSymbol "\u2264"'), function(value) {
10224
10422
  return "<=";
10225
10423
  });
10226
- var BinaryOpSymbol$10 = $EXPECT($L73, 'BinaryOpSymbol ">="');
10227
- var BinaryOpSymbol$11 = $T($EXPECT($L74, 'BinaryOpSymbol "\u2265"'), function(value) {
10424
+ var BinaryOpSymbol$10 = $EXPECT($L72, 'BinaryOpSymbol ">="');
10425
+ var BinaryOpSymbol$11 = $T($EXPECT($L73, 'BinaryOpSymbol "\u2265"'), function(value) {
10228
10426
  return ">=";
10229
10427
  });
10230
- var BinaryOpSymbol$12 = $TV($EXPECT($L75, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
10428
+ var BinaryOpSymbol$12 = $TV($EXPECT($L74, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
10231
10429
  return {
10232
10430
  $loc,
10233
10431
  token: "instanceof",
@@ -10235,7 +10433,7 @@ ${input.slice(result.pos)}
10235
10433
  special: true
10236
10434
  };
10237
10435
  });
10238
- var BinaryOpSymbol$13 = $TV($EXPECT($L76, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
10436
+ var BinaryOpSymbol$13 = $TV($EXPECT($L75, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
10239
10437
  return {
10240
10438
  $loc,
10241
10439
  token: "instanceof",
@@ -10244,76 +10442,76 @@ ${input.slice(result.pos)}
10244
10442
  negated: true
10245
10443
  };
10246
10444
  });
10247
- var BinaryOpSymbol$14 = $EXPECT($L77, 'BinaryOpSymbol "<<"');
10248
- var BinaryOpSymbol$15 = $T($EXPECT($L78, 'BinaryOpSymbol "\xAB"'), function(value) {
10445
+ var BinaryOpSymbol$14 = $EXPECT($L76, 'BinaryOpSymbol "<<"');
10446
+ var BinaryOpSymbol$15 = $T($EXPECT($L77, 'BinaryOpSymbol "\xAB"'), function(value) {
10249
10447
  return "<<";
10250
10448
  });
10251
10449
  var BinaryOpSymbol$16 = $EXPECT($L17, 'BinaryOpSymbol "<"');
10252
- var BinaryOpSymbol$17 = $EXPECT($L79, 'BinaryOpSymbol ">>>"');
10253
- var BinaryOpSymbol$18 = $T($EXPECT($L80, 'BinaryOpSymbol "\u22D9"'), function(value) {
10450
+ var BinaryOpSymbol$17 = $EXPECT($L78, 'BinaryOpSymbol ">>>"');
10451
+ var BinaryOpSymbol$18 = $T($EXPECT($L79, 'BinaryOpSymbol "\u22D9"'), function(value) {
10254
10452
  return ">>>";
10255
10453
  });
10256
- var BinaryOpSymbol$19 = $EXPECT($L81, 'BinaryOpSymbol ">>"');
10257
- var BinaryOpSymbol$20 = $T($EXPECT($L82, 'BinaryOpSymbol "\xBB"'), function(value) {
10454
+ var BinaryOpSymbol$19 = $EXPECT($L80, 'BinaryOpSymbol ">>"');
10455
+ var BinaryOpSymbol$20 = $T($EXPECT($L81, 'BinaryOpSymbol "\xBB"'), function(value) {
10258
10456
  return ">>";
10259
10457
  });
10260
- var BinaryOpSymbol$21 = $EXPECT($L45, 'BinaryOpSymbol ">"');
10261
- var BinaryOpSymbol$22 = $EXPECT($L83, 'BinaryOpSymbol "!=="');
10262
- var BinaryOpSymbol$23 = $T($EXPECT($L84, 'BinaryOpSymbol "\u2262"'), function(value) {
10458
+ var BinaryOpSymbol$21 = $EXPECT($L44, 'BinaryOpSymbol ">"');
10459
+ var BinaryOpSymbol$22 = $EXPECT($L82, 'BinaryOpSymbol "!=="');
10460
+ var BinaryOpSymbol$23 = $T($EXPECT($L83, 'BinaryOpSymbol "\u2262"'), function(value) {
10263
10461
  return "!==";
10264
10462
  });
10265
- var BinaryOpSymbol$24 = $TV($C($EXPECT($L85, 'BinaryOpSymbol "!="'), $EXPECT($L86, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
10463
+ var BinaryOpSymbol$24 = $TV($C($EXPECT($L84, 'BinaryOpSymbol "!="'), $EXPECT($L85, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
10266
10464
  if (module.config.coffeeEq)
10267
10465
  return "!==";
10268
10466
  return "!=";
10269
10467
  });
10270
- var BinaryOpSymbol$25 = $TS($S($EXPECT($L87, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10468
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L86, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10271
10469
  if (module.config.coffeeIsnt)
10272
10470
  return "!==";
10273
10471
  return $skip;
10274
10472
  });
10275
- var BinaryOpSymbol$26 = $EXPECT($L88, 'BinaryOpSymbol "==="');
10276
- var BinaryOpSymbol$27 = $T($C($EXPECT($L89, 'BinaryOpSymbol "\u2263"'), $EXPECT($L90, 'BinaryOpSymbol "\u2A76"')), function(value) {
10473
+ var BinaryOpSymbol$26 = $EXPECT($L87, 'BinaryOpSymbol "==="');
10474
+ var BinaryOpSymbol$27 = $T($C($EXPECT($L88, 'BinaryOpSymbol "\u2263"'), $EXPECT($L89, 'BinaryOpSymbol "\u2A76"')), function(value) {
10277
10475
  return "===";
10278
10476
  });
10279
- var BinaryOpSymbol$28 = $TV($C($EXPECT($L91, 'BinaryOpSymbol "=="'), $EXPECT($L92, 'BinaryOpSymbol "\u2261"'), $EXPECT($L93, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
10477
+ var BinaryOpSymbol$28 = $TV($C($EXPECT($L90, 'BinaryOpSymbol "=="'), $EXPECT($L91, 'BinaryOpSymbol "\u2261"'), $EXPECT($L92, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
10280
10478
  if (module.config.coffeeEq)
10281
10479
  return "===";
10282
10480
  return "==";
10283
10481
  });
10284
- var BinaryOpSymbol$29 = $T($S($EXPECT($L94, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
10482
+ var BinaryOpSymbol$29 = $T($S($EXPECT($L93, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
10285
10483
  return "&&";
10286
10484
  });
10287
- var BinaryOpSymbol$30 = $EXPECT($L95, 'BinaryOpSymbol "&&"');
10288
- var BinaryOpSymbol$31 = $T($S($EXPECT($L96, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
10485
+ var BinaryOpSymbol$30 = $EXPECT($L94, 'BinaryOpSymbol "&&"');
10486
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L95, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
10289
10487
  return "||";
10290
10488
  });
10291
- var BinaryOpSymbol$32 = $EXPECT($L97, 'BinaryOpSymbol "||"');
10292
- var BinaryOpSymbol$33 = $T($EXPECT($L98, 'BinaryOpSymbol "\u2016"'), function(value) {
10489
+ var BinaryOpSymbol$32 = $EXPECT($L96, 'BinaryOpSymbol "||"');
10490
+ var BinaryOpSymbol$33 = $T($EXPECT($L97, 'BinaryOpSymbol "\u2016"'), function(value) {
10293
10491
  return "||";
10294
10492
  });
10295
- var BinaryOpSymbol$34 = $TV($C($EXPECT($L99, 'BinaryOpSymbol "^^"'), $S($EXPECT($L100, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10493
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L98, 'BinaryOpSymbol "^^"'), $S($EXPECT($L99, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10296
10494
  return {
10297
10495
  call: module.getRef("xor"),
10298
10496
  special: true,
10299
10497
  prec: "^^"
10300
10498
  };
10301
10499
  });
10302
- var BinaryOpSymbol$35 = $TV($C($EXPECT($R20, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L101, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10500
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R21, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L100, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
10303
10501
  return {
10304
10502
  call: module.getRef("xnor"),
10305
10503
  special: true,
10306
10504
  prec: "^^"
10307
10505
  };
10308
10506
  });
10309
- var BinaryOpSymbol$36 = $EXPECT($L102, 'BinaryOpSymbol "??"');
10310
- var BinaryOpSymbol$37 = $T($EXPECT($L103, 'BinaryOpSymbol "\u2047"'), function(value) {
10507
+ var BinaryOpSymbol$36 = $EXPECT($L101, 'BinaryOpSymbol "??"');
10508
+ var BinaryOpSymbol$37 = $T($EXPECT($L102, 'BinaryOpSymbol "\u2047"'), function(value) {
10311
10509
  return "??";
10312
10510
  });
10313
10511
  var BinaryOpSymbol$38 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
10314
10512
  return "??";
10315
10513
  });
10316
- var BinaryOpSymbol$39 = $TS($S($EXPECT($L104, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10514
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L103, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10317
10515
  return {
10318
10516
  $loc,
10319
10517
  token: $1,
@@ -10330,7 +10528,7 @@ ${input.slice(result.pos)}
10330
10528
  var op = $3;
10331
10529
  return { ...op, $loc };
10332
10530
  });
10333
- var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L105, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
10531
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L104, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
10334
10532
  return {
10335
10533
  method: "includes",
10336
10534
  relational: true,
@@ -10338,14 +10536,14 @@ ${input.slice(result.pos)}
10338
10536
  special: true
10339
10537
  };
10340
10538
  });
10341
- var BinaryOpSymbol$43 = $TV($EXPECT($L106, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
10539
+ var BinaryOpSymbol$43 = $TV($EXPECT($L105, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
10342
10540
  return {
10343
10541
  method: "includes",
10344
10542
  relational: true,
10345
10543
  special: true
10346
10544
  };
10347
10545
  });
10348
- var BinaryOpSymbol$44 = $TV($EXPECT($L107, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
10546
+ var BinaryOpSymbol$44 = $TV($EXPECT($L106, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
10349
10547
  return {
10350
10548
  method: "includes",
10351
10549
  relational: true,
@@ -10353,7 +10551,7 @@ ${input.slice(result.pos)}
10353
10551
  negated: true
10354
10552
  };
10355
10553
  });
10356
- var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L108, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
10554
+ var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L107, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
10357
10555
  return {
10358
10556
  method: "includes",
10359
10557
  relational: true,
@@ -10386,9 +10584,9 @@ ${input.slice(result.pos)}
10386
10584
  return "===";
10387
10585
  });
10388
10586
  var BinaryOpSymbol$48 = In;
10389
- var BinaryOpSymbol$49 = $EXPECT($L109, 'BinaryOpSymbol "&"');
10587
+ var BinaryOpSymbol$49 = $EXPECT($L108, 'BinaryOpSymbol "&"');
10390
10588
  var BinaryOpSymbol$50 = $EXPECT($L21, 'BinaryOpSymbol "^"');
10391
- var BinaryOpSymbol$51 = $EXPECT($L110, 'BinaryOpSymbol "|"');
10589
+ var BinaryOpSymbol$51 = $EXPECT($L109, 'BinaryOpSymbol "|"');
10392
10590
  var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50, BinaryOpSymbol$51];
10393
10591
  function BinaryOpSymbol(ctx, state) {
10394
10592
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
@@ -10436,7 +10634,7 @@ ${input.slice(result.pos)}
10436
10634
  function CoffeeOfOp(ctx, state) {
10437
10635
  return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
10438
10636
  }
10439
- var NotOp$0 = $TS($S($EXPECT($L104, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10637
+ var NotOp$0 = $TS($S($EXPECT($L103, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10440
10638
  return {
10441
10639
  $loc,
10442
10640
  token: "instanceof",
@@ -10457,30 +10655,30 @@ ${input.slice(result.pos)}
10457
10655
  function NotOp(ctx, state) {
10458
10656
  return $EVENT_C(ctx, state, "NotOp", NotOp$$);
10459
10657
  }
10460
- var Xor$0 = $EXPECT($L99, 'Xor "^^"');
10461
- var Xor$1 = $S($EXPECT($L100, 'Xor "xor"'), NonIdContinue);
10658
+ var Xor$0 = $EXPECT($L98, 'Xor "^^"');
10659
+ var Xor$1 = $S($EXPECT($L99, 'Xor "xor"'), NonIdContinue);
10462
10660
  var Xor$$ = [Xor$0, Xor$1];
10463
10661
  function Xor(ctx, state) {
10464
10662
  return $EVENT_C(ctx, state, "Xor", Xor$$);
10465
10663
  }
10466
- var Xnor$0 = $R$0($EXPECT($R20, "Xnor /!\\^\\^?/"));
10467
- var Xnor$1 = $EXPECT($L101, 'Xnor "xnor"');
10664
+ var Xnor$0 = $R$0($EXPECT($R21, "Xnor /!\\^\\^?/"));
10665
+ var Xnor$1 = $EXPECT($L100, 'Xnor "xnor"');
10468
10666
  var Xnor$$ = [Xnor$0, Xnor$1];
10469
10667
  function Xnor(ctx, state) {
10470
10668
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
10471
10669
  }
10472
- var UnaryOp$0 = $TR($EXPECT($R21, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10670
+ var UnaryOp$0 = $TR($EXPECT($R22, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10473
10671
  return { $loc, token: $0 };
10474
10672
  });
10475
10673
  var UnaryOp$1 = AwaitOp;
10476
- var UnaryOp$2 = $TS($S($C(Delete, Void, Typeof), $N($EXPECT($R22, "UnaryOp /[:.]/")), $E(_)), function($skip, $loc, $0, $1, $2, $3) {
10674
+ var UnaryOp$2 = $TS($S($C(Delete, Void, Typeof), $N($EXPECT($R23, "UnaryOp /[:.]/")), $E(_)), function($skip, $loc, $0, $1, $2, $3) {
10477
10675
  var op = $1;
10478
10676
  var ws = $3;
10479
10677
  if (!ws)
10480
10678
  return [op, [" "]];
10481
10679
  return [op, ws];
10482
10680
  });
10483
- var UnaryOp$3 = $T($S(Not, $N($EXPECT($R22, "UnaryOp /[:.]/")), $E($EXPECT($L16, 'UnaryOp " "')), $E(_)), function(value) {
10681
+ var UnaryOp$3 = $T($S(Not, $N($EXPECT($R23, "UnaryOp /[:.]/")), $E($EXPECT($L16, 'UnaryOp " "')), $E(_)), function(value) {
10484
10682
  return [value[0], value[3]];
10485
10683
  });
10486
10684
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -10508,7 +10706,7 @@ ${input.slice(result.pos)}
10508
10706
  return $EVENT_C(ctx, state, "ModuleItem", ModuleItem$$);
10509
10707
  }
10510
10708
  var StatementListItem$0 = Declaration;
10511
- var StatementListItem$1 = $TS($S($N($EXPECT($L111, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
10709
+ var StatementListItem$1 = $TS($S($N($EXPECT($L110, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
10512
10710
  return makeLeftHandSideExpression($2);
10513
10711
  });
10514
10712
  var StatementListItem$2 = PostfixedStatement;
@@ -10575,7 +10773,7 @@ ${input.slice(result.pos)}
10575
10773
  function NonPipelinePostfixedExpression(ctx, state) {
10576
10774
  return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
10577
10775
  }
10578
- var PostfixStatement$0 = $T($S($EXPECT($R23, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
10776
+ var PostfixStatement$0 = $T($S($EXPECT($R24, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
10579
10777
  return value[1];
10580
10778
  });
10581
10779
  function PostfixStatement(ctx, state) {
@@ -10618,7 +10816,7 @@ ${input.slice(result.pos)}
10618
10816
  function NoCommaStatement(ctx, state) {
10619
10817
  return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
10620
10818
  }
10621
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L112, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
10819
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L111, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
10622
10820
  return { type: "EmptyStatement", children: $1 || [] };
10623
10821
  });
10624
10822
  function EmptyStatement(ctx, state) {
@@ -10649,7 +10847,7 @@ ${input.slice(result.pos)}
10649
10847
  var w = $3;
10650
10848
  return [id, colon, w];
10651
10849
  });
10652
- var Label$1 = $S($EXPECT($L111, 'Label "$:"'), Whitespace);
10850
+ var Label$1 = $S($EXPECT($L110, 'Label "$:"'), Whitespace);
10653
10851
  var Label$$ = [Label$0, Label$1];
10654
10852
  function Label(ctx, state) {
10655
10853
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -10708,7 +10906,7 @@ ${input.slice(result.pos)}
10708
10906
  function UnlessClause(ctx, state) {
10709
10907
  return $EVENT(ctx, state, "UnlessClause", UnlessClause$0);
10710
10908
  }
10711
- var IterationStatement$0 = $T($S($EXPECT($R24, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
10909
+ var IterationStatement$0 = $T($S($EXPECT($R25, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
10712
10910
  return value[1];
10713
10911
  });
10714
10912
  function IterationStatement(ctx, state) {
@@ -10746,6 +10944,7 @@ ${input.slice(result.pos)}
10746
10944
  var clause = $1;
10747
10945
  var block = $2;
10748
10946
  return {
10947
+ ...clause,
10749
10948
  type: "IterationStatement",
10750
10949
  children: [...clause.children, block],
10751
10950
  block
@@ -10754,15 +10953,38 @@ ${input.slice(result.pos)}
10754
10953
  function LoopStatement(ctx, state) {
10755
10954
  return $EVENT(ctx, state, "LoopStatement", LoopStatement$0);
10756
10955
  }
10757
- var LoopClause$0 = $T($S(Loop), function(value) {
10758
- return { "type": "IterationStatement", "children": [value[0]] };
10956
+ var LoopClause$0 = $TV(Loop, function($skip, $loc, $0, $1) {
10957
+ var kind = $0;
10958
+ const expression = {
10959
+ type: "Literal",
10960
+ children: ["true"],
10961
+ raw: "true"
10962
+ };
10963
+ const condition = {
10964
+ type: "ParenthesizedExpression",
10965
+ children: ["(", expression, ")"],
10966
+ expression
10967
+ };
10968
+ return {
10969
+ type: "IterationStatement",
10970
+ subtype: kind.token,
10971
+ children: [kind, condition],
10972
+ condition
10973
+ };
10759
10974
  });
10760
10975
  function LoopClause(ctx, state) {
10761
10976
  return $EVENT(ctx, state, "LoopClause", LoopClause$0);
10762
10977
  }
10763
- var DoWhileStatement$0 = $T($S(Do, NoPostfixBracedBlock, __, WhileClause), function(value) {
10764
- var block = value[1];
10765
- return { "type": "IterationStatement", "children": value, "block": block };
10978
+ var DoWhileStatement$0 = $TS($S(Do, NoPostfixBracedBlock, __, WhileClause), function($skip, $loc, $0, $1, $2, $3, $4) {
10979
+ var block = $2;
10980
+ var clause = $4;
10981
+ return {
10982
+ ...clause,
10983
+ type: "IterationStatement",
10984
+ subtype: "do-while",
10985
+ children: $0,
10986
+ block
10987
+ };
10766
10988
  });
10767
10989
  function DoWhileStatement(ctx, state) {
10768
10990
  return $EVENT(ctx, state, "DoWhileStatement", DoWhileStatement$0);
@@ -10801,6 +11023,7 @@ ${input.slice(result.pos)}
10801
11023
  }
10802
11024
  return {
10803
11025
  type: "IterationStatement",
11026
+ subtype: kind.token,
10804
11027
  children: [kind, ws, condition],
10805
11028
  condition
10806
11029
  };
@@ -11061,7 +11284,7 @@ ${input.slice(result.pos)}
11061
11284
  names: binding.names
11062
11285
  };
11063
11286
  });
11064
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R25, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
11287
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R26, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
11065
11288
  var c = $1;
11066
11289
  var binding = $2;
11067
11290
  return {
@@ -11621,19 +11844,19 @@ ${input.slice(result.pos)}
11621
11844
  function ThrowStatement(ctx, state) {
11622
11845
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
11623
11846
  }
11624
- var Break$0 = $TS($S($EXPECT($L113, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11847
+ var Break$0 = $TS($S($EXPECT($L112, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11625
11848
  return { $loc, token: $1 };
11626
11849
  });
11627
11850
  function Break(ctx, state) {
11628
11851
  return $EVENT(ctx, state, "Break", Break$0);
11629
11852
  }
11630
- var Continue$0 = $TS($S($EXPECT($L114, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11853
+ var Continue$0 = $TS($S($EXPECT($L113, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11631
11854
  return { $loc, token: $1 };
11632
11855
  });
11633
11856
  function Continue(ctx, state) {
11634
11857
  return $EVENT(ctx, state, "Continue", Continue$0);
11635
11858
  }
11636
- var Debugger$0 = $TS($S($EXPECT($L115, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11859
+ var Debugger$0 = $TS($S($EXPECT($L114, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11637
11860
  return { $loc, token: $1 };
11638
11861
  });
11639
11862
  function Debugger(ctx, state) {
@@ -11650,7 +11873,7 @@ ${input.slice(result.pos)}
11650
11873
  function MaybeNestedExpression(ctx, state) {
11651
11874
  return $EVENT_C(ctx, state, "MaybeNestedExpression", MaybeNestedExpression$$);
11652
11875
  }
11653
- var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L116, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11876
+ var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L115, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11654
11877
  const imp = [
11655
11878
  { ...$1, ts: true },
11656
11879
  { ...$1, token: "const", js: true }
@@ -11758,7 +11981,7 @@ ${input.slice(result.pos)}
11758
11981
  function FromClause(ctx, state) {
11759
11982
  return $EVENT(ctx, state, "FromClause", FromClause$0);
11760
11983
  }
11761
- var ImportAssertion$0 = $TS($S($E(_), $C($EXPECT($L117, 'ImportAssertion "with"'), $EXPECT($L118, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11984
+ var ImportAssertion$0 = $TS($S($E(_), $C($EXPECT($L116, 'ImportAssertion "with"'), $EXPECT($L117, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11762
11985
  var keyword = $2;
11763
11986
  var object = $5;
11764
11987
  return {
@@ -11890,7 +12113,7 @@ ${input.slice(result.pos)}
11890
12113
  function UnprocessedModuleSpecifier(ctx, state) {
11891
12114
  return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
11892
12115
  }
11893
- var UnquotedSpecifier$0 = $TV($EXPECT($R26, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
12116
+ var UnquotedSpecifier$0 = $TV($EXPECT($R27, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
11894
12117
  var spec = $0;
11895
12118
  return { $loc, token: `"${spec}"` };
11896
12119
  });
@@ -12062,19 +12285,19 @@ ${input.slice(result.pos)}
12062
12285
  function LexicalDeclaration(ctx, state) {
12063
12286
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
12064
12287
  }
12065
- var ConstAssignment$0 = $TV($C($EXPECT($L119, 'ConstAssignment ":="'), $EXPECT($L120, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
12288
+ var ConstAssignment$0 = $TV($C($EXPECT($L118, 'ConstAssignment ":="'), $EXPECT($L119, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
12066
12289
  return { $loc, token: "=" };
12067
12290
  });
12068
12291
  function ConstAssignment(ctx, state) {
12069
12292
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
12070
12293
  }
12071
- var LetAssignment$0 = $TV($EXPECT($L121, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12294
+ var LetAssignment$0 = $TV($EXPECT($L120, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12072
12295
  return { $loc, token: "=" };
12073
12296
  });
12074
12297
  function LetAssignment(ctx, state) {
12075
12298
  return $EVENT(ctx, state, "LetAssignment", LetAssignment$0);
12076
12299
  }
12077
- var TypeAssignment$0 = $TV($EXPECT($L122, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12300
+ var TypeAssignment$0 = $TV($EXPECT($L121, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12078
12301
  return { $loc, token: "=" };
12079
12302
  });
12080
12303
  function TypeAssignment(ctx, state) {
@@ -12115,7 +12338,10 @@ ${input.slice(result.pos)}
12115
12338
  function LexicalBinding(ctx, state) {
12116
12339
  return $EVENT_C(ctx, state, "LexicalBinding", LexicalBinding$$);
12117
12340
  }
12118
- var Initializer$0 = $S(__, Equals, ExtendedExpression);
12341
+ var Initializer$0 = $T($S(__, Equals, ExtendedExpression), function(value) {
12342
+ var exp = value[2];
12343
+ return { "type": "Initializer", "exp": exp, "children": value };
12344
+ });
12119
12345
  function Initializer(ctx, state) {
12120
12346
  return $EVENT(ctx, state, "Initializer", Initializer$0);
12121
12347
  }
@@ -12143,7 +12369,7 @@ ${input.slice(result.pos)}
12143
12369
  function VariableDeclarationList(ctx, state) {
12144
12370
  return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
12145
12371
  }
12146
- var NumericLiteral$0 = $TS($S($EXPECT($R27, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
12372
+ var NumericLiteral$0 = $TS($S($EXPECT($R28, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
12147
12373
  var token = $2;
12148
12374
  return { type: "NumericLiteral", $loc, token };
12149
12375
  });
@@ -12159,36 +12385,36 @@ ${input.slice(result.pos)}
12159
12385
  function NumericLiteralKind(ctx, state) {
12160
12386
  return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
12161
12387
  }
12162
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R28, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
12388
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R29, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
12163
12389
  function DecimalBigIntegerLiteral(ctx, state) {
12164
12390
  return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
12165
12391
  }
12166
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R29, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
12392
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R30, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
12167
12393
  return $1 + ".";
12168
12394
  });
12169
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R30, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
12170
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R31, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
12395
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R31, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
12396
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R32, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
12171
12397
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
12172
12398
  function DecimalLiteral(ctx, state) {
12173
12399
  return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
12174
12400
  }
12175
- var ExponentPart$0 = $R$0($EXPECT($R32, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
12401
+ var ExponentPart$0 = $R$0($EXPECT($R33, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
12176
12402
  function ExponentPart(ctx, state) {
12177
12403
  return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
12178
12404
  }
12179
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R33, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
12405
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R34, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
12180
12406
  function BinaryIntegerLiteral(ctx, state) {
12181
12407
  return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
12182
12408
  }
12183
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R34, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
12409
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R35, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
12184
12410
  function OctalIntegerLiteral(ctx, state) {
12185
12411
  return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
12186
12412
  }
12187
- var HexIntegerLiteral$0 = $R$0($EXPECT($R35, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
12413
+ var HexIntegerLiteral$0 = $R$0($EXPECT($R36, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
12188
12414
  function HexIntegerLiteral(ctx, state) {
12189
12415
  return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
12190
12416
  }
12191
- var IntegerLiteral$0 = $TS($S($EXPECT($R36, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
12417
+ var IntegerLiteral$0 = $TS($S($EXPECT($R37, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
12192
12418
  var token = $2;
12193
12419
  return { $loc, token };
12194
12420
  });
@@ -12204,7 +12430,7 @@ ${input.slice(result.pos)}
12204
12430
  function IntegerLiteralKind(ctx, state) {
12205
12431
  return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
12206
12432
  }
12207
- var DecimalIntegerLiteral$0 = $R$0($EXPECT($R37, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
12433
+ var DecimalIntegerLiteral$0 = $R$0($EXPECT($R38, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
12208
12434
  function DecimalIntegerLiteral(ctx, state) {
12209
12435
  return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
12210
12436
  }
@@ -12228,25 +12454,25 @@ ${input.slice(result.pos)}
12228
12454
  function StringLiteral(ctx, state) {
12229
12455
  return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
12230
12456
  }
12231
- var DoubleStringCharacters$0 = $TR($EXPECT($R38, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12457
+ var DoubleStringCharacters$0 = $TR($EXPECT($R39, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12232
12458
  return { $loc, token: $0 };
12233
12459
  });
12234
12460
  function DoubleStringCharacters(ctx, state) {
12235
12461
  return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
12236
12462
  }
12237
- var SingleStringCharacters$0 = $TR($EXPECT($R39, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12463
+ var SingleStringCharacters$0 = $TR($EXPECT($R40, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12238
12464
  return { $loc, token: $0 };
12239
12465
  });
12240
12466
  function SingleStringCharacters(ctx, state) {
12241
12467
  return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
12242
12468
  }
12243
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R40, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12469
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R41, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12244
12470
  return { $loc, token: $0 };
12245
12471
  });
12246
12472
  function TripleDoubleStringCharacters(ctx, state) {
12247
12473
  return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
12248
12474
  }
12249
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R41, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12475
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R42, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12250
12476
  return { $loc, token: $0 };
12251
12477
  });
12252
12478
  function TripleSingleStringCharacters(ctx, state) {
@@ -12269,14 +12495,14 @@ ${input.slice(result.pos)}
12269
12495
  function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
12270
12496
  return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
12271
12497
  }
12272
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R42, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12498
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R43, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12273
12499
  return { $loc, token: $0 };
12274
12500
  });
12275
12501
  function CoffeeDoubleQuotedStringCharacters(ctx, state) {
12276
12502
  return $EVENT(ctx, state, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
12277
12503
  }
12278
12504
  var RegularExpressionLiteral$0 = HeregexLiteral;
12279
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L67, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L67, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
12505
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L66, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L66, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
12280
12506
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
12281
12507
  });
12282
12508
  var RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
@@ -12289,7 +12515,7 @@ ${input.slice(result.pos)}
12289
12515
  function RegularExpressionClass(ctx, state) {
12290
12516
  return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
12291
12517
  }
12292
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R43, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12518
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R44, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12293
12519
  return { $loc, token: $0 };
12294
12520
  });
12295
12521
  function RegularExpressionClassCharacters(ctx, state) {
@@ -12346,7 +12572,7 @@ ${input.slice(result.pos)}
12346
12572
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
12347
12573
  return { "type": "Substitution", "children": value[0] };
12348
12574
  });
12349
- var HeregexPart$3 = $TR($EXPECT($R44, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12575
+ var HeregexPart$3 = $TR($EXPECT($R45, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12350
12576
  let token = $0;
12351
12577
  switch ($0[1]) {
12352
12578
  case "\n":
@@ -12364,13 +12590,13 @@ ${input.slice(result.pos)}
12364
12590
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
12365
12591
  return { $loc, token: "" };
12366
12592
  });
12367
- var HeregexPart$5 = $TR($EXPECT($R45, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12593
+ var HeregexPart$5 = $TR($EXPECT($R46, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12368
12594
  return { $loc, token: "" };
12369
12595
  });
12370
- var HeregexPart$6 = $TR($EXPECT($R46, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12596
+ var HeregexPart$6 = $TR($EXPECT($R47, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12371
12597
  return { $loc, token: "\\/" };
12372
12598
  });
12373
- var HeregexPart$7 = $TR($EXPECT($R47, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12599
+ var HeregexPart$7 = $TR($EXPECT($R48, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12374
12600
  return { $loc, token: $0 };
12375
12601
  });
12376
12602
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -12383,7 +12609,7 @@ ${input.slice(result.pos)}
12383
12609
  function HeregexComment(ctx, state) {
12384
12610
  return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
12385
12611
  }
12386
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R48, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
12612
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R49, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
12387
12613
  function RegularExpressionBody(ctx, state) {
12388
12614
  return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
12389
12615
  }
@@ -12393,15 +12619,15 @@ ${input.slice(result.pos)}
12393
12619
  function RegExpPart(ctx, state) {
12394
12620
  return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
12395
12621
  }
12396
- var RegExpCharacter$0 = $R$0($EXPECT($R49, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
12622
+ var RegExpCharacter$0 = $R$0($EXPECT($R50, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
12397
12623
  function RegExpCharacter(ctx, state) {
12398
12624
  return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
12399
12625
  }
12400
- var RegularExpressionFlags$0 = $R$0($EXPECT($R50, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
12626
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R51, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
12401
12627
  function RegularExpressionFlags(ctx, state) {
12402
12628
  return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
12403
12629
  }
12404
- var TemplateLiteral$0 = $T($S($EXPECT($R51, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
12630
+ var TemplateLiteral$0 = $T($S($EXPECT($R52, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
12405
12631
  return value[1];
12406
12632
  });
12407
12633
  function TemplateLiteral(ctx, state) {
@@ -12441,28 +12667,28 @@ ${input.slice(result.pos)}
12441
12667
  function TemplateSubstitution(ctx, state) {
12442
12668
  return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
12443
12669
  }
12444
- var TemplateCharacters$0 = $TR($EXPECT($R52, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12670
+ var TemplateCharacters$0 = $TR($EXPECT($R53, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12445
12671
  return { $loc, token: $0 };
12446
12672
  });
12447
12673
  function TemplateCharacters(ctx, state) {
12448
12674
  return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
12449
12675
  }
12450
- var TemplateBlockCharacters$0 = $TR($EXPECT($R53, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12676
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R54, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12451
12677
  return { $loc, token: $0 };
12452
12678
  });
12453
12679
  function TemplateBlockCharacters(ctx, state) {
12454
12680
  return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
12455
12681
  }
12456
- var ReservedWord$0 = $S($R$0($EXPECT($R54, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
12457
- var ReservedWord$1 = $S($R$0($EXPECT($R55, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
12458
- var ReservedWord$2 = $S($R$0($EXPECT($R56, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
12459
- var ReservedWord$3 = $S($R$0($EXPECT($R57, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
12460
- var ReservedWord$4 = $R$0($EXPECT($R58, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
12682
+ var ReservedWord$0 = $S($R$0($EXPECT($R55, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
12683
+ var ReservedWord$1 = $S($R$0($EXPECT($R56, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
12684
+ var ReservedWord$2 = $S($R$0($EXPECT($R57, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
12685
+ var ReservedWord$3 = $S($R$0($EXPECT($R58, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
12686
+ var ReservedWord$4 = $R$0($EXPECT($R59, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
12461
12687
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
12462
12688
  function ReservedWord(ctx, state) {
12463
12689
  return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
12464
12690
  }
12465
- var Comment$0 = $T($S($EXPECT($R59, "Comment /(?=\\/|#)/"), _Comment), function(value) {
12691
+ var Comment$0 = $T($S($EXPECT($R60, "Comment /(?=\\/|#)/"), _Comment), function(value) {
12466
12692
  return value[1];
12467
12693
  });
12468
12694
  function Comment(ctx, state) {
@@ -12480,7 +12706,7 @@ ${input.slice(result.pos)}
12480
12706
  function SingleLineComment(ctx, state) {
12481
12707
  return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
12482
12708
  }
12483
- var JSSingleLineComment$0 = $TR($EXPECT($R60, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12709
+ var JSSingleLineComment$0 = $TR($EXPECT($R61, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12484
12710
  return { type: "Comment", $loc, token: $0 };
12485
12711
  });
12486
12712
  function JSSingleLineComment(ctx, state) {
@@ -12492,30 +12718,30 @@ ${input.slice(result.pos)}
12492
12718
  function MultiLineComment(ctx, state) {
12493
12719
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
12494
12720
  }
12495
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L123, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L124, 'JSMultiLineComment "*/"')), $EXPECT($R61, "JSMultiLineComment /./"))), $EXPECT($L124, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
12721
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L122, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L123, 'JSMultiLineComment "*/"')), $EXPECT($R62, "JSMultiLineComment /./"))), $EXPECT($L123, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
12496
12722
  return { type: "Comment", $loc, token: $1 };
12497
12723
  });
12498
12724
  function JSMultiLineComment(ctx, state) {
12499
12725
  return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
12500
12726
  }
12501
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R62, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12727
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R63, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12502
12728
  return { type: "Comment", $loc, token: `//${$1}` };
12503
12729
  });
12504
12730
  function CoffeeSingleLineComment(ctx, state) {
12505
12731
  return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
12506
12732
  }
12507
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R63, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
12733
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R64, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
12508
12734
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
12509
12735
  return { type: "Comment", $loc, token: `/*${$2}*/` };
12510
12736
  });
12511
12737
  function CoffeeMultiLineComment(ctx, state) {
12512
12738
  return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
12513
12739
  }
12514
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R64, "CoffeeHereCommentStart /###(?!#)/"));
12740
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R65, "CoffeeHereCommentStart /###(?!#)/"));
12515
12741
  function CoffeeHereCommentStart(ctx, state) {
12516
12742
  return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
12517
12743
  }
12518
- var InlineComment$0 = $TR($EXPECT($R65, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12744
+ var InlineComment$0 = $TR($EXPECT($R66, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12519
12745
  return { $loc, token: $0 };
12520
12746
  });
12521
12747
  function InlineComment(ctx, state) {
@@ -12529,30 +12755,30 @@ ${input.slice(result.pos)}
12529
12755
  function TrailingComment(ctx, state) {
12530
12756
  return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
12531
12757
  }
12532
- var _$0 = $T($S($EXPECT($R66, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
12758
+ var _$0 = $T($S($EXPECT($R67, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
12533
12759
  return value[1];
12534
12760
  });
12535
12761
  function _(ctx, state) {
12536
12762
  return $EVENT(ctx, state, "_", _$0);
12537
12763
  }
12538
- var NonNewlineWhitespace$0 = $TR($EXPECT($R67, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12764
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R68, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12539
12765
  return { $loc, token: $0 };
12540
12766
  });
12541
- var NonNewlineWhitespace$1 = $T($S($EXPECT($L125, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
12767
+ var NonNewlineWhitespace$1 = $T($S($EXPECT($L124, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
12542
12768
  return " ";
12543
12769
  });
12544
12770
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
12545
12771
  function NonNewlineWhitespace(ctx, state) {
12546
12772
  return $EVENT_C(ctx, state, "NonNewlineWhitespace", NonNewlineWhitespace$$);
12547
12773
  }
12548
- var Trimmed_$0 = $TV($E(_), function($skip, $loc, $0, $1) {
12774
+ var Trimmed_$0 = $TV(_, function($skip, $loc, $0, $1) {
12549
12775
  var ws = $0;
12550
12776
  return insertTrimmingSpace(ws, "");
12551
12777
  });
12552
12778
  function Trimmed_(ctx, state) {
12553
12779
  return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
12554
12780
  }
12555
- var __$0 = $T($S($EXPECT($R68, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
12781
+ var __$0 = $T($S($EXPECT($R69, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
12556
12782
  return value[1];
12557
12783
  });
12558
12784
  var __$1 = $EXPECT($L0, '__ ""');
@@ -12560,7 +12786,7 @@ ${input.slice(result.pos)}
12560
12786
  function __(ctx, state) {
12561
12787
  return $EVENT_C(ctx, state, "__", __$$);
12562
12788
  }
12563
- var Whitespace$0 = $TR($EXPECT($R45, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12789
+ var Whitespace$0 = $TR($EXPECT($R46, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12564
12790
  return { $loc, token: $0 };
12565
12791
  });
12566
12792
  function Whitespace(ctx, state) {
@@ -12584,7 +12810,7 @@ ${input.slice(result.pos)}
12584
12810
  }
12585
12811
  var StatementDelimiter$0 = $Y(EOS);
12586
12812
  var StatementDelimiter$1 = SemicolonDelimiter;
12587
- var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L37, 'StatementDelimiter "}"'), $EXPECT($L126, 'StatementDelimiter ")"'), $EXPECT($L46, 'StatementDelimiter "]"'))));
12813
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L36, 'StatementDelimiter "}"'), $EXPECT($L125, 'StatementDelimiter ")"'), $EXPECT($L45, 'StatementDelimiter "]"'))));
12588
12814
  var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
12589
12815
  function StatementDelimiter(ctx, state) {
12590
12816
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
@@ -12598,7 +12824,7 @@ ${input.slice(result.pos)}
12598
12824
  function SemicolonDelimiter(ctx, state) {
12599
12825
  return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
12600
12826
  }
12601
- var NonIdContinue$0 = $R$0($EXPECT($R69, "NonIdContinue /(?!\\p{ID_Continue})/"));
12827
+ var NonIdContinue$0 = $R$0($EXPECT($R70, "NonIdContinue /(?!\\p{ID_Continue})/"));
12602
12828
  function NonIdContinue(ctx, state) {
12603
12829
  return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
12604
12830
  }
@@ -12608,55 +12834,55 @@ ${input.slice(result.pos)}
12608
12834
  function Loc(ctx, state) {
12609
12835
  return $EVENT(ctx, state, "Loc", Loc$0);
12610
12836
  }
12611
- var Abstract$0 = $TV($TEXT($S($EXPECT($L127, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L16, 'Abstract " "')))), function($skip, $loc, $0, $1) {
12837
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L126, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L16, 'Abstract " "')))), function($skip, $loc, $0, $1) {
12612
12838
  return { $loc, token: $1, ts: true };
12613
12839
  });
12614
12840
  function Abstract(ctx, state) {
12615
12841
  return $EVENT(ctx, state, "Abstract", Abstract$0);
12616
12842
  }
12617
- var Ampersand$0 = $TV($EXPECT($L109, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
12843
+ var Ampersand$0 = $TV($EXPECT($L108, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
12618
12844
  return { $loc, token: $1 };
12619
12845
  });
12620
12846
  function Ampersand(ctx, state) {
12621
12847
  return $EVENT(ctx, state, "Ampersand", Ampersand$0);
12622
12848
  }
12623
- var As$0 = $TS($S($EXPECT($L128, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12849
+ var As$0 = $TS($S($EXPECT($L127, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12624
12850
  return { $loc, token: $1 };
12625
12851
  });
12626
12852
  function As(ctx, state) {
12627
12853
  return $EVENT(ctx, state, "As", As$0);
12628
12854
  }
12629
- var At$0 = $TV($EXPECT($L129, 'At "@"'), function($skip, $loc, $0, $1) {
12855
+ var At$0 = $TV($EXPECT($L128, 'At "@"'), function($skip, $loc, $0, $1) {
12630
12856
  return { $loc, token: $1 };
12631
12857
  });
12632
12858
  function At(ctx, state) {
12633
12859
  return $EVENT(ctx, state, "At", At$0);
12634
12860
  }
12635
- var AtAt$0 = $TV($EXPECT($L130, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
12861
+ var AtAt$0 = $TV($EXPECT($L129, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
12636
12862
  return { $loc, token: "@" };
12637
12863
  });
12638
12864
  function AtAt(ctx, state) {
12639
12865
  return $EVENT(ctx, state, "AtAt", AtAt$0);
12640
12866
  }
12641
- var Async$0 = $TS($S($EXPECT($L131, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12867
+ var Async$0 = $TS($S($EXPECT($L130, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12642
12868
  return { $loc, token: $1, type: "Async" };
12643
12869
  });
12644
12870
  function Async(ctx, state) {
12645
12871
  return $EVENT(ctx, state, "Async", Async$0);
12646
12872
  }
12647
- var Await$0 = $TS($S($EXPECT($L132, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12873
+ var Await$0 = $TS($S($EXPECT($L131, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12648
12874
  return { $loc, token: $1, type: "Await" };
12649
12875
  });
12650
12876
  function Await(ctx, state) {
12651
12877
  return $EVENT(ctx, state, "Await", Await$0);
12652
12878
  }
12653
- var Backtick$0 = $TV($EXPECT($L133, 'Backtick "`"'), function($skip, $loc, $0, $1) {
12879
+ var Backtick$0 = $TV($EXPECT($L132, 'Backtick "`"'), function($skip, $loc, $0, $1) {
12654
12880
  return { $loc, token: $1 };
12655
12881
  });
12656
12882
  function Backtick(ctx, state) {
12657
12883
  return $EVENT(ctx, state, "Backtick", Backtick$0);
12658
12884
  }
12659
- var By$0 = $TS($S($EXPECT($L134, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12885
+ var By$0 = $TS($S($EXPECT($L133, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12660
12886
  return { $loc, token: $1 };
12661
12887
  });
12662
12888
  function By(ctx, state) {
@@ -12668,55 +12894,55 @@ ${input.slice(result.pos)}
12668
12894
  function Caret(ctx, state) {
12669
12895
  return $EVENT(ctx, state, "Caret", Caret$0);
12670
12896
  }
12671
- var Case$0 = $TS($S($EXPECT($L135, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12897
+ var Case$0 = $TS($S($EXPECT($L134, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12672
12898
  return { $loc, token: $1 };
12673
12899
  });
12674
12900
  function Case(ctx, state) {
12675
12901
  return $EVENT(ctx, state, "Case", Case$0);
12676
12902
  }
12677
- var Catch$0 = $TS($S($EXPECT($L136, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12903
+ var Catch$0 = $TS($S($EXPECT($L135, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12678
12904
  return { $loc, token: $1 };
12679
12905
  });
12680
12906
  function Catch(ctx, state) {
12681
12907
  return $EVENT(ctx, state, "Catch", Catch$0);
12682
12908
  }
12683
- var Class$0 = $TS($S($EXPECT($L137, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12909
+ var Class$0 = $TS($S($EXPECT($L136, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12684
12910
  return { $loc, token: $1 };
12685
12911
  });
12686
12912
  function Class(ctx, state) {
12687
12913
  return $EVENT(ctx, state, "Class", Class$0);
12688
12914
  }
12689
- var CloseAngleBracket$0 = $TV($EXPECT($L45, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
12915
+ var CloseAngleBracket$0 = $TV($EXPECT($L44, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
12690
12916
  return { $loc, token: $1 };
12691
12917
  });
12692
12918
  function CloseAngleBracket(ctx, state) {
12693
12919
  return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
12694
12920
  }
12695
- var CloseBrace$0 = $TV($EXPECT($L37, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
12921
+ var CloseBrace$0 = $TV($EXPECT($L36, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
12696
12922
  return { $loc, token: $1 };
12697
12923
  });
12698
12924
  function CloseBrace(ctx, state) {
12699
12925
  return $EVENT(ctx, state, "CloseBrace", CloseBrace$0);
12700
12926
  }
12701
- var CloseBracket$0 = $TV($EXPECT($L46, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
12927
+ var CloseBracket$0 = $TV($EXPECT($L45, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
12702
12928
  return { $loc, token: $1 };
12703
12929
  });
12704
12930
  function CloseBracket(ctx, state) {
12705
12931
  return $EVENT(ctx, state, "CloseBracket", CloseBracket$0);
12706
12932
  }
12707
- var CloseParen$0 = $TV($EXPECT($L126, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12933
+ var CloseParen$0 = $TV($EXPECT($L125, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12708
12934
  return { $loc, token: $1 };
12709
12935
  });
12710
12936
  function CloseParen(ctx, state) {
12711
12937
  return $EVENT(ctx, state, "CloseParen", CloseParen$0);
12712
12938
  }
12713
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L138, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
12939
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L137, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
12714
12940
  return { $loc, token: "${" };
12715
12941
  });
12716
12942
  function CoffeeSubstitutionStart(ctx, state) {
12717
12943
  return $EVENT(ctx, state, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
12718
12944
  }
12719
- var Colon$0 = $TS($S($EXPECT($L15, 'Colon ":"'), $N($EXPECT($R70, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
12945
+ var Colon$0 = $TS($S($EXPECT($L15, 'Colon ":"'), $N($EXPECT($R71, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
12720
12946
  return { $loc, token: $1 };
12721
12947
  });
12722
12948
  function Colon(ctx, state) {
@@ -12728,31 +12954,31 @@ ${input.slice(result.pos)}
12728
12954
  function Comma(ctx, state) {
12729
12955
  return $EVENT(ctx, state, "Comma", Comma$0);
12730
12956
  }
12731
- var ConstructorShorthand$0 = $TV($EXPECT($L129, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
12957
+ var ConstructorShorthand$0 = $TV($EXPECT($L128, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
12732
12958
  return { $loc, token: "constructor" };
12733
12959
  });
12734
12960
  function ConstructorShorthand(ctx, state) {
12735
12961
  return $EVENT(ctx, state, "ConstructorShorthand", ConstructorShorthand$0);
12736
12962
  }
12737
- var Declare$0 = $TS($S($EXPECT($L139, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12963
+ var Declare$0 = $TS($S($EXPECT($L138, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12738
12964
  return { $loc, token: $1 };
12739
12965
  });
12740
12966
  function Declare(ctx, state) {
12741
12967
  return $EVENT(ctx, state, "Declare", Declare$0);
12742
12968
  }
12743
- var Default$0 = $TS($S($EXPECT($L140, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12969
+ var Default$0 = $TS($S($EXPECT($L139, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12744
12970
  return { $loc, token: $1 };
12745
12971
  });
12746
12972
  function Default(ctx, state) {
12747
12973
  return $EVENT(ctx, state, "Default", Default$0);
12748
12974
  }
12749
- var Delete$0 = $TS($S($EXPECT($L141, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12975
+ var Delete$0 = $TS($S($EXPECT($L140, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12750
12976
  return { $loc, token: $1 };
12751
12977
  });
12752
12978
  function Delete(ctx, state) {
12753
12979
  return $EVENT(ctx, state, "Delete", Delete$0);
12754
12980
  }
12755
- var Do$0 = $TS($S($EXPECT($L142, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12981
+ var Do$0 = $TS($S($EXPECT($L141, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12756
12982
  return { $loc, token: $1 };
12757
12983
  });
12758
12984
  function Do(ctx, state) {
@@ -12761,56 +12987,56 @@ ${input.slice(result.pos)}
12761
12987
  var Dot$0 = $TV($EXPECT($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
12762
12988
  return { $loc, token: $1 };
12763
12989
  });
12764
- var Dot$1 = $TS($S($EXPECT($R71, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
12990
+ var Dot$1 = $TS($S($EXPECT($R72, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
12765
12991
  var ws = $2;
12766
12992
  return [
12767
12993
  { $loc, token: "." },
12768
- insertTrimmingSpace(ws, "")
12994
+ ws
12769
12995
  ];
12770
12996
  });
12771
12997
  var Dot$$ = [Dot$0, Dot$1];
12772
12998
  function Dot(ctx, state) {
12773
12999
  return $EVENT_C(ctx, state, "Dot", Dot$$);
12774
13000
  }
12775
- var DotDot$0 = $TS($S($EXPECT($L143, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
13001
+ var DotDot$0 = $TS($S($EXPECT($L142, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
12776
13002
  return { $loc, token: $1 };
12777
13003
  });
12778
- var DotDot$1 = $TV($EXPECT($L144, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
13004
+ var DotDot$1 = $TV($EXPECT($L143, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
12779
13005
  return { $loc, token: ".." };
12780
13006
  });
12781
13007
  var DotDot$$ = [DotDot$0, DotDot$1];
12782
13008
  function DotDot(ctx, state) {
12783
13009
  return $EVENT_C(ctx, state, "DotDot", DotDot$$);
12784
13010
  }
12785
- var DotDotDot$0 = $TV($EXPECT($L145, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
13011
+ var DotDotDot$0 = $TV($EXPECT($L144, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12786
13012
  return { $loc, token: $1 };
12787
13013
  });
12788
- var DotDotDot$1 = $TV($EXPECT($L146, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
13014
+ var DotDotDot$1 = $TV($EXPECT($L145, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
12789
13015
  return { $loc, token: "..." };
12790
13016
  });
12791
13017
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
12792
13018
  function DotDotDot(ctx, state) {
12793
13019
  return $EVENT_C(ctx, state, "DotDotDot", DotDotDot$$);
12794
13020
  }
12795
- var DoubleColon$0 = $TV($EXPECT($L147, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
13021
+ var DoubleColon$0 = $TV($EXPECT($L146, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12796
13022
  return { $loc, token: $1 };
12797
13023
  });
12798
13024
  function DoubleColon(ctx, state) {
12799
13025
  return $EVENT(ctx, state, "DoubleColon", DoubleColon$0);
12800
13026
  }
12801
- var DoubleQuote$0 = $TV($EXPECT($L148, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
13027
+ var DoubleQuote$0 = $TV($EXPECT($L147, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12802
13028
  return { $loc, token: $1 };
12803
13029
  });
12804
13030
  function DoubleQuote(ctx, state) {
12805
13031
  return $EVENT(ctx, state, "DoubleQuote", DoubleQuote$0);
12806
13032
  }
12807
- var Each$0 = $TS($S($EXPECT($L149, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13033
+ var Each$0 = $TS($S($EXPECT($L148, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12808
13034
  return { $loc, token: $1 };
12809
13035
  });
12810
13036
  function Each(ctx, state) {
12811
13037
  return $EVENT(ctx, state, "Each", Each$0);
12812
13038
  }
12813
- var Else$0 = $TS($S($EXPECT($L150, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13039
+ var Else$0 = $TS($S($EXPECT($L149, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12814
13040
  return { $loc, token: $1 };
12815
13041
  });
12816
13042
  function Else(ctx, state) {
@@ -12822,97 +13048,97 @@ ${input.slice(result.pos)}
12822
13048
  function Equals(ctx, state) {
12823
13049
  return $EVENT(ctx, state, "Equals", Equals$0);
12824
13050
  }
12825
- var ExclamationPoint$0 = $TV($EXPECT($L151, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
13051
+ var ExclamationPoint$0 = $TV($EXPECT($L150, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
12826
13052
  return { $loc, token: $1 };
12827
13053
  });
12828
13054
  function ExclamationPoint(ctx, state) {
12829
13055
  return $EVENT(ctx, state, "ExclamationPoint", ExclamationPoint$0);
12830
13056
  }
12831
- var Export$0 = $TS($S($EXPECT($L152, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13057
+ var Export$0 = $TS($S($EXPECT($L151, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12832
13058
  return { $loc, token: $1 };
12833
13059
  });
12834
13060
  function Export(ctx, state) {
12835
13061
  return $EVENT(ctx, state, "Export", Export$0);
12836
13062
  }
12837
- var Extends$0 = $TS($S($EXPECT($L153, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13063
+ var Extends$0 = $TS($S($EXPECT($L152, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12838
13064
  return { $loc, token: $1 };
12839
13065
  });
12840
13066
  function Extends(ctx, state) {
12841
13067
  return $EVENT(ctx, state, "Extends", Extends$0);
12842
13068
  }
12843
- var Finally$0 = $TS($S($EXPECT($L154, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13069
+ var Finally$0 = $TS($S($EXPECT($L153, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12844
13070
  return { $loc, token: $1 };
12845
13071
  });
12846
13072
  function Finally(ctx, state) {
12847
13073
  return $EVENT(ctx, state, "Finally", Finally$0);
12848
13074
  }
12849
- var For$0 = $TS($S($EXPECT($L155, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13075
+ var For$0 = $TS($S($EXPECT($L154, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12850
13076
  return { $loc, token: $1 };
12851
13077
  });
12852
13078
  function For(ctx, state) {
12853
13079
  return $EVENT(ctx, state, "For", For$0);
12854
13080
  }
12855
- var From$0 = $TS($S($EXPECT($L156, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13081
+ var From$0 = $TS($S($EXPECT($L155, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12856
13082
  return { $loc, token: $1 };
12857
13083
  });
12858
13084
  function From(ctx, state) {
12859
13085
  return $EVENT(ctx, state, "From", From$0);
12860
13086
  }
12861
- var Function$0 = $TS($S($EXPECT($L157, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13087
+ var Function$0 = $TS($S($EXPECT($L156, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12862
13088
  return { $loc, token: $1 };
12863
13089
  });
12864
13090
  function Function(ctx, state) {
12865
13091
  return $EVENT(ctx, state, "Function", Function$0);
12866
13092
  }
12867
- var GetOrSet$0 = $TS($S($C($EXPECT($L158, 'GetOrSet "get"'), $EXPECT($L159, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13093
+ var GetOrSet$0 = $TS($S($C($EXPECT($L157, 'GetOrSet "get"'), $EXPECT($L158, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12868
13094
  return { $loc, token: $1, type: "GetOrSet" };
12869
13095
  });
12870
13096
  function GetOrSet(ctx, state) {
12871
13097
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
12872
13098
  }
12873
- var Hash$0 = $TV($EXPECT($L160, 'Hash "#"'), function($skip, $loc, $0, $1) {
13099
+ var Hash$0 = $TV($EXPECT($L159, 'Hash "#"'), function($skip, $loc, $0, $1) {
12874
13100
  return { $loc, token: $1 };
12875
13101
  });
12876
13102
  function Hash(ctx, state) {
12877
13103
  return $EVENT(ctx, state, "Hash", Hash$0);
12878
13104
  }
12879
- var If$0 = $TV($TEXT($S($EXPECT($L161, 'If "if"'), NonIdContinue, $E($EXPECT($L16, 'If " "')))), function($skip, $loc, $0, $1) {
13105
+ var If$0 = $TV($TEXT($S($EXPECT($L160, 'If "if"'), NonIdContinue, $E($EXPECT($L16, 'If " "')))), function($skip, $loc, $0, $1) {
12880
13106
  return { $loc, token: $1 };
12881
13107
  });
12882
13108
  function If(ctx, state) {
12883
13109
  return $EVENT(ctx, state, "If", If$0);
12884
13110
  }
12885
- var Import$0 = $TS($S($EXPECT($L20, 'Import "import"'), $Y($EXPECT($R72, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
13111
+ var Import$0 = $TS($S($EXPECT($L20, 'Import "import"'), $Y($EXPECT($R73, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
12886
13112
  return { $loc, token: $1 };
12887
13113
  });
12888
13114
  function Import(ctx, state) {
12889
13115
  return $EVENT(ctx, state, "Import", Import$0);
12890
13116
  }
12891
- var In$0 = $TS($S($EXPECT($L162, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13117
+ var In$0 = $TS($S($EXPECT($L161, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12892
13118
  return { $loc, token: $1 };
12893
13119
  });
12894
13120
  function In(ctx, state) {
12895
13121
  return $EVENT(ctx, state, "In", In$0);
12896
13122
  }
12897
- var Infer$0 = $TS($S($EXPECT($L163, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13123
+ var Infer$0 = $TS($S($EXPECT($L162, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12898
13124
  return { $loc, token: $1 };
12899
13125
  });
12900
13126
  function Infer(ctx, state) {
12901
13127
  return $EVENT(ctx, state, "Infer", Infer$0);
12902
13128
  }
12903
- var LetOrConst$0 = $TS($S($C($EXPECT($L164, 'LetOrConst "let"'), $EXPECT($L165, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13129
+ var LetOrConst$0 = $TS($S($C($EXPECT($L163, 'LetOrConst "let"'), $EXPECT($L164, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12904
13130
  return { $loc, token: $1 };
12905
13131
  });
12906
13132
  function LetOrConst(ctx, state) {
12907
13133
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
12908
13134
  }
12909
- var Const$0 = $TS($S($EXPECT($L165, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13135
+ var Const$0 = $TS($S($EXPECT($L164, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12910
13136
  return { $loc, token: $1 };
12911
13137
  });
12912
13138
  function Const(ctx, state) {
12913
13139
  return $EVENT(ctx, state, "Const", Const$0);
12914
13140
  }
12915
- var Is$0 = $TS($S($EXPECT($L166, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13141
+ var Is$0 = $TS($S($EXPECT($L165, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12916
13142
  return { $loc, token: $1 };
12917
13143
  });
12918
13144
  function Is(ctx, state) {
@@ -12924,25 +13150,25 @@ ${input.slice(result.pos)}
12924
13150
  function LetOrConstOrVar(ctx, state) {
12925
13151
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
12926
13152
  }
12927
- var Loop$0 = $TS($S($EXPECT($L167, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12928
- return { $loc, token: "while(true)" };
13153
+ var Loop$0 = $TS($S($EXPECT($L166, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13154
+ return { $loc, token: "while" };
12929
13155
  });
12930
13156
  function Loop(ctx, state) {
12931
13157
  return $EVENT(ctx, state, "Loop", Loop$0);
12932
13158
  }
12933
- var New$0 = $TS($S($EXPECT($L168, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13159
+ var New$0 = $TS($S($EXPECT($L167, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12934
13160
  return { $loc, token: $1 };
12935
13161
  });
12936
13162
  function New(ctx, state) {
12937
13163
  return $EVENT(ctx, state, "New", New$0);
12938
13164
  }
12939
- var Not$0 = $TS($S($EXPECT($L169, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L15, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
13165
+ var Not$0 = $TS($S($EXPECT($L168, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L15, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
12940
13166
  return { $loc, token: "!" };
12941
13167
  });
12942
13168
  function Not(ctx, state) {
12943
13169
  return $EVENT(ctx, state, "Not", Not$0);
12944
13170
  }
12945
- var Of$0 = $TS($S($EXPECT($L170, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13171
+ var Of$0 = $TS($S($EXPECT($L169, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12946
13172
  return { $loc, token: $1 };
12947
13173
  });
12948
13174
  function Of(ctx, state) {
@@ -12960,7 +13186,7 @@ ${input.slice(result.pos)}
12960
13186
  function OpenBrace(ctx, state) {
12961
13187
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
12962
13188
  }
12963
- var OpenBracket$0 = $TV($EXPECT($L171, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
13189
+ var OpenBracket$0 = $TV($EXPECT($L170, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
12964
13190
  return { $loc, token: $1 };
12965
13191
  });
12966
13192
  function OpenBracket(ctx, state) {
@@ -12972,49 +13198,49 @@ ${input.slice(result.pos)}
12972
13198
  function OpenParen(ctx, state) {
12973
13199
  return $EVENT(ctx, state, "OpenParen", OpenParen$0);
12974
13200
  }
12975
- var Operator$0 = $TS($S($EXPECT($L172, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13201
+ var Operator$0 = $TS($S($EXPECT($L171, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12976
13202
  return { $loc, token: $1 };
12977
13203
  });
12978
13204
  function Operator(ctx, state) {
12979
13205
  return $EVENT(ctx, state, "Operator", Operator$0);
12980
13206
  }
12981
- var Override$0 = $TS($S($EXPECT($L173, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13207
+ var Override$0 = $TS($S($EXPECT($L172, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12982
13208
  return { $loc, token: $1, ts: true };
12983
13209
  });
12984
13210
  function Override(ctx, state) {
12985
13211
  return $EVENT(ctx, state, "Override", Override$0);
12986
13212
  }
12987
- var Own$0 = $TS($S($EXPECT($L174, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13213
+ var Own$0 = $TS($S($EXPECT($L173, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12988
13214
  return { $loc, token: $1 };
12989
13215
  });
12990
13216
  function Own(ctx, state) {
12991
13217
  return $EVENT(ctx, state, "Own", Own$0);
12992
13218
  }
12993
- var Public$0 = $TS($S($EXPECT($L175, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13219
+ var Public$0 = $TS($S($EXPECT($L174, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12994
13220
  return { $loc, token: $1 };
12995
13221
  });
12996
13222
  function Public(ctx, state) {
12997
13223
  return $EVENT(ctx, state, "Public", Public$0);
12998
13224
  }
12999
- var Private$0 = $TS($S($EXPECT($L176, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13225
+ var Private$0 = $TS($S($EXPECT($L175, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13000
13226
  return { $loc, token: $1 };
13001
13227
  });
13002
13228
  function Private(ctx, state) {
13003
13229
  return $EVENT(ctx, state, "Private", Private$0);
13004
13230
  }
13005
- var Protected$0 = $TS($S($EXPECT($L177, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13231
+ var Protected$0 = $TS($S($EXPECT($L176, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13006
13232
  return { $loc, token: $1 };
13007
13233
  });
13008
13234
  function Protected(ctx, state) {
13009
13235
  return $EVENT(ctx, state, "Protected", Protected$0);
13010
13236
  }
13011
- var Pipe$0 = $TV($C($EXPECT($L178, 'Pipe "||>"'), $EXPECT($L179, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
13237
+ var Pipe$0 = $TV($C($EXPECT($L177, 'Pipe "||>"'), $EXPECT($L178, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
13012
13238
  return { $loc, token: "||>" };
13013
13239
  });
13014
- var Pipe$1 = $TV($C($EXPECT($L180, 'Pipe "|>="'), $EXPECT($L181, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
13240
+ var Pipe$1 = $TV($C($EXPECT($L179, 'Pipe "|>="'), $EXPECT($L180, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
13015
13241
  return { $loc, token: "|>=" };
13016
13242
  });
13017
- var Pipe$2 = $TV($C($EXPECT($L182, 'Pipe "|>"'), $EXPECT($L183, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
13243
+ var Pipe$2 = $TV($C($EXPECT($L181, 'Pipe "|>"'), $EXPECT($L182, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
13018
13244
  return { $loc, token: "|>" };
13019
13245
  });
13020
13246
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -13027,179 +13253,179 @@ ${input.slice(result.pos)}
13027
13253
  function QuestionMark(ctx, state) {
13028
13254
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
13029
13255
  }
13030
- var Readonly$0 = $TS($S($EXPECT($L184, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13256
+ var Readonly$0 = $TS($S($EXPECT($L183, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13031
13257
  return { $loc, token: $1, ts: true };
13032
13258
  });
13033
13259
  function Readonly(ctx, state) {
13034
13260
  return $EVENT(ctx, state, "Readonly", Readonly$0);
13035
13261
  }
13036
- var Return$0 = $TS($S($EXPECT($L185, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13262
+ var Return$0 = $TS($S($EXPECT($L184, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13037
13263
  return { $loc, token: $1 };
13038
13264
  });
13039
13265
  function Return(ctx, state) {
13040
13266
  return $EVENT(ctx, state, "Return", Return$0);
13041
13267
  }
13042
- var Satisfies$0 = $TS($S($EXPECT($L186, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13268
+ var Satisfies$0 = $TS($S($EXPECT($L185, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13043
13269
  return { $loc, token: $1 };
13044
13270
  });
13045
13271
  function Satisfies(ctx, state) {
13046
13272
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
13047
13273
  }
13048
- var Semicolon$0 = $TV($EXPECT($L112, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
13274
+ var Semicolon$0 = $TV($EXPECT($L111, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
13049
13275
  return { $loc, token: $1 };
13050
13276
  });
13051
13277
  function Semicolon(ctx, state) {
13052
13278
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
13053
13279
  }
13054
- var SingleQuote$0 = $TV($EXPECT($L187, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13280
+ var SingleQuote$0 = $TV($EXPECT($L186, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13055
13281
  return { $loc, token: $1 };
13056
13282
  });
13057
13283
  function SingleQuote(ctx, state) {
13058
13284
  return $EVENT(ctx, state, "SingleQuote", SingleQuote$0);
13059
13285
  }
13060
- var Star$0 = $TV($EXPECT($L66, 'Star "*"'), function($skip, $loc, $0, $1) {
13286
+ var Star$0 = $TV($EXPECT($L65, 'Star "*"'), function($skip, $loc, $0, $1) {
13061
13287
  return { $loc, token: $1 };
13062
13288
  });
13063
13289
  function Star(ctx, state) {
13064
13290
  return $EVENT(ctx, state, "Star", Star$0);
13065
13291
  }
13066
- var Static$0 = $TS($S($EXPECT($L188, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13292
+ var Static$0 = $TS($S($EXPECT($L187, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13067
13293
  return { $loc, token: $1 };
13068
13294
  });
13069
- var Static$1 = $TS($S($EXPECT($L129, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L129, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13295
+ var Static$1 = $TS($S($EXPECT($L128, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L128, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13070
13296
  return { $loc, token: "static " };
13071
13297
  });
13072
13298
  var Static$$ = [Static$0, Static$1];
13073
13299
  function Static(ctx, state) {
13074
13300
  return $EVENT_C(ctx, state, "Static", Static$$);
13075
13301
  }
13076
- var SubstitutionStart$0 = $TV($EXPECT($L189, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13302
+ var SubstitutionStart$0 = $TV($EXPECT($L188, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13077
13303
  return { $loc, token: $1 };
13078
13304
  });
13079
13305
  function SubstitutionStart(ctx, state) {
13080
13306
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
13081
13307
  }
13082
- var Super$0 = $TS($S($EXPECT($L190, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13308
+ var Super$0 = $TS($S($EXPECT($L189, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13083
13309
  return { $loc, token: $1 };
13084
13310
  });
13085
13311
  function Super(ctx, state) {
13086
13312
  return $EVENT(ctx, state, "Super", Super$0);
13087
13313
  }
13088
- var Switch$0 = $TS($S($EXPECT($L191, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13314
+ var Switch$0 = $TS($S($EXPECT($L190, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13089
13315
  return { $loc, token: $1 };
13090
13316
  });
13091
13317
  function Switch(ctx, state) {
13092
13318
  return $EVENT(ctx, state, "Switch", Switch$0);
13093
13319
  }
13094
- var Target$0 = $TS($S($EXPECT($L192, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13320
+ var Target$0 = $TS($S($EXPECT($L191, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13095
13321
  return { $loc, token: $1 };
13096
13322
  });
13097
13323
  function Target(ctx, state) {
13098
13324
  return $EVENT(ctx, state, "Target", Target$0);
13099
13325
  }
13100
- var Then$0 = $TS($S(__, $EXPECT($L193, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13326
+ var Then$0 = $TS($S(__, $EXPECT($L192, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13101
13327
  return { $loc, token: "" };
13102
13328
  });
13103
13329
  function Then(ctx, state) {
13104
13330
  return $EVENT(ctx, state, "Then", Then$0);
13105
13331
  }
13106
- var This$0 = $TS($S($EXPECT($L194, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13332
+ var This$0 = $TS($S($EXPECT($L193, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13107
13333
  return { $loc, token: $1 };
13108
13334
  });
13109
13335
  function This(ctx, state) {
13110
13336
  return $EVENT(ctx, state, "This", This$0);
13111
13337
  }
13112
- var Throw$0 = $TS($S($EXPECT($L195, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13338
+ var Throw$0 = $TS($S($EXPECT($L194, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13113
13339
  return { $loc, token: $1 };
13114
13340
  });
13115
13341
  function Throw(ctx, state) {
13116
13342
  return $EVENT(ctx, state, "Throw", Throw$0);
13117
13343
  }
13118
- var TripleDoubleQuote$0 = $TV($EXPECT($L196, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13344
+ var TripleDoubleQuote$0 = $TV($EXPECT($L195, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13119
13345
  return { $loc, token: "`" };
13120
13346
  });
13121
13347
  function TripleDoubleQuote(ctx, state) {
13122
13348
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
13123
13349
  }
13124
- var TripleSingleQuote$0 = $TV($EXPECT($L197, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13350
+ var TripleSingleQuote$0 = $TV($EXPECT($L196, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13125
13351
  return { $loc, token: "`" };
13126
13352
  });
13127
13353
  function TripleSingleQuote(ctx, state) {
13128
13354
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
13129
13355
  }
13130
- var TripleSlash$0 = $TV($EXPECT($L198, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13356
+ var TripleSlash$0 = $TV($EXPECT($L197, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13131
13357
  return { $loc, token: "/" };
13132
13358
  });
13133
13359
  function TripleSlash(ctx, state) {
13134
13360
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
13135
13361
  }
13136
- var TripleTick$0 = $TV($EXPECT($L199, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13362
+ var TripleTick$0 = $TV($EXPECT($L198, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13137
13363
  return { $loc, token: "`" };
13138
13364
  });
13139
13365
  function TripleTick(ctx, state) {
13140
13366
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
13141
13367
  }
13142
- var Try$0 = $TS($S($EXPECT($L200, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13368
+ var Try$0 = $TS($S($EXPECT($L199, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13143
13369
  return { $loc, token: $1 };
13144
13370
  });
13145
13371
  function Try(ctx, state) {
13146
13372
  return $EVENT(ctx, state, "Try", Try$0);
13147
13373
  }
13148
- var Typeof$0 = $TS($S($EXPECT($L201, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13374
+ var Typeof$0 = $TS($S($EXPECT($L200, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13149
13375
  return { $loc, token: $1 };
13150
13376
  });
13151
13377
  function Typeof(ctx, state) {
13152
13378
  return $EVENT(ctx, state, "Typeof", Typeof$0);
13153
13379
  }
13154
- var Undefined$0 = $TS($S($EXPECT($L202, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13380
+ var Undefined$0 = $TS($S($EXPECT($L201, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13155
13381
  return { $loc, token: $1 };
13156
13382
  });
13157
13383
  function Undefined(ctx, state) {
13158
13384
  return $EVENT(ctx, state, "Undefined", Undefined$0);
13159
13385
  }
13160
- var Unless$0 = $TS($S($EXPECT($L203, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13386
+ var Unless$0 = $TS($S($EXPECT($L202, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13161
13387
  return { $loc, token: $1, negated: true };
13162
13388
  });
13163
13389
  function Unless(ctx, state) {
13164
13390
  return $EVENT(ctx, state, "Unless", Unless$0);
13165
13391
  }
13166
- var Until$0 = $TS($S($EXPECT($L204, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13392
+ var Until$0 = $TS($S($EXPECT($L203, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13167
13393
  return { $loc, token: $1 };
13168
13394
  });
13169
13395
  function Until(ctx, state) {
13170
13396
  return $EVENT(ctx, state, "Until", Until$0);
13171
13397
  }
13172
- var Using$0 = $TS($S($EXPECT($L205, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13398
+ var Using$0 = $TS($S($EXPECT($L204, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13173
13399
  return { $loc, token: $1 };
13174
13400
  });
13175
13401
  function Using(ctx, state) {
13176
13402
  return $EVENT(ctx, state, "Using", Using$0);
13177
13403
  }
13178
- var Var$0 = $TS($S($EXPECT($L206, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13404
+ var Var$0 = $TS($S($EXPECT($L205, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13179
13405
  return { $loc, token: $1 };
13180
13406
  });
13181
13407
  function Var(ctx, state) {
13182
13408
  return $EVENT(ctx, state, "Var", Var$0);
13183
13409
  }
13184
- var Void$0 = $TS($S($EXPECT($L207, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13410
+ var Void$0 = $TS($S($EXPECT($L206, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13185
13411
  return { $loc, token: $1 };
13186
13412
  });
13187
13413
  function Void(ctx, state) {
13188
13414
  return $EVENT(ctx, state, "Void", Void$0);
13189
13415
  }
13190
- var When$0 = $TS($S($EXPECT($L208, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13416
+ var When$0 = $TS($S($EXPECT($L207, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13191
13417
  return { $loc, token: "case" };
13192
13418
  });
13193
13419
  function When(ctx, state) {
13194
13420
  return $EVENT(ctx, state, "When", When$0);
13195
13421
  }
13196
- var While$0 = $TS($S($EXPECT($L209, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13422
+ var While$0 = $TS($S($EXPECT($L208, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13197
13423
  return { $loc, token: $1 };
13198
13424
  });
13199
13425
  function While(ctx, state) {
13200
13426
  return $EVENT(ctx, state, "While", While$0);
13201
13427
  }
13202
- var Yield$0 = $TS($S($EXPECT($L210, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13428
+ var Yield$0 = $TS($S($EXPECT($L209, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13203
13429
  return { $loc, token: $1, type: "Yield" };
13204
13430
  });
13205
13431
  function Yield(ctx, state) {
@@ -13228,7 +13454,7 @@ ${input.slice(result.pos)}
13228
13454
  function JSXImplicitFragment(ctx, state) {
13229
13455
  return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
13230
13456
  }
13231
- var JSXTag$0 = $T($S($EXPECT($R73, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
13457
+ var JSXTag$0 = $T($S($EXPECT($R74, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
13232
13458
  return value[1];
13233
13459
  });
13234
13460
  function JSXTag(ctx, state) {
@@ -13278,7 +13504,7 @@ ${input.slice(result.pos)}
13278
13504
  function JSXElement(ctx, state) {
13279
13505
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
13280
13506
  }
13281
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L211, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13507
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L210, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13282
13508
  return { type: "JSXElement", children: $0, tag: $2 };
13283
13509
  });
13284
13510
  function JSXSelfClosingElement(ctx, state) {
@@ -13297,7 +13523,7 @@ ${input.slice(result.pos)}
13297
13523
  function PopJSXStack(ctx, state) {
13298
13524
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
13299
13525
  }
13300
- var JSXOpeningElement$0 = $S($EXPECT($L17, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L45, 'JSXOpeningElement ">"'));
13526
+ var JSXOpeningElement$0 = $S($EXPECT($L17, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L44, 'JSXOpeningElement ">"'));
13301
13527
  function JSXOpeningElement(ctx, state) {
13302
13528
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
13303
13529
  }
@@ -13312,7 +13538,7 @@ ${input.slice(result.pos)}
13312
13538
  function JSXOptionalClosingElement(ctx, state) {
13313
13539
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
13314
13540
  }
13315
- var JSXClosingElement$0 = $S($EXPECT($L212, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L45, 'JSXClosingElement ">"'));
13541
+ var JSXClosingElement$0 = $S($EXPECT($L211, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L44, 'JSXClosingElement ">"'));
13316
13542
  function JSXClosingElement(ctx, state) {
13317
13543
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
13318
13544
  }
@@ -13333,7 +13559,7 @@ ${input.slice(result.pos)}
13333
13559
  ];
13334
13560
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13335
13561
  });
13336
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L213, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13562
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L212, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13337
13563
  var children = $3;
13338
13564
  $0 = $0.slice(1);
13339
13565
  return {
@@ -13346,7 +13572,7 @@ ${input.slice(result.pos)}
13346
13572
  function JSXFragment(ctx, state) {
13347
13573
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
13348
13574
  }
13349
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L213, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13575
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L212, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13350
13576
  module.JSXTagStack.push("");
13351
13577
  return $1;
13352
13578
  });
@@ -13363,11 +13589,11 @@ ${input.slice(result.pos)}
13363
13589
  function JSXOptionalClosingFragment(ctx, state) {
13364
13590
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
13365
13591
  }
13366
- var JSXClosingFragment$0 = $EXPECT($L214, 'JSXClosingFragment "</>"');
13592
+ var JSXClosingFragment$0 = $EXPECT($L213, 'JSXClosingFragment "</>"');
13367
13593
  function JSXClosingFragment(ctx, state) {
13368
13594
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
13369
13595
  }
13370
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L160, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
13596
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L159, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
13371
13597
  return module.config.defaultElement;
13372
13598
  });
13373
13599
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -13375,7 +13601,7 @@ ${input.slice(result.pos)}
13375
13601
  function JSXElementName(ctx, state) {
13376
13602
  return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
13377
13603
  }
13378
- var JSXIdentifierName$0 = $R$0($EXPECT($R74, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
13604
+ var JSXIdentifierName$0 = $R$0($EXPECT($R75, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
13379
13605
  function JSXIdentifierName(ctx, state) {
13380
13606
  return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
13381
13607
  }
@@ -13545,7 +13771,7 @@ ${input.slice(result.pos)}
13545
13771
  }
13546
13772
  return $skip;
13547
13773
  });
13548
- var JSXAttribute$5 = $TS($S($EXPECT($L160, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13774
+ var JSXAttribute$5 = $TS($S($EXPECT($L159, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13549
13775
  return [" ", "id=", $2];
13550
13776
  });
13551
13777
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -13554,7 +13780,7 @@ ${input.slice(result.pos)}
13554
13780
  class: $2
13555
13781
  };
13556
13782
  });
13557
- var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R75, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
13783
+ var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R76, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
13558
13784
  var toggle = $1;
13559
13785
  var id = $2;
13560
13786
  const value = toggle === "+" ? "true" : "false";
@@ -13564,11 +13790,11 @@ ${input.slice(result.pos)}
13564
13790
  function JSXAttribute(ctx, state) {
13565
13791
  return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
13566
13792
  }
13567
- var JSXAttributeSpace$0 = $R$0($EXPECT($R76, "JSXAttributeSpace /[\\s>]|\\/>/"));
13793
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R77, "JSXAttributeSpace /[\\s>]|\\/>/"));
13568
13794
  function JSXAttributeSpace(ctx, state) {
13569
13795
  return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
13570
13796
  }
13571
- var JSXShorthandString$0 = $TR($EXPECT($R77, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13797
+ var JSXShorthandString$0 = $TR($EXPECT($R78, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13572
13798
  return quoteString($0);
13573
13799
  });
13574
13800
  var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -13602,7 +13828,7 @@ ${input.slice(result.pos)}
13602
13828
  }
13603
13829
  return [open, value, close];
13604
13830
  });
13605
- var JSXAttributeValue$4 = $R$0($EXPECT($R78, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
13831
+ var JSXAttributeValue$4 = $R$0($EXPECT($R79, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
13606
13832
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
13607
13833
  function JSXAttributeValue(ctx, state) {
13608
13834
  return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
@@ -13615,7 +13841,7 @@ ${input.slice(result.pos)}
13615
13841
  function InlineJSXAttributeValue(ctx, state) {
13616
13842
  return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
13617
13843
  }
13618
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R79, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
13844
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R80, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
13619
13845
  var op = $2;
13620
13846
  var rhs = $3;
13621
13847
  return [[], op, [], rhs];
@@ -13632,7 +13858,7 @@ ${input.slice(result.pos)}
13632
13858
  function InlineJSXUnaryExpression(ctx, state) {
13633
13859
  return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
13634
13860
  }
13635
- var InlineJSXUnaryOp$0 = $TR($EXPECT($R80, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13861
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R81, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13636
13862
  return { $loc, token: $0 };
13637
13863
  });
13638
13864
  function InlineJSXUnaryOp(ctx, state) {
@@ -13787,7 +14013,7 @@ ${input.slice(result.pos)}
13787
14013
  }
13788
14014
  return $skip;
13789
14015
  });
13790
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L37, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
14016
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L36, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
13791
14017
  return { children: [], jsxChildren: [] };
13792
14018
  });
13793
14019
  var JSXNestedChildren$$ = [JSXNestedChildren$0, JSXNestedChildren$1];
@@ -13842,19 +14068,19 @@ ${input.slice(result.pos)}
13842
14068
  function JSXChild(ctx, state) {
13843
14069
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
13844
14070
  }
13845
- var JSXComment$0 = $TS($S($EXPECT($L215, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L216, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
14071
+ var JSXComment$0 = $TS($S($EXPECT($L214, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L215, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
13846
14072
  return ["{/*", $2, "*/}"];
13847
14073
  });
13848
14074
  function JSXComment(ctx, state) {
13849
14075
  return $EVENT(ctx, state, "JSXComment", JSXComment$0);
13850
14076
  }
13851
- var JSXCommentContent$0 = $TR($EXPECT($R81, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14077
+ var JSXCommentContent$0 = $TR($EXPECT($R82, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13852
14078
  return { $loc, token: $0.replace(/\*\//g, "* /") };
13853
14079
  });
13854
14080
  function JSXCommentContent(ctx, state) {
13855
14081
  return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
13856
14082
  }
13857
- var JSXText$0 = $TR($EXPECT($R82, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14083
+ var JSXText$0 = $TR($EXPECT($R83, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13858
14084
  return {
13859
14085
  type: "JSXText",
13860
14086
  token: $0,
@@ -14029,37 +14255,37 @@ ${input.slice(result.pos)}
14029
14255
  function InterfaceExtendsTarget(ctx, state) {
14030
14256
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
14031
14257
  }
14032
- var TypeKeyword$0 = $TS($S($EXPECT($L217, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14258
+ var TypeKeyword$0 = $TS($S($EXPECT($L216, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14033
14259
  return { $loc, token: $1 };
14034
14260
  });
14035
14261
  function TypeKeyword(ctx, state) {
14036
14262
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
14037
14263
  }
14038
- var Enum$0 = $TS($S($EXPECT($L218, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14264
+ var Enum$0 = $TS($S($EXPECT($L217, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14039
14265
  return { $loc, token: $1 };
14040
14266
  });
14041
14267
  function Enum(ctx, state) {
14042
14268
  return $EVENT(ctx, state, "Enum", Enum$0);
14043
14269
  }
14044
- var Interface$0 = $TS($S($EXPECT($L219, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14270
+ var Interface$0 = $TS($S($EXPECT($L218, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14045
14271
  return { $loc, token: $1 };
14046
14272
  });
14047
14273
  function Interface(ctx, state) {
14048
14274
  return $EVENT(ctx, state, "Interface", Interface$0);
14049
14275
  }
14050
- var Global$0 = $TS($S($EXPECT($L220, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14276
+ var Global$0 = $TS($S($EXPECT($L219, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14051
14277
  return { $loc, token: $1 };
14052
14278
  });
14053
14279
  function Global(ctx, state) {
14054
14280
  return $EVENT(ctx, state, "Global", Global$0);
14055
14281
  }
14056
- var Module$0 = $TS($S($EXPECT($L221, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14282
+ var Module$0 = $TS($S($EXPECT($L220, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14057
14283
  return { $loc, token: $1 };
14058
14284
  });
14059
14285
  function Module(ctx, state) {
14060
14286
  return $EVENT(ctx, state, "Module", Module$0);
14061
14287
  }
14062
- var Namespace$0 = $TS($S($EXPECT($L222, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14288
+ var Namespace$0 = $TS($S($EXPECT($L221, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14063
14289
  return { $loc, token: $1 };
14064
14290
  });
14065
14291
  function Namespace(ctx, state) {
@@ -14275,7 +14501,7 @@ ${input.slice(result.pos)}
14275
14501
  function TypeProperty(ctx, state) {
14276
14502
  return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
14277
14503
  }
14278
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R83, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R10, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
14504
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R84, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R12, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
14279
14505
  function TypeIndexSignature(ctx, state) {
14280
14506
  return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
14281
14507
  }
@@ -14335,7 +14561,7 @@ ${input.slice(result.pos)}
14335
14561
  function ReturnTypeSuffix(ctx, state) {
14336
14562
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
14337
14563
  }
14338
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L223, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
14564
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L222, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
14339
14565
  var asserts = $1;
14340
14566
  var t = $2;
14341
14567
  if (asserts) {
@@ -14356,7 +14582,7 @@ ${input.slice(result.pos)}
14356
14582
  function ReturnType(ctx, state) {
14357
14583
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
14358
14584
  }
14359
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L166, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
14585
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L165, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
14360
14586
  var lhs = $1;
14361
14587
  var rhs = $2;
14362
14588
  if (!rhs)
@@ -14414,8 +14640,8 @@ ${input.slice(result.pos)}
14414
14640
  function TypeUnarySuffix(ctx, state) {
14415
14641
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
14416
14642
  }
14417
- var TypeUnaryOp$0 = $S($EXPECT($L224, 'TypeUnaryOp "keyof"'), NonIdContinue);
14418
- var TypeUnaryOp$1 = $S($EXPECT($L184, 'TypeUnaryOp "readonly"'), NonIdContinue);
14643
+ var TypeUnaryOp$0 = $S($EXPECT($L223, 'TypeUnaryOp "keyof"'), NonIdContinue);
14644
+ var TypeUnaryOp$1 = $S($EXPECT($L183, 'TypeUnaryOp "readonly"'), NonIdContinue);
14419
14645
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
14420
14646
  function TypeUnaryOp(ctx, state) {
14421
14647
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -14431,7 +14657,7 @@ ${input.slice(result.pos)}
14431
14657
  "]"
14432
14658
  ];
14433
14659
  });
14434
- var TypeIndexedAccess$2 = $TS($S(CoffeePrototypeEnabled, DoubleColon, $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
14660
+ var TypeIndexedAccess$2 = $TS($S(CoffeePrototypeEnabled, DoubleColon, $E($C(IdentifierName, LengthShorthand))), function($skip, $loc, $0, $1, $2, $3) {
14435
14661
  var p = $2;
14436
14662
  var id = $3;
14437
14663
  const open = { ...p, token: '["' };
@@ -14445,7 +14671,7 @@ ${input.slice(result.pos)}
14445
14671
  function TypeIndexedAccess(ctx, state) {
14446
14672
  return $EVENT_C(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$$);
14447
14673
  }
14448
- var UnknownAlias$0 = $TV($EXPECT($L225, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14674
+ var UnknownAlias$0 = $TV($EXPECT($L224, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14449
14675
  return { $loc, token: "unknown" };
14450
14676
  });
14451
14677
  function UnknownAlias(ctx, state) {
@@ -14508,7 +14734,7 @@ ${input.slice(result.pos)}
14508
14734
  return $EVENT_C(ctx, state, "TypePrimary", TypePrimary$$);
14509
14735
  }
14510
14736
  var ImportType$0 = $S($EXPECT($L20, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
14511
- var ImportType$1 = $S($EXPECT($L20, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
14737
+ var ImportType$1 = $S($EXPECT($L20, 'ImportType "import"'), InsertOpenParen, $E(Trimmed_), StringLiteral, InsertCloseParen);
14512
14738
  var ImportType$$ = [ImportType$0, ImportType$1];
14513
14739
  function ImportType(ctx, state) {
14514
14740
  return $EVENT_C(ctx, state, "ImportType", ImportType$$);
@@ -14571,7 +14797,7 @@ ${input.slice(result.pos)}
14571
14797
  function NestedType(ctx, state) {
14572
14798
  return $EVENT(ctx, state, "NestedType", NestedType$0);
14573
14799
  }
14574
- var TypeConditional$0 = $TS($S($E(_), $EXPECT($R84, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
14800
+ var TypeConditional$0 = $TS($S($E(_), $EXPECT($R85, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
14575
14801
  return [$1, expressionizeTypeIf($3)];
14576
14802
  });
14577
14803
  var TypeConditional$1 = $TS($S(TypeCondition, NotDedented, QuestionMark, Type, __, Colon, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
@@ -14651,17 +14877,17 @@ ${input.slice(result.pos)}
14651
14877
  }
14652
14878
  var TypeLiteral$0 = TypeTemplateLiteral;
14653
14879
  var TypeLiteral$1 = Literal;
14654
- var TypeLiteral$2 = $TS($S($EXPECT($R10, "TypeLiteral /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1, $2) {
14880
+ var TypeLiteral$2 = $TS($S($EXPECT($R12, "TypeLiteral /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1, $2) {
14655
14881
  var sign = $1;
14656
14882
  var num = $2;
14657
14883
  if (sign[0] === "+")
14658
14884
  return num;
14659
14885
  return $0;
14660
14886
  });
14661
- var TypeLiteral$3 = $TS($S($EXPECT($L207, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14887
+ var TypeLiteral$3 = $TS($S($EXPECT($L206, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14662
14888
  return { type: "VoidType", $loc, token: $1 };
14663
14889
  });
14664
- var TypeLiteral$4 = $TV($EXPECT($L226, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14890
+ var TypeLiteral$4 = $TV($EXPECT($L225, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14665
14891
  return { $loc, token: "[]" };
14666
14892
  });
14667
14893
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4];
@@ -14680,16 +14906,16 @@ ${input.slice(result.pos)}
14680
14906
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
14681
14907
  return value[1];
14682
14908
  });
14683
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L15, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L126, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L46, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L37, 'InlineInterfacePropertyDelimiter "}"'))));
14909
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L15, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L125, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L45, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L36, 'InlineInterfacePropertyDelimiter "}"'))));
14684
14910
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
14685
14911
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
14686
14912
  function InlineInterfacePropertyDelimiter(ctx, state) {
14687
14913
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
14688
14914
  }
14689
- var TypeBinaryOp$0 = $TV($EXPECT($L110, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
14915
+ var TypeBinaryOp$0 = $TV($EXPECT($L109, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
14690
14916
  return { $loc, token: "|" };
14691
14917
  });
14692
- var TypeBinaryOp$1 = $TV($EXPECT($L109, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
14918
+ var TypeBinaryOp$1 = $TV($EXPECT($L108, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
14693
14919
  return { $loc, token: "&" };
14694
14920
  });
14695
14921
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
@@ -14706,7 +14932,7 @@ ${input.slice(result.pos)}
14706
14932
  function TypeFunction(ctx, state) {
14707
14933
  return $EVENT(ctx, state, "TypeFunction", TypeFunction$0);
14708
14934
  }
14709
- var TypeArrowFunction$0 = $TV($C($EXPECT($L13, 'TypeArrowFunction "=>"'), $EXPECT($L14, 'TypeArrowFunction "\u21D2"'), $EXPECT($L35, 'TypeArrowFunction "->"'), $EXPECT($L36, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
14935
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L13, 'TypeArrowFunction "=>"'), $EXPECT($L14, 'TypeArrowFunction "\u21D2"'), $EXPECT($L34, 'TypeArrowFunction "->"'), $EXPECT($L35, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
14710
14936
  return { $loc, token: "=>" };
14711
14937
  });
14712
14938
  function TypeArrowFunction(ctx, state) {
@@ -14744,7 +14970,7 @@ ${input.slice(result.pos)}
14744
14970
  function TypeParameters(ctx, state) {
14745
14971
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
14746
14972
  }
14747
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L165, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
14973
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L164, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
14748
14974
  function TypeParameter(ctx, state) {
14749
14975
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
14750
14976
  }
@@ -14757,7 +14983,7 @@ ${input.slice(result.pos)}
14757
14983
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
14758
14984
  }
14759
14985
  var TypeParameterDelimiter$0 = $S($E(_), Comma);
14760
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L45, 'TypeParameterDelimiter ">"')));
14986
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L44, 'TypeParameterDelimiter ">"')));
14761
14987
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
14762
14988
  return value[1];
14763
14989
  });
@@ -14771,15 +14997,15 @@ ${input.slice(result.pos)}
14771
14997
  function ThisType(ctx, state) {
14772
14998
  return $EVENT(ctx, state, "ThisType", ThisType$0);
14773
14999
  }
14774
- var Shebang$0 = $S($R$0($EXPECT($R85, "Shebang /#![^\\r\\n]*/")), EOL);
15000
+ var Shebang$0 = $S($R$0($EXPECT($R86, "Shebang /#![^\\r\\n]*/")), EOL);
14775
15001
  function Shebang(ctx, state) {
14776
15002
  return $EVENT(ctx, state, "Shebang", Shebang$0);
14777
15003
  }
14778
- var CivetPrologue$0 = $T($S($EXPECT($R86, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R87, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
15004
+ var CivetPrologue$0 = $T($S($EXPECT($R87, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R88, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
14779
15005
  var content = value[2];
14780
15006
  return content;
14781
15007
  });
14782
- var CivetPrologue$1 = $T($S($EXPECT($R86, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R87, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
15008
+ var CivetPrologue$1 = $T($S($EXPECT($R87, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R88, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
14783
15009
  var content = value[2];
14784
15010
  return content;
14785
15011
  });
@@ -14787,7 +15013,7 @@ ${input.slice(result.pos)}
14787
15013
  function CivetPrologue(ctx, state) {
14788
15014
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
14789
15015
  }
14790
- var CivetPrologueContent$0 = $TS($S($EXPECT($L227, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R88, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
15016
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L226, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R89, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
14791
15017
  var options = $3;
14792
15018
  return {
14793
15019
  type: "CivetPrologue",
@@ -14798,7 +15024,7 @@ ${input.slice(result.pos)}
14798
15024
  function CivetPrologueContent(ctx, state) {
14799
15025
  return $EVENT(ctx, state, "CivetPrologueContent", CivetPrologueContent$0);
14800
15026
  }
14801
- var CivetOption$0 = $TR($EXPECT($R89, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15027
+ var CivetOption$0 = $TR($EXPECT($R90, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14802
15028
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
14803
15029
  if (l)
14804
15030
  return l.toUpperCase();
@@ -14815,11 +15041,11 @@ ${input.slice(result.pos)}
14815
15041
  function CivetOption(ctx, state) {
14816
15042
  return $EVENT(ctx, state, "CivetOption", CivetOption$0);
14817
15043
  }
14818
- var UnknownPrologue$0 = $S($R$0($EXPECT($R86, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
15044
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R87, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
14819
15045
  function UnknownPrologue(ctx, state) {
14820
15046
  return $EVENT(ctx, state, "UnknownPrologue", UnknownPrologue$0);
14821
15047
  }
14822
- var TripleSlashDirective$0 = $S($R$0($EXPECT($R90, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
15048
+ var TripleSlashDirective$0 = $S($R$0($EXPECT($R91, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
14823
15049
  function TripleSlashDirective(ctx, state) {
14824
15050
  return $EVENT(ctx, state, "TripleSlashDirective", TripleSlashDirective$0);
14825
15051
  }
@@ -14835,13 +15061,13 @@ ${input.slice(result.pos)}
14835
15061
  function PrologueString(ctx, state) {
14836
15062
  return $EVENT_C(ctx, state, "PrologueString", PrologueString$$);
14837
15063
  }
14838
- var EOS$0 = $T($S($EXPECT($R91, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
15064
+ var EOS$0 = $T($S($EXPECT($R92, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
14839
15065
  return value[1];
14840
15066
  });
14841
15067
  function EOS(ctx, state) {
14842
15068
  return $EVENT(ctx, state, "EOS", EOS$0);
14843
15069
  }
14844
- var EOL$0 = $TR($EXPECT($R92, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15070
+ var EOL$0 = $TR($EXPECT($R93, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14845
15071
  return { $loc, token: $0 };
14846
15072
  });
14847
15073
  function EOL(ctx, state) {
@@ -15413,11 +15639,11 @@ ${input.slice(result.pos)}
15413
15639
  function Prologue(ctx, state) {
15414
15640
  return $EVENT(ctx, state, "Prologue", Prologue$0);
15415
15641
  }
15416
- var ProloguePrefix$0 = $S(Prologue, $R$0($EXPECT($R93, "ProloguePrefix /[^]*/")));
15642
+ var ProloguePrefix$0 = $S(Prologue, $R$0($EXPECT($R94, "ProloguePrefix /[^]*/")));
15417
15643
  function ProloguePrefix(ctx, state) {
15418
15644
  return $EVENT(ctx, state, "ProloguePrefix", ProloguePrefix$0);
15419
15645
  }
15420
- var Indent$0 = $TR($EXPECT($R87, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15646
+ var Indent$0 = $TR($EXPECT($R88, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15421
15647
  const level = getIndentLevel($0, module.config.tab);
15422
15648
  return {
15423
15649
  $loc,
@@ -15547,6 +15773,7 @@ ${input.slice(result.pos)}
15547
15773
  exports.ExplicitArguments = ExplicitArguments;
15548
15774
  exports.ApplicationStart = ApplicationStart;
15549
15775
  exports.ForbiddenImplicitCalls = ForbiddenImplicitCalls;
15776
+ exports.ReservedBinary = ReservedBinary;
15550
15777
  exports.ArgumentsWithTrailingMemberExpressions = ArgumentsWithTrailingMemberExpressions;
15551
15778
  exports.TrailingMemberExpressions = TrailingMemberExpressions;
15552
15779
  exports.AllowedTrailingMemberExpressions = AllowedTrailingMemberExpressions;
@@ -15579,8 +15806,11 @@ ${input.slice(result.pos)}
15579
15806
  exports.AssignmentExpression = AssignmentExpression;
15580
15807
  exports.NonPipelineAssignmentExpression = NonPipelineAssignmentExpression;
15581
15808
  exports.SingleLineAssignmentExpression = SingleLineAssignmentExpression;
15809
+ exports.NonPipelineSingleLineAssignmentExpression = NonPipelineSingleLineAssignmentExpression;
15582
15810
  exports.AssignmentExpressionTail = AssignmentExpressionTail;
15811
+ exports.NonPipelineAssignmentExpressionTail = NonPipelineAssignmentExpressionTail;
15583
15812
  exports.ActualAssignment = ActualAssignment;
15813
+ exports.NonPipelineActualAssignment = NonPipelineActualAssignment;
15584
15814
  exports.YieldExpression = YieldExpression;
15585
15815
  exports.YieldTail = YieldTail;
15586
15816
  exports.ArrowFunction = ArrowFunction;
@@ -15597,7 +15827,8 @@ ${input.slice(result.pos)}
15597
15827
  exports.PipelineTailItem = PipelineTailItem;
15598
15828
  exports.PrimaryExpression = PrimaryExpression;
15599
15829
  exports.ParenthesizedExpression = ParenthesizedExpression;
15600
- exports.PartialPlaceholder = PartialPlaceholder;
15830
+ exports.Placeholder = Placeholder;
15831
+ exports.AmpersandTypeSuffix = AmpersandTypeSuffix;
15601
15832
  exports.ClassDeclaration = ClassDeclaration;
15602
15833
  exports.ClassExpression = ClassExpression;
15603
15834
  exports.ClassBinding = ClassBinding;
@@ -15686,15 +15917,11 @@ ${input.slice(result.pos)}
15686
15917
  exports.FunctionDeclaration = FunctionDeclaration;
15687
15918
  exports.FunctionSignature = FunctionSignature;
15688
15919
  exports.FunctionExpression = FunctionExpression;
15689
- exports.AmpersandFunctionExpression = AmpersandFunctionExpression;
15690
15920
  exports.OperatorDeclaration = OperatorDeclaration;
15691
15921
  exports.OperatorSignature = OperatorSignature;
15692
15922
  exports.OperatorBehavior = OperatorBehavior;
15693
15923
  exports.OperatorPrecedence = OperatorPrecedence;
15694
15924
  exports.OperatorAssociativity = OperatorAssociativity;
15695
- exports.AmpersandBlockRHS = AmpersandBlockRHS;
15696
- exports.AmpersandTypeSuffix = AmpersandTypeSuffix;
15697
- exports.AmpersandBlockRHSBody = AmpersandBlockRHSBody;
15698
15925
  exports.ThinArrowFunction = ThinArrowFunction;
15699
15926
  exports.Arrow = Arrow;
15700
15927
  exports.ExplicitBlock = ExplicitBlock;
@@ -16275,9 +16502,10 @@ ${input.slice(result.pos)}
16275
16502
  var import_parser = __toESM(require_parser());
16276
16503
 
16277
16504
  // source/generate.civet
16505
+ init_util();
16278
16506
  function stringify(node) {
16279
16507
  try {
16280
- return JSON.stringify(node);
16508
+ return JSON.stringify(removeParentPointers(node));
16281
16509
  } catch (e) {
16282
16510
  return `${node}`;
16283
16511
  }