@danielx/civet 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var Civet = (() => {
3
2
  var __create = Object.create;
4
3
  var __defProp = Object.defineProperty;
@@ -54,7 +53,7 @@ var Civet = (() => {
54
53
  $EVENT: () => $EVENT2,
55
54
  $EVENT_C: () => $EVENT_C2,
56
55
  $EXPECT: () => $EXPECT2,
57
- $L: () => $L247,
56
+ $L: () => $L249,
58
57
  $N: () => $N2,
59
58
  $P: () => $P2,
60
59
  $Q: () => $Q2,
@@ -77,7 +76,7 @@ var Civet = (() => {
77
76
  return result || ctx.fail(state2.pos, expectation), result;
78
77
  };
79
78
  }
80
- function $L247(str) {
79
+ function $L249(str) {
81
80
  return function(_ctx, state2) {
82
81
  let { input, pos } = state2, { length } = str, end = pos + length;
83
82
  if (input.substring(pos, end) === str)
@@ -401,37 +400,38 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
401
400
  }
402
401
  });
403
402
 
404
- // source/browser.civet
405
- var browser_exports = {};
406
- __export(browser_exports, {
403
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\browser.civet.jsx
404
+ var browser_civet_exports = {};
405
+ __export(browser_civet_exports, {
407
406
  ParseError: () => import_lib2.ParseError,
408
407
  ParseErrors: () => ParseErrors,
409
408
  SourceMap: () => SourceMap2,
410
409
  autoRunScripts: () => autoRunScripts,
411
410
  compile: () => compile,
412
- generate: () => generate_default,
411
+ generate: () => generate_civet_default,
413
412
  isCompileError: () => isCompileError,
414
- lib: () => lib_exports,
413
+ lib: () => lib_civet_exports,
415
414
  parse: () => parse,
416
415
  parseProgram: () => parseProgram,
417
416
  prune: () => prune,
418
417
  runScript: () => runScript,
419
418
  runScripts: () => runScripts,
420
- sourcemap: () => sourcemap_exports
419
+ sourcemap: () => sourcemap_civet_exports
421
420
  });
422
421
 
423
422
  // source/parser.hera
424
423
  var import_lib2 = __toESM(require_machine());
425
424
 
426
- // source/parser/lib.civet
427
- var lib_exports = {};
428
- __export(lib_exports, {
425
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\lib.civet.jsx
426
+ var lib_civet_exports = {};
427
+ __export(lib_civet_exports, {
429
428
  addPostfixStatement: () => addPostfixStatement,
430
429
  adjustBindingElements: () => adjustBindingElements,
431
430
  adjustIndexAccess: () => adjustIndexAccess,
432
431
  append: () => append,
433
432
  attachPostfixStatementAsExpression: () => attachPostfixStatementAsExpression,
434
433
  blockWithPrefix: () => blockWithPrefix,
434
+ braceBlock: () => braceBlock,
435
435
  convertNamedImportsToObject: () => convertNamedImportsToObject,
436
436
  convertObjectToJSXAttributes: () => convertObjectToJSXAttributes,
437
437
  convertWithClause: () => convertWithClause,
@@ -499,7 +499,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
499
499
  wrapTypeInPromise: () => wrapTypeInPromise
500
500
  });
501
501
 
502
- // source/parser/util.civet
502
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\util.civet.jsx
503
503
  function len(arr, length) {
504
504
  return arr.length === length;
505
505
  }
@@ -793,6 +793,49 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
793
793
  throw new Error("Unrecognized literal " + JSON.stringify(literal));
794
794
  }
795
795
  }
796
+ function literalType(literal) {
797
+ let t;
798
+ switch (literal.type) {
799
+ case "RegularExpressionLiteral": {
800
+ t = "RegExp";
801
+ break;
802
+ }
803
+ case "TemplateLiteral": {
804
+ t = "string";
805
+ break;
806
+ }
807
+ case "Literal": {
808
+ switch (literal.subtype) {
809
+ case "NullLiteral": {
810
+ t = "null";
811
+ break;
812
+ }
813
+ case "BooleanLiteral": {
814
+ t = "boolean";
815
+ break;
816
+ }
817
+ case "NumericLiteral": {
818
+ literal.raw.endsWith("n") ? t = "bigint" : t = "number";
819
+ break;
820
+ }
821
+ case "StringLiteral": {
822
+ t = "string";
823
+ break;
824
+ }
825
+ default:
826
+ throw new Error(`unknown literal subtype ${literal.subtype}`);
827
+ }
828
+ break;
829
+ }
830
+ default:
831
+ throw new Error(`unknown literal type ${literal.type}`);
832
+ }
833
+ return {
834
+ type: "TypeLiteral",
835
+ t,
836
+ children: [t]
837
+ };
838
+ }
796
839
  function makeNumericLiteral(n) {
797
840
  let s = n.toString();
798
841
  return {
@@ -1013,7 +1056,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1013
1056
  return target;
1014
1057
  }
1015
1058
  function spliceChild(node, child, del, ...replacements) {
1016
- let children = node?.children ?? node;
1059
+ let children = Array.isArray(node) ? node : node.children;
1017
1060
  if (!Array.isArray(children))
1018
1061
  throw new Error("spliceChild: non-array node has no children field");
1019
1062
  let index = children.indexOf(child);
@@ -1153,7 +1196,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1153
1196
  return result;
1154
1197
  }
1155
1198
 
1156
- // source/parser/traversal.civet
1199
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\traversal.civet.jsx
1157
1200
  function gatherRecursiveWithinFunction(node, predicate) {
1158
1201
  return gatherRecursive(node, predicate, isFunction);
1159
1202
  }
@@ -1227,7 +1270,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1227
1270
  return predicate(node) && nodes.push(node), nodes;
1228
1271
  }
1229
1272
 
1230
- // source/parser/ref.civet
1273
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\ref.civet.jsx
1231
1274
  function makeRef(base = "ref", id = base) {
1232
1275
  return {
1233
1276
  type: "Ref",
@@ -1278,7 +1321,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1278
1321
  return ref === exp ? { ref, refAssignmentComma: [] } : { ref, ...makeRefAssignment(ref, exp) };
1279
1322
  }
1280
1323
 
1281
- // source/parser/binding.civet
1324
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\binding.civet.jsx
1282
1325
  function adjustAtBindings(statements, asThis = !1) {
1283
1326
  for (let ref1 = gatherRecursiveAll(statements, ($) => $.type === "AtBindingProperty"), i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
1284
1327
  let binding = ref1[i1], { ref } = binding;
@@ -1342,13 +1385,30 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1342
1385
  function gatherBindingCode(statements, opts) {
1343
1386
  let thisAssignments = [], splices = [];
1344
1387
  function insertRestSplices(s, p, thisAssignments2) {
1345
- for (let ref2 = gatherRecursiveAll(s, (n) => n.blockPrefix || opts?.injectParamProps && n.accessModifier || n.type === "AtBinding"), i3 = 0, len22 = ref2.length; i3 < len22; i3++) {
1388
+ let m;
1389
+ for (let ref2 = gatherRecursiveAll(
1390
+ s,
1391
+ (n) => n.blockPrefix || opts?.injectParamProps && n.accessModifier || n.type === "AtBinding" || opts?.assignPins && (m = n.type, m === "PinPattern" || m === "PinProperty")
1392
+ ), i3 = 0, len22 = ref2.length; i3 < len22; i3++) {
1346
1393
  let n = ref2[i3];
1347
1394
  if (n.type === "AtBinding") {
1348
1395
  let { ref } = n, { id } = ref;
1349
1396
  thisAssignments2.push([`this.${id} = `, ref]);
1350
1397
  continue;
1351
1398
  }
1399
+ if (opts?.assignPins && (n.type === "PinProperty" && (n.children = n.children.flatMap(($2) => $2 === n.name ? [n.name, ": ", n.value] : $2), updateParentPointers(n), n = n.value), n.type === "PinPattern")) {
1400
+ n.ref = makeRef(
1401
+ n.expression.type === "Identifier" ? n.expression.name : "pin"
1402
+ ), n.children = [n.ref], updateParentPointers(n), thisAssignments2.push({
1403
+ type: "AssignmentExpression",
1404
+ children: [n.expression, " = ", n.ref],
1405
+ names: [],
1406
+ lhs: n.expression,
1407
+ assigned: n.expression,
1408
+ expression: n.ref
1409
+ });
1410
+ continue;
1411
+ }
1352
1412
  if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
1353
1413
  for (let ref3 = n.names, i4 = 0, len3 = ref3.length; i4 < len3; i4++) {
1354
1414
  let id = ref3[i4];
@@ -1440,12 +1500,12 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1440
1500
  return pattern;
1441
1501
  }
1442
1502
 
1443
- // source/parser/comptime.civet
1503
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\comptime.civet.jsx
1444
1504
  init_browser_shim();
1445
1505
  init_browser_shim();
1446
1506
  init_browser_shim();
1447
1507
 
1448
- // source/parser/helper.civet
1508
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\helper.civet.jsx
1449
1509
  var preludeVar = "var ";
1450
1510
  function ts(children) {
1451
1511
  return {
@@ -1503,16 +1563,19 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1503
1563
  `
1504
1564
  ]]);
1505
1565
  },
1506
- rslice(rsliceRef) {
1507
- let RSliceable = makeRef("RSliceable");
1566
+ RSliceable(RSliceableRef) {
1508
1567
  state.prelude.push([
1509
1568
  "",
1510
- ts(["type ", RSliceable, `<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}
1569
+ ts(["type ", RSliceableRef, `<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}
1511
1570
  `])
1512
- ]), state.prelude.push(["", [
1571
+ ]);
1572
+ },
1573
+ rslice(rsliceRef) {
1574
+ let RSliceableRef = getHelperRef("RSliceable");
1575
+ state.prelude.push(["", [
1513
1576
  preludeVar,
1514
1577
  rsliceRef,
1515
- ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
1578
+ ts([": <R, T extends string | ", RSliceableRef, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceableRef, "<infer R> ? R : never"]),
1516
1579
  ` = ((a, start = -1, end = -1) => {
1517
1580
  `,
1518
1581
  ` const l = a.length
@@ -1543,6 +1606,76 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1543
1606
  `,
1544
1607
  "})"
1545
1608
  ], `;
1609
+ `]);
1610
+ },
1611
+ range(rangeRef) {
1612
+ state.prelude.push(["", [
1613
+ preludeVar,
1614
+ rangeRef,
1615
+ ts([": (start: number, end: number) => number[]"]),
1616
+ " ",
1617
+ `= (start, end) => {
1618
+ const length = end - start;
1619
+ if (length <= 0) return [];
1620
+ const arr = Array(length);
1621
+ for (let i = 0; i < length; ++i) {
1622
+ arr[i] = i + start;
1623
+ }
1624
+ return arr;
1625
+ }`
1626
+ ], `;
1627
+ `]);
1628
+ },
1629
+ revRange(revRangeRef) {
1630
+ state.prelude.push(["", [
1631
+ preludeVar,
1632
+ revRangeRef,
1633
+ ts([": (start: number, end: number) => number[]"]),
1634
+ " ",
1635
+ `= (start, end) => {
1636
+ const length = start - end;
1637
+ if (length <= 0) return [];
1638
+ const arr = Array(length);
1639
+ for (let i = 0; i < length; ++i) {
1640
+ arr[i] = start - i;
1641
+ }
1642
+ return arr;
1643
+ }`
1644
+ ], `;
1645
+ `]);
1646
+ },
1647
+ stringRange(stringRangeRef) {
1648
+ state.prelude.push(["", [
1649
+ preludeVar,
1650
+ stringRangeRef,
1651
+ ts([": (start: number, length: number) => string[]"]),
1652
+ " ",
1653
+ `= (start, length) => {
1654
+ if (length <= 0) return [];
1655
+ const arr = Array(length);
1656
+ for (let i = 0; i < length; ++i) {
1657
+ arr[i] = String.fromCharCode(start + i);
1658
+ }
1659
+ return arr;
1660
+ }`
1661
+ ], `;
1662
+ `]);
1663
+ },
1664
+ revStringRange(revStringRangeRef) {
1665
+ state.prelude.push(["", [
1666
+ preludeVar,
1667
+ revStringRangeRef,
1668
+ ts([": (start: number, length: number) => string[]"]),
1669
+ " ",
1670
+ `= (start, length) => {
1671
+ if (length <= 0) return [];
1672
+ const arr = Array(length);
1673
+ for (let i = 0; i < length; ++i) {
1674
+ arr[i] = String.fromCharCode(start - i);
1675
+ }
1676
+ return arr;
1677
+ }`
1678
+ ], `;
1546
1679
  `]);
1547
1680
  },
1548
1681
  div(divRef) {
@@ -1694,11 +1827,21 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1694
1827
  return state.helperRefs[base];
1695
1828
  }
1696
1829
  function extractPreludeFor(node) {
1697
- let helpers = new Set(Object.values(state.helperRefs));
1698
- return helpers = new Set(gatherRecursive(node, helpers.has.bind(helpers))), state.prelude.filter((s) => gatherRecursive(s, helpers.has.bind(helpers)).length);
1830
+ if (!state.prelude.length)
1831
+ return state.prelude;
1832
+ let allHelpers = new Set(Object.values(state.helperRefs)), isHelper = allHelpers.has.bind(allHelpers), usedHelpers = new Set(gatherRecursive(node, isHelper));
1833
+ for (; ; ) {
1834
+ let prelude = state.prelude.filter((s) => gatherRecursive(s, usedHelpers.has.bind(usedHelpers)).length), changed = !1;
1835
+ for (let ref1 = gatherRecursive(prelude, isHelper), i = 0, len3 = ref1.length; i < len3; i++) {
1836
+ let helper = ref1[i];
1837
+ usedHelpers.has(helper) || (usedHelpers.add(helper), changed = !0);
1838
+ }
1839
+ if (!changed)
1840
+ return prelude;
1841
+ }
1699
1842
  }
1700
1843
 
1701
- // source/generate.civet
1844
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\generate.civet.jsx
1702
1845
  function stringify(node) {
1703
1846
  try {
1704
1847
  return JSON.stringify(removeParentPointers(node));
@@ -1707,7 +1850,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1707
1850
  }
1708
1851
  }
1709
1852
  function gen(root, options) {
1710
- let updateSourceMap = options?.sourceMap?.updateSourceMap;
1853
+ let ref, updateSourceMap = (ref = options?.sourceMap)?.updateSourceMap.bind(ref);
1711
1854
  return recurse(root);
1712
1855
  function recurse(node) {
1713
1856
  if (node == null)
@@ -1720,10 +1863,10 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1720
1863
  if (options.js && node.ts || !options.js && node.js)
1721
1864
  return "";
1722
1865
  if (node.type === "Error") {
1723
- let filename2 = options?.filename ?? "unknown", line = "?", column = "?", offset, ref;
1724
- if (ref = options.sourceMap) {
1725
- let sourceMap = ref;
1726
- node.$loc != null && sourceMap.updateSourceMap("", node.$loc.pos), line = sourceMap.data.srcLine + 1, column = sourceMap.data.srcColumn + 1, offset = sourceMap.data.srcOffset;
1866
+ let filename2 = options?.filename ?? "unknown", line = "?", column = "?", offset, ref1;
1867
+ if (ref1 = options.sourceMap) {
1868
+ let sourceMap = ref1;
1869
+ node.$loc != null && sourceMap.updateSourceMap("", node.$loc.pos), line = sourceMap.srcLine + 1, column = sourceMap.srcColumn + 1, offset = sourceMap.srcOffset;
1727
1870
  }
1728
1871
  return options.errors ??= [], options.errors.push(new import_lib2.ParseError(
1729
1872
  node.message,
@@ -1755,7 +1898,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1755
1898
  throw new Error(`Unknown node ${stringify(node)}`);
1756
1899
  }
1757
1900
  }
1758
- var generate_default = gen;
1901
+ var generate_civet_default = gen;
1759
1902
  function prune(node) {
1760
1903
  if (node != null && !(typeof node == "string" && node.length === 0)) {
1761
1904
  if (node.parent != null && delete node.parent, Array.isArray(node)) {
@@ -1766,7 +1909,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1766
1909
  }
1767
1910
  }
1768
1911
 
1769
- // source/parser/comptime.civet
1912
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\comptime.civet.jsx
1770
1913
  function expressionizeComptime(statement) {
1771
1914
  let { expressions } = statement.block, expression = wrapIIFE(expressions, hasAwait(expressions));
1772
1915
  return makeNode({
@@ -1795,7 +1938,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1795
1938
  ...extractPreludeFor(content),
1796
1939
  content
1797
1940
  ];
1798
- let options = { js: !0 }, js = generate_default(prune(content), options);
1941
+ let options = { js: !0 }, js = generate_civet_default(prune(content), options);
1799
1942
  if (js = `"use strict";${js}`, options.errors != null)
1800
1943
  return;
1801
1944
  let output, context, contextGlobal;
@@ -2000,7 +2143,7 @@ ${js}`
2000
2143
  return recurse(value);
2001
2144
  }
2002
2145
 
2003
- // source/parser/function.civet
2146
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\function.civet.jsx
2004
2147
  var concatAssign = (lhs, rhs) => (rhs?.[Symbol.isConcatSpreadable] ?? Array.isArray(rhs) ? lhs.push.apply(lhs, rhs) : lhs.push(rhs), lhs);
2005
2148
  function getTypeArguments(args) {
2006
2149
  for (; typeof args == "object" && args != null && "args" in args; )
@@ -2500,7 +2643,26 @@ ${js}`
2500
2643
  }
2501
2644
  if (statement.resultsRef != null)
2502
2645
  return;
2503
- let resultsRef = statement.resultsRef = makeRef("results"), declaration = iterationDeclaration(statement), { ancestor, child } = findAncestor(statement, ($5) => $5.type === "BlockStatement");
2646
+ if (statement.resultsParent) {
2647
+ let { ancestor: ancestor2 } = findAncestor(
2648
+ statement,
2649
+ ($5) => $5.type === "ForStatement" || $5.type === "IterationStatement",
2650
+ isFunction
2651
+ );
2652
+ if (!ancestor2) {
2653
+ statement.children.unshift({
2654
+ type: "Error",
2655
+ message: "Could not find ancestor of spread iteration"
2656
+ });
2657
+ return;
2658
+ }
2659
+ let resultsRef2 = statement.resultsRef = ancestor2.resultsRef;
2660
+ iterationDefaultBody(statement);
2661
+ let { block } = statement;
2662
+ block.empty || assignResults(block, (node) => [resultsRef2, ".push(", node, ")"]);
2663
+ return;
2664
+ }
2665
+ let resultsRef = statement.resultsRef ??= makeRef("results"), declaration = iterationDeclaration(statement), { ancestor, child } = findAncestor(statement, ($6) => $6.type === "BlockStatement");
2504
2666
  assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
2505
2667
  let index = findChildIndex(ancestor.expressions, child);
2506
2668
  assert.notEqual(index, -1, `Could not find ${statement.type} in containing block`);
@@ -2527,6 +2689,8 @@ ${js}`
2527
2689
  return "false";
2528
2690
  case "every":
2529
2691
  return "true";
2692
+ case "first":
2693
+ return "undefined";
2530
2694
  case "min":
2531
2695
  return "Infinity";
2532
2696
  case "max":
@@ -2535,6 +2699,8 @@ ${js}`
2535
2699
  return "1";
2536
2700
  case "join":
2537
2701
  return '""';
2702
+ case "concat":
2703
+ return "[]";
2538
2704
  default:
2539
2705
  return "0";
2540
2706
  }
@@ -2559,9 +2725,13 @@ ${js}`
2559
2725
  ];
2560
2726
  case "count":
2561
2727
  return ["if (", node, ") ++", resultsRef];
2728
+ case "first":
2729
+ return [resultsRef, " = ", node, "; break"];
2562
2730
  case "sum":
2563
2731
  case "join":
2564
2732
  return [resultsRef, " += ", node];
2733
+ case "concat":
2734
+ return [getHelperRef("concatAssign"), "(", resultsRef, ", ", node, ")"];
2565
2735
  case "product":
2566
2736
  return [resultsRef, " *= ", node];
2567
2737
  case "min":
@@ -2591,28 +2761,31 @@ ${js}`
2591
2761
  case "count":
2592
2762
  return fillBlock(["", ["++", resultsRef]]), block.empty = !1, braceBlock(block), !0;
2593
2763
  }
2594
- if (statement.type === "ForStatement" && statement.declaration?.type === "ForDeclaration") {
2595
- if (reduction) {
2596
- let bindings = patternBindings(statement.declaration.binding.pattern);
2597
- if (bindings.length) {
2598
- fillBlock(["", bindings[0]]);
2599
- for (let binding of bindings.slice(1))
2600
- binding.children.unshift({
2601
- type: "Error",
2602
- subtype: "Warning",
2603
- message: "Ignored binding in reduction loop with implicit body"
2604
- });
2764
+ if (statement.type === "ForStatement") {
2765
+ let declaration = statement.eachDeclaration ?? statement.declaration;
2766
+ if (declaration?.type === "ForDeclaration") {
2767
+ if (reduction) {
2768
+ let bindings = patternBindings(declaration.binding.pattern);
2769
+ if (bindings.length) {
2770
+ fillBlock(["", bindings[0]]);
2771
+ for (let binding of bindings.slice(1))
2772
+ binding.children.unshift({
2773
+ type: "Error",
2774
+ subtype: "Warning",
2775
+ message: "Ignored binding in reduction loop with implicit body"
2776
+ });
2777
+ } else
2778
+ fillBlock([
2779
+ "",
2780
+ {
2781
+ type: "Error",
2782
+ message: "Empty binding pattern in reduction loop with implicit body"
2783
+ }
2784
+ ]);
2605
2785
  } else
2606
- fillBlock([
2607
- "",
2608
- {
2609
- type: "Error",
2610
- message: "Empty binding pattern in reduction loop with implicit body"
2611
- }
2612
- ]);
2613
- } else
2614
- fillBlock(["", patternAsValue(statement.declaration.binding.pattern)]);
2615
- block.empty = !1;
2786
+ fillBlock(["", patternAsValue(declaration.binding.pattern)]);
2787
+ block.empty = !1;
2788
+ }
2616
2789
  }
2617
2790
  return !1;
2618
2791
  }
@@ -2652,14 +2825,14 @@ ${js}`
2652
2825
  append2(param);
2653
2826
  }
2654
2827
  }
2655
- if (parameters.names = before.flatMap(($6) => $6.names), parameters.parameters.splice(0, 1 / 0), tt && parameters.parameters.push(tt), parameters.parameters.push(...before), rest) {
2828
+ if (parameters.names = before.flatMap(($7) => $7.names), parameters.parameters.splice(0, 1 / 0), tt && parameters.parameters.push(tt), parameters.parameters.push(...before), rest) {
2656
2829
  let restIdentifier = rest.binding.ref || rest.binding;
2657
2830
  if (parameters.names.push(...rest.names || []), rest.children.pop(), after.length) {
2658
2831
  (rest.binding.type === "ArrayBindingPattern" || rest.binding.type === "ObjectBindingPattern") && parameters.parameters.push({
2659
2832
  type: "Error",
2660
2833
  message: "Non-end rest parameter cannot be binding pattern"
2661
2834
  }), after = trimFirstSpace(after);
2662
- let names = after.flatMap(($7) => $7.names), elements = after.map((p) => p.type === "Error" ? p : {
2835
+ let names = after.flatMap(($8) => $8.names), elements = after.map((p) => p.type === "Error" ? p : {
2663
2836
  ...p,
2664
2837
  // omit individual argument types from output
2665
2838
  children: p.children.filter((a2) => a2 !== p.typeSuffix),
@@ -2684,7 +2857,7 @@ ${js}`
2684
2857
  names
2685
2858
  });
2686
2859
  if (rest.typeSuffix) {
2687
- let optionalType2 = function(typeSuffix3, fallback) {
2860
+ let optionalType = function(typeSuffix3, fallback) {
2688
2861
  let t2 = typeSuffix3?.t ?? fallback;
2689
2862
  return typeSuffix3?.optional ? [
2690
2863
  t2,
@@ -2693,9 +2866,7 @@ ${js}`
2693
2866
  message: "Optional parameter not allowed in/after rest parameter"
2694
2867
  }
2695
2868
  ] : t2;
2696
- };
2697
- var optionalType = optionalType2;
2698
- let ref = makeRef("rest"), restRef = [
2869
+ }, ref = makeRef("rest"), restRef = [
2699
2870
  { children: [ref], ts: !0 },
2700
2871
  { children: [restIdentifier], js: !0 }
2701
2872
  ];
@@ -2715,10 +2886,10 @@ ${js}`
2715
2886
  children: [ref],
2716
2887
  ts: !0
2717
2888
  });
2718
- let oldSuffix = rest.typeSuffix, colon = oldSuffix.colon ?? ": ", afterTypes = after.flatMap((p) => [",", optionalType2(p.typeSuffix, " unknown")]), t = [
2889
+ let oldSuffix = rest.typeSuffix, colon = oldSuffix.colon ?? ": ", afterTypes = after.flatMap((p) => [",", optionalType(p.typeSuffix, " unknown")]), t = [
2719
2890
  "[",
2720
2891
  "...",
2721
- optionalType2(oldSuffix, "unknown[]"),
2892
+ optionalType(oldSuffix, "unknown[]"),
2722
2893
  ...afterTypes,
2723
2894
  "]"
2724
2895
  ], typeSuffix2 = makeNode({
@@ -2727,9 +2898,9 @@ ${js}`
2727
2898
  colon,
2728
2899
  t,
2729
2900
  children: [
2730
- ...oldSuffix.children.filter(($8) => (
2901
+ ...oldSuffix.children.filter(($9) => (
2731
2902
  // spaces and colon
2732
- $8 !== oldSuffix.optional && $8 !== oldSuffix.t
2903
+ $9 !== oldSuffix.optional && $9 !== oldSuffix.t
2733
2904
  )),
2734
2905
  oldSuffix.colon ? void 0 : colon,
2735
2906
  t
@@ -2751,27 +2922,28 @@ ${js}`
2751
2922
  let indent;
2752
2923
  expressions.length ? indent = expressions[0][0] : indent = "";
2753
2924
  let [splices, thisAssignments] = gatherBindingCode(parameters, {
2754
- injectParamProps: isConstructor
2925
+ injectParamProps: isConstructor,
2926
+ assignPins: !0
2755
2927
  });
2756
2928
  if (isConstructor) {
2757
- let { ancestor } = findAncestor(f, ($9) => $9.type === "ClassExpression");
2929
+ let { ancestor } = findAncestor(f, ($10) => $10.type === "ClassExpression");
2758
2930
  if (ancestor != null) {
2759
- let fields = new Set(gatherRecursiveWithinFunction(ancestor, ($10) => $10.type === "FieldDefinition").map(($11) => $11.id).filter((a3) => typeof a3 == "object" && a3 != null && "type" in a3 && a3.type === "Identifier").map(($12) => $12.name)), classExpressions = ancestor.body.expressions, index = findChildIndex(classExpressions, f);
2760
- assert.notEqual(index, -1, "Could not find constructor in class");
2931
+ let fields = new Set(gatherRecursiveWithinFunction(ancestor, ($11) => $11.type === "FieldDefinition").map(($12) => $12.id).filter((a3) => typeof a3 == "object" && a3 != null && "type" in a3 && a3.type === "Identifier").map(($13) => $13.name)), classExpressions = ancestor.body.expressions, index2 = findChildIndex(classExpressions, f);
2932
+ assert.notEqual(index2, -1, "Could not find constructor in class");
2761
2933
  let m4;
2762
- for (; m4 = classExpressions[index - 1]?.[1], typeof m4 == "object" && m4 != null && "type" in m4 && m4.type === "MethodDefinition" && "name" in m4 && m4.name === "constructor"; )
2763
- index--;
2764
- let fStatement = classExpressions[index];
2765
- for (let ref18 = gatherRecursive(parameters, ($13) => $13.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
2934
+ for (; m4 = classExpressions[index2 - 1]?.[1], typeof m4 == "object" && m4 != null && "type" in m4 && m4.type === "MethodDefinition" && "name" in m4 && m4.name === "constructor"; )
2935
+ index2--;
2936
+ let fStatement = classExpressions[index2];
2937
+ for (let ref18 = gatherRecursive(parameters, ($14) => $14.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
2766
2938
  let parameter = ref18[i9], { accessModifier } = parameter;
2767
2939
  if (accessModifier || parameter.typeSuffix)
2768
- for (let ref19 = gatherRecursive(parameter, ($14) => $14.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
2940
+ for (let ref19 = gatherRecursive(parameter, ($15) => $15.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
2769
2941
  let binding = ref19[i10], typeSuffix = binding.parent?.typeSuffix;
2770
2942
  if (!(accessModifier || typeSuffix))
2771
2943
  continue;
2772
2944
  parameter.accessModifier && (replaceNode(parameter.accessModifier, void 0), parameter.accessModifier = void 0);
2773
2945
  let id = binding.ref.id;
2774
- fields.has(id) || (classExpressions.splice(index++, 0, [fStatement[0], {
2946
+ fields.has(id) || (classExpressions.splice(index2++, 0, [fStatement[0], {
2775
2947
  type: "FieldDefinition",
2776
2948
  id,
2777
2949
  typeSuffix,
@@ -2800,22 +2972,23 @@ ${js}`
2800
2972
  // TODO: figure out how to get JS only statement tuples
2801
2973
  ...s,
2802
2974
  children: [indent, ...s.children, delimiter]
2803
- })] : [indent, s, delimiter]), !!prefix.length) {
2804
- if (isConstructor) {
2805
- let superCalls = gatherNodes(
2806
- expressions,
2807
- (a4) => typeof a4 == "object" && a4 != null && "type" in a4 && a4.type === "CallExpression" && "children" in a4 && Array.isArray(a4.children) && a4.children.length >= 1 && typeof a4.children[0] == "object" && a4.children[0] != null && "token" in a4.children[0] && a4.children[0].token === "super"
2808
- );
2809
- if (superCalls.length) {
2810
- let { child } = findAncestor(superCalls[0], (a5) => a5 === block), index = findChildIndex(expressions, child);
2811
- if (index < 0)
2812
- throw new Error("Could not find super call within top-level expressions");
2813
- expressions.splice(index + 1, 0, ...prefix);
2814
- return;
2815
- }
2816
- }
2817
- expressions.unshift(...prefix), updateParentPointers(block), braceBlock(block);
2818
- }
2975
+ })] : [indent, s, delimiter]), !prefix.length)
2976
+ return;
2977
+ let index = -1;
2978
+ isConstructor && (index = findSuperCall(block)), expressions.splice(index + 1, 0, ...prefix), updateParentPointers(block), braceBlock(block);
2979
+ }
2980
+ function findSuperCall(block) {
2981
+ let { expressions } = block, superCalls = gatherNodes(
2982
+ expressions,
2983
+ (a4) => typeof a4 == "object" && a4 != null && "type" in a4 && a4.type === "CallExpression" && "children" in a4 && Array.isArray(a4.children) && a4.children.length >= 1 && typeof a4.children[0] == "object" && a4.children[0] != null && "token" in a4.children[0] && a4.children[0].token === "super"
2984
+ );
2985
+ if (superCalls.length) {
2986
+ let { child } = findAncestor(superCalls[0], (a5) => a5 === block), index = findChildIndex(expressions, child);
2987
+ if (index < 0)
2988
+ throw new Error("Could not find super call within top-level expressions");
2989
+ return index;
2990
+ } else
2991
+ return -1;
2819
2992
  }
2820
2993
  function processSignature(f) {
2821
2994
  let { block, signature } = f;
@@ -2823,7 +2996,7 @@ ${js}`
2823
2996
  if (f.async != null)
2824
2997
  f.async.push("async "), signature.modifier.async = !0;
2825
2998
  else
2826
- for (let ref21 = gatherRecursiveWithinFunction(block, ($15) => $15.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
2999
+ for (let ref21 = gatherRecursiveWithinFunction(block, ($16) => $16.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
2827
3000
  let a = ref21[i12], i = findChildIndex(a.parent, a);
2828
3001
  a.parent.children.splice(i + 1, 0, {
2829
3002
  type: "Error",
@@ -2834,8 +3007,8 @@ ${js}`
2834
3007
  if (f.generator != null)
2835
3008
  f.generator.push("*"), signature.modifier.generator = !0;
2836
3009
  else
2837
- for (let ref22 = gatherRecursiveWithinFunction(block, ($16) => $16.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
2838
- let y = ref22[i13], i = y.children.findIndex(($17) => $17.type === "Yield");
3010
+ for (let ref22 = gatherRecursiveWithinFunction(block, ($17) => $17.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3011
+ let y = ref22[i13], i = y.children.findIndex(($18) => $18.type === "Yield");
2839
3012
  y.children.splice(i + 1, 0, {
2840
3013
  type: "Error",
2841
3014
  message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
@@ -2844,7 +3017,7 @@ ${js}`
2844
3017
  signature.modifier.async && !signature.modifier.generator && signature.returnType && !isPromiseType(signature.returnType.t) && replaceNode(signature.returnType.t, wrapTypeInPromise(signature.returnType.t));
2845
3018
  }
2846
3019
  function processFunctions(statements, config2) {
2847
- for (let ref23 = gatherRecursiveAll(statements, ($18) => $18.type === "FunctionExpression" || $18.type === "ArrowFunction" || $18.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3020
+ for (let ref23 = gatherRecursiveAll(statements, ($19) => $19.type === "FunctionExpression" || $19.type === "ArrowFunction" || $19.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
2848
3021
  let f = ref23[i14];
2849
3022
  (f.type === "FunctionExpression" || f.type === "MethodDefinition") && implicitFunctionBlock(f), processSignature(f), processParams(f), processReturn(f, config2.implicitReturns);
2850
3023
  }
@@ -2859,10 +3032,7 @@ ${js}`
2859
3032
  }
2860
3033
  let statements;
2861
3034
  if (generator)
2862
- statement.reduction && children.unshift({
2863
- type: "Error",
2864
- message: `Cannot use reduction (${statement.reduction.subtype}) with generators`
2865
- }), iterationDefaultBody(statement), assignResults(block, (node) => ({
3035
+ iterationDefaultBody(statement), assignResults(block, (node) => ({
2866
3036
  type: "YieldExpression",
2867
3037
  expression: node,
2868
3038
  children: [
@@ -2894,7 +3064,7 @@ ${js}`
2894
3064
  done || (generator || (statements[statements.length - 1][1] = wrapWithReturn(statements[statements.length - 1][1])), children.splice(i, 1, wrapIIFE(statements, async, generator)), updateParentPointers(exp));
2895
3065
  }
2896
3066
  function processIterationExpressions(statements) {
2897
- for (let ref25 = gatherRecursiveAll(statements, ($19) => $19.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
3067
+ for (let ref25 = gatherRecursiveAll(statements, ($20) => $20.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
2898
3068
  let s = ref25[i15];
2899
3069
  expressionizeIteration(s);
2900
3070
  }
@@ -2932,12 +3102,12 @@ ${js}`
2932
3102
  let newParameterList = results1, newParameters = {
2933
3103
  ...parameters,
2934
3104
  parameters: newParameterList,
2935
- children: parameters.children.map(($20) => $20 === parameterList ? newParameterList : $20)
3105
+ children: parameters.children.map(($21) => $21 === parameterList ? newParameterList : $21)
2936
3106
  };
2937
3107
  expression = {
2938
3108
  ...expression,
2939
3109
  parameters: newParameters,
2940
- children: expression.children.map(($21) => $21 === parameters ? newParameters : $21)
3110
+ children: expression.children.map(($22) => $22 === parameters ? newParameters : $22)
2941
3111
  };
2942
3112
  }
2943
3113
  return {
@@ -2955,7 +3125,7 @@ ${js}`
2955
3125
  }
2956
3126
  function makeAmpersandFunction(rhs) {
2957
3127
  let { ref, typeSuffix, body } = rhs;
2958
- ref == null && (ref = makeRef("$"), inplacePrepend(ref, body)), startsWithPredicate(body, ($22) => $22.type === "ObjectExpression") && (body = makeLeftHandSideExpression(body));
3128
+ ref == null && (ref = makeRef("$"), inplacePrepend(ref, body)), startsWithPredicate(body, ($23) => $23.type === "ObjectExpression") && (body = makeLeftHandSideExpression(body));
2959
3129
  let parameterList = [
2960
3130
  typeSuffix ? [ref, typeSuffix] : ref
2961
3131
  ], parameters = makeNode({
@@ -2990,7 +3160,7 @@ ${js}`
2990
3160
  ).length > 1 && (fn.ampersandBlock = !1), fn;
2991
3161
  }
2992
3162
 
2993
- // source/parser/block.civet
3163
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\block.civet.jsx
2994
3164
  function blockWithPrefix(prefixStatements, block) {
2995
3165
  if (prefixStatements && prefixStatements.length) {
2996
3166
  let expressions = [...prefixStatements, ...block.expressions];
@@ -3137,7 +3307,7 @@ ${js}`
3137
3307
  };
3138
3308
  }
3139
3309
 
3140
- // source/parser/op.civet
3310
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\op.civet.jsx
3141
3311
  var precedenceOrder = [
3142
3312
  ["||", "??"],
3143
3313
  ["^^"],
@@ -3188,7 +3358,7 @@ ${js}`
3188
3358
  for (; i < expandedOps.length; ) {
3189
3359
  let op = expandedOps[i];
3190
3360
  if (op.special) {
3191
- let advanceLeft2 = function(allowEqual) {
3361
+ let advanceLeft = function(allowEqual) {
3192
3362
  for (; start >= 4; ) {
3193
3363
  let prevPrec = getPrecedence(expandedOps[start - 2]);
3194
3364
  if (!(prevPrec > prec || allowEqual && prevPrec === prec))
@@ -3196,7 +3366,7 @@ ${js}`
3196
3366
  start -= 4;
3197
3367
  }
3198
3368
  return !1;
3199
- }, advanceRight2 = function(allowEqual) {
3369
+ }, advanceRight = function(allowEqual) {
3200
3370
  for (; end + 4 < expandedOps.length; ) {
3201
3371
  let nextPrec = getPrecedence(expandedOps[end + 2]);
3202
3372
  if (!(nextPrec > prec || allowEqual && nextPrec === prec))
@@ -3204,31 +3374,29 @@ ${js}`
3204
3374
  end += 4;
3205
3375
  }
3206
3376
  return !1;
3207
- };
3208
- var advanceLeft = advanceLeft2, advanceRight = advanceRight2;
3209
- let start = i - 2, end = i + 2, prec = getPrecedence(op), error;
3377
+ }, start = i - 2, end = i + 2, prec = getPrecedence(op), error;
3210
3378
  switch (op.assoc) {
3211
3379
  case "left":
3212
3380
  case void 0: {
3213
- advanceLeft2(!0), advanceRight2(!1);
3381
+ advanceLeft(!0), advanceRight(!1);
3214
3382
  break;
3215
3383
  }
3216
3384
  case "right": {
3217
- advanceLeft2(!1), advanceRight2(!0);
3385
+ advanceLeft(!1), advanceRight(!0);
3218
3386
  break;
3219
3387
  }
3220
3388
  case "non": {
3221
- (advanceLeft2(!1) || advanceRight2(!1)) && (error = {
3389
+ (advanceLeft(!1) || advanceRight(!1)) && (error = {
3222
3390
  type: "Error",
3223
3391
  message: `non-associative operator ${op.token} used at same precedence level without parenthesization`
3224
3392
  });
3225
3393
  break;
3226
3394
  }
3227
3395
  case "arguments": {
3228
- advanceLeft2(!1) && (error = {
3396
+ advanceLeft(!1) && (error = {
3229
3397
  type: "Error",
3230
3398
  message: `arguments operator ${op.token} used at same precedence level as ${expandedOps[start - 2].token} to the left`
3231
- }), advanceRight2(!0);
3399
+ }), advanceRight(!0);
3232
3400
  break;
3233
3401
  }
3234
3402
  default:
@@ -3333,7 +3501,7 @@ ${js}`
3333
3501
  }
3334
3502
  }
3335
3503
 
3336
- // source/parser/pattern-matching.civet
3504
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\pattern-matching.civet.jsx
3337
3505
  function processPatternTest(lhs, patterns) {
3338
3506
  let { ref, refAssignmentComma } = maybeRefAssignment(lhs, "m"), conditionExpression = flatJoin(patterns.map(($1) => getPatternConditions($1, ref)).map(($2) => flatJoin($2, " && ")), " || ");
3339
3507
  return makeLeftHandSideExpression(makeNode({
@@ -3528,29 +3696,34 @@ ${js}`
3528
3696
  case "ConditionFragment":
3529
3697
  return;
3530
3698
  }
3531
- let [splices, thisAssignments] = gatherBindingCode(pattern), patternBindings2 = nonMatcherBindings(pattern);
3532
- splices = splices.map((s) => [", ", nonMatcherBindings(s)]), thisAssignments = thisAssignments.map(($7) => ["", $7, ";"]);
3699
+ let [splices, thisAssignments] = gatherBindingCode(pattern), patternBindings2 = nonMatcherBindings(pattern), results = [];
3700
+ for (let ref2 = gatherRecursiveAll(patternBindings2, ($7) => $7.subbinding != null), i5 = 0, len4 = ref2.length; i5 < len4; i5++) {
3701
+ let p = ref2[i5];
3702
+ results.push(prepend(", ", p.subbinding));
3703
+ }
3704
+ let subbindings = results;
3705
+ splices = splices.map((s) => [", ", nonMatcherBindings(s)]), thisAssignments = thisAssignments.map(($8) => ["", $8, ";"]);
3533
3706
  let duplicateDeclarations = aggregateDuplicateBindings([patternBindings2, splices]);
3534
3707
  return [
3535
3708
  ["", {
3536
3709
  type: "Declaration",
3537
- children: [decl, patternBindings2, typeSuffix, " = ", ref, ...splices],
3710
+ children: [decl, patternBindings2, typeSuffix, " = ", ref, ...subbindings, ...splices],
3538
3711
  names: [],
3539
3712
  bindings: []
3540
3713
  // avoid implicit return of any bindings
3541
3714
  }, ";"],
3542
3715
  ...thisAssignments,
3543
- ...duplicateDeclarations.map(($8) => ["", $8, ";"])
3716
+ ...duplicateDeclarations.map(($9) => ["", $9, ";"])
3544
3717
  ];
3545
3718
  }
3546
3719
  function elideMatchersFromArrayBindings(elements) {
3547
- let results = [];
3548
- for (let i5 = 0, len4 = elements.length; i5 < len4; i5++) {
3549
- let element = elements[i5];
3720
+ let results1 = [];
3721
+ for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
3722
+ let element = elements[i6];
3550
3723
  switch (element.type) {
3551
3724
  case "BindingRestElement":
3552
3725
  case "ElisionElement": {
3553
- results.push(element);
3726
+ results1.push(element);
3554
3727
  break;
3555
3728
  }
3556
3729
  case "BindingElement": {
@@ -3559,12 +3732,12 @@ ${js}`
3559
3732
  case "RegularExpressionLiteral":
3560
3733
  case "StringLiteral":
3561
3734
  case "PinPattern": {
3562
- results.push(element.delim);
3735
+ results1.push(element.delim);
3563
3736
  break;
3564
3737
  }
3565
3738
  default: {
3566
3739
  let binding = nonMatcherBindings(element.binding);
3567
- results.push(makeNode({
3740
+ results1.push(makeNode({
3568
3741
  ...element,
3569
3742
  binding,
3570
3743
  children: element.children.map((c) => c === element.binding ? binding : c)
@@ -3575,42 +3748,67 @@ ${js}`
3575
3748
  }
3576
3749
  }
3577
3750
  }
3578
- return results;
3751
+ return results1;
3579
3752
  }
3580
3753
  function elideMatchersFromPropertyBindings(properties) {
3581
- return properties.map((p) => {
3754
+ let results2 = [];
3755
+ for (let i7 = 0, len6 = properties.length; i7 < len6; i7++) {
3756
+ let p = properties[i7];
3582
3757
  switch (p.type) {
3583
- case "BindingProperty": {
3584
- let { children, name, value } = p, [ws] = children;
3758
+ case "BindingProperty":
3759
+ case "PinProperty": {
3760
+ let { children, name, value, bind } = p, [ws] = children;
3585
3761
  if (name.type === "NumericLiteral" && !value?.name || name.type === "ComputedPropertyName" && value?.subtype === "NumericLiteral")
3586
- return;
3587
- switch (value && value.type) {
3588
- case "ArrayBindingPattern":
3589
- case "ObjectBindingPattern": {
3590
- let bindings = nonMatcherBindings(value);
3591
- return {
3592
- ...p,
3593
- children: [ws, name, bindings && ": ", bindings, p.delim]
3594
- };
3762
+ if (bind)
3763
+ results2.push({
3764
+ type: "Error",
3765
+ message: `Cannot bind ${name.type}`
3766
+ });
3767
+ else
3768
+ continue;
3769
+ else {
3770
+ let contents;
3771
+ switch (value?.type) {
3772
+ case "ArrayBindingPattern":
3773
+ case "ObjectBindingPattern": {
3774
+ let bindings = nonMatcherBindings(value);
3775
+ contents = {
3776
+ ...p,
3777
+ value: bindings,
3778
+ children: [ws, name, bindings && ": ", bindings, p.delim]
3779
+ };
3780
+ break;
3781
+ }
3782
+ case "Identifier":
3783
+ case void 0: {
3784
+ contents = p;
3785
+ break;
3786
+ }
3787
+ default:
3788
+ contents = void 0;
3595
3789
  }
3596
- case "Identifier":
3597
- return p;
3598
- case "Literal":
3599
- case "RegularExpressionLiteral":
3600
- case "StringLiteral":
3601
- default:
3602
- return {
3790
+ if (bind)
3791
+ results2.push({
3603
3792
  ...p,
3604
- children: [ws, name, p.delim]
3605
- };
3793
+ children: [ws, name, p.delim],
3794
+ subbinding: contents?.value ? [
3795
+ contents.value,
3796
+ " = ",
3797
+ name
3798
+ ] : void 0
3799
+ });
3800
+ else if (contents)
3801
+ results2.push(contents);
3802
+ else
3803
+ continue;
3606
3804
  }
3805
+ break;
3607
3806
  }
3608
- case "PinProperty":
3609
- case "BindingRestProperty":
3610
3807
  default:
3611
- return p;
3808
+ results2.push(p);
3612
3809
  }
3613
- });
3810
+ }
3811
+ return results2;
3614
3812
  }
3615
3813
  function nonMatcherBindings(pattern) {
3616
3814
  switch (pattern.type) {
@@ -3620,7 +3818,7 @@ ${js}`
3620
3818
  return makeNode({
3621
3819
  ...pattern,
3622
3820
  elements,
3623
- children: pattern.children.map(($9) => $9 === pattern.elements ? elements : $9)
3821
+ children: pattern.children.map(($10) => $10 === pattern.elements ? elements : $10)
3624
3822
  });
3625
3823
  }
3626
3824
  case "ObjectBindingPattern": {
@@ -3628,7 +3826,7 @@ ${js}`
3628
3826
  return makeNode({
3629
3827
  ...pattern,
3630
3828
  properties,
3631
- children: pattern.children.map(($10) => $10 === pattern.properties ? properties : $10)
3829
+ children: pattern.children.map(($11) => $11 === pattern.properties ? properties : $11)
3632
3830
  });
3633
3831
  }
3634
3832
  default:
@@ -3643,8 +3841,8 @@ ${js}`
3643
3841
  //$.type is "BindingRestProperty"
3644
3842
  $.type === "Identifier" && $.parent?.type === "BindingElement" || $.type === "BindingRestElement"
3645
3843
  ), declarations = [], propsGroupedByName = /* @__PURE__ */ new Map();
3646
- for (let i6 = 0, len5 = props.length; i6 < len5; i6++) {
3647
- let p = props[i6], { name, value } = p, m1;
3844
+ for (let i8 = 0, len7 = props.length; i8 < len7; i8++) {
3845
+ let p = props[i8], { name, value } = p, m1;
3648
3846
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern")
3649
3847
  continue;
3650
3848
  let key = value?.name || name?.name || name;
@@ -3658,8 +3856,8 @@ ${js}`
3658
3856
  pos: 0,
3659
3857
  input: key
3660
3858
  })) {
3661
- for (let i7 = 0, len6 = shared.length; i7 < len6; i7++) {
3662
- let p = shared[i7];
3859
+ for (let i9 = 0, len8 = shared.length; i9 < len8; i9++) {
3860
+ let p = shared[i9];
3663
3861
  aliasBinding(p, makeRef(`_${key}`, key));
3664
3862
  }
3665
3863
  return;
@@ -3698,7 +3896,7 @@ ${js}`
3698
3896
  }
3699
3897
  }
3700
3898
 
3701
- // source/parser/declaration.civet
3899
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\declaration.civet.jsx
3702
3900
  function len2(arr, length) {
3703
3901
  return arr.length === length;
3704
3902
  }
@@ -3740,18 +3938,41 @@ ${js}`
3740
3938
  function processDeclarations(statements) {
3741
3939
  for (let ref1 = gatherRecursiveAll(statements, ($) => $.type === "Declaration"), i1 = 0, len1 = ref1.length; i1 < len1; i1++) {
3742
3940
  let declaration = ref1[i1], { bindings } = declaration;
3743
- bindings?.forEach((binding) => {
3744
- let { typeSuffix } = binding;
3745
- typeSuffix && typeSuffix.optional && typeSuffix.t && convertOptionalType(typeSuffix);
3746
- let { initializer } = binding;
3747
- if (initializer)
3748
- return prependStatementExpressionBlock(initializer, declaration);
3749
- });
3941
+ if (bindings != null)
3942
+ for (let i2 = 0, len22 = bindings.length; i2 < len22; i2++) {
3943
+ let binding = bindings[i2], { typeSuffix, initializer } = binding;
3944
+ if (typeSuffix && typeSuffix.optional) {
3945
+ if (initializer && !typeSuffix.t) {
3946
+ let expression = trimFirstSpace(initializer.expression), m;
3947
+ if (m = expression.type, m === "Identifier" || m === "MemberExpression")
3948
+ typeSuffix.children.push(": ", typeSuffix.t = {
3949
+ type: "TypeTypeof",
3950
+ children: ["typeof ", expression],
3951
+ expression
3952
+ });
3953
+ else if (expression.type === "Literal" || expression.type === "RegularExpressionLiteral" || expression.type === "TemplateLiteral")
3954
+ typeSuffix.children.push(": ", typeSuffix.t = literalType(expression));
3955
+ else {
3956
+ spliceChild(binding, typeSuffix, 1, {
3957
+ type: "Error",
3958
+ message: `Optional type can only be inferred from literals or member expressions, not ${expression.type}`
3959
+ });
3960
+ continue;
3961
+ }
3962
+ }
3963
+ typeSuffix.t ? convertOptionalType(typeSuffix) : (spliceChild(binding, typeSuffix, 1), binding.children.push(initializer = binding.initializer = {
3964
+ type: "Initializer",
3965
+ expression: "undefined",
3966
+ children: [" = ", "undefined"]
3967
+ }));
3968
+ }
3969
+ initializer && prependStatementExpressionBlock(initializer, declaration);
3970
+ }
3750
3971
  }
3751
3972
  }
3752
3973
  function prependStatementExpressionBlock(initializer, statement) {
3753
3974
  let { expression: exp } = initializer, ws;
3754
- if (Array.isArray(exp) && (ws = exp[0], exp = exp[1]), exp?.type !== "StatementExpression")
3975
+ if (Array.isArray(exp) && (ws = exp[0], exp = exp[1]), !(typeof exp == "object" && exp != null && "type" in exp && exp.type === "StatementExpression" || typeof exp == "object" && exp != null && "type" in exp && exp.type === "SpreadElement" && "expression" in exp && typeof exp.expression == "object" && exp.expression != null && "type" in exp.expression && exp.expression.type === "StatementExpression"))
3755
3976
  return;
3756
3977
  let pre = [], statementExp = exp.statement, blockStatement = ["", statementExp], ref;
3757
3978
  if (statementExp.type === "IterationExpression") {
@@ -3863,14 +4084,14 @@ ${js}`
3863
4084
  if (conditions.length) {
3864
4085
  let children = condition.children;
3865
4086
  if (s.negated) {
3866
- let m;
3867
- if (m = condition.expression, !(typeof m == "object" && m != null && "type" in m && m.type === "UnaryExpression" && "children" in m && Array.isArray(m.children) && len2(m.children, 2) && Array.isArray(m.children[0]) && len2(m.children[0], 1) && m.children[0][0] === "!" && typeof m.children[1] == "object" && m.children[1] != null && "type" in m.children[1] && m.children[1].type === "ParenthesizedExpression"))
4087
+ let m1;
4088
+ if (m1 = condition.expression, !(typeof m1 == "object" && m1 != null && "type" in m1 && m1.type === "UnaryExpression" && "children" in m1 && Array.isArray(m1.children) && len2(m1.children, 2) && Array.isArray(m1.children[0]) && len2(m1.children[0], 1) && m1.children[0][0] === "!" && typeof m1.children[1] == "object" && m1.children[1] != null && "type" in m1.children[1] && m1.children[1].type === "ParenthesizedExpression"))
3868
4089
  throw new Error("Unsupported negated condition");
3869
4090
  ({ children } = condition.expression.children[1]);
3870
4091
  }
3871
4092
  children.unshift("(");
3872
- for (let i2 = 0, len22 = conditions.length; i2 < len22; i2++) {
3873
- let c = conditions[i2];
4093
+ for (let i3 = 0, len3 = conditions.length; i3 < len3; i3++) {
4094
+ let c = conditions[i3];
3874
4095
  children.push(" && ", c);
3875
4096
  }
3876
4097
  children.push(")");
@@ -4067,7 +4288,7 @@ ${js}`
4067
4288
  return [extendsToken, insertTrimmingSpace(ws, " "), wrapped];
4068
4289
  }
4069
4290
 
4070
- // source/parser/unary.civet
4291
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\unary.civet.jsx
4071
4292
  function processUnaryExpression(pre, exp, post) {
4072
4293
  if (!(pre.length || post))
4073
4294
  return exp;
@@ -4178,7 +4399,7 @@ ${js}`
4178
4399
  return processUnaryExpression(pre, args, post);
4179
4400
  }
4180
4401
 
4181
- // source/parser/pipe.civet
4402
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\pipe.civet.jsx
4182
4403
  function constructInvocation(fn, arg) {
4183
4404
  let expr = fn.expr;
4184
4405
  for (; expr.type === "ParenthesizedExpression"; )
@@ -4340,7 +4561,7 @@ ${js}`
4340
4561
  });
4341
4562
  }
4342
4563
 
4343
- // source/parser/for.civet
4564
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\for.civet.jsx
4344
4565
  function processRangeExpression(start, ws1, range, end) {
4345
4566
  ws1 = [ws1, range.children[0]];
4346
4567
  let ws2 = range.children[1], comma = { $loc: range.$loc, token: "," }, ref;
@@ -4356,9 +4577,7 @@ ${js}`
4356
4577
  default:
4357
4578
  ref = Math.abs;
4358
4579
  }
4359
- let abs = ref, lengthAdjust = 1 - +!range.left.inclusive - +!range.right.inclusive, ref1;
4360
- lengthAdjust > 0 ? ref1 = ` + ${lengthAdjust}` : lengthAdjust < 0 ? ref1 = ` - ${-lengthAdjust}` : ref1 = void 0;
4361
- let lengthAdjustExpression = ref1, children;
4580
+ let abs = ref, lengthAdjust = 1 - +!range.left.inclusive - +!range.right.inclusive, children;
4362
4581
  if (typeof start == "object" && start != null && "type" in start && start.type === "Literal" && typeof end == "object" && end != null && "type" in end && end.type === "Literal") {
4363
4582
  let startValue = literalValue(start), endValue = literalValue(end);
4364
4583
  if (typeof startValue == "string" && typeof endValue == "string") {
@@ -4370,11 +4589,12 @@ ${js}`
4370
4589
  Array.from({ length }, (_2, i) => JSON.stringify(String.fromCharCode(startCode + i * step))).join(", "),
4371
4590
  "]"
4372
4591
  ] : children = [
4373
- `Array.from({length: ${length.toString()}}, `,
4374
- "(_, i) => String.fromCharCode(",
4592
+ getHelperRef(startCode <= endCode ? "stringRange" : "revStringRange"),
4593
+ "(",
4375
4594
  startCode.toString(),
4376
- step > 0 ? " + " : " - ",
4377
- "i))"
4595
+ ", ",
4596
+ length.toString(),
4597
+ ")"
4378
4598
  ], range.error != null && children.unshift(range.error);
4379
4599
  } else if (typeof startValue == "number" && typeof endValue == "number") {
4380
4600
  let step = startValue <= endValue ? 1 : -1, length = abs(endValue - startValue) + lengthAdjust;
@@ -4389,22 +4609,25 @@ ${js}`
4389
4609
  if (range.increasing != null) {
4390
4610
  let sign = range.increasing ? "+" : "-";
4391
4611
  end = makeLeftHandSideExpression(end), children = [
4392
- "((s) => Array.from({length: ",
4393
- range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
4394
- lengthAdjustExpression,
4395
- "}, (_, i) => s ",
4396
- sign,
4397
- " i))",
4612
+ getHelperRef(range.increasing ? "range" : "revRange"),
4398
4613
  "(",
4399
4614
  range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
4615
+ ",",
4616
+ range.right.inclusive ? [makeLeftHandSideExpression(end), ` ${sign} 1`] : end,
4400
4617
  ...ws1,
4401
4618
  ")"
4402
4619
  ];
4403
4620
  } else
4404
4621
  children = [
4405
- "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
4406
- lengthAdjustExpression,
4407
- "}, (_, i) => s + i * step)})",
4622
+ "((s, e) => s > e ? ",
4623
+ getHelperRef("revRange"),
4624
+ "(s, e",
4625
+ range.right.inclusive ? " - 1" : void 0,
4626
+ ") : ",
4627
+ getHelperRef("range"),
4628
+ "(s, e",
4629
+ range.right.inclusive ? " + 1" : void 0,
4630
+ "))",
4408
4631
  "(",
4409
4632
  start,
4410
4633
  ...ws1,
@@ -4427,24 +4650,24 @@ ${js}`
4427
4650
  function forRange(open, forDeclaration, range, stepExp, close) {
4428
4651
  let { start, end, left, right, increasing } = range, counterRef = makeRef("i"), infinite = typeof end == "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity", stepRef, asc;
4429
4652
  stepExp ? (stepExp = trimFirstSpace(stepExp), stepRef = maybeRef(stepExp, "step")) : infinite ? stepExp = stepRef = makeNumericLiteral(1) : increasing != null && (increasing ? (stepExp = stepRef = makeNumericLiteral(1), asc = !0) : (stepExp = stepRef = makeNumericLiteral(-1), asc = !1));
4430
- let ref2;
4653
+ let ref1;
4431
4654
  if (stepExp?.type === "Literal")
4432
4655
  try {
4433
- ref2 = literalValue(stepExp);
4656
+ ref1 = literalValue(stepExp);
4434
4657
  } catch {
4435
- ref2 = void 0;
4658
+ ref1 = void 0;
4436
4659
  }
4437
4660
  else
4438
- ref2 = void 0;
4439
- let stepValue = ref2;
4661
+ ref1 = void 0;
4662
+ let stepValue = ref1;
4440
4663
  typeof stepValue == "number" && (asc = stepValue > 0);
4441
- let ref3;
4442
- stepRef ? ref3 = start : ref3 = maybeRef(start, "start");
4443
- let startRef = ref3, endRef = maybeRef(end, "end"), startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [], endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [], ascDec = [], ascRef;
4664
+ let ref2;
4665
+ stepRef ? ref2 = start : ref2 = maybeRef(start, "start");
4666
+ let startRef = ref2, endRef = maybeRef(end, "end"), startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [], endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [], ascDec = [], ascRef;
4444
4667
  if (stepExp && stepRef !== stepExp && (ascDec = [", ", stepRef, " = ", stepExp]), start?.type === "Literal" && end?.type === "Literal") {
4445
4668
  asc = literalValue(start) <= literalValue(end);
4446
- let ref4;
4447
- if ((ref4 = start.subtype) === "StringLiteral" && ref4 === end.subtype) {
4669
+ let ref3;
4670
+ if ((ref3 = start.subtype) === "StringLiteral" && ref3 === end.subtype) {
4448
4671
  let startChar = literalValue(start).charCodeAt(0).toString();
4449
4672
  startRef = {
4450
4673
  type: "Literal",
@@ -4487,8 +4710,8 @@ ${js}`
4487
4710
  }
4488
4711
  function processForInOf($0) {
4489
4712
  let [awaits, eachOwn, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
4490
- for (let ref5 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref5.length; i1 < len3; i1++) {
4491
- let decl = ref5[i1];
4713
+ for (let ref4 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref4.length; i1 < len3; i1++) {
4714
+ let decl = ref4[i1];
4492
4715
  decl != null && decl.type !== "ForDeclaration" && checkValidLHS(decl);
4493
4716
  }
4494
4717
  if (startsWith(exp, /^\s/) || (exp = prepend(" ", exp)), exp.type === "RangeExpression" && inOf.token === "of" && !declaration2)
@@ -4516,16 +4739,18 @@ ${js}`
4516
4739
  ], ";"]), assignmentNames.push(...decl22.names);
4517
4740
  }
4518
4741
  let expRefDec = expRef2 !== exp ? [trimFirstSpace(expRef2), " = ", trimFirstSpace(exp), ", "] : [];
4519
- return blockPrefix.push(["", {
4742
+ blockPrefix.push(["", {
4520
4743
  type: "Declaration",
4521
4744
  children: [declaration, " = ", trimFirstSpace(expRef2), "[", counterRef, "]"],
4522
4745
  names: assignmentNames,
4523
4746
  implicitLift: !0
4524
- }, ";"]), declaration = {
4747
+ }, ";"]);
4748
+ let eachDeclaration = declaration;
4749
+ return declaration = {
4525
4750
  type: "Declaration",
4526
4751
  children: ["let ", ...expRefDec, counterRef, " = 0, ", lenRef, " = ", trimFirstSpace(expRef2), ".length"],
4527
4752
  names: []
4528
- }, { declaration, children: [open, declaration, "; ", [counterRef, " < ", lenRef, "; "], counterRef, increment, close], blockPrefix };
4753
+ }, { declaration, eachDeclaration, children: [open, declaration, "; ", [counterRef, " < ", lenRef, "; "], counterRef, increment, close], blockPrefix };
4529
4754
  } else
4530
4755
  eachOwnError = {
4531
4756
  type: "Error",
@@ -4618,7 +4843,7 @@ ${js}`
4618
4843
  };
4619
4844
  }
4620
4845
 
4621
- // source/parser/auto-dec.civet
4846
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\auto-dec.civet.jsx
4622
4847
  var concatAssign2 = (lhs, rhs) => (rhs?.[Symbol.isConcatSpreadable] ?? Array.isArray(rhs) ? lhs.push.apply(lhs, rhs) : lhs.push(rhs), lhs);
4623
4848
  function findDecs(statements) {
4624
4849
  let declarationNames = gatherNodes(statements, ($) => $.type === "Declaration").flatMap((d) => d.names), globals = getConfig().globals || [];
@@ -4681,9 +4906,7 @@ ${js}`
4681
4906
  findAssignments(assignmentStatements2.map((s) => s.children), decs2)
4682
4907
  ), assignmentStatements2;
4683
4908
  }
4684
- pushVar || (pushVar = function(name) {
4685
- return varIds.push(name), decs.add(name);
4686
- });
4909
+ pushVar ??= (name) => (varIds.push(name), decs.add(name));
4687
4910
  let { expressions: statements } = block, decs = findDecs(statements);
4688
4911
  scopes.push(decs);
4689
4912
  let varIds = [];
@@ -4702,7 +4925,7 @@ ${js}`
4702
4925
  scopes.pop();
4703
4926
  }
4704
4927
 
4705
- // source/parser/string.civet
4928
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\string.civet.jsx
4706
4929
  function getIndentLevel(str, tab) {
4707
4930
  if (tab != null && tab != 1) {
4708
4931
  let tabs = str.match(/\t/g), numTabs = tabs ? tabs.length : 0;
@@ -4812,7 +5035,7 @@ ${js}`
4812
5035
  return JSON.stringify(str);
4813
5036
  }
4814
5037
 
4815
- // source/parser/lib.civet
5038
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\lib.civet.jsx
4816
5039
  var xor = (a, b) => a ? !b && a : b;
4817
5040
  function addPostfixStatement(statement, ws, post) {
4818
5041
  let expressions = [
@@ -5430,16 +5653,14 @@ ${js}`
5430
5653
  }
5431
5654
  function processAssignments(statements) {
5432
5655
  for (let ref7 = gatherRecursiveAll(statements, ($4) => $4.type === "AssignmentExpression" || $4.type === "UpdateExpression"), i5 = 0, len3 = ref7.length; i5 < len3; i5++) {
5433
- let extractAssignment2 = function(lhs) {
5656
+ let extractAssignment = function(lhs) {
5434
5657
  let expr = lhs;
5435
5658
  for (; expr.type === "ParenthesizedExpression"; )
5436
5659
  expr = expr.expression;
5437
5660
  let m1;
5438
5661
  if (m1 = expr.type, m1 === "AssignmentExpression" || m1 === "UpdateExpression")
5439
5662
  return expr.type === "UpdateExpression" && expr.children[0] === expr.assigned ? (pre.push("("), post.push([", ", lhs, ")"])) : (pre.push(["(", lhs, ", "]), post.push(")")), expr.assigned;
5440
- };
5441
- var extractAssignment = extractAssignment2;
5442
- let exp = ref7[i5];
5663
+ }, exp = ref7[i5];
5443
5664
  checkValidLHS(exp.assigned);
5444
5665
  let pre = [], post = [], ref8;
5445
5666
  switch (exp.type) {
@@ -5448,7 +5669,7 @@ ${js}`
5448
5669
  continue;
5449
5670
  for (let ref9 = exp.lhs, i6 = 0, len4 = ref9.length; i6 < len4; i6++) {
5450
5671
  let lhsPart = ref9[i6], ref10;
5451
- if (ref10 = extractAssignment2(lhsPart[1])) {
5672
+ if (ref10 = extractAssignment(lhsPart[1])) {
5452
5673
  let newLhs = ref10;
5453
5674
  lhsPart[1] = newLhs;
5454
5675
  }
@@ -5456,7 +5677,7 @@ ${js}`
5456
5677
  break;
5457
5678
  }
5458
5679
  case "UpdateExpression": {
5459
- if (ref8 = extractAssignment2(exp.assigned)) {
5680
+ if (ref8 = extractAssignment(exp.assigned)) {
5460
5681
  let newLhs = ref8, i = exp.children.indexOf(exp.assigned);
5461
5682
  exp.assigned = exp.children[i] = newLhs;
5462
5683
  }
@@ -5477,7 +5698,7 @@ ${js}`
5477
5698
  if (exp.names !== null)
5478
5699
  continue;
5479
5700
  let { lhs: $1, expression: $2 } = exp, tail = [], len3 = $1.length, block, ref12;
5480
- if (exp.parent?.type === "BlockStatement" && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
5701
+ if (blockContainingStatement(exp) && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
5481
5702
  block = makeBlockFragment();
5482
5703
  let ref13;
5483
5704
  if (ref13 = prependStatementExpressionBlock(
@@ -5834,40 +6055,113 @@ ${js}`
5834
6055
  label.children.push(label.name = parent.label.name), delete label.special;
5835
6056
  }
5836
6057
  }
6058
+ function processCoffeeClasses(statements) {
6059
+ for (let ref21 = gatherRecursiveAll(statements, ($13) => $13.type === "ClassExpression"), i11 = 0, len9 = ref21.length; i11 < len9; i11++) {
6060
+ let ce = ref21[i11], { expressions } = ce.body, indent = expressions[0]?.[0] ?? `
6061
+ `, autoBinds = expressions.filter(($14) => $14[1]?.autoBind);
6062
+ if (autoBinds.length) {
6063
+ let construct;
6064
+ for (let [, c] of expressions)
6065
+ if (typeof c == "object" && c != null && "type" in c && c.type === "MethodDefinition" && "name" in c && c.name === "constructor" && c.block) {
6066
+ construct = c;
6067
+ break;
6068
+ }
6069
+ if (!construct) {
6070
+ let parametersList = [], parameters = {
6071
+ type: "Parameters",
6072
+ children: [parametersList],
6073
+ parameters: parametersList,
6074
+ names: []
6075
+ }, signature = {
6076
+ type: "MethodSignature",
6077
+ children: ["constructor(", parameters, ")"],
6078
+ parameters,
6079
+ modifier: {},
6080
+ returnType: void 0
6081
+ }, block = makeEmptyBlock();
6082
+ construct = {
6083
+ ...signature,
6084
+ type: "MethodDefinition",
6085
+ name: "constructor",
6086
+ block,
6087
+ signature,
6088
+ children: [...signature.children, block]
6089
+ }, expressions.unshift([indent, construct]);
6090
+ }
6091
+ let index = findSuperCall(construct.block);
6092
+ construct.block.expressions.splice(
6093
+ index + 1,
6094
+ 0,
6095
+ ...(() => {
6096
+ let results3 = [];
6097
+ for (let i12 = 0, len10 = autoBinds.length; i12 < len10; i12++) {
6098
+ let [, a] = autoBinds[i12];
6099
+ results3.push([indent, ["this.", a.name, " = this.", a.name, ".bind(this)"], ";"]);
6100
+ }
6101
+ return results3;
6102
+ })()
6103
+ );
6104
+ }
6105
+ let privates = expressions.filter(($15) => $15[1]?.type === "CoffeeClassPrivate");
6106
+ if (!privates.length)
6107
+ continue;
6108
+ let { parent } = ce;
6109
+ for (let i13 = expressions.length + -1; i13 >= 0; --i13) {
6110
+ let i = i13;
6111
+ expressions[i][1]?.type === "CoffeeClassPrivate" && expressions.splice(i, 1);
6112
+ }
6113
+ let wrapped = wrapIIFE([
6114
+ ...privates,
6115
+ [indent, wrapWithReturn(ce)]
6116
+ ]);
6117
+ if (ce && typeof ce == "object" && "binding" in ce) {
6118
+ let { binding } = ce;
6119
+ binding = trimFirstSpace(binding), wrapped = makeNode({
6120
+ type: "AssignmentExpression",
6121
+ children: [binding, " = ", wrapped],
6122
+ lhs: binding,
6123
+ // TODO: incorrect shape
6124
+ assigned: binding,
6125
+ expression: wrapped,
6126
+ names: [ce.name]
6127
+ });
6128
+ }
6129
+ replaceNode(ce, wrapped, parent);
6130
+ }
6131
+ }
5837
6132
  function processProgram(root) {
5838
6133
  let state2 = getState(), config2 = getConfig();
5839
- assert.equal(state2.forbidBracedApplication.length, 1, "forbidBracedApplication"), assert.equal(state2.forbidClassImplicitCall.length, 1, "forbidClassImplicitCall"), assert.equal(state2.forbidIndentedApplication.length, 1, "forbidIndentedApplication"), assert.equal(state2.forbidNestedBinaryOp.length, 1, "forbidNestedBinaryOp"), assert.equal(state2.forbidNewlineBinaryOp.length, 1, "forbidNewlineBinaryOp"), assert.equal(state2.forbidTrailingMemberProperty.length, 1, "forbidTrailingMemberProperty"), assert.equal(state2.JSXTagStack.length, 1, "JSXTagStack");
5840
- let rootIIFE;
5841
- if (config2.iife || config2.repl) {
5842
- rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
5843
- let newExpressions = [["", rootIIFE]];
5844
- root.children = root.children.map(($13) => $13 === root.expressions ? newExpressions : $13), root.expressions = newExpressions;
5845
- }
5846
- addParentPointers(root);
6134
+ assert.equal(state2.forbidBracedApplication.length, 1, "forbidBracedApplication"), assert.equal(state2.forbidClassImplicitCall.length, 1, "forbidClassImplicitCall"), assert.equal(state2.forbidIndentedApplication.length, 1, "forbidIndentedApplication"), assert.equal(state2.forbidNestedBinaryOp.length, 1, "forbidNestedBinaryOp"), assert.equal(state2.forbidNewlineBinaryOp.length, 1, "forbidNewlineBinaryOp"), assert.equal(state2.forbidTrailingMemberProperty.length, 1, "forbidTrailingMemberProperty"), assert.equal(state2.JSXTagStack.length, 1, "JSXTagStack"), addParentPointers(root);
5847
6135
  let { expressions: statements } = root;
5848
- processPlaceholders(statements), processNegativeIndexAccess(statements), processTypes(statements), processDeclarationConditions(statements), processPipelineExpressions(statements), processDeclarations(statements), processAssignments(statements), processStatementExpressions(statements), processPatternMatching(statements), processIterationExpressions(statements), processFinallyClauses(statements), processBreaksContinues(statements), hoistRefDecs(statements), processFunctions(statements, config2), statements.unshift(...state2.prelude), config2.autoLet ? createConstLetDecs(statements, [], "let") : config2.autoConst ? createConstLetDecs(statements, [], "const") : config2.autoVar && createVarDecs(root, []), config2.repl && processRepl(root, rootIIFE), processBlocks(statements), populateRefs(statements), adjustAtBindings(statements), getSync() && processComptime(statements);
6136
+ processPlaceholders(statements), processNegativeIndexAccess(statements), processTypes(statements), processDeclarationConditions(statements), processPipelineExpressions(statements), processDeclarations(statements), processAssignments(statements), processStatementExpressions(statements), processPatternMatching(statements), processIterationExpressions(statements), processFinallyClauses(statements), processBreaksContinues(statements), root.topLevelAwait = hasAwait(statements), root.topLevelYield = hasYield(statements);
6137
+ let rootIIFE;
6138
+ (config2.iife || config2.repl) && (rootIIFE = wrapIIFE(
6139
+ root.expressions,
6140
+ root.topLevelAwait,
6141
+ root.topLevelYield ? "*" : void 0
6142
+ ), statements = [["", rootIIFE]], root.children = root.children.map(($16) => $16 === root.expressions ? statements : $16), root.expressions = statements), hoistRefDecs(statements), processFunctions(statements, config2), config2.coffeeClasses && processCoffeeClasses(statements), statements.unshift(...extractPreludeFor(statements)), config2.autoLet ? createConstLetDecs(statements, [], "let") : config2.autoConst ? createConstLetDecs(statements, [], "const") : config2.autoVar && createVarDecs(root, []), config2.repl && processRepl(root, rootIIFE), processBlocks(statements), populateRefs(statements), adjustAtBindings(statements), getSync() && processComptime(statements);
5849
6143
  }
5850
6144
  async function processProgramAsync(root) {
5851
6145
  let { expressions: statements } = root;
5852
6146
  await processComptime(statements);
5853
6147
  }
5854
6148
  function processRepl(root, rootIIFE) {
5855
- let topBlock = gatherRecursive(rootIIFE, ($14) => $14.type === "BlockStatement")[0], i = 0;
5856
- for (let ref21 = gatherRecursiveWithinFunction(topBlock, ($15) => $15.type === "Declaration"), i11 = 0, len9 = ref21.length; i11 < len9; i11++) {
5857
- let decl = ref21[i11];
6149
+ let topBlock = gatherRecursive(rootIIFE, ($17) => $17.type === "BlockStatement")[0], i = 0;
6150
+ for (let ref22 = gatherRecursiveWithinFunction(topBlock, ($18) => $18.type === "Declaration"), i14 = 0, len11 = ref22.length; i14 < len11; i14++) {
6151
+ let decl = ref22[i14];
5858
6152
  decl.names?.length && (decl.parent === topBlock || decl.decl === "var") && (decl.children.shift(), decl.bindings[0]?.pattern?.type === "ObjectBindingPattern" && (decl.children.unshift("("), decl.children.push(")")), root.expressions.splice(i++, 0, ["", `var ${decl.names.join(",")}`, ";"]));
5859
6153
  }
5860
- for (let ref22 = gatherRecursive(topBlock, ($16) => $16.type === "FunctionExpression"), i12 = 0, len10 = ref22.length; i12 < len10; i12++) {
5861
- let func = ref22[i12];
6154
+ for (let ref23 = gatherRecursive(topBlock, ($19) => $19.type === "FunctionExpression"), i15 = 0, len12 = ref23.length; i15 < len12; i15++) {
6155
+ let func = ref23[i15];
5862
6156
  func.name && func.parent?.type === "BlockStatement" && (func.parent === topBlock ? (replaceNode(func, void 0), root.expressions.splice(i++, 0, ["", func]), func.parent = root) : (func.children.unshift(func.name, "="), root.expressions.splice(i++, 0, ["", `var ${func.name}`, ";"])));
5863
6157
  }
5864
- for (let ref23 = gatherRecursiveWithinFunction(topBlock, ($17) => $17.type === "ClassExpression"), i13 = 0, len11 = ref23.length; i13 < len11; i13++) {
5865
- let classExp = ref23[i13], m8;
6158
+ for (let ref24 = gatherRecursiveWithinFunction(topBlock, ($20) => $20.type === "ClassExpression"), i16 = 0, len13 = ref24.length; i16 < len13; i16++) {
6159
+ let classExp = ref24[i16], m8;
5866
6160
  (classExp.name && classExp.parent === topBlock || (m8 = classExp.parent, typeof m8 == "object" && m8 != null && "type" in m8 && m8.type === "ReturnStatement" && "parent" in m8 && m8.parent === topBlock)) && (classExp.children.unshift(classExp.name, "="), root.expressions.splice(i++, 0, ["", `var ${classExp.name}`, ";"]));
5867
6161
  }
5868
6162
  }
5869
6163
  function populateRefs(statements) {
5870
- let refNodes = gatherRecursive(statements, ($18) => $18.type === "Ref");
6164
+ let refNodes = gatherRecursive(statements, ($21) => $21.type === "Ref");
5871
6165
  if (refNodes.length) {
5872
6166
  let ids = gatherRecursive(statements, (s) => s.type === "Identifier"), names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
5873
6167
  refNodes.forEach((ref) => {
@@ -5883,8 +6177,8 @@ ${js}`
5883
6177
  }
5884
6178
  function processPlaceholders(statements) {
5885
6179
  let placeholderMap = /* @__PURE__ */ new Map(), liftedIfs = /* @__PURE__ */ new Set();
5886
- for (let ref24 = gatherRecursiveAll(statements, ($19) => $19.type === "Placeholder"), i14 = 0, len12 = ref24.length; i14 < len12; i14++) {
5887
- let exp = ref24[i14], ancestor;
6180
+ for (let ref25 = gatherRecursiveAll(statements, ($22) => $22.type === "Placeholder"), i17 = 0, len14 = ref25.length; i17 < len14; i17++) {
6181
+ let exp = ref25[i17], ancestor;
5888
6182
  if (exp.subtype === ".") {
5889
6183
  ({ ancestor } = findAncestor(
5890
6184
  exp,
@@ -5953,11 +6247,11 @@ ${js}`
5953
6247
  }
5954
6248
  for (let [ancestor, placeholders] of placeholderMap) {
5955
6249
  let ref = makeRef("$"), typeSuffix;
5956
- for (let i15 = 0, len13 = placeholders.length; i15 < len13; i15++) {
5957
- let placeholder = placeholders[i15];
6250
+ for (let i18 = 0, len15 = placeholders.length; i18 < len15; i18++) {
6251
+ let placeholder = placeholders[i18];
5958
6252
  typeSuffix ??= placeholder.typeSuffix;
5959
- let ref25;
5960
- (ref25 = placeholder.children)[ref25.length - 1] = ref;
6253
+ let ref26;
6254
+ (ref26 = placeholder.children)[ref26.length - 1] = ref;
5961
6255
  }
5962
6256
  let { parent } = ancestor, body = maybeUnwrap(ancestor), fnExp = makeAmpersandFunction({ ref, typeSuffix, body }), outer;
5963
6257
  switch (parent?.type) {
@@ -5974,8 +6268,8 @@ ${js}`
5974
6268
  break;
5975
6269
  }
5976
6270
  case "PipelineExpression": {
5977
- let i = findChildIndex(parent, ancestor), ref26;
5978
- i === 1 ? ref26 = ancestor === parent.children[i] : i === 2 ? ref26 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3] : ref26 = void 0, outer = ref26;
6271
+ let i = findChildIndex(parent, ancestor), ref27;
6272
+ i === 1 ? ref27 = ancestor === parent.children[i] : i === 2 ? ref27 = ancestor === parent.children[i][findChildIndex(parent.children[i], ancestor)][3] : ref27 = void 0, outer = ref27;
5979
6273
  break;
5980
6274
  }
5981
6275
  case "AssignmentExpression":
@@ -5987,9 +6281,9 @@ ${js}`
5987
6281
  }
5988
6282
  }
5989
6283
  outer || (fnExp = makeLeftHandSideExpression(fnExp)), replaceNode(ancestor, fnExp, parent);
5990
- let ref27;
5991
- if (ref27 = getTrimmingSpace(body)) {
5992
- let ws = ref27;
6284
+ let ref28;
6285
+ if (ref28 = getTrimmingSpace(body)) {
6286
+ let ws = ref28;
5993
6287
  inplaceInsertTrimmingSpace(body, ""), inplacePrepend(ws, fnExp);
5994
6288
  }
5995
6289
  }
@@ -6020,8 +6314,8 @@ ${js}`
6020
6314
  }
6021
6315
  ];
6022
6316
  }
6023
- let ref28;
6024
- Array.isArray(rest.delim) && (ref28 = rest.delim)[ref28.length - 1]?.token === "," && (rest.delim = rest.delim.slice(0, -1), rest.children = [...rest.children.slice(0, -1), rest.delim]);
6317
+ let ref29;
6318
+ Array.isArray(rest.delim) && (ref29 = rest.delim)[ref29.length - 1]?.token === "," && (rest.delim = rest.delim.slice(0, -1), rest.children = [...rest.children.slice(0, -1), rest.delim]);
6025
6319
  let children = [...props, ...after, rest];
6026
6320
  return restCount > 1 && children.push({
6027
6321
  type: "Error",
@@ -6085,6 +6379,8 @@ ${js}`
6085
6379
  ExpressionizedStatement,
6086
6380
  StatementExpression,
6087
6381
  CommaExpression,
6382
+ CommaExpressionSpread,
6383
+ AssignmentExpressionSpread,
6088
6384
  Arguments,
6089
6385
  ImplicitArguments,
6090
6386
  ExplicitArguments,
@@ -6264,6 +6560,7 @@ ${js}`
6264
6560
  BareNestedBlock,
6265
6561
  BareBlock,
6266
6562
  ThenClause,
6563
+ ThenBlock,
6267
6564
  BracedThenClause,
6268
6565
  BracedOrEmptyBlock,
6269
6566
  NoCommaBracedOrEmptyBlock,
@@ -6373,6 +6670,7 @@ ${js}`
6373
6670
  PostfixStatement,
6374
6671
  _PostfixStatement,
6375
6672
  Statement,
6673
+ IterationActualStatement,
6376
6674
  ShouldExpressionize,
6377
6675
  NoCommaStatement,
6378
6676
  EmptyStatement,
@@ -6904,15 +7202,14 @@ ${js}`
6904
7202
  SameLineOrIndentedFurther,
6905
7203
  Dedented,
6906
7204
  PushExtraIndent1
6907
- }, $L0 = (0, import_lib2.$L)(""), $L1 = (0, import_lib2.$L)("{"), $L2 = (0, import_lib2.$L)("/ "), $L3 = (0, import_lib2.$L)("="), $L4 = (0, import_lib2.$L)("("), $L5 = (0, import_lib2.$L)("... "), $L6 = (0, import_lib2.$L)("?"), $L7 = (0, import_lib2.$L)("."), $L8 = (0, import_lib2.$L)("tuple"), $L9 = (0, import_lib2.$L)("++"), $L10 = (0, import_lib2.$L)("--"), $L11 = (0, import_lib2.$L)("\u29FA"), $L12 = (0, import_lib2.$L)("\u2014"), $L13 = (0, import_lib2.$L)("=>"), $L14 = (0, import_lib2.$L)("\u21D2"), $L15 = (0, import_lib2.$L)("import"), $L16 = (0, import_lib2.$L)(":"), $L17 = (0, import_lib2.$L)(","), $L18 = (0, import_lib2.$L)(" "), $L19 = (0, import_lib2.$L)("<"), $L20 = (0, import_lib2.$L)("implements"), $L21 = (0, import_lib2.$L)("<:"), $L22 = (0, import_lib2.$L)("^"), $L23 = (0, import_lib2.$L)("<?"), $L24 = (0, import_lib2.$L)("-"), $L25 = (0, import_lib2.$L)("import.meta"), $L26 = (0, import_lib2.$L)("return.value"), $L27 = (0, import_lib2.$L)("tighter"), $L28 = (0, import_lib2.$L)("looser"), $L29 = (0, import_lib2.$L)("same"), $L30 = (0, import_lib2.$L)("left"), $L31 = (0, import_lib2.$L)("right"), $L32 = (0, import_lib2.$L)("non"), $L33 = (0, import_lib2.$L)("relational"), $L34 = (0, import_lib2.$L)("arguments"), $L35 = (0, import_lib2.$L)("->"), $L36 = (0, import_lib2.$L)("\u2192"), $L37 = (0, import_lib2.$L)("}"), $L38 = (0, import_lib2.$L)("null"), $L39 = (0, import_lib2.$L)("true"), $L40 = (0, import_lib2.$L)("false"), $L41 = (0, import_lib2.$L)("yes"), $L42 = (0, import_lib2.$L)("on"), $L43 = (0, import_lib2.$L)("no"), $L44 = (0, import_lib2.$L)("off"), $L45 = (0, import_lib2.$L)(">"), $L46 = (0, import_lib2.$L)("]"), $L47 = (0, import_lib2.$L)("\u2022"), $L48 = (0, import_lib2.$L)("//"), $L49 = (0, import_lib2.$L)("**="), $L50 = (0, import_lib2.$L)("*="), $L51 = (0, import_lib2.$L)("%/"), $L52 = (0, import_lib2.$L)("\xF7"), $L53 = (0, import_lib2.$L)("%%"), $L54 = (0, import_lib2.$L)("/="), $L55 = (0, import_lib2.$L)("%="), $L56 = (0, import_lib2.$L)("+="), $L57 = (0, import_lib2.$L)("-="), $L58 = (0, import_lib2.$L)("<<="), $L59 = (0, import_lib2.$L)("\u226A="), $L60 = (0, import_lib2.$L)(">>>="), $L61 = (0, import_lib2.$L)("\u22D9="), $L62 = (0, import_lib2.$L)(">>="), $L63 = (0, import_lib2.$L)("\u226B="), $L64 = (0, import_lib2.$L)("&&="), $L65 = (0, import_lib2.$L)("&="), $L66 = (0, import_lib2.$L)("^="), $L67 = (0, import_lib2.$L)("||="), $L68 = (0, import_lib2.$L)("\u2016="), $L69 = (0, import_lib2.$L)("|="), $L70 = (0, import_lib2.$L)("??="), $L71 = (0, import_lib2.$L)("\u2047="), $L72 = (0, import_lib2.$L)("?="), $L73 = (0, import_lib2.$L)("and="), $L74 = (0, import_lib2.$L)("or="), $L75 = (0, import_lib2.$L)("*"), $L76 = (0, import_lib2.$L)("**"), $L77 = (0, import_lib2.$L)("/"), $L78 = (0, import_lib2.$L)("%"), $L79 = (0, import_lib2.$L)("+"), $L80 = (0, import_lib2.$L)("<="), $L81 = (0, import_lib2.$L)("\u2264"), $L82 = (0, import_lib2.$L)(">="), $L83 = (0, import_lib2.$L)("\u2265"), $L84 = (0, import_lib2.$L)("!<?"), $L85 = (0, import_lib2.$L)("<<"), $L86 = (0, import_lib2.$L)("\u226A"), $L87 = (0, import_lib2.$L)(">>>"), $L88 = (0, import_lib2.$L)("\u22D9"), $L89 = (0, import_lib2.$L)(">>"), $L90 = (0, import_lib2.$L)("\u226B"), $L91 = (0, import_lib2.$L)("!=="), $L92 = (0, import_lib2.$L)("\u2262"), $L93 = (0, import_lib2.$L)("!="), $L94 = (0, import_lib2.$L)("\u2260"), $L95 = (0, import_lib2.$L)("isnt"), $L96 = (0, import_lib2.$L)("==="), $L97 = (0, import_lib2.$L)("\u2263"), $L98 = (0, import_lib2.$L)("\u2A76"), $L99 = (0, import_lib2.$L)("=="), $L100 = (0, import_lib2.$L)("\u2261"), $L101 = (0, import_lib2.$L)("\u2A75"), $L102 = (0, import_lib2.$L)("and"), $L103 = (0, import_lib2.$L)("&&"), $L104 = (0, import_lib2.$L)("or"), $L105 = (0, import_lib2.$L)("||"), $L106 = (0, import_lib2.$L)("\u2016"), $L107 = (0, import_lib2.$L)("^^"), $L108 = (0, import_lib2.$L)("xor"), $L109 = (0, import_lib2.$L)("xnor"), $L110 = (0, import_lib2.$L)("??"), $L111 = (0, import_lib2.$L)("\u2047"), $L112 = (0, import_lib2.$L)("instanceof"), $L113 = (0, import_lib2.$L)("\u2208"), $L114 = (0, import_lib2.$L)("\u220B"), $L115 = (0, import_lib2.$L)("\u220C"), $L116 = (0, import_lib2.$L)("\u2209"), $L117 = (0, import_lib2.$L)("&"), $L118 = (0, import_lib2.$L)("|"), $L119 = (0, import_lib2.$L)(";"), $L120 = (0, import_lib2.$L)("some"), $L121 = (0, import_lib2.$L)("every"), $L122 = (0, import_lib2.$L)("count"), $L123 = (0, import_lib2.$L)("sum"), $L124 = (0, import_lib2.$L)("product"), $L125 = (0, import_lib2.$L)("min"), $L126 = (0, import_lib2.$L)("max"), $L127 = (0, import_lib2.$L)("join"), $L128 = (0, import_lib2.$L)("break"), $L129 = (0, import_lib2.$L)("continue"), $L130 = (0, import_lib2.$L)("debugger"), $L131 = (0, import_lib2.$L)("require"), $L132 = (0, import_lib2.$L)("with"), $L133 = (0, import_lib2.$L)("assert"), $L134 = (0, import_lib2.$L)(":="), $L135 = (0, import_lib2.$L)("\u2254"), $L136 = (0, import_lib2.$L)(".="), $L137 = (0, import_lib2.$L)("::="), $L138 = (0, import_lib2.$L)("/*"), $L139 = (0, import_lib2.$L)("*/"), $L140 = (0, import_lib2.$L)("\\"), $L141 = (0, import_lib2.$L)(")"), $L142 = (0, import_lib2.$L)("abstract"), $L143 = (0, import_lib2.$L)("as"), $L144 = (0, import_lib2.$L)("@"), $L145 = (0, import_lib2.$L)("@@"), $L146 = (0, import_lib2.$L)("async"), $L147 = (0, import_lib2.$L)("await"), $L148 = (0, import_lib2.$L)("`"), $L149 = (0, import_lib2.$L)("by"), $L150 = (0, import_lib2.$L)("case"), $L151 = (0, import_lib2.$L)("catch"), $L152 = (0, import_lib2.$L)("class"), $L153 = (0, import_lib2.$L)("#{"), $L154 = (0, import_lib2.$L)("comptime"), $L155 = (0, import_lib2.$L)("declare"), $L156 = (0, import_lib2.$L)("default"), $L157 = (0, import_lib2.$L)("delete"), $L158 = (0, import_lib2.$L)("do"), $L159 = (0, import_lib2.$L)(".."), $L160 = (0, import_lib2.$L)("\u2025"), $L161 = (0, import_lib2.$L)("..."), $L162 = (0, import_lib2.$L)("\u2026"), $L163 = (0, import_lib2.$L)("::"), $L164 = (0, import_lib2.$L)('"'), $L165 = (0, import_lib2.$L)("each"), $L166 = (0, import_lib2.$L)("else"), $L167 = (0, import_lib2.$L)("!"), $L168 = (0, import_lib2.$L)("export"), $L169 = (0, import_lib2.$L)("extends"), $L170 = (0, import_lib2.$L)("finally"), $L171 = (0, import_lib2.$L)("for"), $L172 = (0, import_lib2.$L)("from"), $L173 = (0, import_lib2.$L)("function"), $L174 = (0, import_lib2.$L)("get"), $L175 = (0, import_lib2.$L)("set"), $L176 = (0, import_lib2.$L)("#"), $L177 = (0, import_lib2.$L)("if"), $L178 = (0, import_lib2.$L)("in"), $L179 = (0, import_lib2.$L)("infer"), $L180 = (0, import_lib2.$L)("let"), $L181 = (0, import_lib2.$L)("const"), $L182 = (0, import_lib2.$L)("is"), $L183 = (0, import_lib2.$L)("var"), $L184 = (0, import_lib2.$L)("like"), $L185 = (0, import_lib2.$L)("loop"), $L186 = (0, import_lib2.$L)("new"), $L187 = (0, import_lib2.$L)("not"), $L188 = (0, import_lib2.$L)("of"), $L189 = (0, import_lib2.$L)("["), $L190 = (0, import_lib2.$L)("operator"), $L191 = (0, import_lib2.$L)("override"), $L192 = (0, import_lib2.$L)("own"), $L193 = (0, import_lib2.$L)("public"), $L194 = (0, import_lib2.$L)("private"), $L195 = (0, import_lib2.$L)("protected"), $L196 = (0, import_lib2.$L)("||>"), $L197 = (0, import_lib2.$L)("|\u25B7"), $L198 = (0, import_lib2.$L)("|>="), $L199 = (0, import_lib2.$L)("\u25B7="), $L200 = (0, import_lib2.$L)("|>"), $L201 = (0, import_lib2.$L)("\u25B7"), $L202 = (0, import_lib2.$L)("readonly"), $L203 = (0, import_lib2.$L)("return"), $L204 = (0, import_lib2.$L)("satisfies"), $L205 = (0, import_lib2.$L)("'"), $L206 = (0, import_lib2.$L)("static"), $L207 = (0, import_lib2.$L)("${"), $L208 = (0, import_lib2.$L)("super"), $L209 = (0, import_lib2.$L)("switch"), $L210 = (0, import_lib2.$L)("target"), $L211 = (0, import_lib2.$L)("then"), $L212 = (0, import_lib2.$L)("this"), $L213 = (0, import_lib2.$L)("throw"), $L214 = (0, import_lib2.$L)('"""'), $L215 = (0, import_lib2.$L)("'''"), $L216 = (0, import_lib2.$L)("///"), $L217 = (0, import_lib2.$L)("```"), $L218 = (0, import_lib2.$L)("try"), $L219 = (0, import_lib2.$L)("typeof"), $L220 = (0, import_lib2.$L)("undefined"), $L221 = (0, import_lib2.$L)("unless"), $L222 = (0, import_lib2.$L)("until"), $L223 = (0, import_lib2.$L)("using"), $L224 = (0, import_lib2.$L)("void"), $L225 = (0, import_lib2.$L)("when"), $L226 = (0, import_lib2.$L)("while"), $L227 = (0, import_lib2.$L)("yield"), $L228 = (0, import_lib2.$L)("/>"), $L229 = (0, import_lib2.$L)("</"), $L230 = (0, import_lib2.$L)("<>"), $L231 = (0, import_lib2.$L)("</>"), $L232 = (0, import_lib2.$L)("<!--"), $L233 = (0, import_lib2.$L)("-->"), $L234 = (0, import_lib2.$L)("type"), $L235 = (0, import_lib2.$L)("enum"), $L236 = (0, import_lib2.$L)("interface"), $L237 = (0, import_lib2.$L)("global"), $L238 = (0, import_lib2.$L)("module"), $L239 = (0, import_lib2.$L)("namespace"), $L240 = (0, import_lib2.$L)("asserts"), $L241 = (0, import_lib2.$L)("keyof"), $L242 = (0, import_lib2.$L)("???"), $L243 = (0, import_lib2.$L)("unique"), $L244 = (0, import_lib2.$L)("symbol"), $L245 = (0, import_lib2.$L)("[]"), $L246 = (0, import_lib2.$L)("civet"), $R0 = (0, import_lib2.$R)(new RegExp("(?=async|debugger|if|unless|comptime|do|for|loop|until|while|switch|throw|try)", "suy")), $R1 = (0, import_lib2.$R)(new RegExp("&(?=\\s)", "suy")), $R2 = (0, import_lib2.$R)(new RegExp("(as|of|by|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy")), $R3 = (0, import_lib2.$R)(new RegExp("[0-9]", "suy")), $R4 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy")), $R5 = (0, import_lib2.$R)(new RegExp("[ \\t]", "suy")), $R6 = (0, import_lib2.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{=]", "suy")), $R7 = (0, import_lib2.$R)(new RegExp("[&=]", "suy")), $R8 = (0, import_lib2.$R)(new RegExp("(?=['\"`])", "suy")), $R9 = (0, import_lib2.$R)(new RegExp("(?=[\\/?])", "suy")), $R10 = (0, import_lib2.$R)(new RegExp("(?=[\\/\\[{?.!@#'\u2019:])", "suy")), $R11 = (0, import_lib2.$R)(new RegExp("%%?", "suy")), $R12 = (0, import_lib2.$R)(new RegExp("[.\\s]", "suy")), $R13 = (0, import_lib2.$R)(new RegExp("[)}]", "suy")), $R14 = (0, import_lib2.$R)(new RegExp("[+-]", "suy")), $R15 = (0, import_lib2.$R)(new RegExp("\\+\\+|--|\u29FA|\u2014|[\\+\\-&]\\S", "suy")), $R16 = (0, import_lib2.$R)(new RegExp(`(?=[0-9.'"tfyno])`, "suy")), $R17 = (0, import_lib2.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy")), $R18 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy")), $R19 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy")), $R20 = (0, import_lib2.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy")), $R21 = (0, import_lib2.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy")), $R22 = (0, import_lib2.$R)(new RegExp("[ \\t]*", "suy")), $R23 = (0, import_lib2.$R)(new RegExp("[ \\t]+", "suy")), $R24 = (0, import_lib2.$R)(new RegExp("[!+-]?", "suy")), $R25 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy")), $R26 = (0, import_lib2.$R)(new RegExp("[=>]", "suy")), $R27 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])", "suy")), $R28 = (0, import_lib2.$R)(new RegExp("!\\^\\^?", "suy")), $R29 = (0, import_lib2.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy")), $R30 = (0, import_lib2.$R)(new RegExp("[:.]", "suy")), $R31 = (0, import_lib2.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy")), $R32 = (0, import_lib2.$R)(new RegExp("(?:loop|while|until|for|do)(?!\\p{ID_Continue})", "suy")), $R33 = (0, import_lib2.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy")), $R34 = (0, import_lib2.$R)(new RegExp('[^;"\\s=>]+', "suy")), $R35 = (0, import_lib2.$R)(new RegExp("(?=[0-9.])", "suy")), $R36 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy")), $R37 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy")), $R38 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy")), $R39 = (0, import_lib2.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy")), $R40 = (0, import_lib2.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy")), $R41 = (0, import_lib2.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy")), $R42 = (0, import_lib2.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy")), $R43 = (0, import_lib2.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy")), $R44 = (0, import_lib2.$R)(new RegExp("(?=[0-9])", "suy")), $R45 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy")), $R46 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy")), $R47 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy")), $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy")), $R49 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy")), $R50 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy")), $R51 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy")), $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy")), $R53 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy")), $R54 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy")), $R55 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy")), $R56 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy")), $R57 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy")), $R58 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy")), $R59 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy")), $R60 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy")), $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy")), $R62 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy")), $R63 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy")), $R64 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy")), $R65 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy")), $R66 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy")), $R67 = (0, import_lib2.$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")), $R68 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy")), $R69 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy")), $R70 = (0, import_lib2.$R)(new RegExp(".", "suy")), $R71 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy")), $R72 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy")), $R73 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy")), $R74 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy")), $R75 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy")), $R76 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy")), $R77 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy")), $R78 = (0, import_lib2.$R)(new RegExp("[=:]", "suy")), $R79 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy")), $R80 = (0, import_lib2.$R)(new RegExp("\\s", "suy")), $R81 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy")), $R82 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy")), $R83 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy")), $R84 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy")), $R85 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy")), $R86 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy")), $R87 = (0, import_lib2.$R)(new RegExp("[<>]", "suy")), $R88 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy")), $R89 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy")), $R90 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy")), $R91 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy")), $R92 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy")), $R93 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy")), $R94 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy")), $R95 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy")), $R96 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy")), $R97 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy")), $R98 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy")), $R99 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy")), $R100 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy")), $R101 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy")), $R102 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy")), $R103 = (0, import_lib2.$R)(new RegExp("[^]*", "suy")), Program$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Reset, Init, (0, import_lib2.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7205
+ }, $L0 = (0, import_lib2.$L)(""), $L1 = (0, import_lib2.$L)("{"), $L2 = (0, import_lib2.$L)("/ "), $L3 = (0, import_lib2.$L)("="), $L4 = (0, import_lib2.$L)("("), $L5 = (0, import_lib2.$L)("... "), $L6 = (0, import_lib2.$L)("?"), $L7 = (0, import_lib2.$L)("."), $L8 = (0, import_lib2.$L)("tuple"), $L9 = (0, import_lib2.$L)("++"), $L10 = (0, import_lib2.$L)("--"), $L11 = (0, import_lib2.$L)("\u29FA"), $L12 = (0, import_lib2.$L)("\u2014"), $L13 = (0, import_lib2.$L)("=>"), $L14 = (0, import_lib2.$L)("\u21D2"), $L15 = (0, import_lib2.$L)("import"), $L16 = (0, import_lib2.$L)(":"), $L17 = (0, import_lib2.$L)(","), $L18 = (0, import_lib2.$L)(" "), $L19 = (0, import_lib2.$L)("<"), $L20 = (0, import_lib2.$L)("implements"), $L21 = (0, import_lib2.$L)("<:"), $L22 = (0, import_lib2.$L)("^"), $L23 = (0, import_lib2.$L)("<?"), $L24 = (0, import_lib2.$L)("-"), $L25 = (0, import_lib2.$L)("import.meta"), $L26 = (0, import_lib2.$L)("return.value"), $L27 = (0, import_lib2.$L)("tighter"), $L28 = (0, import_lib2.$L)("looser"), $L29 = (0, import_lib2.$L)("same"), $L30 = (0, import_lib2.$L)("left"), $L31 = (0, import_lib2.$L)("right"), $L32 = (0, import_lib2.$L)("non"), $L33 = (0, import_lib2.$L)("relational"), $L34 = (0, import_lib2.$L)("arguments"), $L35 = (0, import_lib2.$L)("->"), $L36 = (0, import_lib2.$L)("\u2192"), $L37 = (0, import_lib2.$L)("}"), $L38 = (0, import_lib2.$L)("null"), $L39 = (0, import_lib2.$L)("true"), $L40 = (0, import_lib2.$L)("false"), $L41 = (0, import_lib2.$L)("yes"), $L42 = (0, import_lib2.$L)("on"), $L43 = (0, import_lib2.$L)("no"), $L44 = (0, import_lib2.$L)("off"), $L45 = (0, import_lib2.$L)(">"), $L46 = (0, import_lib2.$L)("]"), $L47 = (0, import_lib2.$L)("\u2022"), $L48 = (0, import_lib2.$L)("//"), $L49 = (0, import_lib2.$L)("**="), $L50 = (0, import_lib2.$L)("*="), $L51 = (0, import_lib2.$L)("%/"), $L52 = (0, import_lib2.$L)("\xF7"), $L53 = (0, import_lib2.$L)("%%"), $L54 = (0, import_lib2.$L)("/="), $L55 = (0, import_lib2.$L)("%="), $L56 = (0, import_lib2.$L)("+="), $L57 = (0, import_lib2.$L)("-="), $L58 = (0, import_lib2.$L)("<<="), $L59 = (0, import_lib2.$L)("\u226A="), $L60 = (0, import_lib2.$L)(">>>="), $L61 = (0, import_lib2.$L)("\u22D9="), $L62 = (0, import_lib2.$L)(">>="), $L63 = (0, import_lib2.$L)("\u226B="), $L64 = (0, import_lib2.$L)("&&="), $L65 = (0, import_lib2.$L)("&="), $L66 = (0, import_lib2.$L)("^="), $L67 = (0, import_lib2.$L)("||="), $L68 = (0, import_lib2.$L)("\u2016="), $L69 = (0, import_lib2.$L)("|="), $L70 = (0, import_lib2.$L)("??="), $L71 = (0, import_lib2.$L)("\u2047="), $L72 = (0, import_lib2.$L)("?="), $L73 = (0, import_lib2.$L)("and="), $L74 = (0, import_lib2.$L)("or="), $L75 = (0, import_lib2.$L)("*"), $L76 = (0, import_lib2.$L)("**"), $L77 = (0, import_lib2.$L)("/"), $L78 = (0, import_lib2.$L)("%"), $L79 = (0, import_lib2.$L)("+"), $L80 = (0, import_lib2.$L)("<="), $L81 = (0, import_lib2.$L)("\u2264"), $L82 = (0, import_lib2.$L)(">="), $L83 = (0, import_lib2.$L)("\u2265"), $L84 = (0, import_lib2.$L)("!<?"), $L85 = (0, import_lib2.$L)("<<"), $L86 = (0, import_lib2.$L)("\u226A"), $L87 = (0, import_lib2.$L)(">>>"), $L88 = (0, import_lib2.$L)("\u22D9"), $L89 = (0, import_lib2.$L)(">>"), $L90 = (0, import_lib2.$L)("\u226B"), $L91 = (0, import_lib2.$L)("!=="), $L92 = (0, import_lib2.$L)("\u2262"), $L93 = (0, import_lib2.$L)("!="), $L94 = (0, import_lib2.$L)("\u2260"), $L95 = (0, import_lib2.$L)("isnt"), $L96 = (0, import_lib2.$L)("==="), $L97 = (0, import_lib2.$L)("\u2263"), $L98 = (0, import_lib2.$L)("\u2A76"), $L99 = (0, import_lib2.$L)("=="), $L100 = (0, import_lib2.$L)("\u2261"), $L101 = (0, import_lib2.$L)("\u2A75"), $L102 = (0, import_lib2.$L)("and"), $L103 = (0, import_lib2.$L)("&&"), $L104 = (0, import_lib2.$L)("or"), $L105 = (0, import_lib2.$L)("||"), $L106 = (0, import_lib2.$L)("\u2016"), $L107 = (0, import_lib2.$L)("^^"), $L108 = (0, import_lib2.$L)("xor"), $L109 = (0, import_lib2.$L)("xnor"), $L110 = (0, import_lib2.$L)("??"), $L111 = (0, import_lib2.$L)("\u2047"), $L112 = (0, import_lib2.$L)("instanceof"), $L113 = (0, import_lib2.$L)("\u2208"), $L114 = (0, import_lib2.$L)("\u220B"), $L115 = (0, import_lib2.$L)("\u220C"), $L116 = (0, import_lib2.$L)("\u2209"), $L117 = (0, import_lib2.$L)("&"), $L118 = (0, import_lib2.$L)("|"), $L119 = (0, import_lib2.$L)(";"), $L120 = (0, import_lib2.$L)("some"), $L121 = (0, import_lib2.$L)("every"), $L122 = (0, import_lib2.$L)("count"), $L123 = (0, import_lib2.$L)("first"), $L124 = (0, import_lib2.$L)("sum"), $L125 = (0, import_lib2.$L)("product"), $L126 = (0, import_lib2.$L)("min"), $L127 = (0, import_lib2.$L)("max"), $L128 = (0, import_lib2.$L)("join"), $L129 = (0, import_lib2.$L)("concat"), $L130 = (0, import_lib2.$L)("break"), $L131 = (0, import_lib2.$L)("continue"), $L132 = (0, import_lib2.$L)("debugger"), $L133 = (0, import_lib2.$L)("require"), $L134 = (0, import_lib2.$L)("with"), $L135 = (0, import_lib2.$L)("assert"), $L136 = (0, import_lib2.$L)(":="), $L137 = (0, import_lib2.$L)("\u2254"), $L138 = (0, import_lib2.$L)(".="), $L139 = (0, import_lib2.$L)("::="), $L140 = (0, import_lib2.$L)("/*"), $L141 = (0, import_lib2.$L)("*/"), $L142 = (0, import_lib2.$L)("\\"), $L143 = (0, import_lib2.$L)(")"), $L144 = (0, import_lib2.$L)("abstract"), $L145 = (0, import_lib2.$L)("as"), $L146 = (0, import_lib2.$L)("@"), $L147 = (0, import_lib2.$L)("@@"), $L148 = (0, import_lib2.$L)("async"), $L149 = (0, import_lib2.$L)("await"), $L150 = (0, import_lib2.$L)("`"), $L151 = (0, import_lib2.$L)("by"), $L152 = (0, import_lib2.$L)("case"), $L153 = (0, import_lib2.$L)("catch"), $L154 = (0, import_lib2.$L)("class"), $L155 = (0, import_lib2.$L)("#{"), $L156 = (0, import_lib2.$L)("comptime"), $L157 = (0, import_lib2.$L)("declare"), $L158 = (0, import_lib2.$L)("default"), $L159 = (0, import_lib2.$L)("delete"), $L160 = (0, import_lib2.$L)("do"), $L161 = (0, import_lib2.$L)(".."), $L162 = (0, import_lib2.$L)("\u2025"), $L163 = (0, import_lib2.$L)("..."), $L164 = (0, import_lib2.$L)("\u2026"), $L165 = (0, import_lib2.$L)("::"), $L166 = (0, import_lib2.$L)('"'), $L167 = (0, import_lib2.$L)("each"), $L168 = (0, import_lib2.$L)("else"), $L169 = (0, import_lib2.$L)("!"), $L170 = (0, import_lib2.$L)("export"), $L171 = (0, import_lib2.$L)("extends"), $L172 = (0, import_lib2.$L)("finally"), $L173 = (0, import_lib2.$L)("for"), $L174 = (0, import_lib2.$L)("from"), $L175 = (0, import_lib2.$L)("function"), $L176 = (0, import_lib2.$L)("get"), $L177 = (0, import_lib2.$L)("set"), $L178 = (0, import_lib2.$L)("#"), $L179 = (0, import_lib2.$L)("if"), $L180 = (0, import_lib2.$L)("in"), $L181 = (0, import_lib2.$L)("infer"), $L182 = (0, import_lib2.$L)("let"), $L183 = (0, import_lib2.$L)("const"), $L184 = (0, import_lib2.$L)("is"), $L185 = (0, import_lib2.$L)("var"), $L186 = (0, import_lib2.$L)("like"), $L187 = (0, import_lib2.$L)("loop"), $L188 = (0, import_lib2.$L)("new"), $L189 = (0, import_lib2.$L)("not"), $L190 = (0, import_lib2.$L)("of"), $L191 = (0, import_lib2.$L)("["), $L192 = (0, import_lib2.$L)("operator"), $L193 = (0, import_lib2.$L)("override"), $L194 = (0, import_lib2.$L)("own"), $L195 = (0, import_lib2.$L)("public"), $L196 = (0, import_lib2.$L)("private"), $L197 = (0, import_lib2.$L)("protected"), $L198 = (0, import_lib2.$L)("||>"), $L199 = (0, import_lib2.$L)("|\u25B7"), $L200 = (0, import_lib2.$L)("|>="), $L201 = (0, import_lib2.$L)("\u25B7="), $L202 = (0, import_lib2.$L)("|>"), $L203 = (0, import_lib2.$L)("\u25B7"), $L204 = (0, import_lib2.$L)("readonly"), $L205 = (0, import_lib2.$L)("return"), $L206 = (0, import_lib2.$L)("satisfies"), $L207 = (0, import_lib2.$L)("'"), $L208 = (0, import_lib2.$L)("static"), $L209 = (0, import_lib2.$L)("${"), $L210 = (0, import_lib2.$L)("super"), $L211 = (0, import_lib2.$L)("switch"), $L212 = (0, import_lib2.$L)("target"), $L213 = (0, import_lib2.$L)("then"), $L214 = (0, import_lib2.$L)("this"), $L215 = (0, import_lib2.$L)("throw"), $L216 = (0, import_lib2.$L)('"""'), $L217 = (0, import_lib2.$L)("'''"), $L218 = (0, import_lib2.$L)("///"), $L219 = (0, import_lib2.$L)("```"), $L220 = (0, import_lib2.$L)("try"), $L221 = (0, import_lib2.$L)("typeof"), $L222 = (0, import_lib2.$L)("undefined"), $L223 = (0, import_lib2.$L)("unless"), $L224 = (0, import_lib2.$L)("until"), $L225 = (0, import_lib2.$L)("using"), $L226 = (0, import_lib2.$L)("void"), $L227 = (0, import_lib2.$L)("when"), $L228 = (0, import_lib2.$L)("while"), $L229 = (0, import_lib2.$L)("yield"), $L230 = (0, import_lib2.$L)("/>"), $L231 = (0, import_lib2.$L)("</"), $L232 = (0, import_lib2.$L)("<>"), $L233 = (0, import_lib2.$L)("</>"), $L234 = (0, import_lib2.$L)("<!--"), $L235 = (0, import_lib2.$L)("-->"), $L236 = (0, import_lib2.$L)("type"), $L237 = (0, import_lib2.$L)("enum"), $L238 = (0, import_lib2.$L)("interface"), $L239 = (0, import_lib2.$L)("global"), $L240 = (0, import_lib2.$L)("module"), $L241 = (0, import_lib2.$L)("namespace"), $L242 = (0, import_lib2.$L)("asserts"), $L243 = (0, import_lib2.$L)("keyof"), $L244 = (0, import_lib2.$L)("???"), $L245 = (0, import_lib2.$L)("unique"), $L246 = (0, import_lib2.$L)("symbol"), $L247 = (0, import_lib2.$L)("[]"), $L248 = (0, import_lib2.$L)("civet"), $R0 = (0, import_lib2.$R)(new RegExp("(?=async|debugger|if|unless|comptime|do|for|loop|until|while|switch|throw|try)", "suy")), $R1 = (0, import_lib2.$R)(new RegExp("&(?=\\s)", "suy")), $R2 = (0, import_lib2.$R)(new RegExp("(as|of|by|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy")), $R3 = (0, import_lib2.$R)(new RegExp("[0-9]", "suy")), $R4 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy")), $R5 = (0, import_lib2.$R)(new RegExp("[ \\t]", "suy")), $R6 = (0, import_lib2.$R)(new RegExp("\\p{ID_Continue}|[\\u200C\\u200D$.#{=]", "suy")), $R7 = (0, import_lib2.$R)(new RegExp("[&=]", "suy")), $R8 = (0, import_lib2.$R)(new RegExp("(?=['\"`])", "suy")), $R9 = (0, import_lib2.$R)(new RegExp("(?=[\\/?])", "suy")), $R10 = (0, import_lib2.$R)(new RegExp("(?=[\\/\\[{?.!@#'\u2019:])", "suy")), $R11 = (0, import_lib2.$R)(new RegExp("%%?", "suy")), $R12 = (0, import_lib2.$R)(new RegExp("[.\\s]", "suy")), $R13 = (0, import_lib2.$R)(new RegExp("[)}]", "suy")), $R14 = (0, import_lib2.$R)(new RegExp("[+-]", "suy")), $R15 = (0, import_lib2.$R)(new RegExp("\\+\\+|--|\u29FA|\u2014|[\\+\\-&]\\S", "suy")), $R16 = (0, import_lib2.$R)(new RegExp(`(?=[0-9.'"tfyno])`, "suy")), $R17 = (0, import_lib2.$R)(new RegExp("(?=true|false|yes|no|on|off)", "suy")), $R18 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$])", "suy")), $R19 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy")), $R20 = (0, import_lib2.$R)(new RegExp("(?=\\[|\\s*[.\u2022])", "suy")), $R21 = (0, import_lib2.$R)(new RegExp("([<>])(=?)|([\u2264\u2265])", "suy")), $R22 = (0, import_lib2.$R)(new RegExp("[ \\t]*", "suy")), $R23 = (0, import_lib2.$R)(new RegExp("[ \\t]+", "suy")), $R24 = (0, import_lib2.$R)(new RegExp("[!+-]?", "suy")), $R25 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy")), $R26 = (0, import_lib2.$R)(new RegExp("[=>]", "suy")), $R27 = (0, import_lib2.$R)(new RegExp("(?=\\p{ID_Start}|[_$^\u226A\u226B\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2A76\u2A75\u2016\u2047&|*\\/!?%\xF7<>\u29FA+-])", "suy")), $R28 = (0, import_lib2.$R)(new RegExp("!\\^\\^?", "suy")), $R29 = (0, import_lib2.$R)(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy")), $R30 = (0, import_lib2.$R)(new RegExp("[:.]", "suy")), $R31 = (0, import_lib2.$R)(new RegExp("(?=for|if|loop|unless|until|while)", "suy")), $R32 = (0, import_lib2.$R)(new RegExp("(?:loop|while|until|for|do)(?!\\p{ID_Continue})", "suy")), $R33 = (0, import_lib2.$R)(new RegExp("(?=loop|comptime|do|for|until|while)", "suy")), $R34 = (0, import_lib2.$R)(new RegExp('[^;"\\s=>]+', "suy")), $R35 = (0, import_lib2.$R)(new RegExp("(?=[0-9.])", "suy")), $R36 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy")), $R37 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy")), $R38 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy")), $R39 = (0, import_lib2.$R)(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy")), $R40 = (0, import_lib2.$R)(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy")), $R41 = (0, import_lib2.$R)(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy")), $R42 = (0, import_lib2.$R)(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy")), $R43 = (0, import_lib2.$R)(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy")), $R44 = (0, import_lib2.$R)(new RegExp("(?=[0-9])", "suy")), $R45 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy")), $R46 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy")), $R47 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy")), $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy")), $R49 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy")), $R50 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy")), $R51 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy")), $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy")), $R53 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy")), $R54 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy")), $R55 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy")), $R56 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy")), $R57 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy")), $R58 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy")), $R59 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy")), $R60 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy")), $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy")), $R62 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy")), $R63 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy")), $R64 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy")), $R65 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy")), $R66 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy")), $R67 = (0, import_lib2.$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")), $R68 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy")), $R69 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy")), $R70 = (0, import_lib2.$R)(new RegExp(".", "suy")), $R71 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy")), $R72 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy")), $R73 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy")), $R74 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy")), $R75 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy")), $R76 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy")), $R77 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy")), $R78 = (0, import_lib2.$R)(new RegExp("[=:]", "suy")), $R79 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy")), $R80 = (0, import_lib2.$R)(new RegExp("\\s", "suy")), $R81 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy")), $R82 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy")), $R83 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy")), $R84 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy")), $R85 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy")), $R86 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy")), $R87 = (0, import_lib2.$R)(new RegExp("[<>]", "suy")), $R88 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy")), $R89 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy")), $R90 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy")), $R91 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy")), $R92 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy")), $R93 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy")), $R94 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy")), $R95 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy")), $R96 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy")), $R97 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy")), $R98 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy")), $R99 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy")), $R100 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy")), $R101 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy")), $R102 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy")), $R103 = (0, import_lib2.$R)(new RegExp("[^]*", "suy")), Program$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Reset, Init, (0, import_lib2.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6908
7206
  var reset = $1, init = $2, ws1 = $3, statements = $4, ws2 = $5;
6909
7207
  let program = {
6910
7208
  type: "BlockStatement",
6911
7209
  expressions: statements,
6912
7210
  children: [reset, init, ws1, statements, ws2],
6913
7211
  bare: !0,
6914
- root: !0,
6915
- topLevelAwait: hasAwait(statements)
7212
+ root: !0
6916
7213
  };
6917
7214
  return processProgram(program), program;
6918
7215
  });
@@ -7016,6 +7313,51 @@ ${js}`
7016
7313
  function CommaExpression(ctx, state2) {
7017
7314
  return (0, import_lib2.$EVENT)(ctx, state2, "CommaExpression", CommaExpression$0);
7018
7315
  }
7316
+ var CommaExpressionSpread$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, (0, import_lib2.$E)(_), IterationActualStatement), function($skip, $loc, $0, $1, $2, $3, $4) {
7317
+ var ws = $1, ws2 = $3, iteration = $4;
7318
+ return iteration.subtype === "do" || iteration.subtype === "comptime" ? $skip : (ws2 && (ws ? ws = [ws, ws2] : ws = ws2), iteration = { ...iteration, resultsParent: !0 }, prepend(ws, iteration));
7319
+ }), CommaExpressionSpread$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(AssignmentExpressionSpread, (0, import_lib2.$Q)((0, import_lib2.$S)(CommaDelimiter, AssignmentExpressionSpread))), function($skip, $loc, $0, $1, $2) {
7320
+ return $2.length == 0 ? $1 : $0;
7321
+ }), CommaExpressionSpread$$ = [CommaExpressionSpread$0, CommaExpressionSpread$1];
7322
+ function CommaExpressionSpread(ctx, state2) {
7323
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "CommaExpressionSpread", CommaExpressionSpread$$);
7324
+ }
7325
+ var AssignmentExpressionSpread$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
7326
+ var expression = $3;
7327
+ return {
7328
+ type: "SpreadElement",
7329
+ children: $0,
7330
+ expression,
7331
+ names: expression.names
7332
+ };
7333
+ }), AssignmentExpressionSpread$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(AssignmentExpression, (0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot))), function($skip, $loc, $0, $1, $2) {
7334
+ var expression = $1;
7335
+ return $2 ? {
7336
+ type: "SpreadElement",
7337
+ children: [...$2, $1],
7338
+ expression,
7339
+ names: expression.names
7340
+ } : $1;
7341
+ }), AssignmentExpressionSpread$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
7342
+ var expression = $3;
7343
+ return {
7344
+ type: "SpreadElement",
7345
+ children: $0,
7346
+ expression,
7347
+ names: expression.names
7348
+ };
7349
+ }), AssignmentExpressionSpread$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(AssignmentExpression, (0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot))), function($skip, $loc, $0, $1, $2) {
7350
+ var expression = $1;
7351
+ return $2 ? {
7352
+ type: "SpreadElement",
7353
+ children: [...$2, $1],
7354
+ expression,
7355
+ names: expression.names
7356
+ } : $1;
7357
+ }), AssignmentExpressionSpread$$ = [AssignmentExpressionSpread$0, AssignmentExpressionSpread$1, AssignmentExpressionSpread$2, AssignmentExpressionSpread$3];
7358
+ function AssignmentExpressionSpread(ctx, state2) {
7359
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "AssignmentExpressionSpread", AssignmentExpressionSpread$$);
7360
+ }
7019
7361
  var Arguments$0 = ExplicitArguments, Arguments$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(ForbidTrailingMemberProperty, (0, import_lib2.$E)(ImplicitArguments), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
7020
7362
  var args = $2;
7021
7363
  return args || $skip;
@@ -7878,13 +8220,28 @@ ${js}`
7878
8220
  var FieldDefinition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeClassesEnabled, ClassElementName, (0, import_lib2.$E)(_), Colon, __, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7879
8221
  var id = $2, exp = $6;
7880
8222
  switch (exp.type) {
7881
- // TODO: => functions
7882
- case "FunctionExpression":
8223
+ case "FunctionExpression": {
7883
8224
  let fnTokenIndex = exp.children.findIndex((c) => c?.token?.startsWith("function")), children = exp.children.slice();
7884
8225
  return exp.generator ? children.splice(fnTokenIndex, 2, children[fnTokenIndex + 1], id) : children.splice(fnTokenIndex, 1, id), {
7885
8226
  ...exp,
8227
+ type: "MethodDefinition",
8228
+ name: id.name,
8229
+ signature: { ...exp.signature, id, name: id.name },
7886
8230
  children
7887
8231
  };
8232
+ }
8233
+ case "ArrowFunction": {
8234
+ let block = { ...exp.block }, children = exp.children.filter((c) => !(Array.isArray(c) && c[c.length - 1]?.token?.includes("=>"))).map((c) => c === exp.block ? block : c);
8235
+ return children.unshift(id), exp = {
8236
+ ...exp,
8237
+ type: "MethodDefinition",
8238
+ name: id.name,
8239
+ signature: { ...exp.signature, id, name: id.name },
8240
+ block,
8241
+ children,
8242
+ autoBind: !0
8243
+ }, block.parent = exp, braceBlock(block), exp;
8244
+ }
7888
8245
  default:
7889
8246
  return {
7890
8247
  type: "FieldDefinition",
@@ -7893,26 +8250,37 @@ ${js}`
7893
8250
  };
7894
8251
  }
7895
8252
  }), FieldDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertReadonly, ClassElementName, (0, import_lib2.$E)(TypeSuffix), __, ConstAssignment, MaybeNestedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7896
- var r = $1, id = $2, typeSuffix = $3, ca = $5;
7897
- return r.children[0].$loc = {
8253
+ var readonly = $1, id = $2, typeSuffix = $3, ca = $5;
8254
+ return readonly.children[0].$loc = {
7898
8255
  pos: ca.$loc.pos - 1,
7899
8256
  length: ca.$loc.length + 1
7900
8257
  }, {
7901
8258
  type: "FieldDefinition",
7902
8259
  id,
7903
8260
  typeSuffix,
7904
- children: $0
8261
+ children: $0,
8262
+ readonly
8263
+ };
8264
+ }), FieldDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeClassesEnabled, ActualAssignment), function($skip, $loc, $0, $1, $2) {
8265
+ var assignment = $2;
8266
+ return {
8267
+ type: "CoffeeClassPrivate",
8268
+ children: [assignment],
8269
+ assignment
7905
8270
  };
7906
- }), FieldDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(Abstract, (0, import_lib2.$E)(_))), (0, import_lib2.$E)((0, import_lib2.$S)(Readonly, (0, import_lib2.$E)(_))), ClassElementName, (0, import_lib2.$E)(TypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7907
- var id = $3, typeSuffix = $4;
8271
+ }), FieldDefinition$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(Abstract, (0, import_lib2.$E)(_))), (0, import_lib2.$E)((0, import_lib2.$S)(Readonly, (0, import_lib2.$E)(_))), ClassElementName, (0, import_lib2.$E)(TypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8272
+ var abstract = $1, readonly = $2, id = $3, typeSuffix = $4, initializer = $5;
7908
8273
  return {
7909
8274
  type: "FieldDefinition",
7910
8275
  children: $0,
7911
- ts: $1 ? !0 : void 0,
8276
+ ts: abstract ? !0 : void 0,
7912
8277
  id,
7913
- typeSuffix
8278
+ typeSuffix,
8279
+ abstract,
8280
+ readonly,
8281
+ initializer
7914
8282
  };
7915
- }), FieldDefinition$$ = [FieldDefinition$0, FieldDefinition$1, FieldDefinition$2];
8283
+ }), FieldDefinition$$ = [FieldDefinition$0, FieldDefinition$1, FieldDefinition$2, FieldDefinition$3];
7916
8284
  function FieldDefinition(ctx, state2) {
7917
8285
  return (0, import_lib2.$EVENT_C)(ctx, state2, "FieldDefinition", FieldDefinition$$);
7918
8286
  }
@@ -8524,7 +8892,7 @@ ${js}`
8524
8892
  var expression = $2;
8525
8893
  return {
8526
8894
  type: "PinPattern",
8527
- children: $0,
8895
+ children: [expression],
8528
8896
  expression
8529
8897
  };
8530
8898
  }), PinPattern$1 = (0, import_lib2.$TV)(ActualMemberExpression, function($skip, $loc, $0, $1) {
@@ -8648,30 +9016,26 @@ ${js}`
8648
9016
  function NestedBindingPropertyList(ctx, state2) {
8649
9017
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedBindingPropertyList", NestedBindingPropertyList$0);
8650
9018
  }
8651
- var BindingProperty$0 = BindingRestProperty, BindingProperty$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), PropertyName, (0, import_lib2.$E)(_), Colon, (0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingIdentifier, BindingPattern), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8652
- var name = $2, value = $6, typeSuffix = $7, initializer = $8;
9019
+ var BindingProperty$0 = BindingRestProperty, BindingProperty$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), PropertyName, (0, import_lib2.$E)(Caret), (0, import_lib2.$E)(_), Colon, (0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingIdentifier, BindingPattern), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9020
+ var ws1 = $1, name = $2, bind = $3, ws2 = $4, colon = $5, ws3 = $6, value = $7, typeSuffix = $8, initializer = $9;
8653
9021
  return {
8654
9022
  type: "BindingProperty",
8655
- children: [$1, name, $3, $4, $5, value, initializer],
9023
+ children: [ws1, name, ws2, colon, ws3, value, initializer],
8656
9024
  // omit typeSuffix
8657
9025
  name,
8658
9026
  value,
8659
9027
  typeSuffix,
8660
9028
  initializer,
8661
- names: value.names
9029
+ names: value.names,
9030
+ bind: !!bind
8662
9031
  };
8663
- }), BindingProperty$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$E)(Caret), BindingIdentifier, (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9032
+ }), BindingProperty$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), Caret, BindingIdentifier, (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8664
9033
  var ws = $1, pin = $2, binding = $3, typeSuffix = $4, initializer = $5;
8665
- let children = [ws, binding, initializer];
8666
- return binding.type === "AtBinding" ? {
8667
- type: "AtBindingProperty",
8668
- children,
8669
- binding,
8670
- typeSuffix,
8671
- ref: binding.ref,
8672
- initializer,
8673
- names: []
8674
- } : pin ? (children = [ws, binding], typeSuffix && children.push({
9034
+ let children = [ws, binding];
9035
+ return binding.type === "AtBinding" && children.push({
9036
+ type: "Error",
9037
+ message: "Pinned properties do not yet work with @binding"
9038
+ }), typeSuffix && children.push({
8675
9039
  type: "Error",
8676
9040
  message: "Pinned properties cannot have type annotations"
8677
9041
  }), initializer && children.push({
@@ -8683,9 +9047,22 @@ ${js}`
8683
9047
  name: binding,
8684
9048
  value: {
8685
9049
  type: "PinPattern",
9050
+ children: [binding],
8686
9051
  expression: binding
8687
9052
  }
8688
- }) : {
9053
+ };
9054
+ }), BindingProperty$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), BindingIdentifier, (0, import_lib2.$E)(Caret), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9055
+ var ws = $1, binding = $2, bind = $3, typeSuffix = $4, initializer = $5;
9056
+ let children = [ws, binding, initializer];
9057
+ return binding.type === "AtBinding" ? {
9058
+ type: "AtBindingProperty",
9059
+ children,
9060
+ binding,
9061
+ typeSuffix,
9062
+ ref: binding.ref,
9063
+ initializer,
9064
+ names: []
9065
+ } : {
8689
9066
  type: "BindingProperty",
8690
9067
  children,
8691
9068
  name: binding,
@@ -8693,9 +9070,10 @@ ${js}`
8693
9070
  typeSuffix,
8694
9071
  initializer,
8695
9072
  names: binding.names,
8696
- identifier: binding
9073
+ identifier: binding,
9074
+ bind: !!bind
8697
9075
  };
8698
- }), BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2];
9076
+ }), BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2, BindingProperty$3];
8699
9077
  function BindingProperty(ctx, state2) {
8700
9078
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BindingProperty", BindingProperty$$);
8701
9079
  }
@@ -9127,12 +9505,18 @@ ${js}`
9127
9505
  function BareBlock(ctx, state2) {
9128
9506
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BareBlock", BareBlock$$);
9129
9507
  }
9130
- var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, SingleLineStatements), function(value) {
9508
+ var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, ThenBlock), function(value) {
9131
9509
  return value[1];
9132
9510
  });
9133
9511
  function ThenClause(ctx, state2) {
9134
9512
  return (0, import_lib2.$EVENT)(ctx, state2, "ThenClause", ThenClause$0);
9135
9513
  }
9514
+ var ThenBlock$0 = (0, import_lib2.$T)((0, import_lib2.$S)(NoBlock, EmptyBlock), function(value) {
9515
+ return value[1];
9516
+ }), ThenBlock$1 = ImplicitNestedBlock, ThenBlock$2 = SingleLineStatements, ThenBlock$$ = [ThenBlock$0, ThenBlock$1, ThenBlock$2];
9517
+ function ThenBlock(ctx, state2) {
9518
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ThenBlock", ThenBlock$$);
9519
+ }
9136
9520
  var BracedThenClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Y)(Then), InsertOpenBrace, ThenClause, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
9137
9521
  var open = $2, exp = $3, close = $4;
9138
9522
  let expressions = [exp];
@@ -9360,7 +9744,7 @@ ${js}`
9360
9744
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LiteralContent", LiteralContent$$);
9361
9745
  }
9362
9746
  var NullLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L38, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9363
- return { $loc, token: $1 };
9747
+ return { type: "NullLiteral", $loc, token: $1 };
9364
9748
  });
9365
9749
  function NullLiteral(ctx, state2) {
9366
9750
  return (0, import_lib2.$EVENT)(ctx, state2, "NullLiteral", NullLiteral$0);
@@ -9374,15 +9758,15 @@ ${js}`
9374
9758
  var _BooleanLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
9375
9759
  return value[1];
9376
9760
  }), _BooleanLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L39, '_BooleanLiteral "true"'), (0, import_lib2.$EXPECT)($L40, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9377
- return { $loc, token: $1 };
9761
+ return { type: "BooleanLiteral", $loc, token: $1 };
9378
9762
  }), _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
9379
9763
  function _BooleanLiteral(ctx, state2) {
9380
9764
  return (0, import_lib2.$EVENT_C)(ctx, state2, "_BooleanLiteral", _BooleanLiteral$$);
9381
9765
  }
9382
9766
  var CoffeeScriptBooleanLiteral$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L41, 'CoffeeScriptBooleanLiteral "yes"'), (0, import_lib2.$EXPECT)($L42, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9383
- return { $loc, token: "true" };
9767
+ return { type: "BooleanLiteral", $loc, token: "true" };
9384
9768
  }), CoffeeScriptBooleanLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L43, 'CoffeeScriptBooleanLiteral "no"'), (0, import_lib2.$EXPECT)($L44, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9385
- return { $loc, token: "false" };
9769
+ return { type: "BooleanLiteral", $loc, token: "false" };
9386
9770
  }), CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
9387
9771
  function CoffeeScriptBooleanLiteral(ctx, state2) {
9388
9772
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
@@ -10659,9 +11043,7 @@ ${js}`
10659
11043
  }
10660
11044
  var Statement$0 = KeywordStatement, Statement$1 = VariableStatement, Statement$2 = (0, import_lib2.$T)((0, import_lib2.$S)(IfStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
10661
11045
  return value[0];
10662
- }), Statement$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
10663
- return $1.generator || $1.reduction ? $skip : $1;
10664
- }), Statement$4 = (0, import_lib2.$T)((0, import_lib2.$S)(SwitchStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
11046
+ }), Statement$3 = IterationActualStatement, Statement$4 = (0, import_lib2.$T)((0, import_lib2.$S)(SwitchStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
10665
11047
  return value[0];
10666
11048
  }), Statement$5 = (0, import_lib2.$T)((0, import_lib2.$S)(TryStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
10667
11049
  return value[0];
@@ -10669,6 +11051,12 @@ ${js}`
10669
11051
  function Statement(ctx, state2) {
10670
11052
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Statement", Statement$$);
10671
11053
  }
11054
+ var IterationActualStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
11055
+ return $1.generator || $1.reduction ? $skip : $1;
11056
+ });
11057
+ function IterationActualStatement(ctx, state2) {
11058
+ return (0, import_lib2.$EVENT)(ctx, state2, "IterationActualStatement", IterationActualStatement$0);
11059
+ }
10672
11060
  var ShouldExpressionize$0 = AllowedTrailingCallExpressions, ShouldExpressionize$1 = (0, import_lib2.$S)(NotDedented, Pipe), ShouldExpressionize$2 = BinaryOpRHS, ShouldExpressionize$3 = UnaryPostfix, ShouldExpressionize$$ = [ShouldExpressionize$0, ShouldExpressionize$1, ShouldExpressionize$2, ShouldExpressionize$3];
10673
11061
  function ShouldExpressionize(ctx, state2) {
10674
11062
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ShouldExpressionize", ShouldExpressionize$$);
@@ -10748,8 +11136,8 @@ ${js}`
10748
11136
  function LabelledItem(ctx, state2) {
10749
11137
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LabelledItem", LabelledItem$$);
10750
11138
  }
10751
- var IfStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)(If, Unless), (0, import_lib2.$E)(_), BoundedCondition, Then, BlockOrEmpty, (0, import_lib2.$E)(ElseClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10752
- var kind = $1, ws = $2, condition = $3, block = $5, e = $6;
11139
+ var IfStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)(If, Unless), (0, import_lib2.$E)(_), BoundedCondition, ThenClause, (0, import_lib2.$E)(ElseClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11140
+ var kind = $1, ws = $2, condition = $3, block = $4, e = $5;
10753
11141
  if (kind.negated && (kind = { ...kind, token: "if" }, condition = negateCondition(condition)), block.bare && e) {
10754
11142
  let semicolon = ";";
10755
11143
  block = {
@@ -10946,15 +11334,15 @@ ${js}`
10946
11334
  }
10947
11335
  var ForClause$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(For, (0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$E)(_), Star)), __, ForStatementControlWithWhen), function($skip, $loc, $0, $1, $2, $3, $4) {
10948
11336
  var generator = $2, c = $4;
10949
- let { children, declaration } = c;
10950
- return {
11337
+ let { children, reduction } = c;
11338
+ return generator && reduction && (children = [{
11339
+ type: "Error",
11340
+ message: `Cannot use reduction (${reduction.subtype}) with generators`
11341
+ }, ...children]), {
11342
+ ...c,
10951
11343
  type: "ForStatement",
10952
11344
  children: [$1, ...$3, ...children],
10953
- declaration,
10954
11345
  block: null,
10955
- blockPrefix: c.blockPrefix,
10956
- hoistDec: c.hoistDec,
10957
- reduction: c.reduction,
10958
11346
  generator
10959
11347
  };
10960
11348
  });
@@ -10995,7 +11383,7 @@ ${js}`
10995
11383
  function ForStatementControlWithReduction(ctx, state2) {
10996
11384
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForStatementControlWithReduction", ForStatementControlWithReduction$$);
10997
11385
  }
10998
- var ForReduction$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L120, 'ForReduction "some"'), (0, import_lib2.$EXPECT)($L121, 'ForReduction "every"'), (0, import_lib2.$EXPECT)($L122, 'ForReduction "count"'), (0, import_lib2.$EXPECT)($L123, 'ForReduction "sum"'), (0, import_lib2.$EXPECT)($L124, 'ForReduction "product"'), (0, import_lib2.$EXPECT)($L125, 'ForReduction "min"'), (0, import_lib2.$EXPECT)($L126, 'ForReduction "max"'), (0, import_lib2.$EXPECT)($L127, 'ForReduction "join"')), NonIdContinue, __), function($skip, $loc, $0, $1, $2, $3) {
11386
+ var ForReduction$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L120, 'ForReduction "some"'), (0, import_lib2.$EXPECT)($L121, 'ForReduction "every"'), (0, import_lib2.$EXPECT)($L122, 'ForReduction "count"'), (0, import_lib2.$EXPECT)($L123, 'ForReduction "first"'), (0, import_lib2.$EXPECT)($L124, 'ForReduction "sum"'), (0, import_lib2.$EXPECT)($L125, 'ForReduction "product"'), (0, import_lib2.$EXPECT)($L126, 'ForReduction "min"'), (0, import_lib2.$EXPECT)($L127, 'ForReduction "max"'), (0, import_lib2.$EXPECT)($L128, 'ForReduction "join"'), (0, import_lib2.$EXPECT)($L129, 'ForReduction "concat"')), NonIdContinue, __), function($skip, $loc, $0, $1, $2, $3) {
10999
11387
  var subtype = $1, ws = $3;
11000
11388
  return {
11001
11389
  type: "ForReduction",
@@ -11677,7 +12065,7 @@ ${js}`
11677
12065
  function RestoreAll(ctx, state2) {
11678
12066
  return (0, import_lib2.$EVENT)(ctx, state2, "RestoreAll", RestoreAll$0);
11679
12067
  }
11680
- var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpression), function($skip, $loc, $0, $1) {
12068
+ var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpressionSpread), function($skip, $loc, $0, $1) {
11681
12069
  return makeExpressionStatement($1);
11682
12070
  });
11683
12071
  function CommaExpressionStatement(ctx, state2) {
@@ -11738,19 +12126,19 @@ ${js}`
11738
12126
  function ThrowStatement(ctx, state2) {
11739
12127
  return (0, import_lib2.$EVENT)(ctx, state2, "ThrowStatement", ThrowStatement$0);
11740
12128
  }
11741
- var Break$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L128, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12129
+ var Break$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L130, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11742
12130
  return { $loc, token: $1 };
11743
12131
  });
11744
12132
  function Break(ctx, state2) {
11745
12133
  return (0, import_lib2.$EVENT)(ctx, state2, "Break", Break$0);
11746
12134
  }
11747
- var Continue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L129, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12135
+ var Continue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L131, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11748
12136
  return { $loc, token: $1 };
11749
12137
  });
11750
12138
  function Continue(ctx, state2) {
11751
12139
  return (0, import_lib2.$EVENT)(ctx, state2, "Continue", Continue$0);
11752
12140
  }
11753
- var Debugger$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L130, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12141
+ var Debugger$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L132, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11754
12142
  return { $loc, token: $1 };
11755
12143
  });
11756
12144
  function Debugger(ctx, state2) {
@@ -11797,7 +12185,7 @@ ${js}`
11797
12185
  function MaybeParenNestedExpression(ctx, state2) {
11798
12186
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeParenNestedExpression", MaybeParenNestedExpression$$);
11799
12187
  }
11800
- var ImportDeclaration$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Import, _, Identifier, (0, import_lib2.$E)(_), Equals, __, (0, import_lib2.$EXPECT)($L131, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12188
+ var ImportDeclaration$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Import, _, Identifier, (0, import_lib2.$E)(_), Equals, __, (0, import_lib2.$EXPECT)($L133, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11801
12189
  return {
11802
12190
  type: "ImportDeclaration",
11803
12191
  children: [[
@@ -11941,7 +12329,7 @@ ${js}`
11941
12329
  function ImpliedFrom(ctx, state2) {
11942
12330
  return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFrom", ImpliedFrom$0);
11943
12331
  }
11944
- var ImportAssertion$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L132, 'ImportAssertion "with"'), (0, import_lib2.$EXPECT)($L133, 'ImportAssertion "assert"')), NonIdContinue, (0, import_lib2.$E)(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12332
+ var ImportAssertion$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L134, 'ImportAssertion "with"'), (0, import_lib2.$EXPECT)($L135, 'ImportAssertion "assert"')), NonIdContinue, (0, import_lib2.$E)(_), ObjectLiteral), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11945
12333
  var keyword = $2, object = $5;
11946
12334
  return {
11947
12335
  type: "ImportAssertion",
@@ -12185,19 +12573,19 @@ ${js}`
12185
12573
  function LexicalDeclaration(ctx, state2) {
12186
12574
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LexicalDeclaration", LexicalDeclaration$$);
12187
12575
  }
12188
- var ConstAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L134, 'ConstAssignment ":="'), (0, import_lib2.$EXPECT)($L135, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
12576
+ var ConstAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L136, 'ConstAssignment ":="'), (0, import_lib2.$EXPECT)($L137, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
12189
12577
  return { $loc, token: "=", decl: "const " };
12190
12578
  });
12191
12579
  function ConstAssignment(ctx, state2) {
12192
12580
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstAssignment", ConstAssignment$0);
12193
12581
  }
12194
- var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L136, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12582
+ var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L138, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12195
12583
  return { $loc, token: "=", decl: "let " };
12196
12584
  });
12197
12585
  function LetAssignment(ctx, state2) {
12198
12586
  return (0, import_lib2.$EVENT)(ctx, state2, "LetAssignment", LetAssignment$0);
12199
12587
  }
12200
- var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L137, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12588
+ var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L139, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12201
12589
  return { $loc, token: "=" };
12202
12590
  });
12203
12591
  function TypeAssignment(ctx, state2) {
@@ -12391,7 +12779,12 @@ ${js}`
12391
12779
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
12392
12780
  }
12393
12781
  var RegularExpressionLiteral$0 = HeregexLiteral, RegularExpressionLiteral$1 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L77, 'RegularExpressionLiteral "/"'), RegularExpressionBody, (0, import_lib2.$EXPECT)($L77, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
12394
- return { type: "RegularExpressionLiteral", $loc, token: $1 };
12782
+ var raw = $0;
12783
+ return {
12784
+ type: "RegularExpressionLiteral",
12785
+ raw,
12786
+ children: [{ $loc, token: raw }]
12787
+ };
12395
12788
  }), RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
12396
12789
  function RegularExpressionLiteral(ctx, state2) {
12397
12790
  return (0, import_lib2.$EVENT_C)(ctx, state2, "RegularExpressionLiteral", RegularExpressionLiteral$$);
@@ -12568,7 +12961,7 @@ ${js}`
12568
12961
  function MultiLineComment(ctx, state2) {
12569
12962
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
12570
12963
  }
12571
- var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L138, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R70, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
12964
+ var JSMultiLineComment$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L140, 'JSMultiLineComment "/*"'), (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($L141, 'JSMultiLineComment "*/"')), (0, import_lib2.$EXPECT)($R70, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L141, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
12572
12965
  return { type: "Comment", $loc, token: $1 };
12573
12966
  });
12574
12967
  function JSMultiLineComment(ctx, state2) {
@@ -12612,7 +13005,7 @@ ${js}`
12612
13005
  }
12613
13006
  var NonNewlineWhitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R23, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12614
13007
  return { $loc, token: $0 };
12615
- }), NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L140, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
13008
+ }), NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
12616
13009
  return " ";
12617
13010
  }), NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
12618
13011
  function NonNewlineWhitespace(ctx, state2) {
@@ -12653,7 +13046,7 @@ ${js}`
12653
13046
  function StatementDelimiter(ctx, state2) {
12654
13047
  return (0, import_lib2.$EVENT_C)(ctx, state2, "StatementDelimiter", StatementDelimiter$$);
12655
13048
  }
12656
- var ClosingDelimiter$0 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L37, 'ClosingDelimiter "}"'), (0, import_lib2.$EXPECT)($L141, 'ClosingDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'ClosingDelimiter "]"'))));
13049
+ var ClosingDelimiter$0 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L37, 'ClosingDelimiter "}"'), (0, import_lib2.$EXPECT)($L143, 'ClosingDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'ClosingDelimiter "]"'))));
12657
13050
  function ClosingDelimiter(ctx, state2) {
12658
13051
  return (0, import_lib2.$EVENT)(ctx, state2, "ClosingDelimiter", ClosingDelimiter$0);
12659
13052
  }
@@ -12676,7 +13069,7 @@ ${js}`
12676
13069
  function Loc(ctx, state2) {
12677
13070
  return (0, import_lib2.$EVENT)(ctx, state2, "Loc", Loc$0);
12678
13071
  }
12679
- var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
13072
+ var Abstract$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Abstract "abstract"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'Abstract " "')))), function($skip, $loc, $0, $1) {
12680
13073
  return { $loc, token: $1, ts: !0 };
12681
13074
  });
12682
13075
  function Abstract(ctx, state2) {
@@ -12688,43 +13081,43 @@ ${js}`
12688
13081
  function Ampersand(ctx, state2) {
12689
13082
  return (0, import_lib2.$EVENT)(ctx, state2, "Ampersand", Ampersand$0);
12690
13083
  }
12691
- var As$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L143, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13084
+ var As$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L145, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12692
13085
  return { $loc, token: $1 };
12693
13086
  });
12694
13087
  function As(ctx, state2) {
12695
13088
  return (0, import_lib2.$EVENT)(ctx, state2, "As", As$0);
12696
13089
  }
12697
- var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'At "@"'), function($skip, $loc, $0, $1) {
13090
+ var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'At "@"'), function($skip, $loc, $0, $1) {
12698
13091
  return { $loc, token: $1 };
12699
13092
  });
12700
13093
  function At(ctx, state2) {
12701
13094
  return (0, import_lib2.$EVENT)(ctx, state2, "At", At$0);
12702
13095
  }
12703
- var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L145, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
13096
+ var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L147, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
12704
13097
  return { $loc, token: "@" };
12705
13098
  });
12706
13099
  function AtAt(ctx, state2) {
12707
13100
  return (0, import_lib2.$EVENT)(ctx, state2, "AtAt", AtAt$0);
12708
13101
  }
12709
- var Async$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L146, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13102
+ var Async$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L148, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12710
13103
  return { $loc, token: $1, type: "Async" };
12711
13104
  });
12712
13105
  function Async(ctx, state2) {
12713
13106
  return (0, import_lib2.$EVENT)(ctx, state2, "Async", Async$0);
12714
13107
  }
12715
- var Await$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L147, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13108
+ var Await$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L149, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12716
13109
  return { $loc, token: $1, type: "Await" };
12717
13110
  });
12718
13111
  function Await(ctx, state2) {
12719
13112
  return (0, import_lib2.$EVENT)(ctx, state2, "Await", Await$0);
12720
13113
  }
12721
- var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L148, 'Backtick "`"'), function($skip, $loc, $0, $1) {
13114
+ var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L150, 'Backtick "`"'), function($skip, $loc, $0, $1) {
12722
13115
  return { $loc, token: $1 };
12723
13116
  });
12724
13117
  function Backtick(ctx, state2) {
12725
13118
  return (0, import_lib2.$EVENT)(ctx, state2, "Backtick", Backtick$0);
12726
13119
  }
12727
- var By$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L149, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13120
+ var By$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L151, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12728
13121
  return { $loc, token: $1 };
12729
13122
  });
12730
13123
  function By(ctx, state2) {
@@ -12736,19 +13129,19 @@ ${js}`
12736
13129
  function Caret(ctx, state2) {
12737
13130
  return (0, import_lib2.$EVENT)(ctx, state2, "Caret", Caret$0);
12738
13131
  }
12739
- var Case$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L150, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13132
+ var Case$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L152, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12740
13133
  return { $loc, token: $1 };
12741
13134
  });
12742
13135
  function Case(ctx, state2) {
12743
13136
  return (0, import_lib2.$EVENT)(ctx, state2, "Case", Case$0);
12744
13137
  }
12745
- var Catch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L151, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13138
+ var Catch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L153, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12746
13139
  return { $loc, token: $1 };
12747
13140
  });
12748
13141
  function Catch(ctx, state2) {
12749
13142
  return (0, import_lib2.$EVENT)(ctx, state2, "Catch", Catch$0);
12750
13143
  }
12751
- var Class$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L152, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13144
+ var Class$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L154, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12752
13145
  return { $loc, token: $1 };
12753
13146
  });
12754
13147
  function Class(ctx, state2) {
@@ -12772,13 +13165,13 @@ ${js}`
12772
13165
  function CloseBracket(ctx, state2) {
12773
13166
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseBracket", CloseBracket$0);
12774
13167
  }
12775
- var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L141, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
13168
+ var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L143, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12776
13169
  return { $loc, token: $1 };
12777
13170
  });
12778
13171
  function CloseParen(ctx, state2) {
12779
13172
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseParen", CloseParen$0);
12780
13173
  }
12781
- var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L153, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
13174
+ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L155, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
12782
13175
  return { $loc, token: "${" };
12783
13176
  });
12784
13177
  function CoffeeSubstitutionStart(ctx, state2) {
@@ -12796,37 +13189,37 @@ ${js}`
12796
13189
  function Comma(ctx, state2) {
12797
13190
  return (0, import_lib2.$EVENT)(ctx, state2, "Comma", Comma$0);
12798
13191
  }
12799
- var Comptime$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L154, 'Comptime "comptime"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L16, 'Comptime ":"'))), function($skip, $loc, $0, $1, $2, $3) {
13192
+ var Comptime$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L156, 'Comptime "comptime"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L16, 'Comptime ":"'))), function($skip, $loc, $0, $1, $2, $3) {
12800
13193
  return { $loc, token: $1 };
12801
13194
  });
12802
13195
  function Comptime(ctx, state2) {
12803
13196
  return (0, import_lib2.$EVENT)(ctx, state2, "Comptime", Comptime$0);
12804
13197
  }
12805
- var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
13198
+ var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
12806
13199
  return { $loc, token: "constructor" };
12807
13200
  });
12808
13201
  function ConstructorShorthand(ctx, state2) {
12809
13202
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstructorShorthand", ConstructorShorthand$0);
12810
13203
  }
12811
- var Declare$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L155, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13204
+ var Declare$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L157, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12812
13205
  return { $loc, token: $1 };
12813
13206
  });
12814
13207
  function Declare(ctx, state2) {
12815
13208
  return (0, import_lib2.$EVENT)(ctx, state2, "Declare", Declare$0);
12816
13209
  }
12817
- var Default$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L156, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13210
+ var Default$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L158, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12818
13211
  return { $loc, token: $1 };
12819
13212
  });
12820
13213
  function Default(ctx, state2) {
12821
13214
  return (0, import_lib2.$EVENT)(ctx, state2, "Default", Default$0);
12822
13215
  }
12823
- var Delete$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L157, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13216
+ var Delete$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L159, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12824
13217
  return { $loc, token: $1 };
12825
13218
  });
12826
13219
  function Delete(ctx, state2) {
12827
13220
  return (0, import_lib2.$EVENT)(ctx, state2, "Delete", Delete$0);
12828
13221
  }
12829
- var Do$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L158, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13222
+ var Do$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L160, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12830
13223
  return { $loc, token: $1 };
12831
13224
  });
12832
13225
  function Do(ctx, state2) {
@@ -12844,17 +13237,17 @@ ${js}`
12844
13237
  function Dot(ctx, state2) {
12845
13238
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Dot", Dot$$);
12846
13239
  }
12847
- var DotDot$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L159, 'DotDot ".."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
13240
+ var DotDot$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L161, 'DotDot ".."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
12848
13241
  return { $loc, token: $1 };
12849
- }), DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L160, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
13242
+ }), DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
12850
13243
  return { $loc, token: ".." };
12851
13244
  }), DotDot$$ = [DotDot$0, DotDot$1];
12852
13245
  function DotDot(ctx, state2) {
12853
13246
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DotDot", DotDot$$);
12854
13247
  }
12855
- var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L161, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
13248
+ var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12856
13249
  return { $loc, token: $1 };
12857
- }), DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
13250
+ }), DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
12858
13251
  return { $loc, token: "..." };
12859
13252
  }), DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
12860
13253
  function DotDotDot(ctx, state2) {
@@ -12866,31 +13259,31 @@ ${js}`
12866
13259
  function InsertDotDotDot(ctx, state2) {
12867
13260
  return (0, import_lib2.$EVENT)(ctx, state2, "InsertDotDotDot", InsertDotDotDot$0);
12868
13261
  }
12869
- var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
13262
+ var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12870
13263
  return { $loc, token: $1 };
12871
13264
  });
12872
13265
  function DoubleColon(ctx, state2) {
12873
13266
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColon", DoubleColon$0);
12874
13267
  }
12875
- var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
13268
+ var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
12876
13269
  return { $loc, token: ":" };
12877
13270
  });
12878
13271
  function DoubleColonAsColon(ctx, state2) {
12879
13272
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColonAsColon", DoubleColonAsColon$0);
12880
13273
  }
12881
- var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
13274
+ var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L166, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12882
13275
  return { $loc, token: $1 };
12883
13276
  });
12884
13277
  function DoubleQuote(ctx, state2) {
12885
13278
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleQuote", DoubleQuote$0);
12886
13279
  }
12887
- var Each$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L165, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13280
+ var Each$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L167, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12888
13281
  return { $loc, token: $1 };
12889
13282
  });
12890
13283
  function Each(ctx, state2) {
12891
13284
  return (0, import_lib2.$EVENT)(ctx, state2, "Each", Each$0);
12892
13285
  }
12893
- var Else$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L166, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13286
+ var Else$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L168, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12894
13287
  return { $loc, token: $1 };
12895
13288
  });
12896
13289
  function Else(ctx, state2) {
@@ -12902,61 +13295,61 @@ ${js}`
12902
13295
  function Equals(ctx, state2) {
12903
13296
  return (0, import_lib2.$EVENT)(ctx, state2, "Equals", Equals$0);
12904
13297
  }
12905
- var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L167, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
13298
+ var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L169, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
12906
13299
  return { $loc, token: $1 };
12907
13300
  });
12908
13301
  function ExclamationPoint(ctx, state2) {
12909
13302
  return (0, import_lib2.$EVENT)(ctx, state2, "ExclamationPoint", ExclamationPoint$0);
12910
13303
  }
12911
- var Export$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L168, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13304
+ var Export$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L170, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12912
13305
  return { $loc, token: $1 };
12913
13306
  });
12914
13307
  function Export(ctx, state2) {
12915
13308
  return (0, import_lib2.$EVENT)(ctx, state2, "Export", Export$0);
12916
13309
  }
12917
- var Extends$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L169, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13310
+ var Extends$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L171, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12918
13311
  return { $loc, token: $1 };
12919
13312
  });
12920
13313
  function Extends(ctx, state2) {
12921
13314
  return (0, import_lib2.$EVENT)(ctx, state2, "Extends", Extends$0);
12922
13315
  }
12923
- var Finally$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L170, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13316
+ var Finally$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L172, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12924
13317
  return { $loc, token: $1 };
12925
13318
  });
12926
13319
  function Finally(ctx, state2) {
12927
13320
  return (0, import_lib2.$EVENT)(ctx, state2, "Finally", Finally$0);
12928
13321
  }
12929
- var For$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L171, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13322
+ var For$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L173, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12930
13323
  return { $loc, token: $1 };
12931
13324
  });
12932
13325
  function For(ctx, state2) {
12933
13326
  return (0, import_lib2.$EVENT)(ctx, state2, "For", For$0);
12934
13327
  }
12935
- var From$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L172, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13328
+ var From$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L174, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12936
13329
  return { $loc, token: $1 };
12937
13330
  });
12938
13331
  function From(ctx, state2) {
12939
13332
  return (0, import_lib2.$EVENT)(ctx, state2, "From", From$0);
12940
13333
  }
12941
- var Function$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L173, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13334
+ var Function$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L175, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12942
13335
  return { $loc, token: $1 };
12943
13336
  });
12944
13337
  function Function2(ctx, state2) {
12945
13338
  return (0, import_lib2.$EVENT)(ctx, state2, "Function", Function$0);
12946
13339
  }
12947
- var GetOrSet$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L174, 'GetOrSet "get"'), (0, import_lib2.$EXPECT)($L175, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13340
+ var GetOrSet$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L176, 'GetOrSet "get"'), (0, import_lib2.$EXPECT)($L177, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12948
13341
  return { $loc, token: $1, type: "GetOrSet" };
12949
13342
  });
12950
13343
  function GetOrSet(ctx, state2) {
12951
13344
  return (0, import_lib2.$EVENT)(ctx, state2, "GetOrSet", GetOrSet$0);
12952
13345
  }
12953
- var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L176, 'Hash "#"'), function($skip, $loc, $0, $1) {
13346
+ var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L178, 'Hash "#"'), function($skip, $loc, $0, $1) {
12954
13347
  return { $loc, token: $1 };
12955
13348
  });
12956
13349
  function Hash(ctx, state2) {
12957
13350
  return (0, import_lib2.$EVENT)(ctx, state2, "Hash", Hash$0);
12958
13351
  }
12959
- var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L177, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
13352
+ var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L179, 'If "if"'), NonIdContinue, (0, import_lib2.$E)((0, import_lib2.$EXPECT)($L18, 'If " "')))), function($skip, $loc, $0, $1) {
12960
13353
  return { $loc, token: $1 };
12961
13354
  });
12962
13355
  function If(ctx, state2) {
@@ -12968,67 +13361,67 @@ ${js}`
12968
13361
  function Import(ctx, state2) {
12969
13362
  return (0, import_lib2.$EVENT)(ctx, state2, "Import", Import$0);
12970
13363
  }
12971
- var In$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13364
+ var In$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L180, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12972
13365
  return { $loc, token: $1 };
12973
13366
  });
12974
13367
  function In(ctx, state2) {
12975
13368
  return (0, import_lib2.$EVENT)(ctx, state2, "In", In$0);
12976
13369
  }
12977
- var Infer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L179, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13370
+ var Infer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L181, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12978
13371
  return { $loc, token: $1 };
12979
13372
  });
12980
13373
  function Infer(ctx, state2) {
12981
13374
  return (0, import_lib2.$EVENT)(ctx, state2, "Infer", Infer$0);
12982
13375
  }
12983
- var LetOrConst$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L180, 'LetOrConst "let"'), (0, import_lib2.$EXPECT)($L181, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13376
+ var LetOrConst$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L182, 'LetOrConst "let"'), (0, import_lib2.$EXPECT)($L183, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12984
13377
  return { $loc, token: $1 };
12985
13378
  });
12986
13379
  function LetOrConst(ctx, state2) {
12987
13380
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConst", LetOrConst$0);
12988
13381
  }
12989
- var Const$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L181, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13382
+ var Const$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L183, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12990
13383
  return { $loc, token: $1 };
12991
13384
  });
12992
13385
  function Const(ctx, state2) {
12993
13386
  return (0, import_lib2.$EVENT)(ctx, state2, "Const", Const$0);
12994
13387
  }
12995
- var Is$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L182, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13388
+ var Is$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L184, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12996
13389
  return { $loc, token: $1 };
12997
13390
  });
12998
13391
  function Is(ctx, state2) {
12999
13392
  return (0, import_lib2.$EVENT)(ctx, state2, "Is", Is$0);
13000
13393
  }
13001
- var LetOrConstOrVar$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L180, 'LetOrConstOrVar "let"'), (0, import_lib2.$EXPECT)($L181, 'LetOrConstOrVar "const"'), (0, import_lib2.$EXPECT)($L183, 'LetOrConstOrVar "var"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13394
+ var LetOrConstOrVar$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L182, 'LetOrConstOrVar "let"'), (0, import_lib2.$EXPECT)($L183, 'LetOrConstOrVar "const"'), (0, import_lib2.$EXPECT)($L185, 'LetOrConstOrVar "var"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13002
13395
  return { $loc, token: $1 };
13003
13396
  });
13004
13397
  function LetOrConstOrVar(ctx, state2) {
13005
13398
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConstOrVar", LetOrConstOrVar$0);
13006
13399
  }
13007
- var Like$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L184, 'Like "like"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13400
+ var Like$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L186, 'Like "like"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13008
13401
  return { $loc, token: $1 };
13009
13402
  });
13010
13403
  function Like(ctx, state2) {
13011
13404
  return (0, import_lib2.$EVENT)(ctx, state2, "Like", Like$0);
13012
13405
  }
13013
- var Loop$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L185, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13406
+ var Loop$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L187, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13014
13407
  return { $loc, token: "while" };
13015
13408
  });
13016
13409
  function Loop(ctx, state2) {
13017
13410
  return (0, import_lib2.$EVENT)(ctx, state2, "Loop", Loop$0);
13018
13411
  }
13019
- var New$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L186, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13412
+ var New$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L188, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13020
13413
  return { $loc, token: $1 };
13021
13414
  });
13022
13415
  function New(ctx, state2) {
13023
13416
  return (0, import_lib2.$EVENT)(ctx, state2, "New", New$0);
13024
13417
  }
13025
- var Not$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L187, 'Not "not"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L16, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
13418
+ var Not$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L189, 'Not "not"'), NonIdContinue, (0, import_lib2.$N)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($L16, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
13026
13419
  return { $loc, token: "!" };
13027
13420
  });
13028
13421
  function Not(ctx, state2) {
13029
13422
  return (0, import_lib2.$EVENT)(ctx, state2, "Not", Not$0);
13030
13423
  }
13031
- var Of$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L188, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13424
+ var Of$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L190, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13032
13425
  return { $loc, token: $1 };
13033
13426
  });
13034
13427
  function Of(ctx, state2) {
@@ -13046,7 +13439,7 @@ ${js}`
13046
13439
  function OpenBrace(ctx, state2) {
13047
13440
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenBrace", OpenBrace$0);
13048
13441
  }
13049
- var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L189, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
13442
+ var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L191, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
13050
13443
  return { $loc, token: $1 };
13051
13444
  });
13052
13445
  function OpenBracket(ctx, state2) {
@@ -13058,47 +13451,47 @@ ${js}`
13058
13451
  function OpenParen(ctx, state2) {
13059
13452
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenParen", OpenParen$0);
13060
13453
  }
13061
- var Operator$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L190, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13454
+ var Operator$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L192, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13062
13455
  return { $loc, token: $1 };
13063
13456
  });
13064
13457
  function Operator(ctx, state2) {
13065
13458
  return (0, import_lib2.$EVENT)(ctx, state2, "Operator", Operator$0);
13066
13459
  }
13067
- var Override$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L191, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13460
+ var Override$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L193, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13068
13461
  return { $loc, token: $1, ts: !0 };
13069
13462
  });
13070
13463
  function Override(ctx, state2) {
13071
13464
  return (0, import_lib2.$EVENT)(ctx, state2, "Override", Override$0);
13072
13465
  }
13073
- var Own$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L192, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13466
+ var Own$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L194, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13074
13467
  return { $loc, token: $1 };
13075
13468
  });
13076
13469
  function Own(ctx, state2) {
13077
13470
  return (0, import_lib2.$EVENT)(ctx, state2, "Own", Own$0);
13078
13471
  }
13079
- var Public$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L193, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13472
+ var Public$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L195, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13080
13473
  return { $loc, token: $1 };
13081
13474
  });
13082
13475
  function Public(ctx, state2) {
13083
13476
  return (0, import_lib2.$EVENT)(ctx, state2, "Public", Public$0);
13084
13477
  }
13085
- var Private$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L194, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13478
+ var Private$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L196, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13086
13479
  return { $loc, token: $1 };
13087
13480
  });
13088
13481
  function Private(ctx, state2) {
13089
13482
  return (0, import_lib2.$EVENT)(ctx, state2, "Private", Private$0);
13090
13483
  }
13091
- var Protected$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L195, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13484
+ var Protected$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L197, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13092
13485
  return { $loc, token: $1 };
13093
13486
  });
13094
13487
  function Protected(ctx, state2) {
13095
13488
  return (0, import_lib2.$EVENT)(ctx, state2, "Protected", Protected$0);
13096
13489
  }
13097
- var Pipe$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L196, 'Pipe "||>"'), (0, import_lib2.$EXPECT)($L197, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
13490
+ var Pipe$0 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L198, 'Pipe "||>"'), (0, import_lib2.$EXPECT)($L199, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
13098
13491
  return { $loc, token: "||>" };
13099
- }), Pipe$1 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L198, 'Pipe "|>="'), (0, import_lib2.$EXPECT)($L199, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
13492
+ }), Pipe$1 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L200, 'Pipe "|>="'), (0, import_lib2.$EXPECT)($L201, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
13100
13493
  return { $loc, token: "|>=" };
13101
- }), Pipe$2 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L200, 'Pipe "|>"'), (0, import_lib2.$EXPECT)($L201, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
13494
+ }), Pipe$2 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L202, 'Pipe "|>"'), (0, import_lib2.$EXPECT)($L203, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
13102
13495
  return { $loc, token: "|>" };
13103
13496
  }), Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
13104
13497
  function Pipe(ctx, state2) {
@@ -13110,19 +13503,19 @@ ${js}`
13110
13503
  function QuestionMark(ctx, state2) {
13111
13504
  return (0, import_lib2.$EVENT)(ctx, state2, "QuestionMark", QuestionMark$0);
13112
13505
  }
13113
- var Readonly$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13506
+ var Readonly$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L204, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13114
13507
  return { $loc, token: $1, ts: !0 };
13115
13508
  });
13116
13509
  function Readonly(ctx, state2) {
13117
13510
  return (0, import_lib2.$EVENT)(ctx, state2, "Readonly", Readonly$0);
13118
13511
  }
13119
- var Return$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L203, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13512
+ var Return$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L205, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13120
13513
  return { $loc, token: $1 };
13121
13514
  });
13122
13515
  function Return(ctx, state2) {
13123
13516
  return (0, import_lib2.$EVENT)(ctx, state2, "Return", Return$0);
13124
13517
  }
13125
- var Satisfies$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L204, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13518
+ var Satisfies$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L206, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13126
13519
  return { $loc, token: $1 };
13127
13520
  });
