@danielx/civet 0.9.3 → 0.9.5

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
@@ -53,7 +53,7 @@ var Civet = (() => {
53
53
  $EVENT: () => $EVENT2,
54
54
  $EVENT_C: () => $EVENT_C2,
55
55
  $EXPECT: () => $EXPECT2,
56
- $L: () => $L247,
56
+ $L: () => $L249,
57
57
  $N: () => $N2,
58
58
  $P: () => $P2,
59
59
  $Q: () => $Q2,
@@ -76,7 +76,7 @@ var Civet = (() => {
76
76
  return result || ctx.fail(state2.pos, expectation), result;
77
77
  };
78
78
  }
79
- function $L247(str) {
79
+ function $L249(str) {
80
80
  return function(_ctx, state2) {
81
81
  let { input, pos } = state2, { length } = str, end = pos + length;
82
82
  if (input.substring(pos, end) === str)
@@ -1271,6 +1271,14 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1271
1271
  }
1272
1272
 
1273
1273
  // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\ref.civet.jsx
1274
+ var range = (start, end) => {
1275
+ let length = end - start;
1276
+ if (length <= 0) return [];
1277
+ let arr = Array(length);
1278
+ for (let i = 0; i < length; ++i)
1279
+ arr[i] = i + start;
1280
+ return arr;
1281
+ };
1274
1282
  function makeRef(base = "ref", id = base) {
1275
1283
  return {
1276
1284
  type: "Ref",
@@ -1281,7 +1289,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1281
1289
  function needsRef(expression, base = "ref") {
1282
1290
  if (expression != null && typeof expression == "object") {
1283
1291
  if (Array.isArray(expression)) {
1284
- let nonempty = ((s) => Array.from({ length: expression.length - s }, (_2, i) => s + i))(0).filter((i) => !isWhitespaceOrEmpty(expression[i]));
1292
+ let nonempty = range(0, expression.length).filter((i) => !isWhitespaceOrEmpty(expression[i]));
1285
1293
  if (nonempty.length === 1) {
1286
1294
  let ref1;
1287
1295
  return (ref1 = needsRef(expression[nonempty[0]], base)) ? ref1 : void 0;
@@ -1320,10 +1328,27 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1320
1328
  let ref = maybeRef(exp, base);
1321
1329
  return ref === exp ? { ref, refAssignmentComma: [] } : { ref, ...makeRefAssignment(ref, exp) };
1322
1330
  }
1331
+ function populateRefs(statements) {
1332
+ let refNodes = gatherRecursive(statements, ($) => $.type === "Ref");
1333
+ if (!refNodes.length)
1334
+ return;
1335
+ let ids = gatherRecursive(statements, ($1) => $1.type === "Identifier"), names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
1336
+ for (let i1 = 0, len3 = refNodes.length; i1 < len3; i1++) {
1337
+ let ref = refNodes[i1];
1338
+ if (ref.type !== "Ref")
1339
+ continue;
1340
+ let { base } = ref;
1341
+ ref.type = "Identifier";
1342
+ let n = 0, name = base;
1343
+ for (; names.has(name); )
1344
+ n++, name = `${base}${n}`;
1345
+ names.add(name), ref.children = ref.names = [name];
1346
+ }
1347
+ }
1323
1348
 
1324
1349
  // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\binding.civet.jsx
1325
1350
  function adjustAtBindings(statements, asThis = !1) {
1326
- for (let ref1 = gatherRecursiveAll(statements, ($) => $.type === "AtBindingProperty"), i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
1351
+ for (let ref1 = gatherRecursiveAll(statements, ($1) => $1.type === "AtBindingProperty"), i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
1327
1352
  let binding = ref1[i1], { ref } = binding;
1328
1353
  if (asThis) {
1329
1354
  let atBinding = binding.binding;
@@ -1334,7 +1359,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1334
1359
  }
1335
1360
  }
1336
1361
  function adjustBindingElements(elements) {
1337
- let names = elements.flatMap(($1) => $1.names || []), { length } = elements, blockPrefix, restIndex = -1, restCount = 0;
1362
+ let names = elements.flatMap(($2) => $2.names || []), { length } = elements, blockPrefix, restIndex = -1, restCount = 0;
1338
1363
  for (let i2 = 0, len1 = elements.length; i2 < len1; i2++) {
1339
1364
  let i = i2, { type } = elements[i2];
1340
1365
  type === "BindingRestElement" && (restIndex < 0 && (restIndex = i), restCount++);
@@ -1382,21 +1407,40 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1382
1407
  length
1383
1408
  };
1384
1409
  }
1410
+ function gatherSubbindings(node, subbindings = []) {
1411
+ for (let ref2 = gatherRecursiveAll(node, ($) => $.subbinding != null), i3 = 0, len22 = ref2.length; i3 < len22; i3++) {
1412
+ let p = ref2[i3], { subbinding } = p;
1413
+ subbindings.push(", ", subbinding), gatherSubbindings(subbinding, subbindings);
1414
+ }
1415
+ return subbindings;
1416
+ }
1417
+ function simplifyBindingProperties(node) {
1418
+ let results = [];
1419
+ for (let ref3 = gatherRecursiveAll(node, ($3) => $3.type === "BindingProperty"), i4 = 0, len3 = ref3.length; i4 < len3; i4++) {
1420
+ let p = ref3[i4], { name, value } = p;
1421
+ if (value?.type === "NamedBindingPattern" && value.binding === name) {
1422
+ let [ws] = p.children;
1423
+ results.push(p.children = [ws, name, p.delim]);
1424
+ } else
1425
+ results.push(void 0);
1426
+ }
1427
+ return results;
1428
+ }
1385
1429
  function gatherBindingCode(statements, opts) {
1386
1430
  let thisAssignments = [], splices = [];
1387
1431
  function insertRestSplices(s, p, thisAssignments2) {
1388
1432
  let m;
1389
- for (let ref2 = gatherRecursiveAll(
1433
+ for (let ref4 = gatherRecursiveAll(
1390
1434
  s,
1391
1435
  (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++) {
1393
- let n = ref2[i3];
1436
+ ), i5 = 0, len4 = ref4.length; i5 < len4; i5++) {
1437
+ let n = ref4[i5];
1394
1438
  if (n.type === "AtBinding") {
1395
1439
  let { ref } = n, { id } = ref;
1396
1440
  thisAssignments2.push([`this.${id} = `, ref]);
1397
1441
  continue;
1398
1442
  }
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")) {
1443
+ if (opts?.assignPins && (n.type === "PinProperty" && (n.children = n.children.flatMap(($4) => $4 === n.name ? [n.name, ": ", n.value] : $4), updateParentPointers(n), n = n.value), n.type === "PinPattern")) {
1400
1444
  n.ref = makeRef(
1401
1445
  n.expression.type === "Identifier" ? n.expression.name : "pin"
1402
1446
  ), n.children = [n.ref], updateParentPointers(n), thisAssignments2.push({
@@ -1410,8 +1454,8 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1410
1454
  continue;
1411
1455
  }
1412
1456
  if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
1413
- for (let ref3 = n.names, i4 = 0, len3 = ref3.length; i4 < len3; i4++) {
1414
- let id = ref3[i4];
1457
+ for (let ref5 = n.names, i6 = 0, len5 = ref5.length; i6 < len5; i6++) {
1458
+ let id = ref5[i6];
1415
1459
  thisAssignments2.push({
1416
1460
  type: "AssignmentExpression",
1417
1461
  children: [`this.${id} = `, id],
@@ -1427,7 +1471,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1427
1471
  return insertRestSplices(statements, splices, thisAssignments), [splices, thisAssignments];
1428
1472
  }
1429
1473
  function arrayElementHasTrailingComma(elementNode) {
1430
- let ref4, lastChild = (ref4 = elementNode.children)[ref4.length - 1];
1474
+ let ref6, lastChild = (ref6 = elementNode.children)[ref6.length - 1];
1431
1475
  return lastChild && lastChild[lastChild.length - 1]?.token === ",";
1432
1476
  }
1433
1477
  function gatherBindingPatternTypeSuffix(pattern) {
@@ -1437,14 +1481,14 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1437
1481
  switch (pattern.type) {
1438
1482
  case "ArrayBindingPattern": {
1439
1483
  {
1440
- let results = [];
1441
- for (let ref5 = pattern.elements, i5 = 0, len4 = ref5.length; i5 < len4; i5++) {
1442
- let elem = ref5[i5], { typeSuffix } = elem;
1484
+ let results1 = [];
1485
+ for (let ref7 = pattern.elements, i7 = 0, len6 = ref7.length; i7 < len6; i7++) {
1486
+ let elem = ref7[i7], { typeSuffix } = elem;
1443
1487
  typeSuffix ??= elem.binding?.typeSuffix, typeSuffix && count++;
1444
1488
  let typeElement = [typeSuffix?.t, elem.delim];
1445
- typeSuffix?.optional && (typeElement[0] = parenthesizeType(typeElement[0]), typeElement.unshift("undefined |")), elem.type === "BindingRestElement" ? (typeElement[0] ??= "unknown[]", typeElement.unshift(elem.dots)) : typeElement[0] ??= "unknown", results.push(typeElement);
1489
+ typeSuffix?.optional && (typeElement[0] = parenthesizeType(typeElement[0]), typeElement.unshift("undefined |")), elem.type === "BindingRestElement" ? (typeElement[0] ??= "unknown[]", typeElement.unshift(elem.dots)) : typeElement[0] ??= "unknown", results1.push(typeElement);
1446
1490
  }
1447
- let types = results;
1491
+ let types = results1;
1448
1492
  if (count) {
1449
1493
  let t = [": [", types, "]"];
1450
1494
  pattern.typeSuffix = {
@@ -1459,9 +1503,9 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1459
1503
  }
1460
1504
  case "ObjectBindingPattern": {
1461
1505
  {
1462
- let restType, results1 = [];
1463
- for (let ref6 = pattern.properties, i6 = 0, len5 = ref6.length; i6 < len5; i6++) {
1464
- let prop = ref6[i6], { typeSuffix } = prop;
1506
+ let restType, results2 = [];
1507
+ for (let ref8 = pattern.properties, i8 = 0, len7 = ref8.length; i8 < len7; i8++) {
1508
+ let prop = ref8[i8], { typeSuffix } = prop;
1465
1509
  switch (typeSuffix ??= prop.value?.typeSuffix, typeSuffix && count++, typeSuffix ??= {
1466
1510
  type: "TypeSuffix",
1467
1511
  ts: !0,
@@ -1469,12 +1513,12 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1469
1513
  }, prop.type) {
1470
1514
  case "BindingProperty": {
1471
1515
  let ws = prop.children.slice(0, prop.children.indexOf(prop.name));
1472
- results1.push([...ws, prop.name, typeSuffix, prop.delim]);
1516
+ results2.push([...ws, prop.name, typeSuffix, prop.delim]);
1473
1517
  break;
1474
1518
  }
1475
1519
  case "AtBindingProperty": {
1476
1520
  let ws = prop.children.slice(0, prop.children.indexOf(prop.binding));
1477
- results1.push([...ws, prop.ref.id, typeSuffix, prop.delim]);
1521
+ results2.push([...ws, prop.ref.id.replace(/^#/, ""), typeSuffix, prop.delim]);
1478
1522
  break;
1479
1523
  }
1480
1524
  case "BindingRestProperty": {
@@ -1483,7 +1527,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1483
1527
  }
1484
1528
  }
1485
1529
  }
1486
- let types = results1;
1530
+ let types = results2;
1487
1531
  if (count) {
1488
1532
  let t = ["{", types, "}"];
1489
1533
  restType != null && t.push(" & ", parenthesizeType(trimFirstSpace(restType))), pattern.typeSuffix = {
@@ -1563,16 +1607,19 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1563
1607
  `
1564
1608
  ]]);
1565
1609
  },
1566
- rslice(rsliceRef) {
1567
- let RSliceable = makeRef("RSliceable");
1610
+ RSliceable(RSliceableRef) {
1568
1611
  state.prelude.push([
1569
1612
  "",
1570
- ts(["type ", RSliceable, `<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}
1613
+ ts(["type ", RSliceableRef, `<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}
1571
1614
  `])
1572
- ]), state.prelude.push(["", [
1615
+ ]);
1616
+ },
1617
+ rslice(rsliceRef) {
1618
+ let RSliceableRef = getHelperRef("RSliceable");
1619
+ state.prelude.push(["", [
1573
1620
  preludeVar,
1574
1621
  rsliceRef,
1575
- ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
1622
+ ts([": <R, T extends string | ", RSliceableRef, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceableRef, "<infer R> ? R : never"]),
1576
1623
  ` = ((a, start = -1, end = -1) => {
1577
1624
  `,
1578
1625
  ` const l = a.length
@@ -1603,6 +1650,76 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1603
1650
  `,
1604
1651
  "})"
1605
1652
  ], `;
1653
+ `]);
1654
+ },
1655
+ range(rangeRef) {
1656
+ state.prelude.push(["", [
1657
+ preludeVar,
1658
+ rangeRef,
1659
+ ts([": (start: number, end: number) => number[]"]),
1660
+ " ",
1661
+ `= (start, end) => {
1662
+ const length = end - start;
1663
+ if (length <= 0) return [];
1664
+ const arr = Array(length);
1665
+ for (let i = 0; i < length; ++i) {
1666
+ arr[i] = i + start;
1667
+ }
1668
+ return arr;
1669
+ }`
1670
+ ], `;
1671
+ `]);
1672
+ },
1673
+ revRange(revRangeRef) {
1674
+ state.prelude.push(["", [
1675
+ preludeVar,
1676
+ revRangeRef,
1677
+ ts([": (start: number, end: number) => number[]"]),
1678
+ " ",
1679
+ `= (start, end) => {
1680
+ const length = start - end;
1681
+ if (length <= 0) return [];
1682
+ const arr = Array(length);
1683
+ for (let i = 0; i < length; ++i) {
1684
+ arr[i] = start - i;
1685
+ }
1686
+ return arr;
1687
+ }`
1688
+ ], `;
1689
+ `]);
1690
+ },
1691
+ stringRange(stringRangeRef) {
1692
+ state.prelude.push(["", [
1693
+ preludeVar,
1694
+ stringRangeRef,
1695
+ ts([": (start: number, length: number) => string[]"]),
1696
+ " ",
1697
+ `= (start, length) => {
1698
+ if (length <= 0) return [];
1699
+ const arr = Array(length);
1700
+ for (let i = 0; i < length; ++i) {
1701
+ arr[i] = String.fromCharCode(start + i);
1702
+ }
1703
+ return arr;
1704
+ }`
1705
+ ], `;
1706
+ `]);
1707
+ },
1708
+ revStringRange(revStringRangeRef) {
1709
+ state.prelude.push(["", [
1710
+ preludeVar,
1711
+ revStringRangeRef,
1712
+ ts([": (start: number, length: number) => string[]"]),
1713
+ " ",
1714
+ `= (start, length) => {
1715
+ if (length <= 0) return [];
1716
+ const arr = Array(length);
1717
+ for (let i = 0; i < length; ++i) {
1718
+ arr[i] = String.fromCharCode(start - i);
1719
+ }
1720
+ return arr;
1721
+ }`
1722
+ ], `;
1606
1723
  `]);
1607
1724
  },
1608
1725
  div(divRef) {
@@ -1754,8 +1871,18 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1754
1871
  return state.helperRefs[base];
1755
1872
  }
1756
1873
  function extractPreludeFor(node) {
1757
- let helpers = new Set(Object.values(state.helperRefs));
1758
- return helpers = new Set(gatherRecursive(node, helpers.has.bind(helpers))), state.prelude.filter((s) => gatherRecursive(s, helpers.has.bind(helpers)).length);
1874
+ if (!state.prelude.length)
1875
+ return state.prelude;
1876
+ let allHelpers = new Set(Object.values(state.helperRefs)), isHelper = allHelpers.has.bind(allHelpers), usedHelpers = new Set(gatherRecursive(node, isHelper));
1877
+ for (; ; ) {
1878
+ let prelude = state.prelude.filter((s) => gatherRecursive(s, usedHelpers.has.bind(usedHelpers)).length), changed = !1;
1879
+ for (let ref1 = gatherRecursive(prelude, isHelper), i = 0, len3 = ref1.length; i < len3; i++) {
1880
+ let helper = ref1[i];
1881
+ usedHelpers.has(helper) || (usedHelpers.add(helper), changed = !0);
1882
+ }
1883
+ if (!changed)
1884
+ return prelude;
1885
+ }
1759
1886
  }
1760
1887
 
1761
1888
  // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\generate.civet.jsx
@@ -1767,7 +1894,7 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1767
1894
  }
1768
1895
  }
1769
1896
  function gen(root, options) {
1770
- let updateSourceMap = options?.sourceMap?.updateSourceMap;
1897
+ let ref, updateSourceMap = (ref = options?.sourceMap)?.updateSourceMap.bind(ref);
1771
1898
  return recurse(root);
1772
1899
  function recurse(node) {
1773
1900
  if (node == null)
@@ -1780,10 +1907,10 @@ ${body}`), super(message), this.header = header, this.body = body, this.filename
1780
1907
  if (options.js && node.ts || !options.js && node.js)
1781
1908
  return "";
1782
1909
  if (node.type === "Error") {
1783
- let filename2 = options?.filename ?? "unknown", line = "?", column = "?", offset, ref;
1784
- if (ref = options.sourceMap) {
1785
- let sourceMap = ref;
1786
- node.$loc != null && sourceMap.updateSourceMap("", node.$loc.pos), line = sourceMap.data.srcLine + 1, column = sourceMap.data.srcColumn + 1, offset = sourceMap.data.srcOffset;
1910
+ let filename2 = options?.filename ?? "unknown", line = "?", column = "?", offset, ref1;
1911
+ if (ref1 = options.sourceMap) {
1912
+ let sourceMap = ref1;
1913
+ node.$loc != null && sourceMap.updateSourceMap("", node.$loc.pos), line = sourceMap.srcLine + 1, column = sourceMap.srcColumn + 1, offset = sourceMap.srcOffset;
1787
1914
  }
1788
1915
  return options.errors ??= [], options.errors.push(new import_lib2.ParseError(
1789
1916
  node.message,
@@ -2560,7 +2687,26 @@ ${js}`
2560
2687
  }
2561
2688
  if (statement.resultsRef != null)
2562
2689
  return;
2563
- let resultsRef = statement.resultsRef = makeRef("results"), declaration = iterationDeclaration(statement), { ancestor, child } = findAncestor(statement, ($5) => $5.type === "BlockStatement");
2690
+ if (statement.resultsParent) {
2691
+ let { ancestor: ancestor2 } = findAncestor(
2692
+ statement,
2693
+ ($5) => $5.type === "ForStatement" || $5.type === "IterationStatement",
2694
+ isFunction
2695
+ );
2696
+ if (!ancestor2) {
2697
+ statement.children.unshift({
2698
+ type: "Error",
2699
+ message: "Could not find ancestor of spread iteration"
2700
+ });
2701
+ return;
2702
+ }
2703
+ let resultsRef2 = statement.resultsRef = ancestor2.resultsRef;
2704
+ iterationDefaultBody(statement);
2705
+ let { block } = statement;
2706
+ block.empty || assignResults(block, (node) => [resultsRef2, ".push(", node, ")"]);
2707
+ return;
2708
+ }
2709
+ let resultsRef = statement.resultsRef ??= makeRef("results"), declaration = iterationDeclaration(statement), { ancestor, child } = findAncestor(statement, ($6) => $6.type === "BlockStatement");
2564
2710
  assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
2565
2711
  let index = findChildIndex(ancestor.expressions, child);
2566
2712
  assert.notEqual(index, -1, `Could not find ${statement.type} in containing block`);
@@ -2587,6 +2733,8 @@ ${js}`
2587
2733
  return "false";
2588
2734
  case "every":
2589
2735
  return "true";
2736
+ case "first":
2737
+ return "undefined";
2590
2738
  case "min":
2591
2739
  return "Infinity";
2592
2740
  case "max":
@@ -2595,6 +2743,8 @@ ${js}`
2595
2743
  return "1";
2596
2744
  case "join":
2597
2745
  return '""';
2746
+ case "concat":
2747
+ return "[]";
2598
2748
  default:
2599
2749
  return "0";
2600
2750
  }
@@ -2619,9 +2769,13 @@ ${js}`
2619
2769
  ];
2620
2770
  case "count":
2621
2771
  return ["if (", node, ") ++", resultsRef];
2772
+ case "first":
2773
+ return [resultsRef, " = ", node, "; break"];
2622
2774
  case "sum":
2623
2775
  case "join":
2624
2776
  return [resultsRef, " += ", node];
2777
+ case "concat":
2778
+ return [getHelperRef("concatAssign"), "(", resultsRef, ", ", node, ")"];
2625
2779
  case "product":
2626
2780
  return [resultsRef, " *= ", node];
2627
2781
  case "min":
@@ -2651,28 +2805,31 @@ ${js}`
2651
2805
  case "count":
2652
2806
  return fillBlock(["", ["++", resultsRef]]), block.empty = !1, braceBlock(block), !0;
2653
2807
  }
2654
- if (statement.type === "ForStatement" && statement.declaration?.type === "ForDeclaration") {
2655
- if (reduction) {
2656
- let bindings = patternBindings(statement.declaration.binding.pattern);
2657
- if (bindings.length) {
2658
- fillBlock(["", bindings[0]]);
2659
- for (let binding of bindings.slice(1))
2660
- binding.children.unshift({
2661
- type: "Error",
2662
- subtype: "Warning",
2663
- message: "Ignored binding in reduction loop with implicit body"
2664
- });
2808
+ if (statement.type === "ForStatement") {
2809
+ let declaration = statement.eachDeclaration ?? statement.declaration;
2810
+ if (declaration?.type === "ForDeclaration") {
2811
+ if (reduction) {
2812
+ let bindings = patternBindings(declaration.binding.pattern);
2813
+ if (bindings.length) {
2814
+ fillBlock(["", bindings[0]]);
2815
+ for (let binding of bindings.slice(1))
2816
+ binding.children.unshift({
2817
+ type: "Error",
2818
+ subtype: "Warning",
2819
+ message: "Ignored binding in reduction loop with implicit body"
2820
+ });
2821
+ } else
2822
+ fillBlock([
2823
+ "",
2824
+ {
2825
+ type: "Error",
2826
+ message: "Empty binding pattern in reduction loop with implicit body"
2827
+ }
2828
+ ]);
2665
2829
  } else
2666
- fillBlock([
2667
- "",
2668
- {
2669
- type: "Error",
2670
- message: "Empty binding pattern in reduction loop with implicit body"
2671
- }
2672
- ]);
2673
- } else
2674
- fillBlock(["", patternAsValue(statement.declaration.binding.pattern)]);
2675
- block.empty = !1;
2830
+ fillBlock(["", patternAsValue(declaration.binding.pattern)]);
2831
+ block.empty = !1;
2832
+ }
2676
2833
  }
2677
2834
  return !1;
2678
2835
  }
@@ -2712,14 +2869,15 @@ ${js}`
2712
2869
  append2(param);
2713
2870
  }
2714
2871
  }
2715
- if (parameters.names = before.flatMap(($6) => $6.names), parameters.parameters.splice(0, 1 / 0), tt && parameters.parameters.push(tt), parameters.parameters.push(...before), rest) {
2872
+ if (parameters.names = before.flatMap(($7) => $7.names), parameters.parameters.splice(0, 1 / 0), tt && parameters.parameters.push(tt), parameters.parameters.push(...before), rest) {
2716
2873
  let restIdentifier = rest.binding.ref || rest.binding;
2717
2874
  if (parameters.names.push(...rest.names || []), rest.children.pop(), after.length) {
2718
- (rest.binding.type === "ArrayBindingPattern" || rest.binding.type === "ObjectBindingPattern") && parameters.parameters.push({
2875
+ let m4;
2876
+ m4 = rest.binding.type, (m4 === "ArrayBindingPattern" || m4 === "ObjectBindingPattern" || m4 === "NamedBindingPattern") && parameters.parameters.push({
2719
2877
  type: "Error",
2720
2878
  message: "Non-end rest parameter cannot be binding pattern"
2721
2879
  }), after = trimFirstSpace(after);
2722
- let names = after.flatMap(($7) => $7.names), elements = after.map((p) => p.type === "Error" ? p : {
2880
+ let names = after.flatMap(($8) => $8.names), elements = after.map((p) => p.type === "Error" ? p : {
2723
2881
  ...p,
2724
2882
  // omit individual argument types from output
2725
2883
  children: p.children.filter((a2) => a2 !== p.typeSuffix),
@@ -2785,9 +2943,9 @@ ${js}`
2785
2943
  colon,
2786
2944
  t,
2787
2945
  children: [
2788
- ...oldSuffix.children.filter(($8) => (
2946
+ ...oldSuffix.children.filter(($9) => (
2789
2947
  // spaces and colon
2790
- $8 !== oldSuffix.optional && $8 !== oldSuffix.t
2948
+ $9 !== oldSuffix.optional && $9 !== oldSuffix.t
2791
2949
  )),
2792
2950
  oldSuffix.colon ? void 0 : colon,
2793
2951
  t
@@ -2811,20 +2969,20 @@ ${js}`
2811
2969
  let [splices, thisAssignments] = gatherBindingCode(parameters, {
2812
2970
  injectParamProps: isConstructor,
2813
2971
  assignPins: !0
2814
- });
2815
- if (isConstructor) {
2816
- let { ancestor } = findAncestor(f, ($9) => $9.type === "ClassExpression");
2972
+ }), subbindings = gatherSubbindings(parameters.parameters);
2973
+ if (simplifyBindingProperties(parameters.parameters), simplifyBindingProperties(subbindings), isConstructor) {
2974
+ let { ancestor } = findAncestor(f, ($10) => $10.type === "ClassExpression");
2817
2975
  if (ancestor != null) {
2818
- 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, index2 = findChildIndex(classExpressions, f);
2976
+ 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);
2819
2977
  assert.notEqual(index2, -1, "Could not find constructor in class");
2820
- let m4;
2821
- for (; m4 = classExpressions[index2 - 1]?.[1], typeof m4 == "object" && m4 != null && "type" in m4 && m4.type === "MethodDefinition" && "name" in m4 && m4.name === "constructor"; )
2978
+ let m5;
2979
+ for (; m5 = classExpressions[index2 - 1]?.[1], typeof m5 == "object" && m5 != null && "type" in m5 && m5.type === "MethodDefinition" && "name" in m5 && m5.name === "constructor"; )
2822
2980
  index2--;
2823
2981
  let fStatement = classExpressions[index2];
2824
- for (let ref18 = gatherRecursive(parameters, ($13) => $13.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
2982
+ for (let ref18 = gatherRecursive(parameters, ($14) => $14.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
2825
2983
  let parameter = ref18[i9], { accessModifier } = parameter;
2826
2984
  if (accessModifier || parameter.typeSuffix)
2827
- for (let ref19 = gatherRecursive(parameter, ($14) => $14.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
2985
+ for (let ref19 = gatherRecursive(parameter, ($15) => $15.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
2828
2986
  let binding = ref19[i10], typeSuffix = binding.parent?.typeSuffix;
2829
2987
  if (!(accessModifier || typeSuffix))
2830
2988
  continue;
@@ -2844,6 +3002,13 @@ ${js}`
2844
3002
  type: "SemicolonDelimiter",
2845
3003
  children: [";"]
2846
3004
  }, prefix = [];
3005
+ subbindings.length && prefix.push(makeNode({
3006
+ type: "Declaration",
3007
+ children: ["const ", subbindings.slice(1)],
3008
+ names: subbindings.flatMap(($16) => $16.names ?? []),
3009
+ bindings: [],
3010
+ decl: "const"
3011
+ }));
2847
3012
  for (let ref20 = splices, i11 = 0, len10 = ref20.length; i11 < len10; i11++) {
2848
3013
  let binding = ref20[i11];
2849
3014
  assert.equal(binding.type, "PostRestBindingElements", "splice should be of type Binding"), prefix.push(makeNode({
@@ -2883,7 +3048,7 @@ ${js}`
2883
3048
  if (f.async != null)
2884
3049
  f.async.push("async "), signature.modifier.async = !0;
2885
3050
  else
2886
- for (let ref21 = gatherRecursiveWithinFunction(block, ($15) => $15.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3051
+ for (let ref21 = gatherRecursiveWithinFunction(block, ($17) => $17.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
2887
3052
  let a = ref21[i12], i = findChildIndex(a.parent, a);
2888
3053
  a.parent.children.splice(i + 1, 0, {
2889
3054
  type: "Error",
@@ -2894,8 +3059,8 @@ ${js}`
2894
3059
  if (f.generator != null)
2895
3060
  f.generator.push("*"), signature.modifier.generator = !0;
2896
3061
  else
2897
- for (let ref22 = gatherRecursiveWithinFunction(block, ($16) => $16.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
2898
- let y = ref22[i13], i = y.children.findIndex(($17) => $17.type === "Yield");
3062
+ for (let ref22 = gatherRecursiveWithinFunction(block, ($18) => $18.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3063
+ let y = ref22[i13], i = y.children.findIndex(($19) => $19.type === "Yield");
2899
3064
  y.children.splice(i + 1, 0, {
2900
3065
  type: "Error",
2901
3066
  message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
@@ -2904,7 +3069,7 @@ ${js}`
2904
3069
  signature.modifier.async && !signature.modifier.generator && signature.returnType && !isPromiseType(signature.returnType.t) && replaceNode(signature.returnType.t, wrapTypeInPromise(signature.returnType.t));
2905
3070
  }
2906
3071
  function processFunctions(statements, config2) {
2907
- for (let ref23 = gatherRecursiveAll(statements, ($18) => $18.type === "FunctionExpression" || $18.type === "ArrowFunction" || $18.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3072
+ for (let ref23 = gatherRecursiveAll(statements, ($20) => $20.type === "FunctionExpression" || $20.type === "ArrowFunction" || $20.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
2908
3073
  let f = ref23[i14];
2909
3074
  (f.type === "FunctionExpression" || f.type === "MethodDefinition") && implicitFunctionBlock(f), processSignature(f), processParams(f), processReturn(f, config2.implicitReturns);
2910
3075
  }
@@ -2919,10 +3084,7 @@ ${js}`
2919
3084
  }
2920
3085
  let statements;
2921
3086
  if (generator)
2922
- statement.reduction && children.unshift({
2923
- type: "Error",
2924
- message: `Cannot use reduction (${statement.reduction.subtype}) with generators`
2925
- }), iterationDefaultBody(statement), assignResults(block, (node) => ({
3087
+ iterationDefaultBody(statement), assignResults(block, (node) => ({
2926
3088
  type: "YieldExpression",
2927
3089
  expression: node,
2928
3090
  children: [
@@ -2954,7 +3116,7 @@ ${js}`
2954
3116
  done || (generator || (statements[statements.length - 1][1] = wrapWithReturn(statements[statements.length - 1][1])), children.splice(i, 1, wrapIIFE(statements, async, generator)), updateParentPointers(exp));
2955
3117
  }
2956
3118
  function processIterationExpressions(statements) {
2957
- for (let ref25 = gatherRecursiveAll(statements, ($19) => $19.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
3119
+ for (let ref25 = gatherRecursiveAll(statements, ($21) => $21.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
2958
3120
  let s = ref25[i15];
2959
3121
  expressionizeIteration(s);
2960
3122
  }
@@ -2992,12 +3154,12 @@ ${js}`
2992
3154
  let newParameterList = results1, newParameters = {
2993
3155
  ...parameters,
2994
3156
  parameters: newParameterList,
2995
- children: parameters.children.map(($20) => $20 === parameterList ? newParameterList : $20)
3157
+ children: parameters.children.map(($22) => $22 === parameterList ? newParameterList : $22)
2996
3158
  };
2997
3159
  expression = {
2998
3160
  ...expression,
2999
3161
  parameters: newParameters,
3000
- children: expression.children.map(($21) => $21 === parameters ? newParameters : $21)
3162
+ children: expression.children.map(($23) => $23 === parameters ? newParameters : $23)
3001
3163
  };
3002
3164
  }
3003
3165
  return {
@@ -3015,7 +3177,7 @@ ${js}`
3015
3177
  }
3016
3178
  function makeAmpersandFunction(rhs) {
3017
3179
  let { ref, typeSuffix, body } = rhs;
3018
- ref == null && (ref = makeRef("$"), inplacePrepend(ref, body)), startsWithPredicate(body, ($22) => $22.type === "ObjectExpression") && (body = makeLeftHandSideExpression(body));
3180
+ ref == null && (ref = makeRef("$"), inplacePrepend(ref, body)), startsWithPredicate(body, ($24) => $24.type === "ObjectExpression") && (body = makeLeftHandSideExpression(body));
3019
3181
  let parameterList = [
3020
3182
  typeSuffix ? [ref, typeSuffix] : ref
3021
3183
  ], parameters = makeNode({
@@ -3532,14 +3694,12 @@ ${js}`
3532
3694
  break;
3533
3695
  }
3534
3696
  case "ConditionFragment": {
3535
- let { children } = pattern;
3536
- if (children.length) {
3537
- let [first, ...rest] = children, [ws, ...op] = first;
3538
- ws = [" "].concat(ws), first = [ws, ...op], children = [first, ...rest];
3697
+ let { rhs } = pattern;
3698
+ if (rhs.length) {
3699
+ let [first, ...rest] = rhs, [ws, ...op] = first;
3700
+ ws = [" "].concat(ws), first = [ws, ...op], rhs = [first, ...rest];
3539
3701
  }
3540
- conditions.push(
3541
- processBinaryOpExpression([ref, children])
3542
- );
3702
+ conditions.push(processBinaryOpExpression([ref, rhs]));
3543
3703
  break;
3544
3704
  }
3545
3705
  case "RegularExpressionLiteral": {
@@ -3557,6 +3717,10 @@ ${js}`
3557
3717
  ]);
3558
3718
  break;
3559
3719
  }
3720
+ case "NamedBindingPattern": {
3721
+ getPatternConditions(pattern.pattern, ref, conditions);
3722
+ break;
3723
+ }
3560
3724
  case "Literal": {
3561
3725
  conditions.push([
3562
3726
  ref,
@@ -3583,23 +3747,29 @@ ${js}`
3583
3747
  case "Literal":
3584
3748
  case "RegularExpressionLiteral":
3585
3749
  case "PinPattern":
3586
- case "ConditionFragment":
3587
3750
  return;
3751
+ case "ConditionFragment": {
3752
+ if (!pattern.binding)
3753
+ return;
3754
+ break;
3755
+ }
3588
3756
  }
3589
- let [splices, thisAssignments] = gatherBindingCode(pattern), patternBindings2 = nonMatcherBindings(pattern);
3590
- splices = splices.map((s) => [", ", nonMatcherBindings(s)]), thisAssignments = thisAssignments.map(($7) => ["", $7, ";"]);
3591
- let duplicateDeclarations = aggregateDuplicateBindings([patternBindings2, splices]);
3592
- return [
3593
- ["", {
3757
+ let [splices, thisAssignments] = gatherBindingCode(pattern), patternBindings2 = nonMatcherBindings(pattern), subbindings = gatherSubbindings(patternBindings2);
3758
+ simplifyBindingProperties(patternBindings2), simplifyBindingProperties(subbindings), splices = splices.flatMap((s) => [", ", nonMatcherBindings(s)]), thisAssignments = thisAssignments.map(($7) => ["", $7, ";"]);
3759
+ let duplicateDeclarations = aggregateDuplicateBindings([patternBindings2, splices, subbindings]), blockPrefix = [];
3760
+ if (ref || subbindings.length || splices.length) {
3761
+ let children = [decl];
3762
+ ref && children.push(patternBindings2, typeSuffix, " = ", ref), children.push(...subbindings), children.push(...splices), ref || children.splice(1, 1), blockPrefix.push(["", {
3594
3763
  type: "Declaration",
3595
- children: [decl, patternBindings2, typeSuffix, " = ", ref, ...splices],
3764
+ children,
3765
+ decl,
3596
3766
  names: [],
3597
3767
  bindings: []
3598
3768
  // avoid implicit return of any bindings
3599
- }, ";"],
3600
- ...thisAssignments,
3601
- ...duplicateDeclarations.map(($8) => ["", $8, ";"])
3602
- ];
3769
+ }, ";"]);
3770
+ }
3771
+ if (blockPrefix.push(...thisAssignments), blockPrefix.push(...duplicateDeclarations.map(($8) => ["", $8, ";"])), !!blockPrefix.length)
3772
+ return blockPrefix;
3603
3773
  }
3604
3774
  function elideMatchersFromArrayBindings(elements) {
3605
3775
  let results = [];
@@ -3636,41 +3806,63 @@ ${js}`
3636
3806
  return results;
3637
3807
  }
3638
3808
  function elideMatchersFromPropertyBindings(properties) {
3639
- return properties.map((p) => {
3809
+ let results1 = [];
3810
+ for (let i6 = 0, len5 = properties.length; i6 < len5; i6++) {
3811
+ let p = properties[i6];
3640
3812
  switch (p.type) {
3641
- case "BindingProperty": {
3813
+ case "BindingProperty":
3814
+ case "PinProperty": {
3642
3815
  let { children, name, value } = p, [ws] = children;
3643
3816
  if (name.type === "NumericLiteral" && !value?.name || name.type === "ComputedPropertyName" && value?.subtype === "NumericLiteral")
3644
- return;
3645
- switch (value && value.type) {
3646
- case "ArrayBindingPattern":
3647
- case "ObjectBindingPattern": {
3648
- let bindings = nonMatcherBindings(value);
3649
- return {
3650
- ...p,
3651
- children: [ws, name, bindings && ": ", bindings, p.delim]
3652
- };
3817
+ continue;
3818
+ {
3819
+ let contents, m1;
3820
+ switch (value?.type) {
3821
+ case "ArrayBindingPattern":
3822
+ case "ObjectBindingPattern": {
3823
+ let bindings = nonMatcherBindings(value);
3824
+ contents = {
3825
+ ...p,
3826
+ value: bindings,
3827
+ children: [ws, name, bindings && ": ", bindings, p.delim]
3828
+ };
3829
+ break;
3830
+ }
3831
+ case "Identifier":
3832
+ case void 0: {
3833
+ contents = p;
3834
+ break;
3835
+ }
3836
+ case "NamedBindingPattern": {
3837
+ let bindings = nonMatcherBindings(value.pattern);
3838
+ contents = {
3839
+ ...p,
3840
+ subbinding: (m1 = bindings?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern" || m1 === "Identifier" ? [
3841
+ bindings,
3842
+ " = ",
3843
+ name
3844
+ ] : void 0)
3845
+ }, p.name === value.binding && (contents.children = [ws, name, p.delim]);
3846
+ break;
3847
+ }
3848
+ default:
3849
+ contents = void 0;
3653
3850
  }
3654
- case "Identifier":
3655
- return p;
3656
- case "Literal":
3657
- case "RegularExpressionLiteral":
3658
- case "StringLiteral":
3659
- default:
3660
- return {
3661
- ...p,
3662
- children: [ws, name, p.delim]
3663
- };
3851
+ if (contents)
3852
+ results1.push(contents);
3853
+ else
3854
+ continue;
3664
3855
  }
3856
+ break;
3665
3857
  }
3666
- case "PinProperty":
3667
- case "BindingRestProperty":
3668
3858
  default:
3669
- return p;
3859
+ results1.push(p);
3670
3860
  }
3671
- });
3861
+ }
3862
+ return results1;
3672
3863
  }
3673
3864
  function nonMatcherBindings(pattern) {
3865
+ let m2;
3674
3866
  switch (pattern.type) {
3675
3867
  case "ArrayBindingPattern":
3676
3868
  case "PostRestBindingElements": {
@@ -3689,6 +3881,15 @@ ${js}`
3689
3881
  children: pattern.children.map(($10) => $10 === pattern.properties ? properties : $10)
3690
3882
  });
3691
3883
  }
3884
+ case "NamedBindingPattern": {
3885
+ let bindings = nonMatcherBindings(pattern.pattern);
3886
+ return makeNode({
3887
+ ...pattern,
3888
+ subbinding: (m2 = bindings?.type, m2 === "ArrayBindingPattern" || m2 === "ObjectBindingPattern" || m2 === "Identifier" ? [bindings, " = ", pattern.binding] : void 0)
3889
+ });
3890
+ }
3891
+ case "ConditionFragment":
3892
+ return pattern.binding;
3692
3893
  default:
3693
3894
  return pattern;
3694
3895
  }
@@ -3701,9 +3902,9 @@ ${js}`
3701
3902
  //$.type is "BindingRestProperty"
3702
3903
  $.type === "Identifier" && $.parent?.type === "BindingElement" || $.type === "BindingRestElement"
3703
3904
  ), declarations = [], propsGroupedByName = /* @__PURE__ */ new Map();
3704
- for (let i6 = 0, len5 = props.length; i6 < len5; i6++) {
3705
- let p = props[i6], { name, value } = p, m1;
3706
- if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern")
3905
+ for (let i7 = 0, len6 = props.length; i7 < len6; i7++) {
3906
+ let p = props[i7], { name, value } = p, m3;
3907
+ if (m3 = value?.type, m3 === "ArrayBindingPattern" || m3 === "ObjectBindingPattern")
3707
3908
  continue;
3708
3909
  let key = value?.name || name?.name || name;
3709
3910
  key?.type === "NumericLiteral" || key?.type === "ComputedPropertyName" || (propsGroupedByName.has(key) ? propsGroupedByName.get(key).push(p) : propsGroupedByName.set(key, [p]));
@@ -3716,8 +3917,8 @@ ${js}`
3716
3917
  pos: 0,
3717
3918
  input: key
3718
3919
  })) {
3719
- for (let i7 = 0, len6 = shared.length; i7 < len6; i7++) {
3720
- let p = shared[i7];
3920
+ for (let i8 = 0, len7 = shared.length; i8 < len7; i8++) {
3921
+ let p = shared[i8];
3721
3922
  aliasBinding(p, makeRef(`_${key}`, key));
3722
3923
  }
3723
3924
  return;
@@ -3798,9 +3999,13 @@ ${js}`
3798
3999
  function processDeclarations(statements) {
3799
4000
  for (let ref1 = gatherRecursiveAll(statements, ($) => $.type === "Declaration"), i1 = 0, len1 = ref1.length; i1 < len1; i1++) {
3800
4001
  let declaration = ref1[i1], { bindings } = declaration;
3801
- if (bindings != null)
3802
- for (let i2 = 0, len22 = bindings.length; i2 < len22; i2++) {
3803
- let binding = bindings[i2], { typeSuffix, initializer } = binding;
4002
+ if (bindings != null) {
4003
+ for (let i2 = bindings.length + -1; i2 >= 0; --i2) {
4004
+ let binding = bindings[i2], subbindings = gatherSubbindings(binding);
4005
+ subbindings.length && (simplifyBindingProperties(binding), simplifyBindingProperties(subbindings), spliceChild(declaration, binding, 1, binding, subbindings));
4006
+ }
4007
+ for (let i3 = 0, len22 = bindings.length; i3 < len22; i3++) {
4008
+ let binding = bindings[i3], { typeSuffix, initializer } = binding;
3804
4009
  if (typeSuffix && typeSuffix.optional) {
3805
4010
  if (initializer && !typeSuffix.t) {
3806
4011
  let expression = trimFirstSpace(initializer.expression), m;
@@ -3828,11 +4033,24 @@ ${js}`
3828
4033
  }
3829
4034
  initializer && prependStatementExpressionBlock(initializer, declaration);
3830
4035
  }
4036
+ }
4037
+ }
4038
+ for (let ref2 = gatherRecursiveAll(statements, ($1) => $1.type === "ForStatement"), i4 = 0, len3 = ref2.length; i4 < len3; i4++) {
4039
+ let statement = ref2[i4], { declaration } = statement;
4040
+ if (declaration?.type !== "ForDeclaration")
4041
+ continue;
4042
+ let { binding } = declaration, blockPrefix = getPatternBlockPrefix(
4043
+ binding.pattern,
4044
+ void 0,
4045
+ append(declaration.decl, " "),
4046
+ binding.typeSuffix
4047
+ );
4048
+ simplifyBindingProperties(binding), blockPrefix != null && (statement.block.expressions.unshift(...blockPrefix), braceBlock(statement.block));
3831
4049
  }
3832
4050
  }
3833
4051
  function prependStatementExpressionBlock(initializer, statement) {
3834
4052
  let { expression: exp } = initializer, ws;
3835
- if (Array.isArray(exp) && (ws = exp[0], exp = exp[1]), exp?.type !== "StatementExpression")
4053
+ 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"))
3836
4054
  return;
3837
4055
  let pre = [], statementExp = exp.statement, blockStatement = ["", statementExp], ref;
3838
4056
  if (statementExp.type === "IterationExpression") {
@@ -3928,7 +4146,7 @@ ${js}`
3928
4146
  return;
3929
4147
  let { expression } = condition;
3930
4148
  if (expression && typeof expression == "object" && "type" in expression && expression.type === "UnaryExpression" && "children" in expression && Array.isArray(expression.children) && len2(expression.children, 2) && Array.isArray(expression.children[0]) && len2(expression.children[0], 1) && expression.children[0][0] === "!" && typeof expression.children[1] == "object" && expression.children[1] != null && "type" in expression.children[1] && expression.children[1].type === "ParenthesizedExpression" && "expression" in expression.children[1]) {
3931
- let { type: type1, children: [[], { type: type2, expression: expression2 }] } = expression, type = [type1, type2];
4149
+ let { children: [[], { expression: expression2 }] } = expression;
3932
4150
  expression = expression2;
3933
4151
  }
3934
4152
  processDeclarationCondition(expression, condition.expression, s);
@@ -3950,8 +4168,8 @@ ${js}`
3950
4168
  ({ children } = condition.expression.children[1]);
3951
4169
  }
3952
4170
  children.unshift("(");
3953
- for (let i3 = 0, len3 = conditions.length; i3 < len3; i3++) {
3954
- let c = conditions[i3];
4171
+ for (let i5 = 0, len4 = conditions.length; i5 < len4; i5++) {
4172
+ let c = conditions[i5];
3955
4173
  children.push(" && ", c);
3956
4174
  }
3957
4175
  children.push(")");
@@ -3969,11 +4187,11 @@ ${js}`
3969
4187
  if (index < 0)
3970
4188
  throw new Error("Couldn't find where in block to put postfix declaration");
3971
4189
  ancestor.expressions.splice(index + 1, 0, ...blockPrefix), updateParentPointers(ancestor), braceBlock(ancestor);
3972
- let ref2;
4190
+ let ref3;
3973
4191
  switch (s.type) {
3974
4192
  case "IfStatement": {
3975
- if (ref2 = s.else?.block) {
3976
- let elseBlock = ref2;
4193
+ if (ref3 = s.else?.block) {
4194
+ let elseBlock = ref3;
3977
4195
  elseBlock.bare && !elseBlock.semicolon && elseBlock.children.push(elseBlock.semicolon = ";"), ancestor.expressions.splice(index + 1 + blockPrefix.length, 0, ["", elseBlock]), s.children = s.children.filter((a1) => a1 !== s.else), s.else = void 0;
3978
4196
  }
3979
4197
  let block = s.then;
@@ -3989,11 +4207,11 @@ ${js}`
3989
4207
  if (s.negated) {
3990
4208
  if (e != null) {
3991
4209
  let block = blockWithPrefix(blockPrefix, e.block);
3992
- e.children = e.children.map(($1) => $1 === e.block ? block : $1), e.block = block, updateParentPointers(e);
4210
+ e.children = e.children.map(($2) => $2 === e.block ? block : $2), e.block = block, updateParentPointers(e);
3993
4211
  }
3994
4212
  } else {
3995
4213
  let block = blockWithPrefix(blockPrefix, s.then);
3996
- s.children = s.children.map(($2) => $2 === s.then ? block : $2), s.then = block, updateParentPointers(s);
4214
+ s.children = s.children.map(($3) => $3 === s.then ? block : $3), s.then = block, updateParentPointers(s);
3997
4215
  }
3998
4216
  break;
3999
4217
  }
@@ -4001,7 +4219,7 @@ ${js}`
4001
4219
  if (!blockPrefix)
4002
4220
  return;
4003
4221
  let { children, block } = s, newBlock = blockWithPrefix(blockPrefix, block);
4004
- s.children = children.map(($3) => $3 === block ? newBlock : $3), updateParentPointers(s);
4222
+ s.children = children.map(($4) => $4 === block ? newBlock : $4), updateParentPointers(s);
4005
4223
  break;
4006
4224
  }
4007
4225
  case "SwitchStatement": {
@@ -4018,7 +4236,7 @@ ${js}`
4018
4236
  return c === s.condition ? newCondition : c;
4019
4237
  }), s.condition = newCondition, updateParentPointers(s), statementDeclaration) {
4020
4238
  let block = makeEmptyBlock();
4021
- replaceBlockExpression(s.parent, s, block), block.expressions.push(["", s]), s.children.splice(s.children.findIndex(($4) => $4.token === "switch"), 0, blockPrefix), s.parent = block;
4239
+ replaceBlockExpression(s.parent, s, block), block.expressions.push(["", s]), s.children.splice(s.children.findIndex(($5) => $5.token === "switch"), 0, blockPrefix), s.parent = block;
4022
4240
  } else {
4023
4241
  let block = blockWithPrefix([["", [{
4024
4242
  type: "Declaration",
@@ -4032,17 +4250,17 @@ ${js}`
4032
4250
  }
4033
4251
  function dynamizeFromClause(from) {
4034
4252
  from = from.slice(1), from = trimFirstSpace(from);
4035
- let ref3;
4036
- if (ref3 = from[from.length - 1]?.assertion) {
4037
- let assert4 = ref3, ref4;
4038
- ref4 = from[from.length - 1], ref4.children = ref4.children.filter((a2) => a2 !== assert4), from.push(", {", assert4.keyword, ":", assert4.object, "}");
4253
+ let ref4;
4254
+ if (ref4 = from[from.length - 1]?.assertion) {
4255
+ let assert2 = ref4, ref5;
4256
+ ref5 = from[from.length - 1], ref5.children = ref5.children.filter((a2) => a2 !== assert2), from.push(", {", assert2.keyword, ":", assert2.object, "}");
4039
4257
  }
4040
4258
  return ["(", ...from, ")"];
4041
4259
  }
4042
4260
  function dynamizeImportDeclaration(decl) {
4043
- let { imports } = decl, { star, binding, specifiers } = imports, justDefault = binding && !specifiers && !star, ref5;
4044
- binding ? specifiers ? ref5 = makeRef() : ref5 = binding : ref5 = convertNamedImportsToObject(imports, !0);
4045
- let pattern = ref5, c = "const", expression = [
4261
+ let { imports } = decl, { star, binding, specifiers } = imports, justDefault = binding && !specifiers && !star, ref6;
4262
+ binding ? specifiers ? ref6 = makeRef() : ref6 = binding : ref6 = convertNamedImportsToObject(imports, !0);
4263
+ let pattern = ref6, c = "const", expression = [
4046
4264
  justDefault ? "(" : void 0,
4047
4265
  { type: "Await", children: ["await"] },
4048
4266
  " ",
@@ -4222,7 +4440,7 @@ ${js}`
4222
4440
  children: args.children.map(
4223
4441
  (arg) => {
4224
4442
  if (typeof arg == "object" && arg != null && "type" in arg && arg.type === "ArrayElement" && "expression" in arg && "children" in arg) {
4225
- let { type, expression: exp, children } = arg, expression = processUnaryExpression([last], trimFirstSpace(exp));
4443
+ let { expression: exp, children } = arg, expression = processUnaryExpression([last], trimFirstSpace(exp));
4226
4444
  return expression = prepend(getTrimmingSpace(exp), expression), {
4227
4445
  ...arg,
4228
4446
  expression,
@@ -4422,10 +4640,10 @@ ${js}`
4422
4640
  }
4423
4641
 
4424
4642
  // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\parser\for.civet.jsx
4425
- function processRangeExpression(start, ws1, range, end) {
4426
- ws1 = [ws1, range.children[0]];
4427
- let ws2 = range.children[1], comma = { $loc: range.$loc, token: "," }, ref;
4428
- switch (range.increasing) {
4643
+ function processRangeExpression(start, ws1, range2, end) {
4644
+ ws1 = [ws1, range2.children[0]];
4645
+ let ws2 = range2.children[1], comma = { $loc: range2.$loc, token: "," }, ref;
4646
+ switch (range2.increasing) {
4429
4647
  case !0: {
4430
4648
  ref = ($) => $;
4431
4649
  break;
@@ -4437,55 +4655,57 @@ ${js}`
4437
4655
  default:
4438
4656
  ref = Math.abs;
4439
4657
  }
4440
- let abs = ref, lengthAdjust = 1 - +!range.left.inclusive - +!range.right.inclusive, ref1;
4441
- lengthAdjust > 0 ? ref1 = ` + ${lengthAdjust}` : lengthAdjust < 0 ? ref1 = ` - ${-lengthAdjust}` : ref1 = void 0;
4442
- let lengthAdjustExpression = ref1, children;
4658
+ let abs = ref, lengthAdjust = 1 - +!range2.left.inclusive - +!range2.right.inclusive, children;
4443
4659
  if (typeof start == "object" && start != null && "type" in start && start.type === "Literal" && typeof end == "object" && end != null && "type" in end && end.type === "Literal") {
4444
4660
  let startValue = literalValue(start), endValue = literalValue(end);
4445
4661
  if (typeof startValue == "string" && typeof endValue == "string") {
4446
4662
  if (!(startValue.length === 1 && endValue.length === 1))
4447
4663
  throw new Error("String range start and end must be a single character");
4448
4664
  let startCode = startValue.charCodeAt(0), endCode = endValue.charCodeAt(0), step = startCode <= endCode ? 1 : -1, length = abs(endCode - startCode) + lengthAdjust;
4449
- range.left.inclusive || (startCode += step), length <= 26 ? children = [
4665
+ range2.left.inclusive || (startCode += step), length <= 26 ? children = [
4450
4666
  "[",
4451
4667
  Array.from({ length }, (_2, i) => JSON.stringify(String.fromCharCode(startCode + i * step))).join(", "),
4452
4668
  "]"
4453
4669
  ] : children = [
4454
- `Array.from({length: ${length.toString()}}, `,
4455
- "(_, i) => String.fromCharCode(",
4670
+ getHelperRef(startCode <= endCode ? "stringRange" : "revStringRange"),
4671
+ "(",
4456
4672
  startCode.toString(),
4457
- step > 0 ? " + " : " - ",
4458
- "i))"
4459
- ], range.error != null && children.unshift(range.error);
4673
+ ", ",
4674
+ length.toString(),
4675
+ ")"
4676
+ ], range2.error != null && children.unshift(range2.error);
4460
4677
  } else if (typeof startValue == "number" && typeof endValue == "number") {
4461
4678
  let step = startValue <= endValue ? 1 : -1, length = abs(endValue - startValue) + lengthAdjust;
4462
- range.left.inclusive || (startValue += step), length <= 20 && (children = [
4679
+ range2.left.inclusive || (startValue += step), length <= 20 && (children = [
4463
4680
  "[",
4464
4681
  Array.from({ length }, (_2, i) => startValue + i * step).join(", "),
4465
4682
  "]"
4466
- ], range.error != null && children.unshift(range.error));
4683
+ ], range2.error != null && children.unshift(range2.error));
4467
4684
  }
4468
4685
  }
4469
4686
  if (children == null)
4470
- if (range.increasing != null) {
4471
- let sign = range.increasing ? "+" : "-";
4687
+ if (range2.increasing != null) {
4688
+ let sign = range2.increasing ? "+" : "-";
4472
4689
  end = makeLeftHandSideExpression(end), children = [
4473
- "((s) => Array.from({length: ",
4474
- range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
4475
- lengthAdjustExpression,
4476
- "}, (_, i) => s ",
4477
- sign,
4478
- " i))",
4690
+ getHelperRef(range2.increasing ? "range" : "revRange"),
4479
4691
  "(",
4480
- range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
4692
+ range2.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
4693
+ ",",
4694
+ range2.right.inclusive ? [makeLeftHandSideExpression(end), ` ${sign} 1`] : end,
4481
4695
  ...ws1,
4482
4696
  ")"
4483
4697
  ];
4484
4698
  } else
4485
4699
  children = [
4486
- "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
4487
- lengthAdjustExpression,
4488
- "}, (_, i) => s + i * step)})",
4700
+ "((s, e) => s > e ? ",
4701
+ getHelperRef("revRange"),
4702
+ "(s, e",
4703
+ range2.right.inclusive ? " - 1" : void 0,
4704
+ ") : ",
4705
+ getHelperRef("range"),
4706
+ "(s, e",
4707
+ range2.right.inclusive ? " + 1" : void 0,
4708
+ "))",
4489
4709
  "(",
4490
4710
  start,
4491
4711
  ...ws1,
@@ -4499,33 +4719,33 @@ ${js}`
4499
4719
  children,
4500
4720
  start,
4501
4721
  end,
4502
- error: range.error,
4503
- left: range.left,
4504
- right: range.right,
4505
- increasing: range.increasing
4722
+ error: range2.error,
4723
+ left: range2.left,
4724
+ right: range2.right,
4725
+ increasing: range2.increasing
4506
4726
  };
4507
4727
  }
4508
- function forRange(open, forDeclaration, range, stepExp, close) {
4509
- 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;
4728
+ function forRange(open, forDeclaration, range2, stepExp, close) {
4729
+ let { start, end, left, right, increasing } = range2, counterRef = makeRef("i"), infinite = typeof end == "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity", stepRef, asc;
4510
4730
  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));
4511
- let ref2;
4731
+ let ref1;
4512
4732
  if (stepExp?.type === "Literal")
4513
4733
  try {
4514
- ref2 = literalValue(stepExp);
4734
+ ref1 = literalValue(stepExp);
4515
4735
  } catch {
4516
- ref2 = void 0;
4736
+ ref1 = void 0;
4517
4737
  }
4518
4738
  else
4519
- ref2 = void 0;
4520
- let stepValue = ref2;
4739
+ ref1 = void 0;
4740
+ let stepValue = ref1;
4521
4741
  typeof stepValue == "number" && (asc = stepValue > 0);
4522
- let ref3;
4523
- stepRef ? ref3 = start : ref3 = maybeRef(start, "start");
4524
- let startRef = ref3, endRef = maybeRef(end, "end"), startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [], endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [], ascDec = [], ascRef;
4742
+ let ref2;
4743
+ stepRef ? ref2 = start : ref2 = maybeRef(start, "start");
4744
+ let startRef = ref2, endRef = maybeRef(end, "end"), startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [], endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [], ascDec = [], ascRef;
4525
4745
  if (stepExp && stepRef !== stepExp && (ascDec = [", ", stepRef, " = ", stepExp]), start?.type === "Literal" && end?.type === "Literal") {
4526
4746
  asc = literalValue(start) <= literalValue(end);
4527
- let ref4;
4528
- if ((ref4 = start.subtype) === "StringLiteral" && ref4 === end.subtype) {
4747
+ let ref3;
4748
+ if ((ref3 = start.subtype) === "StringLiteral" && ref3 === end.subtype) {
4529
4749
  let startChar = literalValue(start).charCodeAt(0).toString();
4530
4750
  startRef = {
4531
4751
  type: "Literal",
@@ -4562,14 +4782,14 @@ ${js}`
4562
4782
  // This declaration doesn't always appear in the output,
4563
4783
  // but it's still helpful for determining the primary loop variable
4564
4784
  declaration: forDeclaration,
4565
- children: [range.error, open, declaration, "; ", ...condition, "; ", ...increment, close],
4785
+ children: [range2.error, open, declaration, "; ", ...condition, "; ", ...increment, close],
4566
4786
  blockPrefix
4567
4787
  };
4568
4788
  }
4569
4789
  function processForInOf($0) {
4570
4790
  let [awaits, eachOwn, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
4571
- for (let ref5 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref5.length; i1 < len3; i1++) {
4572
- let decl = ref5[i1];
4791
+ for (let ref4 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref4.length; i1 < len3; i1++) {
4792
+ let decl = ref4[i1];
4573
4793
  decl != null && decl.type !== "ForDeclaration" && checkValidLHS(decl);
4574
4794
  }
4575
4795
  if (startsWith(exp, /^\s/) || (exp = prepend(" ", exp)), exp.type === "RangeExpression" && inOf.token === "of" && !declaration2)
@@ -4597,16 +4817,19 @@ ${js}`
4597
4817
  ], ";"]), assignmentNames.push(...decl22.names);
4598
4818
  }
4599
4819
  let expRefDec = expRef2 !== exp ? [trimFirstSpace(expRef2), " = ", trimFirstSpace(exp), ", "] : [];
4600
- return blockPrefix.push(["", {
4820
+ blockPrefix.push(["", {
4601
4821
  type: "Declaration",
4602
4822
  children: [declaration, " = ", trimFirstSpace(expRef2), "[", counterRef, "]"],
4603
4823
  names: assignmentNames,
4604
4824
  implicitLift: !0
4605
- }, ";"]), declaration = {
4825
+ }, ";"]);
4826
+ let eachDeclaration = declaration;
4827
+ return declaration = {
4606
4828
  type: "Declaration",
4607
4829
  children: ["let ", ...expRefDec, counterRef, " = 0, ", lenRef, " = ", trimFirstSpace(expRef2), ".length"],
4830
+ decl: "let",
4608
4831
  names: []
4609
- }, { declaration, children: [open, declaration, "; ", [counterRef, " < ", lenRef, "; "], counterRef, increment, close], blockPrefix };
4832
+ }, { declaration, eachDeclaration, children: [open, declaration, "; ", [counterRef, " < ", lenRef, "; "], counterRef, increment, close], blockPrefix };
4610
4833
  } else
4611
4834
  eachOwnError = {
4612
4835
  type: "Error",
@@ -4618,7 +4841,7 @@ ${js}`
4618
4841
  message: "'own' is only meaningful in for..in loops"
4619
4842
  });
4620
4843
  let { binding } = declaration, pattern = binding?.pattern;
4621
- if (binding?.typeSuffix || inOf.token === "in" && declaration2 && pattern.type !== "Identifier") {
4844
+ if (pattern?.type === "NamedBindingPattern" && (pattern = pattern.binding), binding?.typeSuffix || inOf.token === "in" && declaration2 && pattern.type !== "Identifier") {
4622
4845
  let itemRef = makeRef(inOf.token === "in" ? "key" : "item");
4623
4846
  blockPrefix.push(["", {
4624
4847
  type: "Declaration",
@@ -4650,11 +4873,13 @@ ${js}`
4650
4873
  hoistDec = {
4651
4874
  type: "Declaration",
4652
4875
  children: ["let ", counterRef, " = 0"],
4876
+ decl: "let",
4653
4877
  names: []
4654
4878
  }, blockPrefix.push(["", {
4655
4879
  type: "Declaration",
4656
4880
  children: [trimFirstSpace(ws2), decl2, " = ", counterRef, "++"],
4657
- names: decl2.names
4881
+ names: decl2.names,
4882
+ decl: decl2.decl
4658
4883
  }, ";"]);
4659
4884
  break;
4660
4885
  }
@@ -4663,7 +4888,8 @@ ${js}`
4663
4888
  if (expRef2 !== exp && (hoistDec = {
4664
4889
  type: "Declaration",
4665
4890
  children: ["let ", expRef2],
4666
- names: []
4891
+ names: [],
4892
+ decl: "let"
4667
4893
  }, exp = {
4668
4894
  type: "AssignmentExpression",
4669
4895
  children: [" ", expRef2, " =", exp]
@@ -4671,20 +4897,57 @@ ${js}`
4671
4897
  let hasPropRef = getHelperRef("hasProp");
4672
4898
  blockPrefix.push(["", ["if (!", hasPropRef, "(", trimFirstSpace(expRef2), ", ", trimFirstSpace(pattern), ")) continue"], ";"]);
4673
4899
  }
4674
- decl2 && blockPrefix.push(["", {
4675
- type: "Declaration",
4676
- children: [
4677
- trimFirstSpace(ws2),
4678
- decl2,
4679
- " = ",
4680
- trimFirstSpace(expRef2),
4681
- "[",
4682
- trimFirstSpace(pattern),
4683
- "]"
4684
- ],
4685
- decl: decl2,
4686
- names: decl2.names
4687
- }, ";"]);
4900
+ if (decl2) {
4901
+ let trimmedPattern = trimFirstSpace(pattern), expression = makeNode({
4902
+ type: "MemberExpression",
4903
+ children: [
4904
+ trimFirstSpace(expRef2),
4905
+ makeNode({
4906
+ type: "Index",
4907
+ expression: trimmedPattern,
4908
+ children: ["[", trimmedPattern, "]"]
4909
+ })
4910
+ ]
4911
+ });
4912
+ blockPrefix.push([
4913
+ "",
4914
+ (() => {
4915
+ if (decl2.type === "ForDeclaration") {
4916
+ let { binding: binding2, children } = decl2;
4917
+ return binding2.children.push(binding2.initializer = makeNode({
4918
+ type: "Initializer",
4919
+ expression,
4920
+ children: [" = ", expression]
4921
+ })), makeNode({
4922
+ type: "Declaration",
4923
+ children: [
4924
+ trimFirstSpace(ws2),
4925
+ ...children
4926
+ ],
4927
+ bindings: [decl2.binding],
4928
+ decl: decl2.decl,
4929
+ names: decl2.names
4930
+ });
4931
+ } else
4932
+ return makeNode({
4933
+ type: "AssignmentExpression",
4934
+ children: [
4935
+ trimFirstSpace(ws2),
4936
+ decl2,
4937
+ " = ",
4938
+ trimFirstSpace(expRef2),
4939
+ "[",
4940
+ trimFirstSpace(pattern),
4941
+ "]"
4942
+ ],
4943
+ names: decl2.names,
4944
+ lhs: decl2,
4945
+ assigned: decl2
4946
+ });
4947
+ })(),
4948
+ ";"
4949
+ ]);
4950
+ }
4688
4951
  break;
4689
4952
  }
4690
4953
  default:
@@ -5024,7 +5287,7 @@ ${js}`
5024
5287
  }, defaultClause = !1, clauses = cs.map((clause) => {
5025
5288
  let ref1;
5026
5289
  if ((ref1 = clause.binding?.parameter) && typeof ref1 == "object" && "type" in ref1 && ref1.type === "CatchPattern" && "patterns" in ref1) {
5027
- let { type, patterns } = ref1;
5290
+ let { patterns } = ref1;
5028
5291
  return {
5029
5292
  type: "PatternClause",
5030
5293
  patterns,
@@ -5504,8 +5767,12 @@ ${js}`
5504
5767
  }
5505
5768
  function processBindingPatternLHS(lhs, tail) {
5506
5769
  adjustAtBindings(lhs, !0);
5507
- let [splices, thisAssignments] = gatherBindingCode(lhs);
5508
- tail.push(...splices.map((s) => [", ", s]), ...thisAssignments.map((a) => [", ", a]));
5770
+ let [splices, thisAssignments] = gatherBindingCode(lhs), subbindings = gatherSubbindings(lhs);
5771
+ simplifyBindingProperties(lhs), simplifyBindingProperties(subbindings), tail.push(
5772
+ ...splices.map((s) => [", ", s]),
5773
+ ...thisAssignments.map((a) => [", ", a]),
5774
+ ...subbindings
5775
+ );
5509
5776
  }
5510
5777
  function processAssignments(statements) {
5511
5778
  for (let ref7 = gatherRecursiveAll(statements, ($4) => $4.type === "AssignmentExpression" || $4.type === "UpdateExpression"), i5 = 0, len3 = ref7.length; i5 < len3; i5++) {
@@ -5554,7 +5821,7 @@ ${js}`
5554
5821
  if (exp.names !== null)
5555
5822
  continue;
5556
5823
  let { lhs: $1, expression: $2 } = exp, tail = [], len3 = $1.length, block, ref12;
5557
- if (exp.parent?.type === "BlockStatement" && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
5824
+ if (blockContainingStatement(exp) && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
5558
5825
  block = makeBlockFragment();
5559
5826
  let ref13;
5560
5827
  if (ref13 = prependStatementExpressionBlock(
@@ -5607,7 +5874,7 @@ ${js}`
5607
5874
  message: "Slice range cannot be decreasing in assignment"
5608
5875
  });
5609
5876
  break;
5610
- } else m3 = lhs.type, (m3 === "ObjectBindingPattern" || m3 === "ArrayBindingPattern") && (processBindingPatternLHS(lhs, tail), gatherRecursiveAll(lhs, ($9) => $9.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare)));
5877
+ } else m3 = lhs.type, (m3 === "ObjectBindingPattern" || m3 === "ArrayBindingPattern" || m3 === "NamedBindingPattern") && (processBindingPatternLHS(lhs, tail), gatherRecursiveAll(lhs, ($9) => $9.type === "Ref").forEach(refsToDeclare.add.bind(refsToDeclare)));
5611
5878
  }
5612
5879
  i--;
5613
5880
  }
@@ -5703,7 +5970,7 @@ ${js}`
5703
5970
  for (; suffixIndex >= 0; ) {
5704
5971
  let suffix = unary.suffix[suffixIndex];
5705
5972
  if (typeof suffix == "object" && suffix != null && "token" in suffix && suffix.token === "?") {
5706
- let { token } = suffix, count = 0, m4;
5973
+ let {} = suffix, count = 0, m4;
5707
5974
  for (; m4 = unary.suffix[suffixIndex], typeof m4 == "object" && m4 != null && "token" in m4 && m4.token === "?"; )
5708
5975
  unary.suffix.splice(suffixIndex--, 1), count++;
5709
5976
  let m5;
@@ -5750,7 +6017,7 @@ ${js}`
5750
6017
  children: [prefix, replace, outer]
5751
6018
  })), results2.push(replaceNode(unary, replace, parent));
5752
6019
  } else if (typeof suffix == "object" && suffix != null && "type" in suffix && suffix.type === "NonNullAssertion") {
5753
- let { type } = suffix, m6;
6020
+ let {} = suffix, m6;
5754
6021
  for (; m6 = unary.suffix[suffixIndex], typeof m6 == "object" && m6 != null && "type" in m6 && m6.type === "NonNullAssertion"; )
5755
6022
  unary.suffix.splice(suffixIndex--, 1);
5756
6023
  let m7;
@@ -5987,16 +6254,15 @@ ${js}`
5987
6254
  }
5988
6255
  function processProgram(root) {
5989
6256
  let state2 = getState(), config2 = getConfig();
5990
- 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");
5991
- let rootIIFE;
5992
- if (config2.iife || config2.repl) {
5993
- rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
5994
- let newExpressions = [["", rootIIFE]];
5995
- root.children = root.children.map(($16) => $16 === root.expressions ? newExpressions : $16), root.expressions = newExpressions;
5996
- }
5997
- addParentPointers(root);
6257
+ 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);
5998
6258
  let { expressions: statements } = root;
5999
- 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), config2.coffeeClasses && processCoffeeClasses(statements), 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);
6259
+ 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);
6260
+ let rootIIFE;
6261
+ (config2.iife || config2.repl) && (rootIIFE = wrapIIFE(
6262
+ root.expressions,
6263
+ root.topLevelAwait,
6264
+ root.topLevelYield ? "*" : void 0
6265
+ ), 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);
6000
6266
  }
6001
6267
  async function processProgramAsync(root) {
6002
6268
  let { expressions: statements } = root;
@@ -6017,24 +6283,9 @@ ${js}`
6017
6283
  (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}`, ";"]));
6018
6284
  }
6019
6285
  }
6020
- function populateRefs(statements) {
6021
- let refNodes = gatherRecursive(statements, ($21) => $21.type === "Ref");
6022
- if (refNodes.length) {
6023
- let ids = gatherRecursive(statements, (s) => s.type === "Identifier"), names = new Set(ids.flatMap(({ names: names2 }) => names2 || []));
6024
- refNodes.forEach((ref) => {
6025
- let { type, base } = ref;
6026
- if (type !== "Ref") return;
6027
- ref.type = "Identifier";
6028
- let n = 0, name = base;
6029
- for (; names.has(name); )
6030
- n++, name = `${base}${n}`;
6031
- return names.add(name), ref.children = ref.names = [name];
6032
- });
6033
- }
6034
- }
6035
6286
  function processPlaceholders(statements) {
6036
6287
  let placeholderMap = /* @__PURE__ */ new Map(), liftedIfs = /* @__PURE__ */ new Set();
6037
- for (let ref25 = gatherRecursiveAll(statements, ($22) => $22.type === "Placeholder"), i17 = 0, len14 = ref25.length; i17 < len14; i17++) {
6288
+ for (let ref25 = gatherRecursiveAll(statements, ($21) => $21.type === "Placeholder"), i17 = 0, len14 = ref25.length; i17 < len14; i17++) {
6038
6289
  let exp = ref25[i17], ancestor;
6039
6290
  if (exp.subtype === ".") {
6040
6291
  ({ ancestor } = findAncestor(
@@ -6236,6 +6487,8 @@ ${js}`
6236
6487
  ExpressionizedStatement,
6237
6488
  StatementExpression,
6238
6489
  CommaExpression,
6490
+ CommaExpressionSpread,
6491
+ AssignmentExpressionSpread,
6239
6492
  Arguments,
6240
6493
  ImplicitArguments,
6241
6494
  ExplicitArguments,
@@ -6380,6 +6633,7 @@ ${js}`
6380
6633
  NWBindingIdentifier,
6381
6634
  AtIdentifierRef,
6382
6635
  PinPattern,
6636
+ NamedBindingPattern,
6383
6637
  BindingPattern,
6384
6638
  ObjectBindingPattern,
6385
6639
  ObjectBindingPatternContent,
@@ -6415,6 +6669,7 @@ ${js}`
6415
6669
  BareNestedBlock,
6416
6670
  BareBlock,
6417
6671
  ThenClause,
6672
+ ThenBlock,
6418
6673
  BracedThenClause,
6419
6674
  BracedOrEmptyBlock,
6420
6675
  NoCommaBracedOrEmptyBlock,
@@ -6524,6 +6779,7 @@ ${js}`
6524
6779
  PostfixStatement,
6525
6780
  _PostfixStatement,
6526
6781
  Statement,
6782
+ IterationActualStatement,
6527
6783
  ShouldExpressionize,
6528
6784
  NoCommaStatement,
6529
6785
  EmptyStatement,
@@ -7055,15 +7311,14 @@ ${js}`
7055
7311
  SameLineOrIndentedFurther,
7056
7312
  Dedented,
7057
7313
  PushExtraIndent1
7058
- }, $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) {
7314
+ }, $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) {
7059
7315
  var reset = $1, init = $2, ws1 = $3, statements = $4, ws2 = $5;
7060
7316
  let program = {
7061
7317
  type: "BlockStatement",
7062
7318
  expressions: statements,
7063
7319
  children: [reset, init, ws1, statements, ws2],
7064
7320
  bare: !0,
7065
- root: !0,
7066
- topLevelAwait: hasAwait(statements)
7321
+ root: !0
7067
7322
  };
7068
7323
  return processProgram(program), program;
7069
7324
  });
@@ -7167,6 +7422,51 @@ ${js}`
7167
7422
  function CommaExpression(ctx, state2) {
7168
7423
  return (0, import_lib2.$EVENT)(ctx, state2, "CommaExpression", CommaExpression$0);
7169
7424
  }
7425
+ 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) {
7426
+ var ws = $1, ws2 = $3, iteration = $4;
7427
+ return iteration.subtype === "do" || iteration.subtype === "comptime" ? $skip : (ws2 && (ws ? ws = [ws, ws2] : ws = ws2), iteration = { ...iteration, resultsParent: !0 }, prepend(ws, iteration));
7428
+ }), 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) {
7429
+ return $2.length == 0 ? $1 : $0;
7430
+ }), CommaExpressionSpread$$ = [CommaExpressionSpread$0, CommaExpressionSpread$1];
7431
+ function CommaExpressionSpread(ctx, state2) {
7432
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "CommaExpressionSpread", CommaExpressionSpread$$);
7433
+ }
7434
+ var AssignmentExpressionSpread$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
7435
+ var expression = $3;
7436
+ return {
7437
+ type: "SpreadElement",
7438
+ children: $0,
7439
+ expression,
7440
+ names: expression.names
7441
+ };
7442
+ }), 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) {
7443
+ var expression = $1;
7444
+ return $2 ? {
7445
+ type: "SpreadElement",
7446
+ children: [...$2, $1],
7447
+ expression,
7448
+ names: expression.names
7449
+ } : $1;
7450
+ }), AssignmentExpressionSpread$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
7451
+ var expression = $3;
7452
+ return {
7453
+ type: "SpreadElement",
7454
+ children: $0,
7455
+ expression,
7456
+ names: expression.names
7457
+ };
7458
+ }), 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) {
7459
+ var expression = $1;
7460
+ return $2 ? {
7461
+ type: "SpreadElement",
7462
+ children: [...$2, $1],
7463
+ expression,
7464
+ names: expression.names
7465
+ } : $1;
7466
+ }), AssignmentExpressionSpread$$ = [AssignmentExpressionSpread$0, AssignmentExpressionSpread$1, AssignmentExpressionSpread$2, AssignmentExpressionSpread$3];
7467
+ function AssignmentExpressionSpread(ctx, state2) {
7468
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "AssignmentExpressionSpread", AssignmentExpressionSpread$$);
7469
+ }
7170
7470
  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) {
7171
7471
  var args = $2;
7172
7472
  return args || $skip;
@@ -8179,7 +8479,7 @@ ${js}`
8179
8479
  children: $0,
8180
8480
  expression
8181
8481
  };
8182
- }), LeftHandSideExpression$1 = CallExpression, LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1];
8482
+ }), LeftHandSideExpression$1 = NamedBindingPattern, LeftHandSideExpression$2 = CallExpression, LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1, LeftHandSideExpression$2];
8183
8483
  function LeftHandSideExpression(ctx, state2) {
8184
8484
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LeftHandSideExpression", LeftHandSideExpression$$);
8185
8485
  }
@@ -8636,7 +8936,7 @@ ${js}`
8636
8936
  function FunctionRestParameter(ctx, state2) {
8637
8937
  return (0, import_lib2.$EVENT)(ctx, state2, "FunctionRestParameter", FunctionRestParameter$0);
8638
8938
  }
8639
- var ParameterElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$E)(AccessModifier), (0, import_lib2.$E)(_), (0, import_lib2.$C)(NWBindingIdentifier, BindingPattern), (0, import_lib2.$E)(TypeSuffix), (0, import_lib2.$E)(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8939
+ var ParameterElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$E)(AccessModifier), (0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingPattern, NWBindingIdentifier), (0, import_lib2.$E)(TypeSuffix), (0, import_lib2.$E)(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8640
8940
  var accessModifier = $2, binding = $4, typeSuffix = $5, initializer = $6, delim = $7;
8641
8941
  return typeSuffix ??= binding.typeSuffix, {
8642
8942
  type: "Parameter",
@@ -8729,7 +9029,22 @@ ${js}`
8729
9029
  function PinPattern(ctx, state2) {
8730
9030
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PinPattern", PinPattern$$);
8731
9031
  }
8732
- var BindingPattern$0 = ObjectBindingPattern, BindingPattern$1 = ArrayBindingPattern, BindingPattern$2 = PinPattern, BindingPattern$3 = Literal, BindingPattern$4 = RegularExpressionLiteral, BindingPattern$$ = [BindingPattern$0, BindingPattern$1, BindingPattern$2, BindingPattern$3, BindingPattern$4];
9032
+ var NamedBindingPattern$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(BindingIdentifier, Caret, (0, import_lib2.$E)(_), BindingPattern), function($skip, $loc, $0, $1, $2, $3, $4) {
9033
+ var binding = $1, ws = $3, pattern = $4;
9034
+ return pattern = prepend(ws, pattern), {
9035
+ type: "NamedBindingPattern",
9036
+ // NOTE: children just has binding, not pattern, for easy destructuring
9037
+ children: [binding],
9038
+ binding,
9039
+ pattern,
9040
+ subbinding: [pattern, " = ", binding],
9041
+ typeSuffix: pattern.typeSuffix
9042
+ };
9043
+ });
9044
+ function NamedBindingPattern(ctx, state2) {
9045
+ return (0, import_lib2.$EVENT)(ctx, state2, "NamedBindingPattern", NamedBindingPattern$0);
9046
+ }
9047
+ var BindingPattern$0 = ObjectBindingPattern, BindingPattern$1 = ArrayBindingPattern, BindingPattern$2 = PinPattern, BindingPattern$3 = Literal, BindingPattern$4 = RegularExpressionLiteral, BindingPattern$5 = NamedBindingPattern, BindingPattern$$ = [BindingPattern$0, BindingPattern$1, BindingPattern$2, BindingPattern$3, BindingPattern$4, BindingPattern$5];
8733
9048
  function BindingPattern(ctx, state2) {
8734
9049
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BindingPattern", BindingPattern$$);
8735
9050
  }
@@ -8825,11 +9140,24 @@ ${js}`
8825
9140
  function NestedBindingPropertyList(ctx, state2) {
8826
9141
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedBindingPropertyList", NestedBindingPropertyList$0);
8827
9142
  }
8828
- 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) {
8829
- var name = $2, value = $6, typeSuffix = $7, initializer = $8;
9143
+ 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)(BindingPattern, BindingIdentifier), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9144
+ var ws1 = $1, name = $2, bind = $3, ws2 = $4, colon = $5, ws3 = $6, value = $7, typeSuffix = $8, initializer = $9;
9145
+ if (bind) {
9146
+ let binding = name, pattern = value;
9147
+ value = {
9148
+ type: "NamedBindingPattern",
9149
+ // NOTE: children just has binding, not pattern, for easy destructuring
9150
+ children: [binding],
9151
+ binding,
9152
+ pattern,
9153
+ subbinding: [pattern, " = ", binding],
9154
+ typeSuffix: pattern.typeSuffix,
9155
+ names: value.names
9156
+ };
9157
+ }
8830
9158
  return {
8831
9159
  type: "BindingProperty",
8832
- children: [$1, name, $3, $4, $5, value, initializer],
9160
+ children: [ws1, name, ws2, colon, ws3, value, initializer],
8833
9161
  // omit typeSuffix
8834
9162
  name,
8835
9163
  value,
@@ -8837,18 +9165,13 @@ ${js}`
8837
9165
  initializer,
8838
9166
  names: value.names
8839
9167
  };
8840
- }), 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) {
9168
+ }), 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) {
8841
9169
  var ws = $1, pin = $2, binding = $3, typeSuffix = $4, initializer = $5;
8842
- let children = [ws, binding, initializer];
8843
- return binding.type === "AtBinding" ? {
8844
- type: "AtBindingProperty",
8845
- children,
8846
- binding,
8847
- typeSuffix,
8848
- ref: binding.ref,
8849
- initializer,
8850
- names: []
8851
- } : pin ? (children = [ws, binding], typeSuffix && children.push({
9170
+ let children = [ws, binding];
9171
+ return binding.type === "AtBinding" && children.push({
9172
+ type: "Error",
9173
+ message: "Pinned properties do not yet work with @binding"
9174
+ }), typeSuffix && children.push({
8852
9175
  type: "Error",
8853
9176
  message: "Pinned properties cannot have type annotations"
8854
9177
  }), initializer && children.push({
@@ -8863,7 +9186,19 @@ ${js}`
8863
9186
  children: [binding],
8864
9187
  expression: binding
8865
9188
  }
8866
- }) : {
9189
+ };
9190
+ }), 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) {
9191
+ var ws = $1, binding = $2, bind = $3, typeSuffix = $4, initializer = $5;
9192
+ let children = [ws, binding, initializer];
9193
+ return binding.type === "AtBinding" ? {
9194
+ type: "AtBindingProperty",
9195
+ children,
9196
+ binding,
9197
+ typeSuffix,
9198
+ ref: binding.ref,
9199
+ initializer,
9200
+ names: []
9201
+ } : {
8867
9202
  type: "BindingProperty",
8868
9203
  children,
8869
9204
  name: binding,
@@ -8873,7 +9208,7 @@ ${js}`
8873
9208
  names: binding.names,
8874
9209
  identifier: binding
8875
9210
  };
8876
- }), BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2];
9211
+ }), BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2, BindingProperty$3];
8877
9212
  function BindingProperty(ctx, state2) {
8878
9213
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BindingProperty", BindingProperty$$);
8879
9214
  }
@@ -8917,7 +9252,7 @@ ${js}`
8917
9252
  function NestedBindingElements(ctx, state2) {
8918
9253
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedBindingElements", NestedBindingElements$0);
8919
9254
  }
8920
- var BindingElement$0 = BindingRestElement, BindingElement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((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) {
9255
+ var BindingElement$0 = BindingRestElement, BindingElement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingPattern, BindingIdentifier), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4) {
8921
9256
  var ws = $1, binding = $2, typeSuffix = $3, initializer = $4;
8922
9257
  return {
8923
9258
  type: "BindingElement",
@@ -8937,7 +9272,7 @@ ${js}`
8937
9272
  function BindingElement(ctx, state2) {
8938
9273
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BindingElement", BindingElement$$);
8939
9274
  }
8940
- var BindingRestElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, (0, import_lib2.$C)(BindingIdentifier, BindingPattern, EmptyBindingPattern), (0, import_lib2.$E)(BindingTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4) {
9275
+ var BindingRestElement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, (0, import_lib2.$C)(BindingPattern, BindingIdentifier, EmptyBindingPattern), (0, import_lib2.$E)(BindingTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4) {
8941
9276
  var ws = $1, dots = $2, binding = $3, typeSuffix = $4;
8942
9277
  return {
8943
9278
  type: "BindingRestElement",
@@ -8949,7 +9284,7 @@ ${js}`
8949
9284
  names: binding.names,
8950
9285
  rest: !0
8951
9286
  };
8952
- }), BindingRestElement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingIdentifier, BindingPattern), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
9287
+ }), BindingRestElement$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingPattern, BindingIdentifier), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
8953
9288
  var ws = $1, binding = $2, dots = $3;
8954
9289
  return {
8955
9290
  type: "BindingRestElement",
@@ -9305,12 +9640,18 @@ ${js}`
9305
9640
  function BareBlock(ctx, state2) {
9306
9641
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BareBlock", BareBlock$$);
9307
9642
  }
9308
- var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, SingleLineStatements), function(value) {
9643
+ var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, ThenBlock), function(value) {
9309
9644
  return value[1];
9310
9645
  });
9311
9646
  function ThenClause(ctx, state2) {
9312
9647
  return (0, import_lib2.$EVENT)(ctx, state2, "ThenClause", ThenClause$0);
9313
9648
  }
9649
+ var ThenBlock$0 = (0, import_lib2.$T)((0, import_lib2.$S)(NoBlock, EmptyBlock), function(value) {
9650
+ return value[1];
9651
+ }), ThenBlock$1 = ImplicitNestedBlock, ThenBlock$2 = SingleLineStatements, ThenBlock$$ = [ThenBlock$0, ThenBlock$1, ThenBlock$2];
9652
+ function ThenBlock(ctx, state2) {
9653
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ThenBlock", ThenBlock$$);
9654
+ }
9314
9655
  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) {
9315
9656
  var open = $2, exp = $3, close = $4;
9316
9657
  let expressions = [exp];
@@ -9727,8 +10068,8 @@ ${js}`
9727
10068
  return (0, import_lib2.$EVENT)(ctx, state2, "RangeEnd", RangeEnd$0);
9728
10069
  }
9729
10070
  var RangeExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Expression, __, RangeDots, Expression), function($skip, $loc, $0, $1, $2, $3, $4) {
9730
- var start = $1, ws = $2, range = $3, end = $4;
9731
- return processRangeExpression(start, ws, range, end);
10071
+ var start = $1, ws = $2, range2 = $3, end = $4;
10072
+ return processRangeExpression(start, ws, range2, end);
9732
10073
  }), RangeExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Expression, __, DotDot, (0, import_lib2.$Y)((0, import_lib2.$S)(__, CloseBracket))), function($skip, $loc, $0, $1, $2, $3, $4) {
9733
10074
  var s = $1, ws = $2;
9734
10075
  return {
@@ -10837,9 +11178,7 @@ ${js}`
10837
11178
  }
10838
11179
  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) {
10839
11180
  return value[0];
10840
- }), Statement$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
10841
- return $1.generator || $1.reduction ? $skip : $1;
10842
- }), Statement$4 = (0, import_lib2.$T)((0, import_lib2.$S)(SwitchStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
11181
+ }), Statement$3 = IterationActualStatement, Statement$4 = (0, import_lib2.$T)((0, import_lib2.$S)(SwitchStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
10843
11182
  return value[0];
10844
11183
  }), Statement$5 = (0, import_lib2.$T)((0, import_lib2.$S)(TryStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
10845
11184
  return value[0];
@@ -10847,6 +11186,12 @@ ${js}`
10847
11186
  function Statement(ctx, state2) {
10848
11187
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Statement", Statement$$);
10849
11188
  }
11189
+ var IterationActualStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
11190
+ return $1.generator || $1.reduction ? $skip : $1;
11191
+ });
11192
+ function IterationActualStatement(ctx, state2) {
11193
+ return (0, import_lib2.$EVENT)(ctx, state2, "IterationActualStatement", IterationActualStatement$0);
11194
+ }
10850
11195
  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];
10851
11196
  function ShouldExpressionize(ctx, state2) {
10852
11197
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ShouldExpressionize", ShouldExpressionize$$);
@@ -10926,8 +11271,8 @@ ${js}`
10926
11271
  function LabelledItem(ctx, state2) {
10927
11272
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LabelledItem", LabelledItem$$);
10928
11273
  }
10929
- 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) {
10930
- var kind = $1, ws = $2, condition = $3, block = $5, e = $6;
11274
+ 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) {
11275
+ var kind = $1, ws = $2, condition = $3, block = $4, e = $5;
10931
11276
  if (kind.negated && (kind = { ...kind, token: "if" }, condition = negateCondition(condition)), block.bare && e) {
10932
11277
  let semicolon = ";";
10933
11278
  block = {
@@ -11124,15 +11469,15 @@ ${js}`
11124
11469
  }
11125
11470
  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) {
11126
11471
  var generator = $2, c = $4;
11127
- let { children, declaration } = c;
11128
- return {
11472
+ let { children, reduction } = c;
11473
+ return generator && reduction && (children = [{
11474
+ type: "Error",
11475
+ message: `Cannot use reduction (${reduction.subtype}) with generators`
11476
+ }, ...children]), {
11477
+ ...c,
11129
11478
  type: "ForStatement",
11130
11479
  children: [$1, ...$3, ...children],
11131
- declaration,
11132
11480
  block: null,
11133
- blockPrefix: c.blockPrefix,
11134
- hoistDec: c.hoistDec,
11135
- reduction: c.reduction,
11136
11481
  generator
11137
11482
  };
11138
11483
  });
@@ -11173,7 +11518,7 @@ ${js}`
11173
11518
  function ForStatementControlWithReduction(ctx, state2) {
11174
11519
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForStatementControlWithReduction", ForStatementControlWithReduction$$);
11175
11520
  }
11176
- 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) {
11521
+ 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) {
11177
11522
  var subtype = $1, ws = $3;
11178
11523
  return {
11179
11524
  type: "ForReduction",
@@ -11337,10 +11682,10 @@ ${js}`
11337
11682
  };
11338
11683
  }), ForDeclaration$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertConst, (0, import_lib2.$N)(ActualMemberExpression), ForBinding), function($skip, $loc, $0, $1, $2, $3) {
11339
11684
  var c = $1, binding = $3;
11340
- return {
11685
+ return gatherRecursive(binding, ($) => $.type === "PinPattern").length ? $skip : {
11341
11686
  type: "ForDeclaration",
11342
11687
  children: [c, binding],
11343
- decl: c.token,
11688
+ decl: c.token.trimEnd(),
11344
11689
  binding,
11345
11690
  names: binding.names
11346
11691
  };
@@ -11481,12 +11826,16 @@ ${js}`
11481
11826
  function PatternExpressionList(ctx, state2) {
11482
11827
  return (0, import_lib2.$EVENT)(ctx, state2, "PatternExpressionList", PatternExpressionList$0);
11483
11828
  }
11484
- var PatternExpression$0 = BindingPattern, PatternExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(ForbidIndentedApplication, (0, import_lib2.$E)((0, import_lib2.$P)(SingleLineBinaryOpRHS)), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3) {
11485
- var pattern = $2;
11486
- return pattern ? {
11829
+ var PatternExpression$0 = BindingPattern, PatternExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(ForbidIndentedApplication, (0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(BindingIdentifier, (0, import_lib2.$E)(Caret))), (0, import_lib2.$P)(SingleLineBinaryOpRHS))), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3) {
11830
+ var body = $2;
11831
+ if (!body) return $skip;
11832
+ let [named, rhs] = body, binding;
11833
+ return named && ([binding] = named), {
11487
11834
  type: "ConditionFragment",
11488
- children: pattern
11489
- } : $skip;
11835
+ children: [binding, rhs],
11836
+ binding,
11837
+ rhs
11838
+ };
11490
11839
  }), PatternExpression$$ = [PatternExpression$0, PatternExpression$1];
11491
11840
  function PatternExpression(ctx, state2) {
11492
11841
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PatternExpression", PatternExpression$$);
@@ -11569,15 +11918,7 @@ ${js}`
11569
11918
  function FinallyClause(ctx, state2) {
11570
11919
  return (0, import_lib2.$EVENT)(ctx, state2, "FinallyClause", FinallyClause$0);
11571
11920
  }
11572
- var CatchParameter$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(BindingIdentifier, (0, import_lib2.$E)(TypeSuffix)), function($skip, $loc, $0, $1, $2) {
11573
- var binding = $1, typeSuffix = $2;
11574
- return {
11575
- type: "CatchParameter",
11576
- binding,
11577
- typeSuffix,
11578
- children: $0
11579
- };
11580
- }), CatchParameter$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)(ObjectBindingPattern, ArrayBindingPattern), TypeSuffix), function($skip, $loc, $0, $1, $2) {
11921
+ var CatchParameter$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$C)(ObjectBindingPattern, ArrayBindingPattern), TypeSuffix), function($skip, $loc, $0, $1, $2) {
11581
11922
  var binding = $1, typeSuffix = $2;
11582
11923
  return {
11583
11924
  type: "CatchParameter",
@@ -11585,12 +11926,20 @@ ${js}`
11585
11926
  typeSuffix,
11586
11927
  children: [binding, typeSuffix]
11587
11928
  };
11588
- }), CatchParameter$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(PatternExpressionList), function($skip, $loc, $0, $1) {
11929
+ }), CatchParameter$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(PatternExpressionList), function($skip, $loc, $0, $1) {
11589
11930
  return {
11590
11931
  type: "CatchPattern",
11591
11932
  children: $0,
11592
11933
  patterns: $1
11593
11934
  };
11935
+ }), CatchParameter$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(BindingIdentifier, (0, import_lib2.$E)(TypeSuffix)), function($skip, $loc, $0, $1, $2) {
11936
+ var binding = $1, typeSuffix = $2;
11937
+ return {
11938
+ type: "CatchParameter",
11939
+ binding,
11940
+ typeSuffix,
11941
+ children: $0
11942
+ };
11594
11943
  }), CatchParameter$$ = [CatchParameter$0, CatchParameter$1, CatchParameter$2];
11595
11944
  function CatchParameter(ctx, state2) {
11596
11945
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CatchParameter", CatchParameter$$);
@@ -11855,7 +12204,7 @@ ${js}`
11855
12204
  function RestoreAll(ctx, state2) {
11856
12205
  return (0, import_lib2.$EVENT)(ctx, state2, "RestoreAll", RestoreAll$0);
11857
12206
  }
11858
- var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpression), function($skip, $loc, $0, $1) {
12207
+ var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpressionSpread), function($skip, $loc, $0, $1) {
11859
12208
  return makeExpressionStatement($1);
11860
12209
  });
11861
12210
  function CommaExpressionStatement(ctx, state2) {
@@ -11916,19 +12265,19 @@ ${js}`
11916
12265
  function ThrowStatement(ctx, state2) {
11917
12266
  return (0, import_lib2.$EVENT)(ctx, state2, "ThrowStatement", ThrowStatement$0);
11918
12267
  }
11919
- 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) {
12268
+ 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) {
11920
12269
  return { $loc, token: $1 };
11921
12270
  });
11922
12271
  function Break(ctx, state2) {
11923
12272
  return (0, import_lib2.$EVENT)(ctx, state2, "Break", Break$0);
11924
12273
  }
11925
- 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) {
12274
+ 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) {
11926
12275
  return { $loc, token: $1 };
11927
12276
  });
11928
12277
  function Continue(ctx, state2) {
11929
12278
  return (0, import_lib2.$EVENT)(ctx, state2, "Continue", Continue$0);
11930
12279
  }
11931
- 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) {
12280
+ 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) {
11932
12281
  return { $loc, token: $1 };
11933
12282
  });
11934
12283
  function Debugger(ctx, state2) {
@@ -11975,7 +12324,7 @@ ${js}`
11975
12324
  function MaybeParenNestedExpression(ctx, state2) {
11976
12325
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeParenNestedExpression", MaybeParenNestedExpression$$);
11977
12326
  }
11978
- 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) {
12327
+ 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) {
11979
12328
  return {
11980
12329
  type: "ImportDeclaration",
11981
12330
  children: [[
@@ -12119,7 +12468,7 @@ ${js}`
12119
12468
  function ImpliedFrom(ctx, state2) {
12120
12469
  return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFrom", ImpliedFrom$0);
12121
12470
  }
12122
- 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) {
12471
+ 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) {
12123
12472
  var keyword = $2, object = $5;
12124
12473
  return {
12125
12474
  type: "ImportAssertion",
@@ -12363,19 +12712,19 @@ ${js}`
12363
12712
  function LexicalDeclaration(ctx, state2) {
12364
12713
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LexicalDeclaration", LexicalDeclaration$$);
12365
12714
  }
12366
- 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) {
12715
+ 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) {
12367
12716
  return { $loc, token: "=", decl: "const " };
12368
12717
  });
12369
12718
  function ConstAssignment(ctx, state2) {
12370
12719
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstAssignment", ConstAssignment$0);
12371
12720
  }
12372
- var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L136, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12721
+ var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L138, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
12373
12722
  return { $loc, token: "=", decl: "let " };
12374
12723
  });
12375
12724
  function LetAssignment(ctx, state2) {
12376
12725
  return (0, import_lib2.$EVENT)(ctx, state2, "LetAssignment", LetAssignment$0);
12377
12726
  }
12378
- var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L137, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12727
+ var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L139, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
12379
12728
  return { $loc, token: "=" };
12380
12729
  });
12381
12730
  function TypeAssignment(ctx, state2) {
@@ -12751,7 +13100,7 @@ ${js}`
12751
13100
  function MultiLineComment(ctx, state2) {
12752
13101
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
12753
13102
  }
12754
- 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) {
13103
+ 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) {
12755
13104
  return { type: "Comment", $loc, token: $1 };
12756
13105
  });
12757
13106
  function JSMultiLineComment(ctx, state2) {
@@ -12795,7 +13144,7 @@ ${js}`
12795
13144
  }
12796
13145
  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) {
12797
13146
  return { $loc, token: $0 };
12798
- }), NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L140, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
13147
+ }), NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
12799
13148
  return " ";
12800
13149
  }), NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
12801
13150
  function NonNewlineWhitespace(ctx, state2) {
@@ -12836,7 +13185,7 @@ ${js}`
12836
13185
  function StatementDelimiter(ctx, state2) {
12837
13186
  return (0, import_lib2.$EVENT_C)(ctx, state2, "StatementDelimiter", StatementDelimiter$$);
12838
13187
  }
12839
- 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 "]"'))));
13188
+ 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 "]"'))));
12840
13189
  function ClosingDelimiter(ctx, state2) {
12841
13190
  return (0, import_lib2.$EVENT)(ctx, state2, "ClosingDelimiter", ClosingDelimiter$0);
12842
13191
  }
@@ -12859,7 +13208,7 @@ ${js}`
12859
13208
  function Loc(ctx, state2) {
12860
13209
  return (0, import_lib2.$EVENT)(ctx, state2, "Loc", Loc$0);
12861
13210
  }
12862
- 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) {
13211
+ 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) {
12863
13212
  return { $loc, token: $1, ts: !0 };
12864
13213
  });
12865
13214
  function Abstract(ctx, state2) {
@@ -12871,67 +13220,67 @@ ${js}`
12871
13220
  function Ampersand(ctx, state2) {
12872
13221
  return (0, import_lib2.$EVENT)(ctx, state2, "Ampersand", Ampersand$0);
12873
13222
  }
12874
- 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) {
13223
+ 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) {
12875
13224
  return { $loc, token: $1 };
12876
13225
  });
12877
13226
  function As(ctx, state2) {
12878
13227
  return (0, import_lib2.$EVENT)(ctx, state2, "As", As$0);
12879
13228
  }
12880
- var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'At "@"'), function($skip, $loc, $0, $1) {
13229
+ var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'At "@"'), function($skip, $loc, $0, $1) {
12881
13230
  return { $loc, token: $1 };
12882
13231
  });
12883
13232
  function At(ctx, state2) {
12884
13233
  return (0, import_lib2.$EVENT)(ctx, state2, "At", At$0);
12885
13234
  }
12886
- var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L145, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
13235
+ var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L147, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
12887
13236
  return { $loc, token: "@" };
12888
13237
  });
12889
13238
  function AtAt(ctx, state2) {
12890
13239
  return (0, import_lib2.$EVENT)(ctx, state2, "AtAt", AtAt$0);
12891
13240
  }
12892
- 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) {
13241
+ 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) {
12893
13242
  return { $loc, token: $1, type: "Async" };
12894
13243
  });
12895
13244
  function Async(ctx, state2) {
12896
13245
  return (0, import_lib2.$EVENT)(ctx, state2, "Async", Async$0);
12897
13246
  }
12898
- 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) {
13247
+ 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) {
12899
13248
  return { $loc, token: $1, type: "Await" };
12900
13249
  });
12901
13250
  function Await(ctx, state2) {
12902
13251
  return (0, import_lib2.$EVENT)(ctx, state2, "Await", Await$0);
12903
13252
  }
12904
- var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L148, 'Backtick "`"'), function($skip, $loc, $0, $1) {
13253
+ var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L150, 'Backtick "`"'), function($skip, $loc, $0, $1) {
12905
13254
  return { $loc, token: $1 };
12906
13255
  });
12907
13256
  function Backtick(ctx, state2) {
12908
13257
  return (0, import_lib2.$EVENT)(ctx, state2, "Backtick", Backtick$0);
12909
13258
  }
12910
- 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) {
13259
+ 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) {
12911
13260
  return { $loc, token: $1 };
12912
13261
  });
12913
13262
  function By(ctx, state2) {
12914
13263
  return (0, import_lib2.$EVENT)(ctx, state2, "By", By$0);
12915
13264
  }
12916
- var Caret$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'), function($skip, $loc, $0, $1) {
13265
+ var Caret$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'))), function($skip, $loc, $0, $1, $2) {
12917
13266
  return { $loc, token: $1 };
12918
13267
  });
12919
13268
  function Caret(ctx, state2) {
12920
13269
  return (0, import_lib2.$EVENT)(ctx, state2, "Caret", Caret$0);
12921
13270
  }
12922
- 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) {
13271
+ 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) {
12923
13272
  return { $loc, token: $1 };
12924
13273
  });
12925
13274
  function Case(ctx, state2) {
12926
13275
  return (0, import_lib2.$EVENT)(ctx, state2, "Case", Case$0);
12927
13276
  }
12928
- 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) {
13277
+ 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) {
12929
13278
  return { $loc, token: $1 };
12930
13279
  });
12931
13280
  function Catch(ctx, state2) {
12932
13281
  return (0, import_lib2.$EVENT)(ctx, state2, "Catch", Catch$0);
12933
13282
  }
12934
- 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) {
13283
+ 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) {
12935
13284
  return { $loc, token: $1 };
12936
13285
  });
12937
13286
  function Class(ctx, state2) {
@@ -12955,13 +13304,13 @@ ${js}`
12955
13304
  function CloseBracket(ctx, state2) {
12956
13305
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseBracket", CloseBracket$0);
12957
13306
  }
12958
- var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L141, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
13307
+ var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L143, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12959
13308
  return { $loc, token: $1 };
12960
13309
  });
12961
13310
  function CloseParen(ctx, state2) {
12962
13311
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseParen", CloseParen$0);
12963
13312
  }
12964
- var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L153, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
13313
+ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L155, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
12965
13314
  return { $loc, token: "${" };
12966
13315
  });
12967
13316
  function CoffeeSubstitutionStart(ctx, state2) {
@@ -12979,37 +13328,37 @@ ${js}`
12979
13328
  function Comma(ctx, state2) {
12980
13329
  return (0, import_lib2.$EVENT)(ctx, state2, "Comma", Comma$0);
12981
13330
  }
12982
- 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) {
13331
+ 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) {
12983
13332
  return { $loc, token: $1 };
12984
13333
  });
12985
13334
  function Comptime(ctx, state2) {
12986
13335
  return (0, import_lib2.$EVENT)(ctx, state2, "Comptime", Comptime$0);
12987
13336
  }
12988
- var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
13337
+ var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
12989
13338
  return { $loc, token: "constructor" };
12990
13339
  });
12991
13340
  function ConstructorShorthand(ctx, state2) {
12992
13341
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstructorShorthand", ConstructorShorthand$0);
12993
13342
  }
12994
- 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) {
13343
+ 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) {
12995
13344
  return { $loc, token: $1 };
12996
13345
  });
12997
13346
  function Declare(ctx, state2) {
12998
13347
  return (0, import_lib2.$EVENT)(ctx, state2, "Declare", Declare$0);
12999
13348
  }
13000
- 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) {
13349
+ 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) {
13001
13350
  return { $loc, token: $1 };
13002
13351
  });
13003
13352
  function Default(ctx, state2) {
13004
13353
  return (0, import_lib2.$EVENT)(ctx, state2, "Default", Default$0);
13005
13354
  }
13006
- 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) {
13355
+ 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) {
13007
13356
  return { $loc, token: $1 };
13008
13357
  });