13128
13521
  function Satisfies(ctx, state2) {
@@ -13134,7 +13527,7 @@ ${js}`
13134
13527
  function Semicolon(ctx, state2) {
13135
13528
  return (0, import_lib2.$EVENT)(ctx, state2, "Semicolon", Semicolon$0);
13136
13529
  }
13137
- var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L205, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13530
+ var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13138
13531
  return { $loc, token: $1 };
13139
13532
  });
13140
13533
  function SingleQuote(ctx, state2) {
@@ -13146,147 +13539,147 @@ ${js}`
13146
13539
  function Star(ctx, state2) {
13147
13540
  return (0, import_lib2.$EVENT)(ctx, state2, "Star", Star$0);
13148
13541
  }
13149
- var Static$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L206, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13542
+ var Static$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L208, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13150
13543
  return { $loc, token: $1 };
13151
- }), Static$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Static "@"'), (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L4, 'Static "("'), (0, import_lib2.$EXPECT)($L144, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13544
+ }), Static$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L146, 'Static "@"'), (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L4, 'Static "("'), (0, import_lib2.$EXPECT)($L146, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13152
13545
  return { $loc, token: "static " };
13153
13546
  }), Static$$ = [Static$0, Static$1];
13154
13547
  function Static(ctx, state2) {
13155
13548
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Static", Static$$);
13156
13549
  }