13009
13358
  function Delete(ctx, state2) {
13010
13359
  return (0, import_lib2.$EVENT)(ctx, state2, "Delete", Delete$0);
13011
13360
  }
13012
- 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) {
13361
+ 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) {
13013
13362
  return { $loc, token: $1 };
13014
13363
  });
13015
13364
  function Do(ctx, state2) {
@@ -13027,17 +13376,17 @@ ${js}`
13027
13376
  function Dot(ctx, state2) {
13028
13377
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Dot", Dot$$);
13029
13378
  }
13030
- 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) {
13379
+ 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) {
13031
13380
  return { $loc, token: $1 };
13032
- }), DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L160, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
13381
+ }), DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
13033
13382
  return { $loc, token: ".." };
13034
13383
  }), DotDot$$ = [DotDot$0, DotDot$1];
13035
13384
  function DotDot(ctx, state2) {
13036
13385
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DotDot", DotDot$$);
13037
13386
  }
13038
- var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L161, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
13387
+ var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
13039
13388
  return { $loc, token: $1 };
13040
- }), DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
13389
+ }), DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
13041
13390
  return { $loc, token: "..." };
13042
13391
  }), DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
13043
13392
  function DotDotDot(ctx, state2) {
@@ -13049,31 +13398,31 @@ ${js}`
13049
13398
  function InsertDotDotDot(ctx, state2) {
13050
13399
  return (0, import_lib2.$EVENT)(ctx, state2, "InsertDotDotDot", InsertDotDotDot$0);
13051
13400
  }
13052
- var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
13401
+ var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
13053
13402
  return { $loc, token: $1 };
13054
13403
  });