13157
- var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13550
+ var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L209, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13158
13551
  return { $loc, token: $1 };
13159
13552
  });
13160
13553
  function SubstitutionStart(ctx, state2) {
13161
13554
  return (0, import_lib2.$EVENT)(ctx, state2, "SubstitutionStart", SubstitutionStart$0);
13162
13555
  }
13163
- var Super$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L208, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13556
+ var Super$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L210, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13164
13557
  return { $loc, token: $1 };
13165
13558
  });
13166
13559
  function Super(ctx, state2) {
13167
13560
  return (0, import_lib2.$EVENT)(ctx, state2, "Super", Super$0);
13168
13561
  }
13169
- var Switch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L209, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13562
+ var Switch$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L211, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13170
13563
  return { $loc, token: $1 };
13171
13564
  });
13172
13565
  function Switch(ctx, state2) {
13173
13566
  return (0, import_lib2.$EVENT)(ctx, state2, "Switch", Switch$0);
13174
13567
  }
13175
- var Target$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L210, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13568
+ var Target$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L212, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13176
13569
  return { $loc, token: $1 };
13177
13570
  });
13178
13571
  function Target(ctx, state2) {
13179
13572
  return (0, import_lib2.$EVENT)(ctx, state2, "Target", Target$0);
13180
13573
  }
13181
- var Then$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L211, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13574
+ var Then$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L213, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13182
13575
  return { $loc, token: "" };
13183
13576
  });
13184
13577
  function Then(ctx, state2) {
13185
13578
  return (0, import_lib2.$EVENT)(ctx, state2, "Then", Then$0);
13186
13579
  }
13187
- var This$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L212, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13580
+ var This$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L214, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13188
13581
  return { $loc, token: $1 };
13189
13582
  });
13190
13583
  function This(ctx, state2) {
13191
13584
  return (0, import_lib2.$EVENT)(ctx, state2, "This", This$0);
13192
13585
  }
13193
- var Throw$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L213, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13586
+ var Throw$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L215, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13194
13587
  return { $loc, token: $1 };
13195
13588
  });
13196
13589
  function Throw(ctx, state2) {
13197
13590
  return (0, import_lib2.$EVENT)(ctx, state2, "Throw", Throw$0);
13198
13591
  }
13199
- var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L214, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13592
+ var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13200
13593
  return { $loc, token: "`" };
13201
13594
  });
13202
13595
  function TripleDoubleQuote(ctx, state2) {
13203
13596
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleQuote", TripleDoubleQuote$0);
13204
13597
  }
13205
- var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L215, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13598
+ var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13206
13599
  return { $loc, token: "`" };