13055
13404
  function DoubleColon(ctx, state2) {
13056
13405
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColon", DoubleColon$0);
13057
13406
  }
13058
- var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
13407
+ var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
13059
13408
  return { $loc, token: ":" };
13060
13409
  });
13061
13410
  function DoubleColonAsColon(ctx, state2) {
13062
13411
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColonAsColon", DoubleColonAsColon$0);
13063
13412
  }
13064
- var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
13413
+ var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L166, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
13065
13414
  return { $loc, token: $1 };
13066
13415
  });
13067
13416
  function DoubleQuote(ctx, state2) {
13068
13417
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleQuote", DoubleQuote$0);
13069
13418
  }
13070
- 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) {
13419
+ 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) {
13071
13420
  return { $loc, token: $1 };
13072
13421
  });
13073
13422
  function Each(ctx, state2) {
13074
13423
  return (0, import_lib2.$EVENT)(ctx, state2, "Each", Each$0);
13075
13424
  }
13076
- 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) {
13425
+ 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) {
13077
13426
  return { $loc, token: $1 };
13078
13427
  });
13079
13428
  function Else(ctx, state2) {
@@ -13085,61 +13434,61 @@ ${js}`
13085
13434
  function Equals(ctx, state2) {
13086
13435
  return (0, import_lib2.$EVENT)(ctx, state2, "Equals", Equals$0);
13087
13436
  }
13088
- var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L167, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
13437
+ var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L169, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
13089
13438
  return { $loc, token: $1 };
13090
13439
  });
13091
13440
  function ExclamationPoint(ctx, state2) {
13092
13441
  return (0, import_lib2.$EVENT)(ctx, state2, "ExclamationPoint", ExclamationPoint$0);
13093
13442
  }
13094
- 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) {
13443
+ 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) {
13095
13444
  return { $loc, token: $1 };
13096
13445
  });
13097
13446
  function Export(ctx, state2) {
13098
13447
  return (0, import_lib2.$EVENT)(ctx, state2, "Export", Export$0);
13099
13448
  }
13100
- 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) {
13449
+ 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) {
13101
13450
  return { $loc, token: $1 };
13102
13451
  });
13103
13452
  function Extends(ctx, state2) {
13104
13453
  return (0, import_lib2.$EVENT)(ctx, state2, "Extends", Extends$0);
13105
13454
  }
13106
- 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) {
13455
+ 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) {
13107
13456
  return { $loc, token: $1 };
13108
13457
  });
13109
13458
  function Finally(ctx, state2) {
13110
13459
  return (0, import_lib2.$EVENT)(ctx, state2, "Finally", Finally$0);
13111
13460
  }
13112
- 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) {
13461
+ 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) {
13113
13462
  return { $loc, token: $1 };
13114
13463
  });
13115
13464
  function For(ctx, state2) {
13116
13465
  return (0, import_lib2.$EVENT)(ctx, state2, "For", For$0);
13117
13466
  }
13118
- 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) {
13467
+ 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) {
13119
13468
  return { $loc, token: $1 };
13120
13469
  });
13121
13470
  function From(ctx, state2) {
13122
13471
  return (0, import_lib2.$EVENT)(ctx, state2, "From", From$0);
13123
13472
  }
13124
- 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) {
13473
+ 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) {
13125
13474
  return { $loc, token: $1 };
13126
13475
  });
13127
13476
  function Function2(ctx, state2) {
13128
13477
  return (0, import_lib2.$EVENT)(ctx, state2, "Function", Function$0);
13129
13478
  }
13130
- 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) {
13479
+ 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) {
13131
13480
  return { $loc, token: $1, type: "GetOrSet" };
13132
13481
  });
13133
13482
  function GetOrSet(ctx, state2) {
13134
13483
  return (0, import_lib2.$EVENT)(ctx, state2, "GetOrSet", GetOrSet$0);
13135
13484
  }
13136
- var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L176, 'Hash "#"'), function($skip, $loc, $0, $1) {
13485
+ var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L178, 'Hash "#"'), function($skip, $loc, $0, $1) {
13137
13486
  return { $loc, token: $1 };
13138
13487
  });
13139
13488
  function Hash(ctx, state2) {
13140
13489
  return (0, import_lib2.$EVENT)(ctx, state2, "Hash", Hash$0);
13141
13490
  }
13142
- 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) {
13491
+ 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) {
13143
13492
  return { $loc, token: $1 };
13144
13493
  });
13145
13494
  function If(ctx, state2) {
@@ -13151,67 +13500,67 @@ ${js}`
13151
13500
  function Import(ctx, state2) {
13152
13501
  return (0, import_lib2.$EVENT)(ctx, state2, "Import", Import$0);
13153
13502
  }
13154
- 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) {
13503
+ 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) {
13155
13504
  return { $loc, token: $1 };
13156
13505
  });
13157
13506
  function In(ctx, state2) {
13158
13507
  return (0, import_lib2.$EVENT)(ctx, state2, "In", In$0);
13159
13508
  }
13160
- 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) {
13509
+ 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) {
13161
13510
  return { $loc, token: $1 };
13162
13511
  });
13163
13512
  function Infer(ctx, state2) {
13164
13513
  return (0, import_lib2.$EVENT)(ctx, state2, "Infer", Infer$0);
13165
13514
  }
13166
- 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) {
13515
+ 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) {
13167
13516
  return { $loc, token: $1 };
13168
13517
  });
13169
13518
  function LetOrConst(ctx, state2) {
13170
13519
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConst", LetOrConst$0);
13171
13520
  }
13172
- 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) {
13521
+ 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) {
13173
13522
  return { $loc, token: $1 };
13174
13523
  });
13175
13524
  function Const(ctx, state2) {
13176
13525
  return (0, import_lib2.$EVENT)(ctx, state2, "Const", Const$0);
13177
13526
  }
13178
- 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) {
13527
+ 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) {
13179
13528
  return { $loc, token: $1 };
13180
13529
  });
13181
13530
  function Is(ctx, state2) {
13182
13531
  return (0, import_lib2.$EVENT)(ctx, state2, "Is", Is$0);
13183
13532
  }