13207
13600
  });
13208
13601
  function TripleSingleQuote(ctx, state2) {
13209
13602
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSingleQuote", TripleSingleQuote$0);
13210
13603
  }
13211
- var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13604
+ var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L218, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13212
13605
  return { $loc, token: "/" };
13213
13606
  });
13214
13607
  function TripleSlash(ctx, state2) {
13215
13608
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlash", TripleSlash$0);
13216
13609
  }
13217
- var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13610
+ var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L219, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13218
13611
  return { $loc, token: "`" };
13219
13612
  });
13220
13613
  function TripleTick(ctx, state2) {
13221
13614
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleTick", TripleTick$0);
13222
13615
  }
13223
- var Try$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L218, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13616
+ var Try$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L220, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13224
13617
  return { $loc, token: $1 };
13225
13618
  });
13226
13619
  function Try(ctx, state2) {
13227
13620
  return (0, import_lib2.$EVENT)(ctx, state2, "Try", Try$0);
13228
13621
  }
13229
- var Typeof$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L219, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13622
+ var Typeof$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L221, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13230
13623
  return { $loc, token: $1 };
13231
13624
  });
13232
13625
  function Typeof(ctx, state2) {
13233
13626
  return (0, import_lib2.$EVENT)(ctx, state2, "Typeof", Typeof$0);
13234
13627
  }