13184
- 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) {
13533
+ 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) {
13185
13534
  return { $loc, token: $1 };
13186
13535
  });
13187
13536
  function LetOrConstOrVar(ctx, state2) {
13188
13537
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConstOrVar", LetOrConstOrVar$0);
13189
13538
  }
13190
- 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) {
13539
+ 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) {
13191
13540
  return { $loc, token: $1 };
13192
13541
  });
13193
13542
  function Like(ctx, state2) {
13194
13543
  return (0, import_lib2.$EVENT)(ctx, state2, "Like", Like$0);
13195
13544
  }
13196
- 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) {
13545
+ 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) {
13197
13546
  return { $loc, token: "while" };
13198
13547
  });
13199
13548
  function Loop(ctx, state2) {
13200
13549
  return (0, import_lib2.$EVENT)(ctx, state2, "Loop", Loop$0);
13201
13550
  }
13202
- 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) {
13551
+ 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) {
13203
13552
  return { $loc, token: $1 };
13204
13553
  });
13205
13554
  function New(ctx, state2) {
13206
13555
  return (0, import_lib2.$EVENT)(ctx, state2, "New", New$0);
13207
13556
  }
13208
- 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) {
13557
+ 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) {
13209
13558
  return { $loc, token: "!" };
13210
13559
  });
13211
13560
  function Not(ctx, state2) {
13212
13561
  return (0, import_lib2.$EVENT)(ctx, state2, "Not", Not$0);
13213
13562
  }
13214
- 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) {
13563
+ 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) {
13215
13564
  return { $loc, token: $1 };
13216
13565
  });
13217
13566
  function Of(ctx, state2) {
@@ -13229,7 +13578,7 @@ ${js}`
13229
13578
  function OpenBrace(ctx, state2) {
13230
13579
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenBrace", OpenBrace$0);
13231
13580
  }
13232
- var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L189, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
13581
+ var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L191, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
13233
13582
  return { $loc, token: $1 };
13234
13583
  });
13235
13584
  function OpenBracket(ctx, state2) {
@@ -13241,47 +13590,47 @@ ${js}`
13241
13590
  function OpenParen(ctx, state2) {
13242
13591
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenParen", OpenParen$0);
13243
13592
  }
13244
- 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) {
13593
+ 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) {
13245
13594
  return { $loc, token: $1 };
13246
13595
  });
13247
13596
  function Operator(ctx, state2) {
13248
13597
  return (0, import_lib2.$EVENT)(ctx, state2, "Operator", Operator$0);
13249
13598
  }
13250
- 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) {
13599
+ 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) {
13251
13600
  return { $loc, token: $1, ts: !0 };
13252
13601
  });