13235
- var Undefined$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L220, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13628
+ var Undefined$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L222, 'Undefined "undefined"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13236
13629
  return { $loc, token: $1 };
13237
13630
  });
13238
13631
  function Undefined(ctx, state2) {
13239
13632
  return (0, import_lib2.$EVENT)(ctx, state2, "Undefined", Undefined$0);
13240
13633
  }
13241
- var Unless$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L221, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13634
+ var Unless$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L223, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13242
13635
  return { $loc, token: $1, negated: !0 };
13243
13636
  });
13244
13637
  function Unless(ctx, state2) {
13245
13638
  return (0, import_lib2.$EVENT)(ctx, state2, "Unless", Unless$0);
13246
13639
  }
13247
- var Until$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L222, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13640
+ var Until$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13248
13641
  return { $loc, token: $1, negated: !0 };
13249
13642
  });
13250
13643
  function Until(ctx, state2) {
13251
13644
  return (0, import_lib2.$EVENT)(ctx, state2, "Until", Until$0);
13252
13645
  }
13253
- var Using$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L223, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13646
+ var Using$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L225, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13254
13647
  return { $loc, token: $1 };
13255
13648
  });
13256
13649
  function Using(ctx, state2) {
13257
13650
  return (0, import_lib2.$EVENT)(ctx, state2, "Using", Using$0);
13258
13651
  }
13259
- var Var$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L183, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13652
+ var Var$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L185, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13260
13653
  return { $loc, token: $1 };
13261
13654
  });
13262
13655
  function Var(ctx, state2) {
13263
13656
  return (0, import_lib2.$EVENT)(ctx, state2, "Var", Var$0);
13264
13657
  }
13265
- var Void$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13658
+ var Void$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13266
13659
  return { $loc, token: $1 };
13267
13660
  });
13268
13661
  function Void(ctx, state2) {
13269
13662
  return (0, import_lib2.$EVENT)(ctx, state2, "Void", Void$0);
13270
13663
  }
13271
- var When$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L225, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13664
+ var When$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L227, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13272
13665
  return { $loc, token: "case" };
13273
13666
  });
13274
13667
  function When(ctx, state2) {
13275
13668
  return (0, import_lib2.$EVENT)(ctx, state2, "When", When$0);
13276
13669
  }
13277
- var While$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13670
+ var While$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L228, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13278
13671
  return { $loc, token: $1 };
13279
13672
  });
13280
13673
  function While(ctx, state2) {
13281
13674
  return (0, import_lib2.$EVENT)(ctx, state2, "While", While$0);
13282
13675
  }
13283
- var With$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L132, 'With "with"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13676
+ var With$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L134, 'With "with"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13284
13677
  return { $loc, token: $1 };