13253
13602
  function Override(ctx, state2) {
13254
13603
  return (0, import_lib2.$EVENT)(ctx, state2, "Override", Override$0);
13255
13604
  }
13256
- 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) {
13605
+ 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) {
13257
13606
  return { $loc, token: $1 };
13258
13607
  });
13259
13608
  function Own(ctx, state2) {
13260
13609
  return (0, import_lib2.$EVENT)(ctx, state2, "Own", Own$0);
13261
13610
  }
13262
- 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) {
13611
+ 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) {
13263
13612
  return { $loc, token: $1 };
13264
13613
  });
13265
13614
  function Public(ctx, state2) {
13266
13615
  return (0, import_lib2.$EVENT)(ctx, state2, "Public", Public$0);
13267
13616
  }
13268
- 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) {
13617
+ 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) {
13269
13618
  return { $loc, token: $1 };
13270
13619
  });
13271
13620
  function Private(ctx, state2) {
13272
13621
  return (0, import_lib2.$EVENT)(ctx, state2, "Private", Private$0);
13273
13622
  }
13274
- 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) {
13623
+ 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) {
13275
13624
  return { $loc, token: $1 };
13276
13625
  });
13277
13626
  function Protected(ctx, state2) {
13278
13627
  return (0, import_lib2.$EVENT)(ctx, state2, "Protected", Protected$0);
13279
13628
  }
13280
- 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) {
13629
+ 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) {
13281
13630
  return { $loc, token: "||>" };
13282
- }), 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) {
13631
+ }), 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) {
13283
13632
  return { $loc, token: "|>=" };
13284
- }), 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) {
13633
+ }), 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) {
13285
13634
  return { $loc, token: "|>" };
13286
13635
  }), Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
13287
13636
  function Pipe(ctx, state2) {
@@ -13293,19 +13642,19 @@ ${js}`
13293
13642
  function QuestionMark(ctx, state2) {
13294
13643
  return (0, import_lib2.$EVENT)(ctx, state2, "QuestionMark", QuestionMark$0);
13295
13644
  }
13296
- 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) {
13645
+ 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) {
13297
13646
  return { $loc, token: $1, ts: !0 };
13298
13647
  });
13299
13648
  function Readonly(ctx, state2) {
13300
13649
  return (0, import_lib2.$EVENT)(ctx, state2, "Readonly", Readonly$0);
13301
13650
  }
13302
- 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) {
13651
+ 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) {
13303
13652
  return { $loc, token: $1 };
13304
13653
  });
13305
13654
  function Return(ctx, state2) {
13306
13655
  return (0, import_lib2.$EVENT)(ctx, state2, "Return", Return$0);
13307
13656
  }
13308
- 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) {
13657
+ 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) {
13309
13658
  return { $loc, token: $1 };
13310
13659
  });
13311
13660
  function Satisfies(ctx, state2) {
@@ -13317,7 +13666,7 @@ ${js}`
13317
13666
  function Semicolon(ctx, state2) {
13318
13667
  return (0, import_lib2.$EVENT)(ctx, state2, "Semicolon", Semicolon$0);
13319
13668
  }
13320
- var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L205, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13669
+ var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13321
13670
  return { $loc, token: $1 };
13322
13671
  });
13323
13672
  function SingleQuote(ctx, state2) {
@@ -13329,147 +13678,147 @@ ${js}`
13329
13678
  function Star(ctx, state2) {
13330
13679
  return (0, import_lib2.$EVENT)(ctx, state2, "Star", Star$0);
13331
13680
  }
13332
- 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) {
13681
+ 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) {
13333
13682
  return { $loc, token: $1 };
13334
- }), 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) {
13683
+ }), 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) {
13335
13684
  return { $loc, token: "static " };
13336
13685
  }), Static$$ = [Static$0, Static$1];
13337
13686
  function Static(ctx, state2) {
13338
13687
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Static", Static$$);
13339
13688
  }
13340
- var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13689
+ var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L209, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13341
13690
  return { $loc, token: $1 };
13342
13691
  });
13343
13692
  function SubstitutionStart(ctx, state2) {
13344
13693
  return (0, import_lib2.$EVENT)(ctx, state2, "SubstitutionStart", SubstitutionStart$0);
13345
13694
  }
13346
- 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) {
13695
+ 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) {
13347
13696
  return { $loc, token: $1 };
13348
13697
  });
13349
13698
  function Super(ctx, state2) {
13350
13699
  return (0, import_lib2.$EVENT)(ctx, state2, "Super", Super$0);
13351
13700
  }
13352
- 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) {
13701
+ 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) {
13353
13702
  return { $loc, token: $1 };
13354
13703
  });
13355
13704
  function Switch(ctx, state2) {
13356
13705
  return (0, import_lib2.$EVENT)(ctx, state2, "Switch", Switch$0);
13357
13706
  }
13358
- 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) {
13707
+ 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) {
13359
13708
  return { $loc, token: $1 };
13360
13709
  });
13361
13710
  function Target(ctx, state2) {
13362
13711
  return (0, import_lib2.$EVENT)(ctx, state2, "Target", Target$0);
13363
13712
  }
13364
- 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) {
13713
+ 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) {
13365
13714
  return { $loc, token: "" };
13366
13715
  });
13367
13716
  function Then(ctx, state2) {
13368
13717
  return (0, import_lib2.$EVENT)(ctx, state2, "Then", Then$0);
13369
13718
  }
13370
- 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) {
13719
+ 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) {
13371
13720
  return { $loc, token: $1 };
13372
13721
  });
13373
13722
  function This(ctx, state2) {
13374
13723
  return (0, import_lib2.$EVENT)(ctx, state2, "This", This$0);
13375
13724
  }
13376
- 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) {
13725
+ 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) {
13377
13726
  return { $loc, token: $1 };
13378
13727
  });
13379
13728
  function Throw(ctx, state2) {
13380
13729
  return (0, import_lib2.$EVENT)(ctx, state2, "Throw", Throw$0);
13381
13730
  }
13382
- var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L214, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13731
+ var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13383
13732
  return { $loc, token: "`" };
13384
13733
  });
13385
13734
  function TripleDoubleQuote(ctx, state2) {
13386
13735
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleQuote", TripleDoubleQuote$0);
13387
13736
  }
13388
- var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L215, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13737
+ var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13389
13738
  return { $loc, token: "`" };
13390
13739
  });
13391
13740
  function TripleSingleQuote(ctx, state2) {
13392
13741
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSingleQuote", TripleSingleQuote$0);
13393
13742
  }
13394
- var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13743
+ var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L218, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13395
13744
  return { $loc, token: "/" };
13396
13745
  });
13397
13746
  function TripleSlash(ctx, state2) {
13398
13747
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlash", TripleSlash$0);
13399
13748
  }
13400
- var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13749
+ var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L219, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13401
13750
  return { $loc, token: "`" };
13402
13751
  });
13403
13752
  function TripleTick(ctx, state2) {
13404
13753
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleTick", TripleTick$0);
13405
13754
  }
13406
- 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) {
13755
+ 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) {
13407
13756
  return { $loc, token: $1 };
13408
13757
  });
13409
13758
  function Try(ctx, state2) {
13410
13759
  return (0, import_lib2.$EVENT)(ctx, state2, "Try", Try$0);
13411
13760
  }
13412
- 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) {
13761
+ 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) {
13413
13762
  return { $loc, token: $1 };
13414
13763
  });
13415
13764
  function Typeof(ctx, state2) {
13416
13765
  return (0, import_lib2.$EVENT)(ctx, state2, "Typeof", Typeof$0);
13417
13766
  }
13418
- 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) {
13767
+ 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) {
13419
13768
  return { $loc, token: $1 };
13420
13769
  });
13421
13770
  function Undefined(ctx, state2) {
13422
13771
  return (0, import_lib2.$EVENT)(ctx, state2, "Undefined", Undefined$0);
13423
13772
  }
13424
- 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) {
13773
+ 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) {
13425
13774
  return { $loc, token: $1, negated: !0 };
13426
13775
  });
13427
13776
  function Unless(ctx, state2) {
13428
13777
  return (0, import_lib2.$EVENT)(ctx, state2, "Unless", Unless$0);
13429
13778
  }
13430
- 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) {
13779
+ 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) {
13431
13780
  return { $loc, token: $1, negated: !0 };
13432
13781
  });
13433
13782
  function Until(ctx, state2) {
13434
13783
  return (0, import_lib2.$EVENT)(ctx, state2, "Until", Until$0);
13435
13784
  }
13436
- 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) {
13785
+ 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) {
13437
13786
  return { $loc, token: $1 };
13438
13787
  });
13439
13788
  function Using(ctx, state2) {
13440
13789
  return (0, import_lib2.$EVENT)(ctx, state2, "Using", Using$0);
13441
13790
  }