13285
13678
  });
13286
13679
  function With(ctx, state2) {
13287
13680
  return (0, import_lib2.$EVENT)(ctx, state2, "With", With$0);
13288
13681
  }
13289
- var Yield$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L227, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13682
+ var Yield$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L229, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13290
13683
  return { $loc, token: $1, type: "Yield" };
13291
13684
  });
13292
13685
  function Yield(ctx, state2) {
@@ -13346,7 +13739,7 @@ ${js}`
13346
13739
  function JSXElement(ctx, state2) {
13347
13740
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
13348
13741
  }
13349
- var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L228, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13742
+ var JSXSelfClosingElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L19, 'JSXSelfClosingElement "<"'), JSXElementName, (0, import_lib2.$E)(TypeArguments), (0, import_lib2.$E)(JSXAttributes), (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L230, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13350
13743
  return { type: "JSXElement", children: $0, tag: $2 };
13351
13744
  });
13352
13745
  function JSXSelfClosingElement(ctx, state2) {
@@ -13375,7 +13768,7 @@ ${js}`
13375
13768
  function JSXOptionalClosingElement(ctx, state2) {
13376
13769
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
13377
13770
  }
13378
- var JSXClosingElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L229, 'JSXClosingElement "</"'), (0, import_lib2.$E)(Whitespace), JSXElementName, (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXClosingElement ">"'));
13771
+ var JSXClosingElement$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L231, 'JSXClosingElement "</"'), (0, import_lib2.$E)(Whitespace), JSXElementName, (0, import_lib2.$E)(Whitespace), (0, import_lib2.$EXPECT)($L45, 'JSXClosingElement ">"'));
13379
13772
  function JSXClosingElement(ctx, state2) {
13380
13773
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingElement", JSXClosingElement$0);
13381
13774
  }
@@ -13390,7 +13783,7 @@ ${js}`
13390
13783
  // InsertIndent
13391
13784
  "</>"
13392
13785
  ], jsxChildren: children.jsxChildren }) : $skip;
13393
- }), JSXFragment$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeJSXEnabled, (0, import_lib2.$EXPECT)($L230, 'JSXFragment "<>"'), (0, import_lib2.$E)(JSXChildren), (0, import_lib2.$E)(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13786
+ }), JSXFragment$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeJSXEnabled, (0, import_lib2.$EXPECT)($L232, 'JSXFragment "<>"'), (0, import_lib2.$E)(JSXChildren), (0, import_lib2.$E)(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13394
13787
  var children = $3;
13395
13788
  return $0 = $0.slice(1), {
13396
13789
  type: "JSXFragment",
@@ -13401,7 +13794,7 @@ ${js}`
13401
13794
  function JSXFragment(ctx, state2) {
13402
13795
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXFragment", JSXFragment$$);
13403
13796
  }
13404
- var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L230, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13797
+ var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L232, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13405
13798
  return state.JSXTagStack.push(""), $1;
13406
13799
  });
13407
13800
  function PushJSXOpeningFragment(ctx, state2) {
@@ -13413,11 +13806,11 @@ ${js}`
13413
13806
  function JSXOptionalClosingFragment(ctx, state2) {
13414
13807
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
13415
13808
  }
13416
- var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L231, 'JSXClosingFragment "</>"');
13809
+ var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L233, 'JSXClosingFragment "</>"');
13417
13810
  function JSXClosingFragment(ctx, state2) {
13418
13811
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingFragment", JSXClosingFragment$0);
13419
13812
  }
13420
- var JSXElementName$0 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L176, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
13813
+ var JSXElementName$0 = (0, import_lib2.$TV)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L178, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
13421
13814
  return config.defaultElement;
13422
13815
  }), JSXElementName$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)(JSXIdentifierName, (0, import_lib2.$C)((0, import_lib2.$S)(Colon, JSXIdentifierName), (0, import_lib2.$Q)((0, import_lib2.$S)(Dot, JSXIdentifierName))))), JSXElementName$$ = [JSXElementName$0, JSXElementName$1];
13423
13816
  function JSXElementName(ctx, state2) {
@@ -13516,7 +13909,7 @@ ${js}`
13516
13909
  expr,
13517
13910
  "}}"
13518
13911
  ] : last.name ? [last.name, "={", expr, "}"] : $skip;
13519
- }), JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L176, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13912
+ }), JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13520
13913
  return [" ", "id=", $2];
13521
13914
  }), JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13522
13915
  return {
@@ -13749,7 +14142,7 @@ ${js}`
13749
14142
  function JSXChildGeneral(ctx, state2) {
13750
14143
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXChildGeneral", JSXChildGeneral$$);
13751
14144
  }
13752
- var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L232, 'JSXComment "<!--"'), JSXCommentContent, (0, import_lib2.$EXPECT)($L233, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
14145
+ var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L234, 'JSXComment "<!--"'), JSXCommentContent, (0, import_lib2.$EXPECT)($L235, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
13753
14146
  return ["{/*", $2, "*/}"];
13754
14147
  });
13755
14148
  function JSXComment(ctx, state2) {
@@ -13992,37 +14385,37 @@ ${js}`
13992
14385
  function InterfaceExtendsTarget(ctx, state2) {
13993
14386
  return (0, import_lib2.$EVENT)(ctx, state2, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
13994
14387
  }
13995
- var TypeKeyword$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L234, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14388
+ var TypeKeyword$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L236, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13996
14389
  return { $loc, token: $1 };
13997
14390
  });
13998
14391
  function TypeKeyword(ctx, state2) {
13999
14392
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeKeyword", TypeKeyword$0);
14000
14393
  }
14001
- var Enum$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L235, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14394
+ var Enum$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L237, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14002
14395
  return { $loc, token: $1 };
14003
14396
  });
14004
14397
  function Enum(ctx, state2) {
14005
14398
  return (0, import_lib2.$EVENT)(ctx, state2, "Enum", Enum$0);
14006
14399
  }
14007
- var Interface$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L236, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14400
+ var Interface$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L238, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14008
14401
  return { $loc, token: $1 };
14009
14402
  });
14010
14403
  function Interface(ctx, state2) {
14011
14404
  return (0, import_lib2.$EVENT)(ctx, state2, "Interface", Interface$0);
14012
14405
  }
14013
- var Global$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L237, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14406
+ var Global$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L239, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14014
14407
  return { $loc, token: $1 };
14015
14408
  });
14016
14409
  function Global(ctx, state2) {
14017
14410
  return (0, import_lib2.$EVENT)(ctx, state2, "Global", Global$0);
14018
14411
  }
14019
- var Module$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L238, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14412
+ var Module$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L240, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14020
14413
  return { $loc, token: $1 };
14021
14414
  });
14022
14415
  function Module(ctx, state2) {
14023
14416
  return (0, import_lib2.$EVENT)(ctx, state2, "Module", Module$0);
14024
14417
  }
14025
- var Namespace$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L239, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14418
+ var Namespace$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L241, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14026
14419
  return { $loc, token: $1 };
14027
14420
  });
14028
14421
  function Namespace(ctx, state2) {
@@ -14271,7 +14664,7 @@ ${js}`
14271
14664
  function ReturnTypeSuffix(ctx, state2) {
14272
14665
  return (0, import_lib2.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
14273
14666
  }
14274
- var ReturnType$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L240, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib2.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
14667
+ var ReturnType$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$EXPECT)($L242, 'ReturnType "asserts"'), NonIdContinue)), ForbidIndentedApplication, (0, import_lib2.$E)(TypePredicate), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4) {
14275
14668
  var asserts = $1, t = $3;
14276
14669
  return t ? (asserts && (t = {
14277
14670
  type: "TypeAsserts",
@@ -14342,7 +14735,7 @@ ${js}`
14342
14735
  function TypeUnarySuffix(ctx, state2) {
14343
14736
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnarySuffix", TypeUnarySuffix$$);
14344
14737
  }
14345
- var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L241, 'TypeUnaryOp "keyof"'), NonIdContinue), TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'TypeUnaryOp "readonly"'), NonIdContinue), TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
14738
+ var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L243, 'TypeUnaryOp "keyof"'), NonIdContinue), TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L204, 'TypeUnaryOp "readonly"'), NonIdContinue), TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
14346
14739
  function TypeUnaryOp(ctx, state2) {
14347
14740
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnaryOp", TypeUnaryOp$$);
14348
14741
  }
@@ -14364,16 +14757,18 @@ ${js}`
14364
14757
  function TypeIndexedAccess(ctx, state2) {
14365
14758
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeIndexedAccess", TypeIndexedAccess$$);
14366
14759
  }
14367
- var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L242, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14760
+ var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L244, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14368
14761
  return { $loc, token: "unknown" };
14369
14762
  });
14370
14763
  function UnknownAlias(ctx, state2) {
14371
14764
  return (0, import_lib2.$EVENT)(ctx, state2, "UnknownAlias", UnknownAlias$0);
14372
14765
  }
14373
14766
  var TypePrimary$0 = (0, import_lib2.$S)((0, import_lib2.$E)(_), Infer, (0, import_lib2.$E)(_), IdentifierName, (0, import_lib2.$E)((0, import_lib2.$S)(NotDedented, ExtendsToken, Type))), TypePrimary$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), Typeof, (0, import_lib2.$E)(_), UnaryExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
14767
+ var expression = $4;
14374
14768
  return {
14375
- type: "TypeofType",
14376
- children: $0
14769
+ type: "TypeTypeof",
14770
+ children: $0,
14771
+ expression
14377
14772
  };
14378
14773
  }), TypePrimary$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
14379
14774
  return prepend($1, $2);
@@ -14637,11 +15032,11 @@ ${js}`
14637
15032
  var TypeLiteral$0 = TypeTemplateLiteral, TypeLiteral$1 = Literal, TypeLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R14, "TypeLiteral /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1, $2) {
14638
15033
  var sign = $1, num = $2;
14639
15034
  return sign[0] === "+" ? num : $0;
14640
- }), TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15035
+ }), TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14641
15036
  return { type: "VoidType", $loc, token: $1 };
14642
- }), TypeLiteral$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L243, 'TypeLiteral "unique"'), _, (0, import_lib2.$EXPECT)($L244, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
15037
+ }), TypeLiteral$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L245, 'TypeLiteral "unique"'), _, (0, import_lib2.$EXPECT)($L246, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
14643
15038
  return { type: "UniqueSymbolType", children: $0 };
14644
- }), TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L245, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
15039
+ }), TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L247, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14645
15040
  return { $loc, token: "[]" };
14646
15041
  }), TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4, TypeLiteral$5];
14647
15042
  function TypeLiteral(ctx, state2) {
@@ -14657,7 +15052,7 @@ ${js}`
14657
15052
  }
14658
15053
  var InlineInterfacePropertyDelimiter$0 = (0, import_lib2.$C)((0, import_lib2.$S)((0, import_lib2.$E)(_), Semicolon), CommaDelimiter), InlineInterfacePropertyDelimiter$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)((0, import_lib2.$S)(SameLineOrIndentedFurther, InlineBasicInterfaceProperty)), InsertComma), function(value) {
14659
15054
  return value[1];
14660
- }), InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L141, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"')))), InlineInterfacePropertyDelimiter$3 = (0, import_lib2.$Y)(EOS), InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
15055
+ }), InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L143, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"')))), InlineInterfacePropertyDelimiter$3 = (0, import_lib2.$Y)(EOS), InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
14661
15056
  function InlineInterfacePropertyDelimiter(ctx, state2) {
14662
15057
  return (0, import_lib2.$EVENT_C)(ctx, state2, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
14663
15058
  }
@@ -14860,7 +15255,7 @@ ${js}`
14860
15255
  function CivetPrologue(ctx, state2) {
14861
15256
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
14862
15257
  }
14863
- var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L246, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R98, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
15258
+ var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L248, 'CivetPrologueContent "civet"'), NonIdContinue, (0, import_lib2.$Q)(CivetOption), (0, import_lib2.$EXPECT)($R98, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
14864
15259
  var options = $3;
14865
15260
  return {
14866
15261
  type: "CivetPrologue",
@@ -15484,79 +15879,89 @@ ${js}`
15484
15879
  "unscopables"
15485
15880
  ];
15486
15881
 
15487
- // source/sourcemap.civet
15488
- var sourcemap_exports = {};
15489
- __export(sourcemap_exports, {
15882
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\sourcemap.civet.jsx
15883
+ var sourcemap_civet_exports = {};
15884
+ __export(sourcemap_civet_exports, {
15490
15885
  SourceMap: () => SourceMap,
15491
15886
  base64Encode: () => base64Encode,
15492
15887
  locationTable: () => locationTable,
15493
15888
  lookupLineColumn: () => lookupLineColumn
15494
15889
  });
15495
- var locationTable = function(input) {
15890
+ function locationTable(input) {
15496
15891
  let linesRe = /([^\r\n]*)(\r\n|\r|\n|$)/y, lines = [], line = 0, pos = 0, ref;
15497
15892
  for (; (ref = linesRe.exec(input)) && (pos += ref[0].length, lines[line++] = pos, pos !== input.length); )
15498
15893
  ;
15499
15894
  return lines;
15500
- }, lookupLineColumn = function(table, pos) {
15895
+ }
15896
+ function lookupLineColumn(table, pos) {
15501
15897
  let l = 0, prevEnd = 0;
15502
15898
  for (; table[l] <= pos; )
15503
15899
  prevEnd = table[l++];
15504
15900
  return [l, pos - prevEnd];
15505
- }, SourceMap = function(sourceString) {
15506
- let srcTable = locationTable(sourceString), sm = {
15507
- lines: [[]],
15508
- line: 0,
15509
- colOffset: 0,
15510
- // relative to previous entry
15511
- srcLine: 0,
15512
- srcColumn: 0,
15513
- srcOffset: 0,
15514
- srcTable
15515
- }, EOL2 = /\r?\n|\r/;
15516
- return {
15517
- data: sm,
15518
- source: function() {
15519
- return sourceString;
15520
- },
15521
- renderMappings: function() {
15522
- let lastSourceLine = 0, lastSourceColumn = 0;
15523
- return sm.lines.map((line) => line.map((entry) => {
15524
- if (entry.length === 4) {
15525
- let [colDelta, sourceFileIndex, srcLine, srcCol] = entry, lineDelta = srcLine - lastSourceLine;
15526
- return colDelta = srcCol - lastSourceColumn, lastSourceLine = srcLine, lastSourceColumn = srcCol, `${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`;
15527
- } else
15528
- return encodeVlq(entry[0]);
15529
- }).join(",")).join(";");
15530
- },
15531
- json: function(srcFileName, outFileName) {
15532
- return {
15533
- version: 3,
15534
- file: outFileName,
15535
- sources: [srcFileName],
15536
- mappings: this.renderMappings(),
15537
- names: [],
15538
- sourcesContent: [sourceString],
15539
- toString: function() {
15540
- return JSON.stringify(this);
15541
- }
15542
- };
15543
- },
15544
- updateSourceMap: function(outputStr, inputPos, colOffset = 0) {
15545
- let outLines = outputStr.split(EOL2), srcLine, srcCol;
15546
- inputPos != null && ([srcLine, srcCol] = lookupLineColumn(srcTable, inputPos), srcCol += colOffset, sm.srcLine = srcLine, sm.srcColumn = srcCol, sm.srcOffset = inputPos + outputStr.length);
15547
- for (let i1 = 0, len3 = outLines.length; i1 < len3; i1++) {
15548
- let i = i1, line = outLines[i1];
15549
- i > 0 && (sm.line++, sm.srcLine++, sm.colOffset = 0, sm.lines[sm.line] = [], sm.srcColumn = srcCol = colOffset);
15550
- let l = sm.colOffset;
15551
- sm.colOffset = line.length, sm.srcColumn += line.length, inputPos != null ? sm.lines[sm.line].push([l, 0, srcLine + i, srcCol]) : l != 0 && sm.lines[sm.line].push([l]);
15901
+ }
15902
+ var EOL2 = /\r?\n|\r/, SourceMap = class {
15903
+ lines;
15904
+ line;
15905
+ colOffset;
15906
+ // relative to previous entry
15907
+ srcLine;
15908
+ srcColumn;
15909
+ srcOffset;
15910
+ srcTable;
15911
+ source;
15912
+ constructor(source1) {
15913
+ this.source = source1, this.lines = [[]], this.line = 0, this.colOffset = 0, this.srcLine = 0, this.srcColumn = 0, this.srcOffset = 0, this.srcTable = locationTable(this.source);
15914
+ }
15915
+ renderMappings() {
15916
+ let lastSourceLine = 0, lastSourceColumn = 0;
15917
+ return (() => {
15918
+ let results = [];
15919
+ for (let ref1 = this.lines, i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
15920
+ let line = ref1[i1];
15921
+ results.push((() => {
15922
+ let results1 = [];
15923
+ for (let i2 = 0, len1 = line.length; i2 < len1; i2++) {
15924
+ let entry = line[i2];
15925
+ if (entry.length === 4) {
15926
+ let [colDelta, sourceFileIndex, srcLine, srcCol] = entry, lineDelta = srcLine - lastSourceLine;
15927
+ colDelta = srcCol - lastSourceColumn, lastSourceLine = srcLine, lastSourceColumn = srcCol, results1.push(`${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`);
15928
+ } else
15929
+ results1.push(encodeVlq(entry[0]));
15930
+ }
15931
+ return results1;
15932
+ })().join(","));
15552
15933
  }
15934
+ return results;
15935
+ })().join(";");
15936
+ }
15937
+ json(srcFileName, outFileName) {
15938
+ return {
15939
+ version: 3,
15940
+ file: outFileName,
15941
+ sources: [srcFileName],
15942
+ mappings: this.renderMappings(),
15943
+ names: [],
15944
+ sourcesContent: [this.source],
15945
+ toString: function() {
15946
+ return JSON.stringify(this);
15947
+ }
15948
+ };
15949
+ }
15950
+ updateSourceMap(outputStr, inputPos, colOffset = 0) {
15951
+ let outLines = outputStr.split(EOL2), srcLine, srcCol;
15952
+ inputPos != null && ([srcLine, srcCol] = lookupLineColumn(this.srcTable, inputPos), srcCol += colOffset, this.srcLine = srcLine, this.srcColumn = srcCol, this.srcOffset = inputPos + outputStr.length);
15953
+ for (let i3 = 0, len22 = outLines.length; i3 < len22; i3++) {
15954
+ let i = i3, line = outLines[i3];
15955
+ i > 0 && (this.line++, this.srcLine++, this.colOffset = 0, this.lines[this.line] = [], this.srcColumn = srcCol = colOffset);
15956
+ let l = this.colOffset;
15957
+ this.colOffset = line.length, this.srcColumn += line.length, inputPos != null ? this.lines[this.line].push([l, 0, srcLine + i, srcCol]) : l != 0 && this.lines[this.line].push([l]);
15553
15958
  }
15554
- };
15959
+ }
15555
15960
  }, smRegexp = /\n\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,([+a-zA-Z0-9\/]*=?=?)$/, remap = function(codeWithSourceMap, upstreamMap, sourcePath, targetPath) {
15556
15961
  let sourceMapText, codeWithoutSourceMap = codeWithSourceMap.replace(smRegexp, (match, sm) => (sourceMapText = sm, ""));
15557
15962
  if (sourceMapText) {
15558
- let parsed = parseWithLines(sourceMapText), composedLines = composeLines(upstreamMap.data.lines, parsed.lines);
15559
- upstreamMap.data.lines = composedLines;
15963
+ let parsed = parseWithLines(sourceMapText), composedLines = composeLines(upstreamMap.lines, parsed.lines);
15964
+ upstreamMap.lines = composedLines;
15560
15965
  }
15561
15966
  let remappedSourceMapJSON = upstreamMap.json(sourcePath, targetPath), newSourceMap = `sourceMappingURL=data:application/json;charset=utf-8;base64,${base64Encode(JSON.stringify(remappedSourceMapJSON))}`;
15562
15967
  return `${codeWithoutSourceMap}
@@ -15589,9 +15994,9 @@ ${js}`
15589
15994
  };
15590
15995
  Object.assign(SourceMap, { remap, parseWithLines, composeLines });
15591
15996
  var VLQ_SHIFT = 5, VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT, VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1, encodeVlq = function(value) {
15592
- let answer = "", ref1;
15593
- value < 0 ? ref1 = 1 : ref1 = 0;
15594
- let signBit = ref1, valueToEncode = (Math.abs(value) << 1) + signBit;
15997
+ let answer = "", ref2;
15998
+ value < 0 ? ref2 = 1 : ref2 = 0;
15999
+ let signBit = ref2, valueToEncode = (Math.abs(value) << 1) + signBit;
15595
16000
  for (; valueToEncode || !answer; ) {
15596
16001
  let nextChunk = valueToEncode & VLQ_VALUE_MASK;
15597
16002
  valueToEncode = valueToEncode >> VLQ_SHIFT, valueToEncode && (nextChunk |= VLQ_CONTINUATION_BIT), answer += encodeBase64(nextChunk);
@@ -15643,7 +16048,7 @@ ${js}`
15643
16048
  return [lastMapping[2], lastMapping[3]];
15644
16049
  };
15645
16050
 
15646
- // source/state-cache.civet
16051
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\state-cache.civet.jsx
15647
16052
  var StateCache = class {
15648
16053
  cache = /* @__PURE__ */ new Map();
15649
16054
  get(key) {
@@ -15666,8 +16071,8 @@ ${js}`
15666
16071
  }
15667
16072
  };
15668
16073
 
15669
- // source/main.civet
15670
- var { SourceMap: SourceMap2 } = sourcemap_exports;
16074
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\main.civet.jsx
16075
+ var { SourceMap: SourceMap2 } = sourcemap_civet_exports;
15671
16076
  var ParseErrors = class extends Error {
15672
16077
  name = "ParseErrors";
15673
16078
  errors;
@@ -15771,15 +16176,15 @@ ${counts}`;
15771
16176
  throw new ParseErrors(options.errors);
15772
16177
  }
15773
16178
  if (options.sourceMap || options.inlineMap) {
15774
- options.sourceMap = SourceMap2(src);
15775
- let code = generate_default(ast2, options);
16179
+ options.sourceMap = new SourceMap2(src);
16180
+ let code = generate_civet_default(ast2, options);
15776
16181
  return checkErrors(), options.inlineMap ? SourceMap2.remap(code, options.sourceMap, filename2, filename2 + ".tsx") : {
15777
16182
  code,
15778
16183
  sourceMap: options.sourceMap
15779
16184
  };
15780
16185
  }
15781
- let result = generate_default(ast2, options);
15782
- return options.errors?.length && (delete options.errors, options.sourceMap = SourceMap2(src), generate_default(ast2, options), checkErrors()), result;
16186
+ let result = generate_civet_default(ast2, options);
16187
+ return options.errors?.length && (delete options.errors, options.sourceMap = new SourceMap2(src), generate_civet_default(ast2, options), checkErrors()), result;
15783
16188
  }
15784
16189
  return ast.then != null ? ast.then(rest) : rest(ast);
15785
16190
  }
@@ -15816,7 +16221,7 @@ ${counts}`;
15816
16221
  return err instanceof import_lib2.ParseError || err instanceof ParseErrors;
15817
16222
  };
15818
16223
 
15819
- // source/browser.civet
16224
+ // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\browser.civet.jsx
15820
16225
  async function runScripts(type = "text/civet") {
15821
16226
  let scripts = window.document.querySelectorAll(`script[type=${JSON.stringify(type)}]`);
15822
16227
  for (let i1 = 0, len3 = scripts.length; i1 < len3; i1++) {
@@ -15862,5 +16267,5 @@ ${counts}`;
15862
16267
  return autoRunScripts([document.head, document.body]);
15863
16268
  });
15864
16269
  }
15865
- return __toCommonJS(browser_exports);
16270
+ return __toCommonJS(browser_civet_exports);
15866
16271
  })();