13442
- 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) {
13791
+ 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) {
13443
13792
  return { $loc, token: $1 };
13444
13793
  });
13445
13794
  function Var(ctx, state2) {
13446
13795
  return (0, import_lib2.$EVENT)(ctx, state2, "Var", Var$0);
13447
13796
  }
13448
- 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) {
13797
+ 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) {
13449
13798
  return { $loc, token: $1 };
13450
13799
  });
13451
13800
  function Void(ctx, state2) {
13452
13801
  return (0, import_lib2.$EVENT)(ctx, state2, "Void", Void$0);
13453
13802
  }
13454
- 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) {
13803
+ 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) {
13455
13804
  return { $loc, token: "case" };
13456
13805
  });
13457
13806
  function When(ctx, state2) {
13458
13807
  return (0, import_lib2.$EVENT)(ctx, state2, "When", When$0);
13459
13808
  }
13460
- 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) {
13809
+ 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) {
13461
13810
  return { $loc, token: $1 };
13462
13811
  });
13463
13812
  function While(ctx, state2) {
13464
13813
  return (0, import_lib2.$EVENT)(ctx, state2, "While", While$0);
13465
13814
  }
13466
- 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) {
13815
+ 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) {
13467
13816
  return { $loc, token: $1 };
13468
13817
  });
13469
13818
  function With(ctx, state2) {
13470
13819
  return (0, import_lib2.$EVENT)(ctx, state2, "With", With$0);
13471
13820
  }
13472
- 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) {
13821
+ 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) {
13473
13822
  return { $loc, token: $1, type: "Yield" };
13474
13823
  });
13475
13824
  function Yield(ctx, state2) {
@@ -13529,7 +13878,7 @@ ${js}`
13529
13878
  function JSXElement(ctx, state2) {
13530
13879
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
13531
13880
  }
13532
- 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) {
13881
+ 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) {
13533
13882
  return { type: "JSXElement", children: $0, tag: $2 };
13534
13883
  });
13535
13884
  function JSXSelfClosingElement(ctx, state2) {
@@ -13558,7 +13907,7 @@ ${js}`
13558
13907
  function JSXOptionalClosingElement(ctx, state2) {
13559
13908
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
13560
13909
  }
13561
- 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 ">"'));
13910
+ 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 ">"'));
13562
13911
  function JSXClosingElement(ctx, state2) {
13563
13912
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingElement", JSXClosingElement$0);
13564
13913
  }
@@ -13573,7 +13922,7 @@ ${js}`
13573
13922
  // InsertIndent
13574
13923
  "</>"
13575
13924
  ], jsxChildren: children.jsxChildren }) : $skip;
13576
- }), 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) {
13925
+ }), 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) {
13577
13926
  var children = $3;
13578
13927
  return $0 = $0.slice(1), {
13579
13928
  type: "JSXFragment",
@@ -13584,7 +13933,7 @@ ${js}`
13584
13933
  function JSXFragment(ctx, state2) {
13585
13934
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXFragment", JSXFragment$$);
13586
13935
  }
13587
- var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L230, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13936
+ var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L232, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13588
13937
  return state.JSXTagStack.push(""), $1;
13589
13938
  });
13590
13939
  function PushJSXOpeningFragment(ctx, state2) {
@@ -13596,11 +13945,11 @@ ${js}`
13596
13945
  function JSXOptionalClosingFragment(ctx, state2) {
13597
13946
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
13598
13947
  }
13599
- var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L231, 'JSXClosingFragment "</>"');
13948
+ var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L233, 'JSXClosingFragment "</>"');
13600
13949
  function JSXClosingFragment(ctx, state2) {
13601
13950
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingFragment", JSXClosingFragment$0);
13602
13951
  }
13603
- 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) {
13952
+ 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) {
13604
13953
  return config.defaultElement;
13605
13954
  }), 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];
13606
13955
  function JSXElementName(ctx, state2) {
@@ -13699,7 +14048,7 @@ ${js}`
13699
14048
  expr,
13700
14049
  "}}"
13701
14050
  ] : last.name ? [last.name, "={", expr, "}"] : $skip;
13702
- }), JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L176, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
14051
+ }), JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13703
14052
  return [" ", "id=", $2];
13704
14053
  }), JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13705
14054
  return {
@@ -13932,7 +14281,7 @@ ${js}`
13932
14281
  function JSXChildGeneral(ctx, state2) {
13933
14282
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXChildGeneral", JSXChildGeneral$$);
13934
14283
  }
13935
- 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) {
14284
+ 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) {
13936
14285
  return ["{/*", $2, "*/}"];
13937
14286
  });
13938
14287
  function JSXComment(ctx, state2) {
@@ -14175,37 +14524,37 @@ ${js}`
14175
14524
  function InterfaceExtendsTarget(ctx, state2) {
14176
14525
  return (0, import_lib2.$EVENT)(ctx, state2, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
14177
14526
  }
14178
- 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) {
14527
+ 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) {
14179
14528
  return { $loc, token: $1 };
14180
14529
  });
14181
14530
  function TypeKeyword(ctx, state2) {
14182
14531
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeKeyword", TypeKeyword$0);
14183
14532
  }
14184
- 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) {
14533
+ 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) {
14185
14534
  return { $loc, token: $1 };
14186
14535
  });
14187
14536
  function Enum(ctx, state2) {
14188
14537
  return (0, import_lib2.$EVENT)(ctx, state2, "Enum", Enum$0);
14189
14538
  }
14190
- 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) {
14539
+ 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) {
14191
14540
  return { $loc, token: $1 };
14192
14541
  });
14193
14542
  function Interface(ctx, state2) {
14194
14543
  return (0, import_lib2.$EVENT)(ctx, state2, "Interface", Interface$0);
14195
14544
  }
14196
- 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) {
14545
+ 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) {
14197
14546
  return { $loc, token: $1 };
14198
14547
  });
14199
14548
  function Global(ctx, state2) {
14200
14549
  return (0, import_lib2.$EVENT)(ctx, state2, "Global", Global$0);
14201
14550
  }
14202
- 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) {
14551
+ 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) {
14203
14552
  return { $loc, token: $1 };
14204
14553
  });
14205
14554
  function Module(ctx, state2) {
14206
14555
  return (0, import_lib2.$EVENT)(ctx, state2, "Module", Module$0);
14207
14556
  }
14208
- 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) {
14557
+ 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) {
14209
14558
  return { $loc, token: $1 };
14210
14559
  });
14211
14560
  function Namespace(ctx, state2) {
@@ -14454,7 +14803,7 @@ ${js}`
14454
14803
  function ReturnTypeSuffix(ctx, state2) {
14455
14804
  return (0, import_lib2.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
14456
14805
  }
14457
- 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) {
14806
+ 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) {
14458
14807
  var asserts = $1, t = $3;
14459
14808
  return t ? (asserts && (t = {
14460
14809
  type: "TypeAsserts",
@@ -14525,7 +14874,7 @@ ${js}`
14525
14874
  function TypeUnarySuffix(ctx, state2) {
14526
14875
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnarySuffix", TypeUnarySuffix$$);
14527
14876
  }
14528
- 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];
14877
+ 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];
14529
14878
  function TypeUnaryOp(ctx, state2) {
14530
14879
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnaryOp", TypeUnaryOp$$);
14531
14880
  }
@@ -14547,7 +14896,7 @@ ${js}`
14547
14896
  function TypeIndexedAccess(ctx, state2) {
14548
14897
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeIndexedAccess", TypeIndexedAccess$$);
14549
14898
  }
14550
- var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L242, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14899
+ var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L244, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14551
14900
  return { $loc, token: "unknown" };
14552
14901
  });
14553
14902
  function UnknownAlias(ctx, state2) {
@@ -14822,11 +15171,11 @@ ${js}`
14822
15171
  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) {
14823
15172
  var sign = $1, num = $2;
14824
15173
  return sign[0] === "+" ? num : $0;
14825
- }), TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15174
+ }), TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14826
15175
  return { type: "VoidType", $loc, token: $1 };
14827
- }), 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) {
15176
+ }), 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) {
14828
15177
  return { type: "UniqueSymbolType", children: $0 };
14829
- }), TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L245, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
15178
+ }), TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L247, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14830
15179
  return { $loc, token: "[]" };
14831
15180
  }), TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4, TypeLiteral$5];
14832
15181
  function TypeLiteral(ctx, state2) {
@@ -14842,7 +15191,7 @@ ${js}`
14842
15191
  }
14843
15192
  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) {
14844
15193
  return value[1];
14845
- }), 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];
15194
+ }), 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];
14846
15195
  function InlineInterfacePropertyDelimiter(ctx, state2) {
14847
15196
  return (0, import_lib2.$EVENT_C)(ctx, state2, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
14848
15197
  }
@@ -15045,7 +15394,7 @@ ${js}`
15045
15394
  function CivetPrologue(ctx, state2) {
15046
15395
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
15047
15396
  }
15048
- 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) {
15397
+ 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) {
15049
15398
  var options = $3;
15050
15399
  return {
15051
15400
  type: "CivetPrologue",
@@ -15677,71 +16026,81 @@ ${js}`
15677
16026
  locationTable: () => locationTable,
15678
16027
  lookupLineColumn: () => lookupLineColumn
15679
16028
  });
15680
- var locationTable = function(input) {
16029
+ function locationTable(input) {
15681
16030
  let linesRe = /([^\r\n]*)(\r\n|\r|\n|$)/y, lines = [], line = 0, pos = 0, ref;
15682
16031
  for (; (ref = linesRe.exec(input)) && (pos += ref[0].length, lines[line++] = pos, pos !== input.length); )
15683
16032
  ;
15684
16033
  return lines;
15685
- }, lookupLineColumn = function(table, pos) {
16034
+ }
16035
+ function lookupLineColumn(table, pos) {
15686
16036
  let l = 0, prevEnd = 0;
15687
16037
  for (; table[l] <= pos; )
15688
16038
  prevEnd = table[l++];
15689
16039
  return [l, pos - prevEnd];
15690
- }, SourceMap = function(sourceString) {
15691
- let srcTable = locationTable(sourceString), sm = {
15692
- lines: [[]],
15693
- line: 0,
15694
- colOffset: 0,
15695
- // relative to previous entry
15696
- srcLine: 0,
15697
- srcColumn: 0,
15698
- srcOffset: 0,
15699
- srcTable
15700
- }, EOL2 = /\r?\n|\r/;
15701
- return {
15702
- data: sm,
15703
- source: function() {
15704
- return sourceString;
15705
- },
15706
- renderMappings: function() {
15707
- let lastSourceLine = 0, lastSourceColumn = 0;
15708
- return sm.lines.map((line) => line.map((entry) => {
15709
- if (entry.length === 4) {
15710
- let [colDelta, sourceFileIndex, srcLine, srcCol] = entry, lineDelta = srcLine - lastSourceLine;
15711
- return colDelta = srcCol - lastSourceColumn, lastSourceLine = srcLine, lastSourceColumn = srcCol, `${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`;
15712
- } else
15713
- return encodeVlq(entry[0]);
15714
- }).join(",")).join(";");
15715
- },
15716
- json: function(srcFileName, outFileName) {
15717
- return {
15718
- version: 3,
15719
- file: outFileName,
15720
- sources: [srcFileName],
15721
- mappings: this.renderMappings(),
15722
- names: [],
15723
- sourcesContent: [sourceString],
15724
- toString: function() {
15725
- return JSON.stringify(this);
15726
- }
15727
- };
15728
- },
15729
- updateSourceMap: function(outputStr, inputPos, colOffset = 0) {
15730
- let outLines = outputStr.split(EOL2), srcLine, srcCol;
15731
- inputPos != null && ([srcLine, srcCol] = lookupLineColumn(srcTable, inputPos), srcCol += colOffset, sm.srcLine = srcLine, sm.srcColumn = srcCol, sm.srcOffset = inputPos + outputStr.length);
15732
- for (let i1 = 0, len3 = outLines.length; i1 < len3; i1++) {
15733
- let i = i1, line = outLines[i1];
15734
- i > 0 && (sm.line++, sm.srcLine++, sm.colOffset = 0, sm.lines[sm.line] = [], sm.srcColumn = srcCol = colOffset);
15735
- let l = sm.colOffset;
15736
- 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]);
16040
+ }
16041
+ var EOL2 = /\r?\n|\r/, SourceMap = class {
16042
+ lines;
16043
+ line;
16044
+ colOffset;
16045
+ // relative to previous entry
16046
+ srcLine;
16047
+ srcColumn;
16048
+ srcOffset;
16049
+ srcTable;
16050
+ source;
16051
+ constructor(source1) {
16052
+ 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);
16053
+ }
16054
+ renderMappings() {
16055
+ let lastSourceLine = 0, lastSourceColumn = 0;
16056
+ return (() => {
16057
+ let results = [];
16058
+ for (let ref1 = this.lines, i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
16059
+ let line = ref1[i1];
16060
+ results.push((() => {
16061
+ let results1 = [];
16062
+ for (let i2 = 0, len1 = line.length; i2 < len1; i2++) {
16063
+ let entry = line[i2];
16064
+ if (entry.length === 4) {
16065
+ let [colDelta, sourceFileIndex, srcLine, srcCol] = entry, lineDelta = srcLine - lastSourceLine;
16066
+ colDelta = srcCol - lastSourceColumn, lastSourceLine = srcLine, lastSourceColumn = srcCol, results1.push(`${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`);
16067
+ } else
16068
+ results1.push(encodeVlq(entry[0]));
16069
+ }
16070
+ return results1;
16071
+ })().join(","));
15737
16072
  }
16073
+ return results;
16074
+ })().join(";");
16075
+ }
16076
+ json(srcFileName, outFileName) {
16077
+ return {
16078
+ version: 3,
16079
+ file: outFileName,
16080
+ sources: [srcFileName],
16081
+ mappings: this.renderMappings(),
16082
+ names: [],
16083
+ sourcesContent: [this.source],
16084
+ toString: function() {
16085
+ return JSON.stringify(this);
16086
+ }
16087
+ };
16088
+ }
16089
+ updateSourceMap(outputStr, inputPos, colOffset = 0) {
16090
+ let outLines = outputStr.split(EOL2), srcLine, srcCol;
16091
+ inputPos != null && ([srcLine, srcCol] = lookupLineColumn(this.srcTable, inputPos), srcCol += colOffset, this.srcLine = srcLine, this.srcColumn = srcCol, this.srcOffset = inputPos + outputStr.length);
16092
+ for (let i3 = 0, len22 = outLines.length; i3 < len22; i3++) {
16093
+ let i = i3, line = outLines[i3];
16094
+ i > 0 && (this.line++, this.srcLine++, this.colOffset = 0, this.lines[this.line] = [], this.srcColumn = srcCol = colOffset);
16095
+ let l = this.colOffset;
16096
+ 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]);
15738
16097
  }
15739
- };
16098
+ }
15740
16099
  }, smRegexp = /\n\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,([+a-zA-Z0-9\/]*=?=?)$/, remap = function(codeWithSourceMap, upstreamMap, sourcePath, targetPath) {
15741
16100
  let sourceMapText, codeWithoutSourceMap = codeWithSourceMap.replace(smRegexp, (match, sm) => (sourceMapText = sm, ""));
15742
16101
  if (sourceMapText) {
15743
- let parsed = parseWithLines(sourceMapText), composedLines = composeLines(upstreamMap.data.lines, parsed.lines);
15744
- upstreamMap.data.lines = composedLines;
16102
+ let parsed = parseWithLines(sourceMapText), composedLines = composeLines(upstreamMap.lines, parsed.lines);
16103
+ upstreamMap.lines = composedLines;
15745
16104
  }
15746
16105
  let remappedSourceMapJSON = upstreamMap.json(sourcePath, targetPath), newSourceMap = `sourceMappingURL=data:application/json;charset=utf-8;base64,${base64Encode(JSON.stringify(remappedSourceMapJSON))}`;
15747
16106
  return `${codeWithoutSourceMap}
@@ -15774,9 +16133,9 @@ ${js}`
15774
16133
  };
15775
16134
  Object.assign(SourceMap, { remap, parseWithLines, composeLines });
15776
16135
  var VLQ_SHIFT = 5, VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT, VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1, encodeVlq = function(value) {
15777
- let answer = "", ref1;
15778
- value < 0 ? ref1 = 1 : ref1 = 0;
15779
- let signBit = ref1, valueToEncode = (Math.abs(value) << 1) + signBit;
16136
+ let answer = "", ref2;
16137
+ value < 0 ? ref2 = 1 : ref2 = 0;
16138
+ let signBit = ref2, valueToEncode = (Math.abs(value) << 1) + signBit;
15780
16139
  for (; valueToEncode || !answer; ) {
15781
16140
  let nextChunk = valueToEncode & VLQ_VALUE_MASK;
15782
16141
  valueToEncode = valueToEncode >> VLQ_SHIFT, valueToEncode && (nextChunk |= VLQ_CONTINUATION_BIT), answer += encodeBase64(nextChunk);
@@ -15956,7 +16315,7 @@ ${counts}`;
15956
16315
  throw new ParseErrors(options.errors);
15957
16316
  }
15958
16317
  if (options.sourceMap || options.inlineMap) {
15959
- options.sourceMap = SourceMap2(src);
16318
+ options.sourceMap = new SourceMap2(src);
15960
16319
  let code = generate_civet_default(ast2, options);
15961
16320
  return checkErrors(), options.inlineMap ? SourceMap2.remap(code, options.sourceMap, filename2, filename2 + ".tsx") : {
15962
16321
  code,
@@ -15964,7 +16323,7 @@ ${counts}`;
15964
16323
  };
15965
16324
  }
15966
16325
  let result = generate_civet_default(ast2, options);
15967
- return options.errors?.length && (delete options.errors, options.sourceMap = SourceMap2(src), generate_civet_default(ast2, options), checkErrors()), result;
16326
+ return options.errors?.length && (delete options.errors, options.sourceMap = new SourceMap2(src), generate_civet_default(ast2, options), checkErrors()), result;
15968
16327
  }
15969
16328
  return ast.then != null ? ast.then(rest) : rest(ast);
15970
16329
  }