@danielx/civet 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.mjs CHANGED
@@ -56,7 +56,7 @@ var require_machine = __commonJS({
56
56
  $EVENT: () => $EVENT2,
57
57
  $EVENT_C: () => $EVENT_C2,
58
58
  $EXPECT: () => $EXPECT2,
59
- $L: () => $L247,
59
+ $L: () => $L249,
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
@@ -81,7 +81,7 @@ var require_machine = __commonJS({
81
81
  return result;
82
82
  };
83
83
  }
84
- function $L247(str) {
84
+ function $L249(str) {
85
85
  return function(_ctx, state2) {
86
86
  const { input, pos } = state2, { length } = str, end = pos + length;
87
87
  if (input.substring(pos, end) === str) {
@@ -1991,16 +1991,18 @@ var declareHelper = {
1991
1991
  "\n"
1992
1992
  ]]);
1993
1993
  },
1994
- rslice(rsliceRef) {
1995
- const RSliceable = makeRef("RSliceable");
1994
+ RSliceable(RSliceableRef) {
1996
1995
  state.prelude.push([
1997
1996
  "",
1998
- ts(["type ", RSliceable, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"])
1997
+ ts(["type ", RSliceableRef, "<R> = string | {length: number; slice(start: number, end: number): {reverse(): R}}\n"])
1999
1998
  ]);
1999
+ },
2000
+ rslice(rsliceRef) {
2001
+ const RSliceableRef = getHelperRef("RSliceable");
2000
2002
  state.prelude.push(["", [
2001
2003
  preludeVar,
2002
2004
  rsliceRef,
2003
- ts([": <R, T extends string | ", RSliceable, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceable, "<infer R> ? R : never"]),
2005
+ ts([": <R, T extends string | ", RSliceableRef, "<R>>(a: T, start?: number, end?: number) => T extends string ? string : T extends ", RSliceableRef, "<infer R> ? R : never"]),
2004
2006
  " = ((a, start = -1, end = -1) => {\n",
2005
2007
  " const l = a.length\n",
2006
2008
  " if (start < 0) start += l\n",
@@ -2019,6 +2021,72 @@ var declareHelper = {
2019
2021
  "})"
2020
2022
  ], ";\n"]);
2021
2023
  },
2024
+ range(rangeRef) {
2025
+ state.prelude.push(["", [
2026
+ preludeVar,
2027
+ rangeRef,
2028
+ ts([": (start: number, end: number) => number[]"]),
2029
+ " ",
2030
+ `= (start, end) => {
2031
+ const length = end - start;
2032
+ if (length <= 0) return [];
2033
+ const arr = Array(length);
2034
+ for (let i = 0; i < length; ++i) {
2035
+ arr[i] = i + start;
2036
+ }
2037
+ return arr;
2038
+ }`
2039
+ ], ";\n"]);
2040
+ },
2041
+ revRange(revRangeRef) {
2042
+ state.prelude.push(["", [
2043
+ preludeVar,
2044
+ revRangeRef,
2045
+ ts([": (start: number, end: number) => number[]"]),
2046
+ " ",
2047
+ `= (start, end) => {
2048
+ const length = start - end;
2049
+ if (length <= 0) return [];
2050
+ const arr = Array(length);
2051
+ for (let i = 0; i < length; ++i) {
2052
+ arr[i] = start - i;
2053
+ }
2054
+ return arr;
2055
+ }`
2056
+ ], ";\n"]);
2057
+ },
2058
+ stringRange(stringRangeRef) {
2059
+ state.prelude.push(["", [
2060
+ preludeVar,
2061
+ stringRangeRef,
2062
+ ts([": (start: number, length: number) => string[]"]),
2063
+ " ",
2064
+ `= (start, length) => {
2065
+ if (length <= 0) return [];
2066
+ const arr = Array(length);
2067
+ for (let i = 0; i < length; ++i) {
2068
+ arr[i] = String.fromCharCode(start + i);
2069
+ }
2070
+ return arr;
2071
+ }`
2072
+ ], ";\n"]);
2073
+ },
2074
+ revStringRange(revStringRangeRef) {
2075
+ state.prelude.push(["", [
2076
+ preludeVar,
2077
+ revStringRangeRef,
2078
+ ts([": (start: number, length: number) => string[]"]),
2079
+ " ",
2080
+ `= (start, length) => {
2081
+ if (length <= 0) return [];
2082
+ const arr = Array(length);
2083
+ for (let i = 0; i < length; ++i) {
2084
+ arr[i] = String.fromCharCode(start - i);
2085
+ }
2086
+ return arr;
2087
+ }`
2088
+ ], ";\n"]);
2089
+ },
2022
2090
  div(divRef) {
2023
2091
  state.prelude.push(["", [
2024
2092
  // [indent, statement]
@@ -2161,9 +2229,28 @@ function peekHelperRef(base) {
2161
2229
  return state.helperRefs[base];
2162
2230
  }
2163
2231
  function extractPreludeFor(node) {
2164
- let helpers = new Set(Object.values(state.helperRefs));
2165
- helpers = new Set(gatherRecursive(node, helpers.has.bind(helpers)));
2166
- return state.prelude.filter((s) => gatherRecursive(s, helpers.has.bind(helpers)).length);
2232
+ if (!state.prelude.length) {
2233
+ return state.prelude;
2234
+ }
2235
+ const allHelpers = new Set(Object.values(state.helperRefs));
2236
+ const isHelper = allHelpers.has.bind(allHelpers);
2237
+ const usedHelpers = new Set(gatherRecursive(node, isHelper));
2238
+ while (true) {
2239
+ let prelude = state.prelude.filter((s) => {
2240
+ return gatherRecursive(s, usedHelpers.has.bind(usedHelpers)).length;
2241
+ });
2242
+ let changed = false;
2243
+ for (let ref1 = gatherRecursive(prelude, isHelper), i = 0, len3 = ref1.length; i < len3; i++) {
2244
+ const helper = ref1[i];
2245
+ if (!usedHelpers.has(helper)) {
2246
+ usedHelpers.add(helper);
2247
+ changed = true;
2248
+ }
2249
+ }
2250
+ if (!changed) {
2251
+ return prelude;
2252
+ }
2253
+ }
2167
2254
  }
2168
2255
 
2169
2256
  // unplugin-civet:C:\Users\edemaine\Projects\Civet\source\generate.civet.jsx
@@ -2175,7 +2262,8 @@ function stringify(node) {
2175
2262
  }
2176
2263
  }
2177
2264
  function gen(root, options) {
2178
- const updateSourceMap = options?.sourceMap?.updateSourceMap;
2265
+ let ref;
2266
+ const updateSourceMap = (ref = options?.sourceMap)?.updateSourceMap.bind(ref);
2179
2267
  return recurse(root);
2180
2268
  function recurse(node) {
2181
2269
  if (!(node != null)) {
@@ -2200,15 +2288,15 @@ function gen(root, options) {
2200
2288
  let line = "?";
2201
2289
  let column = "?";
2202
2290
  let offset;
2203
- let ref;
2204
- if (ref = options.sourceMap) {
2205
- const sourceMap = ref;
2291
+ let ref1;
2292
+ if (ref1 = options.sourceMap) {
2293
+ const sourceMap = ref1;
2206
2294
  if (node.$loc != null) {
2207
2295
  sourceMap.updateSourceMap("", node.$loc.pos);
2208
2296
  }
2209
- line = sourceMap.data.srcLine + 1;
2210
- column = sourceMap.data.srcColumn + 1;
2211
- offset = sourceMap.data.srcOffset;
2297
+ line = sourceMap.srcLine + 1;
2298
+ column = sourceMap.srcColumn + 1;
2299
+ offset = sourceMap.srcOffset;
2212
2300
  }
2213
2301
  options.errors ??= [];
2214
2302
  options.errors.push(new import_lib2.ParseError(
@@ -3259,9 +3347,30 @@ function wrapIterationReturningResults(statement, collect) {
3259
3347
  if (statement.resultsRef != null) {
3260
3348
  return;
3261
3349
  }
3262
- const resultsRef = statement.resultsRef = makeRef("results");
3350
+ if (statement.resultsParent) {
3351
+ const { ancestor: ancestor2 } = findAncestor(
3352
+ statement,
3353
+ ($5) => $5.type === "ForStatement" || $5.type === "IterationStatement",
3354
+ isFunction
3355
+ );
3356
+ if (!ancestor2) {
3357
+ statement.children.unshift({
3358
+ type: "Error",
3359
+ message: "Could not find ancestor of spread iteration"
3360
+ });
3361
+ return;
3362
+ }
3363
+ const resultsRef2 = statement.resultsRef = ancestor2.resultsRef;
3364
+ iterationDefaultBody(statement);
3365
+ const { block } = statement;
3366
+ if (!block.empty) {
3367
+ assignResults(block, (node) => [resultsRef2, ".push(", node, ")"]);
3368
+ }
3369
+ return;
3370
+ }
3371
+ const resultsRef = statement.resultsRef ??= makeRef("results");
3263
3372
  const declaration = iterationDeclaration(statement);
3264
- const { ancestor, child } = findAncestor(statement, ($5) => $5.type === "BlockStatement");
3373
+ const { ancestor, child } = findAncestor(statement, ($6) => $6.type === "BlockStatement");
3265
3374
  assert.notNull(ancestor, `Could not find block containing ${statement.type}`);
3266
3375
  const index = findChildIndex(ancestor.expressions, child);
3267
3376
  assert.notEqual(index, -1, `Could not find ${statement.type} in containing block`);
@@ -3305,6 +3414,9 @@ function iterationDeclaration(statement) {
3305
3414
  case "every": {
3306
3415
  return "true";
3307
3416
  }
3417
+ case "first": {
3418
+ return "undefined";
3419
+ }
3308
3420
  case "min": {
3309
3421
  return "Infinity";
3310
3422
  }
@@ -3317,6 +3429,9 @@ function iterationDeclaration(statement) {
3317
3429
  case "join": {
3318
3430
  return '""';
3319
3431
  }
3432
+ case "concat": {
3433
+ return "[]";
3434
+ }
3320
3435
  default: {
3321
3436
  return "0";
3322
3437
  }
@@ -3361,10 +3476,16 @@ function iterationDeclaration(statement) {
3361
3476
  case "count": {
3362
3477
  return ["if (", node, ") ++", resultsRef];
3363
3478
  }
3479
+ case "first": {
3480
+ return [resultsRef, " = ", node, "; break"];
3481
+ }
3364
3482
  case "sum":
3365
3483
  case "join": {
3366
3484
  return [resultsRef, " += ", node];
3367
3485
  }
3486
+ case "concat": {
3487
+ return [getHelperRef("concatAssign"), "(", resultsRef, ", ", node, ")"];
3488
+ }
3368
3489
  case "product": {
3369
3490
  return [resultsRef, " *= ", node];
3370
3491
  }
@@ -3418,31 +3539,34 @@ function iterationDefaultBody(statement) {
3418
3539
  }
3419
3540
  }
3420
3541
  }
3421
- if (statement.type === "ForStatement" && statement.declaration?.type === "ForDeclaration") {
3422
- if (reduction) {
3423
- const bindings = patternBindings(statement.declaration.binding.pattern);
3424
- if (bindings.length) {
3425
- fillBlock(["", bindings[0]]);
3426
- for (const binding of bindings.slice(1)) {
3427
- binding.children.unshift({
3428
- type: "Error",
3429
- subtype: "Warning",
3430
- message: "Ignored binding in reduction loop with implicit body"
3431
- });
3542
+ if (statement.type === "ForStatement") {
3543
+ const declaration = statement.eachDeclaration ?? statement.declaration;
3544
+ if (declaration?.type === "ForDeclaration") {
3545
+ if (reduction) {
3546
+ const bindings = patternBindings(declaration.binding.pattern);
3547
+ if (bindings.length) {
3548
+ fillBlock(["", bindings[0]]);
3549
+ for (const binding of bindings.slice(1)) {
3550
+ binding.children.unshift({
3551
+ type: "Error",
3552
+ subtype: "Warning",
3553
+ message: "Ignored binding in reduction loop with implicit body"
3554
+ });
3555
+ }
3556
+ } else {
3557
+ fillBlock([
3558
+ "",
3559
+ {
3560
+ type: "Error",
3561
+ message: "Empty binding pattern in reduction loop with implicit body"
3562
+ }
3563
+ ]);
3432
3564
  }
3433
3565
  } else {
3434
- fillBlock([
3435
- "",
3436
- {
3437
- type: "Error",
3438
- message: "Empty binding pattern in reduction loop with implicit body"
3439
- }
3440
- ]);
3566
+ fillBlock(["", patternAsValue(declaration.binding.pattern)]);
3441
3567
  }
3442
- } else {
3443
- fillBlock(["", patternAsValue(statement.declaration.binding.pattern)]);
3568
+ block.empty = false;
3444
3569
  }
3445
- block.empty = false;
3446
3570
  }
3447
3571
  return false;
3448
3572
  }
@@ -3503,7 +3627,7 @@ function processParams(f) {
3503
3627
  }
3504
3628
  }
3505
3629
  }
3506
- parameters.names = before.flatMap(($6) => $6.names);
3630
+ parameters.names = before.flatMap(($7) => $7.names);
3507
3631
  parameters.parameters.splice(0, 1 / 0, ...[]);
3508
3632
  if (tt) {
3509
3633
  parameters.parameters.push(tt);
@@ -3521,7 +3645,7 @@ function processParams(f) {
3521
3645
  });
3522
3646
  }
3523
3647
  after = trimFirstSpace(after);
3524
- const names = after.flatMap(($7) => $7.names);
3648
+ const names = after.flatMap(($8) => $8.names);
3525
3649
  const elements = after.map((p) => {
3526
3650
  if (p.type === "Error") {
3527
3651
  return p;
@@ -3610,9 +3734,9 @@ function processParams(f) {
3610
3734
  colon,
3611
3735
  t,
3612
3736
  children: [
3613
- ...oldSuffix.children.filter(($8) => (
3737
+ ...oldSuffix.children.filter(($9) => (
3614
3738
  // spaces and colon
3615
- $8 !== oldSuffix.optional && $8 !== oldSuffix.t
3739
+ $9 !== oldSuffix.optional && $9 !== oldSuffix.t
3616
3740
  )),
3617
3741
  !oldSuffix.colon ? colon : void 0,
3618
3742
  t
@@ -3647,9 +3771,9 @@ function processParams(f) {
3647
3771
  assignPins: true
3648
3772
  });
3649
3773
  if (isConstructor) {
3650
- const { ancestor } = findAncestor(f, ($9) => $9.type === "ClassExpression");
3774
+ const { ancestor } = findAncestor(f, ($10) => $10.type === "ClassExpression");
3651
3775
  if (ancestor != null) {
3652
- const 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));
3776
+ const 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));
3653
3777
  const classExpressions = ancestor.body.expressions;
3654
3778
  let index2 = findChildIndex(classExpressions, f);
3655
3779
  assert.notEqual(index2, -1, "Could not find constructor in class");
@@ -3658,13 +3782,13 @@ function processParams(f) {
3658
3782
  index2--;
3659
3783
  }
3660
3784
  const fStatement = classExpressions[index2];
3661
- for (let ref18 = gatherRecursive(parameters, ($13) => $13.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
3785
+ for (let ref18 = gatherRecursive(parameters, ($14) => $14.type === "Parameter"), i9 = 0, len8 = ref18.length; i9 < len8; i9++) {
3662
3786
  const parameter = ref18[i9];
3663
3787
  const { accessModifier } = parameter;
3664
3788
  if (!(accessModifier || parameter.typeSuffix)) {
3665
3789
  continue;
3666
3790
  }
3667
- for (let ref19 = gatherRecursive(parameter, ($14) => $14.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
3791
+ for (let ref19 = gatherRecursive(parameter, ($15) => $15.type === "AtBinding"), i10 = 0, len9 = ref19.length; i10 < len9; i10++) {
3668
3792
  const binding = ref19[i10];
3669
3793
  const typeSuffix = binding.parent?.typeSuffix;
3670
3794
  if (!(accessModifier || typeSuffix)) {
@@ -3747,7 +3871,7 @@ function processSignature(f) {
3747
3871
  f.async.push("async ");
3748
3872
  signature.modifier.async = true;
3749
3873
  } else {
3750
- for (let ref21 = gatherRecursiveWithinFunction(block, ($15) => $15.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3874
+ for (let ref21 = gatherRecursiveWithinFunction(block, ($16) => $16.type === "Await"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3751
3875
  const a = ref21[i12];
3752
3876
  const i = findChildIndex(a.parent, a);
3753
3877
  a.parent.children.splice(i + 1, 0, {
@@ -3762,9 +3886,9 @@ function processSignature(f) {
3762
3886
  f.generator.push("*");
3763
3887
  signature.modifier.generator = true;
3764
3888
  } else {
3765
- for (let ref22 = gatherRecursiveWithinFunction(block, ($16) => $16.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3889
+ for (let ref22 = gatherRecursiveWithinFunction(block, ($17) => $17.type === "YieldExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3766
3890
  const y = ref22[i13];
3767
- const i = y.children.findIndex(($17) => $17.type === "Yield");
3891
+ const i = y.children.findIndex(($18) => $18.type === "Yield");
3768
3892
  y.children.splice(i + 1, 0, {
3769
3893
  type: "Error",
3770
3894
  message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
@@ -3777,7 +3901,7 @@ function processSignature(f) {
3777
3901
  }
3778
3902
  }
3779
3903
  function processFunctions(statements, config2) {
3780
- for (let ref23 = gatherRecursiveAll(statements, ($18) => $18.type === "FunctionExpression" || $18.type === "ArrowFunction" || $18.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3904
+ for (let ref23 = gatherRecursiveAll(statements, ($19) => $19.type === "FunctionExpression" || $19.type === "ArrowFunction" || $19.type === "MethodDefinition"), i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3781
3905
  const f = ref23[i14];
3782
3906
  if (f.type === "FunctionExpression" || f.type === "MethodDefinition") {
3783
3907
  implicitFunctionBlock(f);
@@ -3789,7 +3913,7 @@ function processFunctions(statements, config2) {
3789
3913
  }
3790
3914
  function expressionizeIteration(exp) {
3791
3915
  let { async, generator, block, children, statement } = exp;
3792
- const i = children.indexOf(statement);
3916
+ let i = children.indexOf(statement);
3793
3917
  if (i < 0) {
3794
3918
  throw new Error("Could not find iteration statement in iteration expression");
3795
3919
  }
@@ -3800,12 +3924,6 @@ function expressionizeIteration(exp) {
3800
3924
  }
3801
3925
  let statements;
3802
3926
  if (generator) {
3803
- if (statement.reduction) {
3804
- children.unshift({
3805
- type: "Error",
3806
- message: `Cannot use reduction (${statement.reduction.subtype}) with generators`
3807
- });
3808
- }
3809
3927
  iterationDefaultBody(statement);
3810
3928
  assignResults(block, (node) => {
3811
3929
  return {
@@ -3853,7 +3971,7 @@ function expressionizeIteration(exp) {
3853
3971
  }
3854
3972
  }
3855
3973
  function processIterationExpressions(statements) {
3856
- for (let ref25 = gatherRecursiveAll(statements, ($19) => $19.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
3974
+ for (let ref25 = gatherRecursiveAll(statements, ($20) => $20.type === "IterationExpression"), i15 = 0, len14 = ref25.length; i15 < len14; i15++) {
3857
3975
  const s = ref25[i15];
3858
3976
  expressionizeIteration(s);
3859
3977
  }
@@ -3903,12 +4021,12 @@ function processCoffeeDo(ws, expression) {
3903
4021
  const newParameters = {
3904
4022
  ...parameters,
3905
4023
  parameters: newParameterList,
3906
- children: parameters.children.map(($20) => $20 === parameterList ? newParameterList : $20)
4024
+ children: parameters.children.map(($21) => $21 === parameterList ? newParameterList : $21)
3907
4025
  };
3908
4026
  expression = {
3909
4027
  ...expression,
3910
4028
  parameters: newParameters,
3911
- children: expression.children.map(($21) => $21 === parameters ? newParameters : $21)
4029
+ children: expression.children.map(($22) => $22 === parameters ? newParameters : $22)
3912
4030
  };
3913
4031
  }
3914
4032
  return {
@@ -3930,7 +4048,7 @@ function makeAmpersandFunction(rhs) {
3930
4048
  ref = makeRef("$");
3931
4049
  inplacePrepend(ref, body);
3932
4050
  }
3933
- if (startsWithPredicate(body, ($22) => $22.type === "ObjectExpression")) {
4051
+ if (startsWithPredicate(body, ($23) => $23.type === "ObjectExpression")) {
3934
4052
  body = makeLeftHandSideExpression(body);
3935
4053
  }
3936
4054
  const parameterList = [
@@ -4790,29 +4908,36 @@ function getPatternBlockPrefix(pattern, ref, decl = "const ", typeSuffix) {
4790
4908
  }
4791
4909
  let [splices, thisAssignments] = gatherBindingCode(pattern);
4792
4910
  const patternBindings2 = nonMatcherBindings(pattern);
4911
+ const results = [];
4912
+ for (let ref2 = gatherRecursiveAll(patternBindings2, ($7) => $7.subbinding != null), i5 = 0, len4 = ref2.length; i5 < len4; i5++) {
4913
+ const p = ref2[i5];
4914
+ results.push(prepend(", ", p.subbinding));
4915
+ }
4916
+ ;
4917
+ const subbindings = results;
4793
4918
  splices = splices.map((s) => [", ", nonMatcherBindings(s)]);
4794
- thisAssignments = thisAssignments.map(($7) => ["", $7, ";"]);
4919
+ thisAssignments = thisAssignments.map(($8) => ["", $8, ";"]);
4795
4920
  const duplicateDeclarations = aggregateDuplicateBindings([patternBindings2, splices]);
4796
4921
  return [
4797
4922
  ["", {
4798
4923
  type: "Declaration",
4799
- children: [decl, patternBindings2, typeSuffix, " = ", ref, ...splices],
4924
+ children: [decl, patternBindings2, typeSuffix, " = ", ref, ...subbindings, ...splices],
4800
4925
  names: [],
4801
4926
  bindings: []
4802
4927
  // avoid implicit return of any bindings
4803
4928
  }, ";"],
4804
4929
  ...thisAssignments,
4805
- ...duplicateDeclarations.map(($8) => ["", $8, ";"])
4930
+ ...duplicateDeclarations.map(($9) => ["", $9, ";"])
4806
4931
  ];
4807
4932
  }
4808
4933
  function elideMatchersFromArrayBindings(elements) {
4809
- const results = [];
4810
- for (let i5 = 0, len4 = elements.length; i5 < len4; i5++) {
4811
- const element = elements[i5];
4934
+ const results1 = [];
4935
+ for (let i6 = 0, len5 = elements.length; i6 < len5; i6++) {
4936
+ const element = elements[i6];
4812
4937
  switch (element.type) {
4813
4938
  case "BindingRestElement":
4814
4939
  case "ElisionElement": {
4815
- results.push(element);
4940
+ results1.push(element);
4816
4941
  break;
4817
4942
  }
4818
4943
  case "BindingElement": {
@@ -4821,12 +4946,12 @@ function elideMatchersFromArrayBindings(elements) {
4821
4946
  case "RegularExpressionLiteral":
4822
4947
  case "StringLiteral":
4823
4948
  case "PinPattern": {
4824
- results.push(element.delim);
4949
+ results1.push(element.delim);
4825
4950
  break;
4826
4951
  }
4827
4952
  default: {
4828
4953
  const binding = nonMatcherBindings(element.binding);
4829
- results.push(makeNode({
4954
+ results1.push(makeNode({
4830
4955
  ...element,
4831
4956
  binding,
4832
4957
  children: element.children.map((c) => {
@@ -4841,46 +4966,75 @@ function elideMatchersFromArrayBindings(elements) {
4841
4966
  }
4842
4967
  }
4843
4968
  ;
4844
- return results;
4969
+ return results1;
4845
4970
  }
4846
4971
  function elideMatchersFromPropertyBindings(properties) {
4847
- return properties.map((p) => {
4972
+ const results2 = [];
4973
+ for (let i7 = 0, len6 = properties.length; i7 < len6; i7++) {
4974
+ const p = properties[i7];
4848
4975
  switch (p.type) {
4849
- case "BindingProperty": {
4850
- const { children, name, value } = p;
4976
+ case "BindingProperty":
4977
+ case "PinProperty": {
4978
+ const { children, name, value, bind } = p;
4851
4979
  const [ws] = children;
4852
4980
  const shouldElide = name.type === "NumericLiteral" && !value?.name || name.type === "ComputedPropertyName" && value?.subtype === "NumericLiteral";
4853
4981
  if (shouldElide) {
4854
- return;
4855
- }
4856
- switch (value && value.type) {
4857
- case "ArrayBindingPattern":
4858
- case "ObjectBindingPattern": {
4859
- const bindings = nonMatcherBindings(value);
4860
- return {
4861
- ...p,
4862
- children: [ws, name, bindings && ": ", bindings, p.delim]
4863
- };
4982
+ if (bind) {
4983
+ results2.push({
4984
+ type: "Error",
4985
+ message: `Cannot bind ${name.type}`
4986
+ });
4987
+ } else {
4988
+ continue;
4864
4989
  }
4865
- case "Identifier": {
4866
- return p;
4990
+ } else {
4991
+ let contents;
4992
+ switch (value?.type) {
4993
+ case "ArrayBindingPattern":
4994
+ case "ObjectBindingPattern": {
4995
+ const bindings = nonMatcherBindings(value);
4996
+ contents = {
4997
+ ...p,
4998
+ value: bindings,
4999
+ children: [ws, name, bindings && ": ", bindings, p.delim]
5000
+ };
5001
+ break;
5002
+ }
5003
+ case "Identifier":
5004
+ case void 0: {
5005
+ contents = p;
5006
+ break;
5007
+ }
5008
+ default: {
5009
+ contents = void 0;
5010
+ }
4867
5011
  }
4868
- case "Literal":
4869
- case "RegularExpressionLiteral":
4870
- case "StringLiteral":
4871
- default:
4872
- return {
5012
+ if (bind) {
5013
+ results2.push({
4873
5014
  ...p,
4874
- children: [ws, name, p.delim]
4875
- };
5015
+ children: [ws, name, p.delim],
5016
+ subbinding: contents?.value ? [
5017
+ contents.value,
5018
+ " = ",
5019
+ name
5020
+ ] : void 0
5021
+ });
5022
+ } else if (contents) {
5023
+ results2.push(contents);
5024
+ } else {
5025
+ continue;
5026
+ }
4876
5027
  }
5028
+ ;
5029
+ break;
5030
+ }
5031
+ default: {
5032
+ results2.push(p);
4877
5033
  }
4878
- case "PinProperty":
4879
- case "BindingRestProperty":
4880
- default:
4881
- return p;
4882
5034
  }
4883
- });
5035
+ }
5036
+ ;
5037
+ return results2;
4884
5038
  }
4885
5039
  function nonMatcherBindings(pattern) {
4886
5040
  switch (pattern.type) {
@@ -4890,7 +5044,7 @@ function nonMatcherBindings(pattern) {
4890
5044
  return makeNode({
4891
5045
  ...pattern,
4892
5046
  elements,
4893
- children: pattern.children.map(($9) => $9 === pattern.elements ? elements : $9)
5047
+ children: pattern.children.map(($10) => $10 === pattern.elements ? elements : $10)
4894
5048
  });
4895
5049
  }
4896
5050
  case "ObjectBindingPattern": {
@@ -4898,7 +5052,7 @@ function nonMatcherBindings(pattern) {
4898
5052
  return makeNode({
4899
5053
  ...pattern,
4900
5054
  properties,
4901
- children: pattern.children.map(($10) => $10 === pattern.properties ? properties : $10)
5055
+ children: pattern.children.map(($11) => $11 === pattern.properties ? properties : $11)
4902
5056
  });
4903
5057
  }
4904
5058
  default: {
@@ -4916,8 +5070,8 @@ function aggregateDuplicateBindings(bindings) {
4916
5070
  );
4917
5071
  const declarations = [];
4918
5072
  const propsGroupedByName = /* @__PURE__ */ new Map();
4919
- for (let i6 = 0, len5 = props.length; i6 < len5; i6++) {
4920
- const p = props[i6];
5073
+ for (let i8 = 0, len7 = props.length; i8 < len7; i8++) {
5074
+ const p = props[i8];
4921
5075
  const { name, value } = p;
4922
5076
  let m1;
4923
5077
  if (m1 = value?.type, m1 === "ArrayBindingPattern" || m1 === "ObjectBindingPattern") {
@@ -4942,8 +5096,8 @@ function aggregateDuplicateBindings(bindings) {
4942
5096
  pos: 0,
4943
5097
  input: key
4944
5098
  })) {
4945
- for (let i7 = 0, len6 = shared.length; i7 < len6; i7++) {
4946
- const p = shared[i7];
5099
+ for (let i9 = 0, len8 = shared.length; i9 < len8; i9++) {
5100
+ const p = shared[i9];
4947
5101
  aliasBinding(p, makeRef(`_${key}`, key));
4948
5102
  }
4949
5103
  return;
@@ -5082,7 +5236,7 @@ function prependStatementExpressionBlock(initializer, statement) {
5082
5236
  ws = exp[0];
5083
5237
  exp = exp[1];
5084
5238
  }
5085
- if (!(exp?.type === "StatementExpression")) {
5239
+ if (!(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")) {
5086
5240
  return;
5087
5241
  }
5088
5242
  const pre = [];
@@ -5920,14 +6074,6 @@ function processRangeExpression(start, ws1, range, end) {
5920
6074
  ;
5921
6075
  const abs = ref;
5922
6076
  const lengthAdjust = 1 - Number(!range.left.inclusive) - Number(!range.right.inclusive);
5923
- let ref1;
5924
- if (lengthAdjust > 0) ref1 = ` + ${lengthAdjust}`;
5925
- else if (lengthAdjust < 0) ref1 = ` - ${-lengthAdjust}`;
5926
- else {
5927
- ref1 = void 0;
5928
- }
5929
- ;
5930
- const lengthAdjustExpression = ref1;
5931
6077
  let children;
5932
6078
  if (typeof start === "object" && start != null && "type" in start && start.type === "Literal" && (typeof end === "object" && end != null && "type" in end && end.type === "Literal")) {
5933
6079
  let startValue = literalValue(start);
@@ -5953,11 +6099,12 @@ function processRangeExpression(start, ws1, range, end) {
5953
6099
  ];
5954
6100
  } else {
5955
6101
  children = [
5956
- `Array.from({length: ${length.toString()}}, `,
5957
- "(_, i) => String.fromCharCode(",
6102
+ getHelperRef(startCode <= endCode ? "stringRange" : "revStringRange"),
6103
+ "(",
5958
6104
  startCode.toString(),
5959
- step > 0 ? " + " : " - ",
5960
- "i))"
6105
+ ", ",
6106
+ length.toString(),
6107
+ ")"
5961
6108
  ];
5962
6109
  }
5963
6110
  if (range.error != null) {
@@ -5986,22 +6133,25 @@ function processRangeExpression(start, ws1, range, end) {
5986
6133
  const sign = range.increasing ? "+" : "-";
5987
6134
  end = makeLeftHandSideExpression(end);
5988
6135
  children = [
5989
- "((s) => Array.from({length: ",
5990
- range.increasing ? [ws2, end, " - s"] : ["s - ", ws2, end],
5991
- lengthAdjustExpression,
5992
- "}, (_, i) => s ",
5993
- sign,
5994
- " i))",
6136
+ getHelperRef(range.increasing ? "range" : "revRange"),
5995
6137
  "(",
5996
6138
  range.left.inclusive ? start : [makeLeftHandSideExpression(start), ` ${sign} 1`],
6139
+ ",",
6140
+ range.right.inclusive ? [makeLeftHandSideExpression(end), ` ${sign} 1`] : end,
5997
6141
  ...ws1,
5998
6142
  ")"
5999
6143
  ];
6000
6144
  } else {
6001
6145
  children = [
6002
- "((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)",
6003
- lengthAdjustExpression,
6004
- "}, (_, i) => s + i * step)})",
6146
+ "((s, e) => s > e ? ",
6147
+ getHelperRef("revRange"),
6148
+ "(s, e",
6149
+ range.right.inclusive ? " - 1" : void 0,
6150
+ ") : ",
6151
+ getHelperRef("range"),
6152
+ "(s, e",
6153
+ range.right.inclusive ? " + 1" : void 0,
6154
+ "))",
6005
6155
  "(",
6006
6156
  start,
6007
6157
  ...ws1,
@@ -6042,25 +6192,25 @@ function forRange(open, forDeclaration, range, stepExp, close) {
6042
6192
  asc = false;
6043
6193
  }
6044
6194
  }
6045
- let ref2;
6195
+ let ref1;
6046
6196
  if (stepExp?.type === "Literal") {
6047
6197
  try {
6048
- ref2 = literalValue(stepExp);
6198
+ ref1 = literalValue(stepExp);
6049
6199
  } catch (e) {
6050
- ref2 = void 0;
6200
+ ref1 = void 0;
6051
6201
  }
6052
6202
  } else {
6053
- ref2 = void 0;
6203
+ ref1 = void 0;
6054
6204
  }
6055
6205
  ;
6056
- const stepValue = ref2;
6206
+ const stepValue = ref1;
6057
6207
  if (typeof stepValue === "number") {
6058
6208
  asc = stepValue > 0;
6059
6209
  }
6060
- let ref3;
6061
- if (stepRef) ref3 = start;
6062
- else ref3 = maybeRef(start, "start");
6063
- let startRef = ref3;
6210
+ let ref2;
6211
+ if (stepRef) ref2 = start;
6212
+ else ref2 = maybeRef(start, "start");
6213
+ let startRef = ref2;
6064
6214
  let endRef = maybeRef(end, "end");
6065
6215
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
6066
6216
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
@@ -6072,8 +6222,8 @@ function forRange(open, forDeclaration, range, stepExp, close) {
6072
6222
  }
6073
6223
  if (start?.type === "Literal" && "Literal" === end?.type) {
6074
6224
  asc = literalValue(start) <= literalValue(end);
6075
- let ref4;
6076
- if ("StringLiteral" === (ref4 = start.subtype) && ref4 === end.subtype) {
6225
+ let ref3;
6226
+ if ("StringLiteral" === (ref3 = start.subtype) && ref3 === end.subtype) {
6077
6227
  const startChar = literalValue(start).charCodeAt(0).toString();
6078
6228
  startRef = {
6079
6229
  type: "Literal",
@@ -6129,8 +6279,8 @@ function forRange(open, forDeclaration, range, stepExp, close) {
6129
6279
  }
6130
6280
  function processForInOf($0) {
6131
6281
  let [awaits, eachOwn, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
6132
- for (let ref5 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref5.length; i1 < len3; i1++) {
6133
- const decl = ref5[i1];
6282
+ for (let ref4 = [declaration, declaration2?.[declaration2.length - 1]], i1 = 0, len3 = ref4.length; i1 < len3; i1++) {
6283
+ const decl = ref4[i1];
6134
6284
  if (!(decl != null)) {
6135
6285
  continue;
6136
6286
  }
@@ -6179,6 +6329,7 @@ function processForInOf($0) {
6179
6329
  names: assignmentNames,
6180
6330
  implicitLift: true
6181
6331
  }, ";"]);
6332
+ const eachDeclaration = declaration;
6182
6333
  declaration = {
6183
6334
  type: "Declaration",
6184
6335
  children: ["let ", ...expRefDec, counterRef, " = 0, ", lenRef, " = ", trimFirstSpace(expRef2), ".length"],
@@ -6186,7 +6337,7 @@ function processForInOf($0) {
6186
6337
  };
6187
6338
  const condition = [counterRef, " < ", lenRef, "; "];
6188
6339
  const children = [open, declaration, "; ", condition, counterRef, increment, close];
6189
- return { declaration, children, blockPrefix };
6340
+ return { declaration, eachDeclaration, children, blockPrefix };
6190
6341
  } else {
6191
6342
  eachOwnError = {
6192
6343
  type: "Error",
@@ -7502,7 +7653,7 @@ function processAssignments(statements) {
7502
7653
  let { lhs: $1, expression: $2 } = exp, tail = [], len3 = $1.length;
7503
7654
  let block;
7504
7655
  let ref12;
7505
- if (exp.parent?.type === "BlockStatement" && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
7656
+ if (blockContainingStatement(exp) && !(ref12 = $1[$1.length - 1])?.[ref12.length - 1]?.special) {
7506
7657
  block = makeBlockFragment();
7507
7658
  let ref13;
7508
7659
  if (ref13 = prependStatementExpressionBlock(
@@ -8098,15 +8249,8 @@ function processProgram(root) {
8098
8249
  assert.equal(state2.forbidNewlineBinaryOp.length, 1, "forbidNewlineBinaryOp");
8099
8250
  assert.equal(state2.forbidTrailingMemberProperty.length, 1, "forbidTrailingMemberProperty");
8100
8251
  assert.equal(state2.JSXTagStack.length, 1, "JSXTagStack");
8101
- let rootIIFE;
8102
- if (config2.iife || config2.repl) {
8103
- rootIIFE = wrapIIFE(root.expressions, root.topLevelAwait);
8104
- const newExpressions = [["", rootIIFE]];
8105
- root.children = root.children.map(($16) => $16 === root.expressions ? newExpressions : $16);
8106
- root.expressions = newExpressions;
8107
- }
8108
8252
  addParentPointers(root);
8109
- const { expressions: statements } = root;
8253
+ let { expressions: statements } = root;
8110
8254
  processPlaceholders(statements);
8111
8255
  processNegativeIndexAccess(statements);
8112
8256
  processTypes(statements);
@@ -8119,12 +8263,25 @@ function processProgram(root) {
8119
8263
  processIterationExpressions(statements);
8120
8264
  processFinallyClauses(statements);
8121
8265
  processBreaksContinues(statements);
8266
+ root.topLevelAwait = hasAwait(statements);
8267
+ root.topLevelYield = hasYield(statements);
8268
+ let rootIIFE;
8269
+ if (config2.iife || config2.repl) {
8270
+ rootIIFE = wrapIIFE(
8271
+ root.expressions,
8272
+ root.topLevelAwait,
8273
+ root.topLevelYield ? "*" : void 0
8274
+ );
8275
+ statements = [["", rootIIFE]];
8276
+ root.children = root.children.map(($16) => $16 === root.expressions ? statements : $16);
8277
+ root.expressions = statements;
8278
+ }
8122
8279
  hoistRefDecs(statements);
8123
8280
  processFunctions(statements, config2);
8124
8281
  if (config2.coffeeClasses) {
8125
8282
  processCoffeeClasses(statements);
8126
8283
  }
8127
- statements.unshift(...state2.prelude);
8284
+ statements.unshift(...extractPreludeFor(statements));
8128
8285
  if (config2.autoLet) {
8129
8286
  createConstLetDecs(statements, [], "let");
8130
8287
  } else if (config2.autoConst) {
@@ -8505,6 +8662,8 @@ var grammar = {
8505
8662
  ExpressionizedStatement,
8506
8663
  StatementExpression,
8507
8664
  CommaExpression,
8665
+ CommaExpressionSpread,
8666
+ AssignmentExpressionSpread,
8508
8667
  Arguments,
8509
8668
  ImplicitArguments,
8510
8669
  ExplicitArguments,
@@ -8684,6 +8843,7 @@ var grammar = {
8684
8843
  BareNestedBlock,
8685
8844
  BareBlock,
8686
8845
  ThenClause,
8846
+ ThenBlock,
8687
8847
  BracedThenClause,
8688
8848
  BracedOrEmptyBlock,
8689
8849
  NoCommaBracedOrEmptyBlock,
@@ -8793,6 +8953,7 @@ var grammar = {
8793
8953
  PostfixStatement,
8794
8954
  _PostfixStatement,
8795
8955
  Statement,
8956
+ IterationActualStatement,
8796
8957
  ShouldExpressionize,
8797
8958
  NoCommaStatement,
8798
8959
  EmptyStatement,
@@ -9448,130 +9609,132 @@ var $L119 = (0, import_lib2.$L)(";");
9448
9609
  var $L120 = (0, import_lib2.$L)("some");
9449
9610
  var $L121 = (0, import_lib2.$L)("every");
9450
9611
  var $L122 = (0, import_lib2.$L)("count");
9451
- var $L123 = (0, import_lib2.$L)("sum");
9452
- var $L124 = (0, import_lib2.$L)("product");
9453
- var $L125 = (0, import_lib2.$L)("min");
9454
- var $L126 = (0, import_lib2.$L)("max");
9455
- var $L127 = (0, import_lib2.$L)("join");
9456
- var $L128 = (0, import_lib2.$L)("break");
9457
- var $L129 = (0, import_lib2.$L)("continue");
9458
- var $L130 = (0, import_lib2.$L)("debugger");
9459
- var $L131 = (0, import_lib2.$L)("require");
9460
- var $L132 = (0, import_lib2.$L)("with");
9461
- var $L133 = (0, import_lib2.$L)("assert");
9462
- var $L134 = (0, import_lib2.$L)(":=");
9463
- var $L135 = (0, import_lib2.$L)("\u2254");
9464
- var $L136 = (0, import_lib2.$L)(".=");
9465
- var $L137 = (0, import_lib2.$L)("::=");
9466
- var $L138 = (0, import_lib2.$L)("/*");
9467
- var $L139 = (0, import_lib2.$L)("*/");
9468
- var $L140 = (0, import_lib2.$L)("\\");
9469
- var $L141 = (0, import_lib2.$L)(")");
9470
- var $L142 = (0, import_lib2.$L)("abstract");
9471
- var $L143 = (0, import_lib2.$L)("as");
9472
- var $L144 = (0, import_lib2.$L)("@");
9473
- var $L145 = (0, import_lib2.$L)("@@");
9474
- var $L146 = (0, import_lib2.$L)("async");
9475
- var $L147 = (0, import_lib2.$L)("await");
9476
- var $L148 = (0, import_lib2.$L)("`");
9477
- var $L149 = (0, import_lib2.$L)("by");
9478
- var $L150 = (0, import_lib2.$L)("case");
9479
- var $L151 = (0, import_lib2.$L)("catch");
9480
- var $L152 = (0, import_lib2.$L)("class");
9481
- var $L153 = (0, import_lib2.$L)("#{");
9482
- var $L154 = (0, import_lib2.$L)("comptime");
9483
- var $L155 = (0, import_lib2.$L)("declare");
9484
- var $L156 = (0, import_lib2.$L)("default");
9485
- var $L157 = (0, import_lib2.$L)("delete");
9486
- var $L158 = (0, import_lib2.$L)("do");
9487
- var $L159 = (0, import_lib2.$L)("..");
9488
- var $L160 = (0, import_lib2.$L)("\u2025");
9489
- var $L161 = (0, import_lib2.$L)("...");
9490
- var $L162 = (0, import_lib2.$L)("\u2026");
9491
- var $L163 = (0, import_lib2.$L)("::");
9492
- var $L164 = (0, import_lib2.$L)('"');
9493
- var $L165 = (0, import_lib2.$L)("each");
9494
- var $L166 = (0, import_lib2.$L)("else");
9495
- var $L167 = (0, import_lib2.$L)("!");
9496
- var $L168 = (0, import_lib2.$L)("export");
9497
- var $L169 = (0, import_lib2.$L)("extends");
9498
- var $L170 = (0, import_lib2.$L)("finally");
9499
- var $L171 = (0, import_lib2.$L)("for");
9500
- var $L172 = (0, import_lib2.$L)("from");
9501
- var $L173 = (0, import_lib2.$L)("function");
9502
- var $L174 = (0, import_lib2.$L)("get");
9503
- var $L175 = (0, import_lib2.$L)("set");
9504
- var $L176 = (0, import_lib2.$L)("#");
9505
- var $L177 = (0, import_lib2.$L)("if");
9506
- var $L178 = (0, import_lib2.$L)("in");
9507
- var $L179 = (0, import_lib2.$L)("infer");
9508
- var $L180 = (0, import_lib2.$L)("let");
9509
- var $L181 = (0, import_lib2.$L)("const");
9510
- var $L182 = (0, import_lib2.$L)("is");
9511
- var $L183 = (0, import_lib2.$L)("var");
9512
- var $L184 = (0, import_lib2.$L)("like");
9513
- var $L185 = (0, import_lib2.$L)("loop");
9514
- var $L186 = (0, import_lib2.$L)("new");
9515
- var $L187 = (0, import_lib2.$L)("not");
9516
- var $L188 = (0, import_lib2.$L)("of");
9517
- var $L189 = (0, import_lib2.$L)("[");
9518
- var $L190 = (0, import_lib2.$L)("operator");
9519
- var $L191 = (0, import_lib2.$L)("override");
9520
- var $L192 = (0, import_lib2.$L)("own");
9521
- var $L193 = (0, import_lib2.$L)("public");
9522
- var $L194 = (0, import_lib2.$L)("private");
9523
- var $L195 = (0, import_lib2.$L)("protected");
9524
- var $L196 = (0, import_lib2.$L)("||>");
9525
- var $L197 = (0, import_lib2.$L)("|\u25B7");
9526
- var $L198 = (0, import_lib2.$L)("|>=");
9527
- var $L199 = (0, import_lib2.$L)("\u25B7=");
9528
- var $L200 = (0, import_lib2.$L)("|>");
9529
- var $L201 = (0, import_lib2.$L)("\u25B7");
9530
- var $L202 = (0, import_lib2.$L)("readonly");
9531
- var $L203 = (0, import_lib2.$L)("return");
9532
- var $L204 = (0, import_lib2.$L)("satisfies");
9533
- var $L205 = (0, import_lib2.$L)("'");
9534
- var $L206 = (0, import_lib2.$L)("static");
9535
- var $L207 = (0, import_lib2.$L)("${");
9536
- var $L208 = (0, import_lib2.$L)("super");
9537
- var $L209 = (0, import_lib2.$L)("switch");
9538
- var $L210 = (0, import_lib2.$L)("target");
9539
- var $L211 = (0, import_lib2.$L)("then");
9540
- var $L212 = (0, import_lib2.$L)("this");
9541
- var $L213 = (0, import_lib2.$L)("throw");
9542
- var $L214 = (0, import_lib2.$L)('"""');
9543
- var $L215 = (0, import_lib2.$L)("'''");
9544
- var $L216 = (0, import_lib2.$L)("///");
9545
- var $L217 = (0, import_lib2.$L)("```");
9546
- var $L218 = (0, import_lib2.$L)("try");
9547
- var $L219 = (0, import_lib2.$L)("typeof");
9548
- var $L220 = (0, import_lib2.$L)("undefined");
9549
- var $L221 = (0, import_lib2.$L)("unless");
9550
- var $L222 = (0, import_lib2.$L)("until");
9551
- var $L223 = (0, import_lib2.$L)("using");
9552
- var $L224 = (0, import_lib2.$L)("void");
9553
- var $L225 = (0, import_lib2.$L)("when");
9554
- var $L226 = (0, import_lib2.$L)("while");
9555
- var $L227 = (0, import_lib2.$L)("yield");
9556
- var $L228 = (0, import_lib2.$L)("/>");
9557
- var $L229 = (0, import_lib2.$L)("</");
9558
- var $L230 = (0, import_lib2.$L)("<>");
9559
- var $L231 = (0, import_lib2.$L)("</>");
9560
- var $L232 = (0, import_lib2.$L)("<!--");
9561
- var $L233 = (0, import_lib2.$L)("-->");
9562
- var $L234 = (0, import_lib2.$L)("type");
9563
- var $L235 = (0, import_lib2.$L)("enum");
9564
- var $L236 = (0, import_lib2.$L)("interface");
9565
- var $L237 = (0, import_lib2.$L)("global");
9566
- var $L238 = (0, import_lib2.$L)("module");
9567
- var $L239 = (0, import_lib2.$L)("namespace");
9568
- var $L240 = (0, import_lib2.$L)("asserts");
9569
- var $L241 = (0, import_lib2.$L)("keyof");
9570
- var $L242 = (0, import_lib2.$L)("???");
9571
- var $L243 = (0, import_lib2.$L)("unique");
9572
- var $L244 = (0, import_lib2.$L)("symbol");
9573
- var $L245 = (0, import_lib2.$L)("[]");
9574
- var $L246 = (0, import_lib2.$L)("civet");
9612
+ var $L123 = (0, import_lib2.$L)("first");
9613
+ var $L124 = (0, import_lib2.$L)("sum");
9614
+ var $L125 = (0, import_lib2.$L)("product");
9615
+ var $L126 = (0, import_lib2.$L)("min");
9616
+ var $L127 = (0, import_lib2.$L)("max");
9617
+ var $L128 = (0, import_lib2.$L)("join");
9618
+ var $L129 = (0, import_lib2.$L)("concat");
9619
+ var $L130 = (0, import_lib2.$L)("break");
9620
+ var $L131 = (0, import_lib2.$L)("continue");
9621
+ var $L132 = (0, import_lib2.$L)("debugger");
9622
+ var $L133 = (0, import_lib2.$L)("require");
9623
+ var $L134 = (0, import_lib2.$L)("with");
9624
+ var $L135 = (0, import_lib2.$L)("assert");
9625
+ var $L136 = (0, import_lib2.$L)(":=");
9626
+ var $L137 = (0, import_lib2.$L)("\u2254");
9627
+ var $L138 = (0, import_lib2.$L)(".=");
9628
+ var $L139 = (0, import_lib2.$L)("::=");
9629
+ var $L140 = (0, import_lib2.$L)("/*");
9630
+ var $L141 = (0, import_lib2.$L)("*/");
9631
+ var $L142 = (0, import_lib2.$L)("\\");
9632
+ var $L143 = (0, import_lib2.$L)(")");
9633
+ var $L144 = (0, import_lib2.$L)("abstract");
9634
+ var $L145 = (0, import_lib2.$L)("as");
9635
+ var $L146 = (0, import_lib2.$L)("@");
9636
+ var $L147 = (0, import_lib2.$L)("@@");
9637
+ var $L148 = (0, import_lib2.$L)("async");
9638
+ var $L149 = (0, import_lib2.$L)("await");
9639
+ var $L150 = (0, import_lib2.$L)("`");
9640
+ var $L151 = (0, import_lib2.$L)("by");
9641
+ var $L152 = (0, import_lib2.$L)("case");
9642
+ var $L153 = (0, import_lib2.$L)("catch");
9643
+ var $L154 = (0, import_lib2.$L)("class");
9644
+ var $L155 = (0, import_lib2.$L)("#{");
9645
+ var $L156 = (0, import_lib2.$L)("comptime");
9646
+ var $L157 = (0, import_lib2.$L)("declare");
9647
+ var $L158 = (0, import_lib2.$L)("default");
9648
+ var $L159 = (0, import_lib2.$L)("delete");
9649
+ var $L160 = (0, import_lib2.$L)("do");
9650
+ var $L161 = (0, import_lib2.$L)("..");
9651
+ var $L162 = (0, import_lib2.$L)("\u2025");
9652
+ var $L163 = (0, import_lib2.$L)("...");
9653
+ var $L164 = (0, import_lib2.$L)("\u2026");
9654
+ var $L165 = (0, import_lib2.$L)("::");
9655
+ var $L166 = (0, import_lib2.$L)('"');
9656
+ var $L167 = (0, import_lib2.$L)("each");
9657
+ var $L168 = (0, import_lib2.$L)("else");
9658
+ var $L169 = (0, import_lib2.$L)("!");
9659
+ var $L170 = (0, import_lib2.$L)("export");
9660
+ var $L171 = (0, import_lib2.$L)("extends");
9661
+ var $L172 = (0, import_lib2.$L)("finally");
9662
+ var $L173 = (0, import_lib2.$L)("for");
9663
+ var $L174 = (0, import_lib2.$L)("from");
9664
+ var $L175 = (0, import_lib2.$L)("function");
9665
+ var $L176 = (0, import_lib2.$L)("get");
9666
+ var $L177 = (0, import_lib2.$L)("set");
9667
+ var $L178 = (0, import_lib2.$L)("#");
9668
+ var $L179 = (0, import_lib2.$L)("if");
9669
+ var $L180 = (0, import_lib2.$L)("in");
9670
+ var $L181 = (0, import_lib2.$L)("infer");
9671
+ var $L182 = (0, import_lib2.$L)("let");
9672
+ var $L183 = (0, import_lib2.$L)("const");
9673
+ var $L184 = (0, import_lib2.$L)("is");
9674
+ var $L185 = (0, import_lib2.$L)("var");
9675
+ var $L186 = (0, import_lib2.$L)("like");
9676
+ var $L187 = (0, import_lib2.$L)("loop");
9677
+ var $L188 = (0, import_lib2.$L)("new");
9678
+ var $L189 = (0, import_lib2.$L)("not");
9679
+ var $L190 = (0, import_lib2.$L)("of");
9680
+ var $L191 = (0, import_lib2.$L)("[");
9681
+ var $L192 = (0, import_lib2.$L)("operator");
9682
+ var $L193 = (0, import_lib2.$L)("override");
9683
+ var $L194 = (0, import_lib2.$L)("own");
9684
+ var $L195 = (0, import_lib2.$L)("public");
9685
+ var $L196 = (0, import_lib2.$L)("private");
9686
+ var $L197 = (0, import_lib2.$L)("protected");
9687
+ var $L198 = (0, import_lib2.$L)("||>");
9688
+ var $L199 = (0, import_lib2.$L)("|\u25B7");
9689
+ var $L200 = (0, import_lib2.$L)("|>=");
9690
+ var $L201 = (0, import_lib2.$L)("\u25B7=");
9691
+ var $L202 = (0, import_lib2.$L)("|>");
9692
+ var $L203 = (0, import_lib2.$L)("\u25B7");
9693
+ var $L204 = (0, import_lib2.$L)("readonly");
9694
+ var $L205 = (0, import_lib2.$L)("return");
9695
+ var $L206 = (0, import_lib2.$L)("satisfies");
9696
+ var $L207 = (0, import_lib2.$L)("'");
9697
+ var $L208 = (0, import_lib2.$L)("static");
9698
+ var $L209 = (0, import_lib2.$L)("${");
9699
+ var $L210 = (0, import_lib2.$L)("super");
9700
+ var $L211 = (0, import_lib2.$L)("switch");
9701
+ var $L212 = (0, import_lib2.$L)("target");
9702
+ var $L213 = (0, import_lib2.$L)("then");
9703
+ var $L214 = (0, import_lib2.$L)("this");
9704
+ var $L215 = (0, import_lib2.$L)("throw");
9705
+ var $L216 = (0, import_lib2.$L)('"""');
9706
+ var $L217 = (0, import_lib2.$L)("'''");
9707
+ var $L218 = (0, import_lib2.$L)("///");
9708
+ var $L219 = (0, import_lib2.$L)("```");
9709
+ var $L220 = (0, import_lib2.$L)("try");
9710
+ var $L221 = (0, import_lib2.$L)("typeof");
9711
+ var $L222 = (0, import_lib2.$L)("undefined");
9712
+ var $L223 = (0, import_lib2.$L)("unless");
9713
+ var $L224 = (0, import_lib2.$L)("until");
9714
+ var $L225 = (0, import_lib2.$L)("using");
9715
+ var $L226 = (0, import_lib2.$L)("void");
9716
+ var $L227 = (0, import_lib2.$L)("when");
9717
+ var $L228 = (0, import_lib2.$L)("while");
9718
+ var $L229 = (0, import_lib2.$L)("yield");
9719
+ var $L230 = (0, import_lib2.$L)("/>");
9720
+ var $L231 = (0, import_lib2.$L)("</");
9721
+ var $L232 = (0, import_lib2.$L)("<>");
9722
+ var $L233 = (0, import_lib2.$L)("</>");
9723
+ var $L234 = (0, import_lib2.$L)("<!--");
9724
+ var $L235 = (0, import_lib2.$L)("-->");
9725
+ var $L236 = (0, import_lib2.$L)("type");
9726
+ var $L237 = (0, import_lib2.$L)("enum");
9727
+ var $L238 = (0, import_lib2.$L)("interface");
9728
+ var $L239 = (0, import_lib2.$L)("global");
9729
+ var $L240 = (0, import_lib2.$L)("module");
9730
+ var $L241 = (0, import_lib2.$L)("namespace");
9731
+ var $L242 = (0, import_lib2.$L)("asserts");
9732
+ var $L243 = (0, import_lib2.$L)("keyof");
9733
+ var $L244 = (0, import_lib2.$L)("???");
9734
+ var $L245 = (0, import_lib2.$L)("unique");
9735
+ var $L246 = (0, import_lib2.$L)("symbol");
9736
+ var $L247 = (0, import_lib2.$L)("[]");
9737
+ var $L248 = (0, import_lib2.$L)("civet");
9575
9738
  var $R0 = (0, import_lib2.$R)(new RegExp("(?=async|debugger|if|unless|comptime|do|for|loop|until|while|switch|throw|try)", "suy"));
9576
9739
  var $R1 = (0, import_lib2.$R)(new RegExp("&(?=\\s)", "suy"));
9577
9740
  var $R2 = (0, import_lib2.$R)(new RegExp("(as|of|by|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
@@ -9687,8 +9850,7 @@ var Program$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Reset, Init, (0, import
9687
9850
  expressions: statements,
9688
9851
  children: [reset, init, ws1, statements, ws2],
9689
9852
  bare: true,
9690
- root: true,
9691
- topLevelAwait: hasAwait(statements)
9853
+ root: true
9692
9854
  };
9693
9855
  processProgram(program);
9694
9856
  return program;
@@ -9815,6 +9977,71 @@ var CommaExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(AssignmentExpre
9815
9977
  function CommaExpression(ctx, state2) {
9816
9978
  return (0, import_lib2.$EVENT)(ctx, state2, "CommaExpression", CommaExpression$0);
9817
9979
  }
9980
+ 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) {
9981
+ var ws = $1;
9982
+ var ws2 = $3;
9983
+ var iteration = $4;
9984
+ if (iteration.subtype === "do" || iteration.subtype === "comptime") return $skip;
9985
+ if (ws2) {
9986
+ if (ws) {
9987
+ ws = [ws, ws2];
9988
+ } else {
9989
+ ws = ws2;
9990
+ }
9991
+ }
9992
+ iteration = { ...iteration, resultsParent: true };
9993
+ return prepend(ws, iteration);
9994
+ });
9995
+ var 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) {
9996
+ if ($2.length == 0) return $1;
9997
+ return $0;
9998
+ });
9999
+ var CommaExpressionSpread$$ = [CommaExpressionSpread$0, CommaExpressionSpread$1];
10000
+ function CommaExpressionSpread(ctx, state2) {
10001
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "CommaExpressionSpread", CommaExpressionSpread$$);
10002
+ }
10003
+ var AssignmentExpressionSpread$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
10004
+ var expression = $3;
10005
+ return {
10006
+ type: "SpreadElement",
10007
+ children: $0,
10008
+ expression,
10009
+ names: expression.names
10010
+ };
10011
+ });
10012
+ var 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) {
10013
+ var expression = $1;
10014
+ if (!$2) return $1;
10015
+ return {
10016
+ type: "SpreadElement",
10017
+ children: [...$2, $1],
10018
+ expression,
10019
+ names: expression.names
10020
+ };
10021
+ });
10022
+ var AssignmentExpressionSpread$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), DotDotDot, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
10023
+ var expression = $3;
10024
+ return {
10025
+ type: "SpreadElement",
10026
+ children: $0,
10027
+ expression,
10028
+ names: expression.names
10029
+ };
10030
+ });
10031
+ var 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) {
10032
+ var expression = $1;
10033
+ if (!$2) return $1;
10034
+ return {
10035
+ type: "SpreadElement",
10036
+ children: [...$2, $1],
10037
+ expression,
10038
+ names: expression.names
10039
+ };
10040
+ });
10041
+ var AssignmentExpressionSpread$$ = [AssignmentExpressionSpread$0, AssignmentExpressionSpread$1, AssignmentExpressionSpread$2, AssignmentExpressionSpread$3];
10042
+ function AssignmentExpressionSpread(ctx, state2) {
10043
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "AssignmentExpressionSpread", AssignmentExpressionSpread$$);
10044
+ }
9818
10045
  var Arguments$0 = ExplicitArguments;
9819
10046
  var Arguments$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(ForbidTrailingMemberProperty, (0, import_lib2.$E)(ImplicitArguments), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
9820
10047
  var args = $2;
@@ -11996,29 +12223,71 @@ function NestedBindingPropertyList(ctx, state2) {
11996
12223
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedBindingPropertyList", NestedBindingPropertyList$0);
11997
12224
  }
11998
12225
  var BindingProperty$0 = BindingRestProperty;
11999
- var 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) {
12226
+ var BindingProperty$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), PropertyName, (0, import_lib2.$E)(Caret), (0, import_lib2.$E)(_), Colon, (0, import_lib2.$E)(_), (0, import_lib2.$C)(BindingIdentifier, BindingPattern), (0, import_lib2.$E)(BindingTypeSuffix), (0, import_lib2.$E)(Initializer)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12227
+ var ws1 = $1;
12000
12228
  var name = $2;
12001
- var value = $6;
12002
- var typeSuffix = $7;
12003
- var initializer = $8;
12229
+ var bind = $3;
12230
+ var ws2 = $4;
12231
+ var colon = $5;
12232
+ var ws3 = $6;
12233
+ var value = $7;
12234
+ var typeSuffix = $8;
12235
+ var initializer = $9;
12004
12236
  return {
12005
12237
  type: "BindingProperty",
12006
- children: [$1, name, $3, $4, $5, value, initializer],
12238
+ children: [ws1, name, ws2, colon, ws3, value, initializer],
12007
12239
  // omit typeSuffix
12008
12240
  name,
12009
12241
  value,
12010
12242
  typeSuffix,
12011
12243
  initializer,
12012
- names: value.names
12244
+ names: value.names,
12245
+ bind: !!bind
12013
12246
  };
12014
12247
  });
12015
- var 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) {
12248
+ var 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) {
12016
12249
  var ws = $1;
12017
12250
  var pin = $2;
12018
12251
  var binding = $3;
12019
12252
  var typeSuffix = $4;
12020
12253
  var initializer = $5;
12021
- let children = [ws, binding, initializer];
12254
+ const children = [ws, binding];
12255
+ if (binding.type === "AtBinding") {
12256
+ children.push({
12257
+ type: "Error",
12258
+ message: "Pinned properties do not yet work with @binding"
12259
+ });
12260
+ }
12261
+ if (typeSuffix) {
12262
+ children.push({
12263
+ type: "Error",
12264
+ message: "Pinned properties cannot have type annotations"
12265
+ });
12266
+ }
12267
+ if (initializer) {
12268
+ children.push({
12269
+ type: "Error",
12270
+ message: "Pinned properties cannot have initializers"
12271
+ });
12272
+ }
12273
+ return {
12274
+ type: "PinProperty",
12275
+ children,
12276
+ name: binding,
12277
+ value: {
12278
+ type: "PinPattern",
12279
+ children: [binding],
12280
+ expression: binding
12281
+ }
12282
+ };
12283
+ });
12284
+ var 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) {
12285
+ var ws = $1;
12286
+ var binding = $2;
12287
+ var bind = $3;
12288
+ var typeSuffix = $4;
12289
+ var initializer = $5;
12290
+ const children = [ws, binding, initializer];
12022
12291
  if (binding.type === "AtBinding") {
12023
12292
  return {
12024
12293
  type: "AtBindingProperty",
@@ -12030,31 +12299,6 @@ var BindingProperty$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2
12030
12299
  names: []
12031
12300
  };
12032
12301
  }
12033
- if (pin) {
12034
- children = [ws, binding];
12035
- if (typeSuffix) {
12036
- children.push({
12037
- type: "Error",
12038
- message: "Pinned properties cannot have type annotations"
12039
- });
12040
- }
12041
- if (initializer) {
12042
- children.push({
12043
- type: "Error",
12044
- message: "Pinned properties cannot have initializers"
12045
- });
12046
- }
12047
- return {
12048
- type: "PinProperty",
12049
- children,
12050
- name: binding,
12051
- value: {
12052
- type: "PinPattern",
12053
- children: [binding],
12054
- expression: binding
12055
- }
12056
- };
12057
- }
12058
12302
  return {
12059
12303
  type: "BindingProperty",
12060
12304
  children,
@@ -12063,10 +12307,11 @@ var BindingProperty$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2
12063
12307
  typeSuffix,
12064
12308
  initializer,
12065
12309
  names: binding.names,
12066
- identifier: binding
12310
+ identifier: binding,
12311
+ bind: !!bind
12067
12312
  };
12068
12313
  });
12069
- var BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2];
12314
+ var BindingProperty$$ = [BindingProperty$0, BindingProperty$1, BindingProperty$2, BindingProperty$3];
12070
12315
  function BindingProperty(ctx, state2) {
12071
12316
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BindingProperty", BindingProperty$$);
12072
12317
  }
@@ -12632,12 +12877,21 @@ var BareBlock$$ = [BareBlock$0, BareBlock$1, BareBlock$2, BareBlock$3, BareBlock
12632
12877
  function BareBlock(ctx, state2) {
12633
12878
  return (0, import_lib2.$EVENT_C)(ctx, state2, "BareBlock", BareBlock$$);
12634
12879
  }
12635
- var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, SingleLineStatements), function(value) {
12880
+ var ThenClause$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Then, ThenBlock), function(value) {
12636
12881
  return value[1];
12637
12882
  });
12638
12883
  function ThenClause(ctx, state2) {
12639
12884
  return (0, import_lib2.$EVENT)(ctx, state2, "ThenClause", ThenClause$0);
12640
12885
  }
12886
+ var ThenBlock$0 = (0, import_lib2.$T)((0, import_lib2.$S)(NoBlock, EmptyBlock), function(value) {
12887
+ return value[1];
12888
+ });
12889
+ var ThenBlock$1 = ImplicitNestedBlock;
12890
+ var ThenBlock$2 = SingleLineStatements;
12891
+ var ThenBlock$$ = [ThenBlock$0, ThenBlock$1, ThenBlock$2];
12892
+ function ThenBlock(ctx, state2) {
12893
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ThenBlock", ThenBlock$$);
12894
+ }
12641
12895
  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) {
12642
12896
  var open = $2;
12643
12897
  var exp = $3;
@@ -14649,11 +14903,7 @@ var Statement$1 = VariableStatement;
14649
14903
  var Statement$2 = (0, import_lib2.$T)((0, import_lib2.$S)(IfStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
14650
14904
  return value[0];
14651
14905
  });
14652
- var Statement$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
14653
- if ($1.generator) return $skip;
14654
- if ($1.reduction) return $skip;
14655
- return $1;
14656
- });
14906
+ var Statement$3 = IterationActualStatement;
14657
14907
  var Statement$4 = (0, import_lib2.$T)((0, import_lib2.$S)(SwitchStatement, (0, import_lib2.$N)(ShouldExpressionize)), function(value) {
14658
14908
  return value[0];
14659
14909
  });
@@ -14669,6 +14919,14 @@ var Statement$$ = [Statement$0, Statement$1, Statement$2, Statement$3, Statement
14669
14919
  function Statement(ctx, state2) {
14670
14920
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Statement", Statement$$);
14671
14921
  }
14922
+ var IterationActualStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(IterationStatement, (0, import_lib2.$N)(ShouldExpressionize)), function($skip, $loc, $0, $1, $2) {
14923
+ if ($1.generator) return $skip;
14924
+ if ($1.reduction) return $skip;
14925
+ return $1;
14926
+ });
14927
+ function IterationActualStatement(ctx, state2) {
14928
+ return (0, import_lib2.$EVENT)(ctx, state2, "IterationActualStatement", IterationActualStatement$0);
14929
+ }
14672
14930
  var ShouldExpressionize$0 = AllowedTrailingCallExpressions;
14673
14931
  var ShouldExpressionize$1 = (0, import_lib2.$S)(NotDedented, Pipe);
14674
14932
  var ShouldExpressionize$2 = BinaryOpRHS;
@@ -14771,12 +15029,12 @@ var LabelledItem$$ = [LabelledItem$0, LabelledItem$1];
14771
15029
  function LabelledItem(ctx, state2) {
14772
15030
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LabelledItem", LabelledItem$$);
14773
15031
  }
14774
- 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) {
15032
+ 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) {
14775
15033
  var kind = $1;
14776
15034
  var ws = $2;
14777
15035
  var condition = $3;
14778
- var block = $5;
14779
- var e = $6;
15036
+ var block = $4;
15037
+ var e = $5;
14780
15038
  if (kind.negated) {
14781
15039
  kind = { ...kind, token: "if" };
14782
15040
  condition = negateCondition(condition);
@@ -15020,15 +15278,18 @@ function ForStatement(ctx, state2) {
15020
15278
  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) {
15021
15279
  var generator = $2;
15022
15280
  var c = $4;
15023
- const { children, declaration } = c;
15281
+ let { children, reduction } = c;
15282
+ if (generator && reduction) {
15283
+ children = [{
15284
+ type: "Error",
15285
+ message: `Cannot use reduction (${reduction.subtype}) with generators`
15286
+ }, ...children];
15287
+ }
15024
15288
  return {
15289
+ ...c,
15025
15290
  type: "ForStatement",
15026
15291
  children: [$1, ...$3, ...children],
15027
- declaration,
15028
15292
  block: null,
15029
- blockPrefix: c.blockPrefix,
15030
- hoistDec: c.hoistDec,
15031
- reduction: c.reduction,
15032
15293
  generator
15033
15294
  };
15034
15295
  });
@@ -15074,7 +15335,7 @@ var ForStatementControlWithReduction$$ = [ForStatementControlWithReduction$0, Fo
15074
15335
  function ForStatementControlWithReduction(ctx, state2) {
15075
15336
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForStatementControlWithReduction", ForStatementControlWithReduction$$);
15076
15337
  }
15077
- 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) {
15338
+ 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) {
15078
15339
  var subtype = $1;
15079
15340
  var ws = $3;
15080
15341
  return {
@@ -15923,7 +16184,7 @@ var RestoreAll$0 = (0, import_lib2.$S)(RestoreTrailingMemberProperty, RestoreBra
15923
16184
  function RestoreAll(ctx, state2) {
15924
16185
  return (0, import_lib2.$EVENT)(ctx, state2, "RestoreAll", RestoreAll$0);
15925
16186
  }
15926
- var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpression), function($skip, $loc, $0, $1) {
16187
+ var CommaExpressionStatement$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CommaExpressionSpread), function($skip, $loc, $0, $1) {
15927
16188
  return makeExpressionStatement($1);
15928
16189
  });
15929
16190
  function CommaExpressionStatement(ctx, state2) {
@@ -15997,19 +16258,19 @@ var ThrowStatement$0 = (0, import_lib2.$T)((0, import_lib2.$S)(Throw, MaybeParen
15997
16258
  function ThrowStatement(ctx, state2) {
15998
16259
  return (0, import_lib2.$EVENT)(ctx, state2, "ThrowStatement", ThrowStatement$0);
15999
16260
  }
16000
- 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) {
16261
+ 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) {
16001
16262
  return { $loc, token: $1 };
16002
16263
  });
16003
16264
  function Break(ctx, state2) {
16004
16265
  return (0, import_lib2.$EVENT)(ctx, state2, "Break", Break$0);
16005
16266
  }
16006
- 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) {
16267
+ 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) {
16007
16268
  return { $loc, token: $1 };
16008
16269
  });
16009
16270
  function Continue(ctx, state2) {
16010
16271
  return (0, import_lib2.$EVENT)(ctx, state2, "Continue", Continue$0);
16011
16272
  }
16012
- 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) {
16273
+ 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) {
16013
16274
  return { $loc, token: $1 };
16014
16275
  });
16015
16276
  function Debugger(ctx, state2) {
@@ -16086,7 +16347,7 @@ var MaybeParenNestedExpression$$ = [MaybeParenNestedExpression$0, MaybeParenNest
16086
16347
  function MaybeParenNestedExpression(ctx, state2) {
16087
16348
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeParenNestedExpression", MaybeParenNestedExpression$$);
16088
16349
  }
16089
- 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) {
16350
+ 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) {
16090
16351
  const imp = [
16091
16352
  { ...$1, ts: true },
16092
16353
  { ...$1, token: "const", js: true }
@@ -16274,7 +16535,7 @@ var ImpliedFrom$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'ImpliedF
16274
16535
  function ImpliedFrom(ctx, state2) {
16275
16536
  return (0, import_lib2.$EVENT)(ctx, state2, "ImpliedFrom", ImpliedFrom$0);
16276
16537
  }
16277
- 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) {
16538
+ 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) {
16278
16539
  var keyword = $2;
16279
16540
  var object = $5;
16280
16541
  return {
@@ -16595,19 +16856,19 @@ var LexicalDeclaration$$ = [LexicalDeclaration$0, LexicalDeclaration$1];
16595
16856
  function LexicalDeclaration(ctx, state2) {
16596
16857
  return (0, import_lib2.$EVENT_C)(ctx, state2, "LexicalDeclaration", LexicalDeclaration$$);
16597
16858
  }
16598
- 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) {
16859
+ 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) {
16599
16860
  return { $loc, token: "=", decl: "const " };
16600
16861
  });
16601
16862
  function ConstAssignment(ctx, state2) {
16602
16863
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstAssignment", ConstAssignment$0);
16603
16864
  }
16604
- var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L136, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
16865
+ var LetAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L138, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
16605
16866
  return { $loc, token: "=", decl: "let " };
16606
16867
  });
16607
16868
  function LetAssignment(ctx, state2) {
16608
16869
  return (0, import_lib2.$EVENT)(ctx, state2, "LetAssignment", LetAssignment$0);
16609
16870
  }
16610
- var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L137, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
16871
+ var TypeAssignment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L139, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
16611
16872
  return { $loc, token: "=" };
16612
16873
  });
16613
16874
  function TypeAssignment(ctx, state2) {
@@ -17051,7 +17312,7 @@ var MultiLineComment$$ = [MultiLineComment$0, MultiLineComment$1];
17051
17312
  function MultiLineComment(ctx, state2) {
17052
17313
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
17053
17314
  }
17054
- 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) {
17315
+ 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) {
17055
17316
  return { type: "Comment", $loc, token: $1 };
17056
17317
  });
17057
17318
  function JSMultiLineComment(ctx, state2) {
@@ -17097,7 +17358,7 @@ function _(ctx, state2) {
17097
17358
  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) {
17098
17359
  return { $loc, token: $0 };
17099
17360
  });
17100
- var NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L140, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
17361
+ var NonNewlineWhitespace$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L142, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
17101
17362
  return " ";
17102
17363
  });
17103
17364
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
@@ -17148,7 +17409,7 @@ var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, Statemen
17148
17409
  function StatementDelimiter(ctx, state2) {
17149
17410
  return (0, import_lib2.$EVENT_C)(ctx, state2, "StatementDelimiter", StatementDelimiter$$);
17150
17411
  }
17151
- 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 "]"'))));
17412
+ 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 "]"'))));
17152
17413
  function ClosingDelimiter(ctx, state2) {
17153
17414
  return (0, import_lib2.$EVENT)(ctx, state2, "ClosingDelimiter", ClosingDelimiter$0);
17154
17415
  }
@@ -17171,7 +17432,7 @@ var Loc$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Loc ""'), functi
17171
17432
  function Loc(ctx, state2) {
17172
17433
  return (0, import_lib2.$EVENT)(ctx, state2, "Loc", Loc$0);
17173
17434
  }
17174
- 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) {
17435
+ 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) {
17175
17436
  return { $loc, token: $1, ts: true };
17176
17437
  });
17177
17438
  function Abstract(ctx, state2) {
@@ -17183,43 +17444,43 @@ var Ampersand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L117, 'Ampersan
17183
17444
  function Ampersand(ctx, state2) {
17184
17445
  return (0, import_lib2.$EVENT)(ctx, state2, "Ampersand", Ampersand$0);
17185
17446
  }
17186
- 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) {
17447
+ 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) {
17187
17448
  return { $loc, token: $1 };
17188
17449
  });
17189
17450
  function As(ctx, state2) {
17190
17451
  return (0, import_lib2.$EVENT)(ctx, state2, "As", As$0);
17191
17452
  }
17192
- var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'At "@"'), function($skip, $loc, $0, $1) {
17453
+ var At$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'At "@"'), function($skip, $loc, $0, $1) {
17193
17454
  return { $loc, token: $1 };
17194
17455
  });
17195
17456
  function At(ctx, state2) {
17196
17457
  return (0, import_lib2.$EVENT)(ctx, state2, "At", At$0);
17197
17458
  }
17198
- var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L145, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
17459
+ var AtAt$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L147, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
17199
17460
  return { $loc, token: "@" };
17200
17461
  });
17201
17462
  function AtAt(ctx, state2) {
17202
17463
  return (0, import_lib2.$EVENT)(ctx, state2, "AtAt", AtAt$0);
17203
17464
  }
17204
- 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) {
17465
+ 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) {
17205
17466
  return { $loc, token: $1, type: "Async" };
17206
17467
  });
17207
17468
  function Async(ctx, state2) {
17208
17469
  return (0, import_lib2.$EVENT)(ctx, state2, "Async", Async$0);
17209
17470
  }
17210
- 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) {
17471
+ 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) {
17211
17472
  return { $loc, token: $1, type: "Await" };
17212
17473
  });
17213
17474
  function Await(ctx, state2) {
17214
17475
  return (0, import_lib2.$EVENT)(ctx, state2, "Await", Await$0);
17215
17476
  }
17216
- var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L148, 'Backtick "`"'), function($skip, $loc, $0, $1) {
17477
+ var Backtick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L150, 'Backtick "`"'), function($skip, $loc, $0, $1) {
17217
17478
  return { $loc, token: $1 };
17218
17479
  });
17219
17480
  function Backtick(ctx, state2) {
17220
17481
  return (0, import_lib2.$EVENT)(ctx, state2, "Backtick", Backtick$0);
17221
17482
  }
17222
- 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) {
17483
+ 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) {
17223
17484
  return { $loc, token: $1 };
17224
17485
  });
17225
17486
  function By(ctx, state2) {
@@ -17231,19 +17492,19 @@ var Caret$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L22, 'Caret "^"'),
17231
17492
  function Caret(ctx, state2) {
17232
17493
  return (0, import_lib2.$EVENT)(ctx, state2, "Caret", Caret$0);
17233
17494
  }
17234
- 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) {
17495
+ 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) {
17235
17496
  return { $loc, token: $1 };
17236
17497
  });
17237
17498
  function Case(ctx, state2) {
17238
17499
  return (0, import_lib2.$EVENT)(ctx, state2, "Case", Case$0);
17239
17500
  }
17240
- 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) {
17501
+ 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) {
17241
17502
  return { $loc, token: $1 };
17242
17503
  });
17243
17504
  function Catch(ctx, state2) {
17244
17505
  return (0, import_lib2.$EVENT)(ctx, state2, "Catch", Catch$0);
17245
17506
  }
17246
- 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) {
17507
+ 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) {
17247
17508
  return { $loc, token: $1 };
17248
17509
  });
17249
17510
  function Class(ctx, state2) {
@@ -17267,13 +17528,13 @@ var CloseBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L46, 'CloseB
17267
17528
  function CloseBracket(ctx, state2) {
17268
17529
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseBracket", CloseBracket$0);
17269
17530
  }
17270
- var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L141, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
17531
+ var CloseParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L143, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
17271
17532
  return { $loc, token: $1 };
17272
17533
  });
17273
17534
  function CloseParen(ctx, state2) {
17274
17535
  return (0, import_lib2.$EVENT)(ctx, state2, "CloseParen", CloseParen$0);
17275
17536
  }
17276
- var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L153, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
17537
+ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L155, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
17277
17538
  return { $loc, token: "${" };
17278
17539
  });
17279
17540
  function CoffeeSubstitutionStart(ctx, state2) {
@@ -17291,37 +17552,37 @@ var Comma$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L17, 'Comma ","'),
17291
17552
  function Comma(ctx, state2) {
17292
17553
  return (0, import_lib2.$EVENT)(ctx, state2, "Comma", Comma$0);
17293
17554
  }
17294
- 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) {
17555
+ 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) {
17295
17556
  return { $loc, token: $1 };
17296
17557
  });
17297
17558
  function Comptime(ctx, state2) {
17298
17559
  return (0, import_lib2.$EVENT)(ctx, state2, "Comptime", Comptime$0);
17299
17560
  }
17300
- var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L144, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
17561
+ var ConstructorShorthand$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L146, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
17301
17562
  return { $loc, token: "constructor" };
17302
17563
  });
17303
17564
  function ConstructorShorthand(ctx, state2) {
17304
17565
  return (0, import_lib2.$EVENT)(ctx, state2, "ConstructorShorthand", ConstructorShorthand$0);
17305
17566
  }
17306
- 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) {
17567
+ 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) {
17307
17568
  return { $loc, token: $1 };
17308
17569
  });
17309
17570
  function Declare(ctx, state2) {
17310
17571
  return (0, import_lib2.$EVENT)(ctx, state2, "Declare", Declare$0);
17311
17572
  }
17312
- 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) {
17573
+ 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) {
17313
17574
  return { $loc, token: $1 };
17314
17575
  });
17315
17576
  function Default(ctx, state2) {
17316
17577
  return (0, import_lib2.$EVENT)(ctx, state2, "Default", Default$0);
17317
17578
  }
17318
- 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) {
17579
+ 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) {
17319
17580
  return { $loc, token: $1 };
17320
17581
  });
17321
17582
  function Delete(ctx, state2) {
17322
17583
  return (0, import_lib2.$EVENT)(ctx, state2, "Delete", Delete$0);
17323
17584
  }
17324
- 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) {
17585
+ 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) {
17325
17586
  return { $loc, token: $1 };
17326
17587
  });
17327
17588
  function Do(ctx, state2) {
@@ -17341,20 +17602,20 @@ var Dot$$ = [Dot$0, Dot$1];
17341
17602
  function Dot(ctx, state2) {
17342
17603
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Dot", Dot$$);
17343
17604
  }
17344
- 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) {
17605
+ 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) {
17345
17606
  return { $loc, token: $1 };
17346
17607
  });
17347
- var DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L160, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
17608
+ var DotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
17348
17609
  return { $loc, token: ".." };
17349
17610
  });
17350
17611
  var DotDot$$ = [DotDot$0, DotDot$1];
17351
17612
  function DotDot(ctx, state2) {
17352
17613
  return (0, import_lib2.$EVENT_C)(ctx, state2, "DotDot", DotDot$$);
17353
17614
  }
17354
- var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L161, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
17615
+ var DotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
17355
17616
  return { $loc, token: $1 };
17356
17617
  });
17357
- var DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L162, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
17618
+ var DotDotDot$1 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
17358
17619
  return { $loc, token: "..." };
17359
17620
  });
17360
17621
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
@@ -17367,31 +17628,31 @@ var InsertDotDotDot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Inse
17367
17628
  function InsertDotDotDot(ctx, state2) {
17368
17629
  return (0, import_lib2.$EVENT)(ctx, state2, "InsertDotDotDot", InsertDotDotDot$0);
17369
17630
  }
17370
- var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
17631
+ var DoubleColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
17371
17632
  return { $loc, token: $1 };
17372
17633
  });
17373
17634
  function DoubleColon(ctx, state2) {
17374
17635
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColon", DoubleColon$0);
17375
17636
  }
17376
- var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L163, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
17637
+ var DoubleColonAsColon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L165, 'DoubleColonAsColon "::"'), function($skip, $loc, $0, $1) {
17377
17638
  return { $loc, token: ":" };
17378
17639
  });
17379
17640
  function DoubleColonAsColon(ctx, state2) {
17380
17641
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleColonAsColon", DoubleColonAsColon$0);
17381
17642
  }
17382
- var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L164, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
17643
+ var DoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L166, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
17383
17644
  return { $loc, token: $1 };
17384
17645
  });
17385
17646
  function DoubleQuote(ctx, state2) {
17386
17647
  return (0, import_lib2.$EVENT)(ctx, state2, "DoubleQuote", DoubleQuote$0);
17387
17648
  }
17388
- 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) {
17649
+ 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) {
17389
17650
  return { $loc, token: $1 };
17390
17651
  });
17391
17652
  function Each(ctx, state2) {
17392
17653
  return (0, import_lib2.$EVENT)(ctx, state2, "Each", Each$0);
17393
17654
  }
17394
- 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) {
17655
+ 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) {
17395
17656
  return { $loc, token: $1 };
17396
17657
  });
17397
17658
  function Else(ctx, state2) {
@@ -17403,61 +17664,61 @@ var Equals$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L3, 'Equals "="'),
17403
17664
  function Equals(ctx, state2) {
17404
17665
  return (0, import_lib2.$EVENT)(ctx, state2, "Equals", Equals$0);
17405
17666
  }
17406
- var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L167, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
17667
+ var ExclamationPoint$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L169, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
17407
17668
  return { $loc, token: $1 };
17408
17669
  });
17409
17670
  function ExclamationPoint(ctx, state2) {
17410
17671
  return (0, import_lib2.$EVENT)(ctx, state2, "ExclamationPoint", ExclamationPoint$0);
17411
17672
  }
17412
- 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) {
17673
+ 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) {
17413
17674
  return { $loc, token: $1 };
17414
17675
  });
17415
17676
  function Export(ctx, state2) {
17416
17677
  return (0, import_lib2.$EVENT)(ctx, state2, "Export", Export$0);
17417
17678
  }
17418
- 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) {
17679
+ 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) {
17419
17680
  return { $loc, token: $1 };
17420
17681
  });
17421
17682
  function Extends(ctx, state2) {
17422
17683
  return (0, import_lib2.$EVENT)(ctx, state2, "Extends", Extends$0);
17423
17684
  }
17424
- 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) {
17685
+ 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) {
17425
17686
  return { $loc, token: $1 };
17426
17687
  });
17427
17688
  function Finally(ctx, state2) {
17428
17689
  return (0, import_lib2.$EVENT)(ctx, state2, "Finally", Finally$0);
17429
17690
  }
17430
- 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) {
17691
+ 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) {
17431
17692
  return { $loc, token: $1 };
17432
17693
  });
17433
17694
  function For(ctx, state2) {
17434
17695
  return (0, import_lib2.$EVENT)(ctx, state2, "For", For$0);
17435
17696
  }
17436
- 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) {
17697
+ 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) {
17437
17698
  return { $loc, token: $1 };
17438
17699
  });
17439
17700
  function From(ctx, state2) {
17440
17701
  return (0, import_lib2.$EVENT)(ctx, state2, "From", From$0);
17441
17702
  }
17442
- 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) {
17703
+ 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) {
17443
17704
  return { $loc, token: $1 };
17444
17705
  });
17445
17706
  function Function2(ctx, state2) {
17446
17707
  return (0, import_lib2.$EVENT)(ctx, state2, "Function", Function$0);
17447
17708
  }
17448
- 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) {
17709
+ 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) {
17449
17710
  return { $loc, token: $1, type: "GetOrSet" };
17450
17711
  });
17451
17712
  function GetOrSet(ctx, state2) {
17452
17713
  return (0, import_lib2.$EVENT)(ctx, state2, "GetOrSet", GetOrSet$0);
17453
17714
  }
17454
- var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L176, 'Hash "#"'), function($skip, $loc, $0, $1) {
17715
+ var Hash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L178, 'Hash "#"'), function($skip, $loc, $0, $1) {
17455
17716
  return { $loc, token: $1 };
17456
17717
  });
17457
17718
  function Hash(ctx, state2) {
17458
17719
  return (0, import_lib2.$EVENT)(ctx, state2, "Hash", Hash$0);
17459
17720
  }
17460
- 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) {
17721
+ 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) {
17461
17722
  return { $loc, token: $1 };
17462
17723
  });
17463
17724
  function If(ctx, state2) {
@@ -17469,67 +17730,67 @@ var Import$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)
17469
17730
  function Import(ctx, state2) {
17470
17731
  return (0, import_lib2.$EVENT)(ctx, state2, "Import", Import$0);
17471
17732
  }
17472
- 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) {
17733
+ 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) {
17473
17734
  return { $loc, token: $1 };
17474
17735
  });
17475
17736
  function In(ctx, state2) {
17476
17737
  return (0, import_lib2.$EVENT)(ctx, state2, "In", In$0);
17477
17738
  }
17478
- 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) {
17739
+ 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) {
17479
17740
  return { $loc, token: $1 };
17480
17741
  });
17481
17742
  function Infer(ctx, state2) {
17482
17743
  return (0, import_lib2.$EVENT)(ctx, state2, "Infer", Infer$0);
17483
17744
  }
17484
- 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) {
17745
+ 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) {
17485
17746
  return { $loc, token: $1 };
17486
17747
  });
17487
17748
  function LetOrConst(ctx, state2) {
17488
17749
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConst", LetOrConst$0);
17489
17750
  }
17490
- 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) {
17751
+ 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) {
17491
17752
  return { $loc, token: $1 };
17492
17753
  });
17493
17754
  function Const(ctx, state2) {
17494
17755
  return (0, import_lib2.$EVENT)(ctx, state2, "Const", Const$0);
17495
17756
  }
17496
- 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) {
17757
+ 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) {
17497
17758
  return { $loc, token: $1 };
17498
17759
  });
17499
17760
  function Is(ctx, state2) {
17500
17761
  return (0, import_lib2.$EVENT)(ctx, state2, "Is", Is$0);
17501
17762
  }
17502
- 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) {
17763
+ 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) {
17503
17764
  return { $loc, token: $1 };
17504
17765
  });
17505
17766
  function LetOrConstOrVar(ctx, state2) {
17506
17767
  return (0, import_lib2.$EVENT)(ctx, state2, "LetOrConstOrVar", LetOrConstOrVar$0);
17507
17768
  }
17508
- 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) {
17769
+ 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) {
17509
17770
  return { $loc, token: $1 };
17510
17771
  });
17511
17772
  function Like(ctx, state2) {
17512
17773
  return (0, import_lib2.$EVENT)(ctx, state2, "Like", Like$0);
17513
17774
  }
17514
- 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) {
17775
+ 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) {
17515
17776
  return { $loc, token: "while" };
17516
17777
  });
17517
17778
  function Loop(ctx, state2) {
17518
17779
  return (0, import_lib2.$EVENT)(ctx, state2, "Loop", Loop$0);
17519
17780
  }
17520
- 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) {
17781
+ 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) {
17521
17782
  return { $loc, token: $1 };
17522
17783
  });
17523
17784
  function New(ctx, state2) {
17524
17785
  return (0, import_lib2.$EVENT)(ctx, state2, "New", New$0);
17525
17786
  }
17526
- 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) {
17787
+ 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) {
17527
17788
  return { $loc, token: "!" };
17528
17789
  });
17529
17790
  function Not(ctx, state2) {
17530
17791
  return (0, import_lib2.$EVENT)(ctx, state2, "Not", Not$0);
17531
17792
  }
17532
- 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) {
17793
+ 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) {
17533
17794
  return { $loc, token: $1 };
17534
17795
  });
17535
17796
  function Of(ctx, state2) {
@@ -17547,7 +17808,7 @@ var OpenBrace$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L1, 'OpenBrace
17547
17808
  function OpenBrace(ctx, state2) {
17548
17809
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenBrace", OpenBrace$0);
17549
17810
  }
17550
- var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L189, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
17811
+ var OpenBracket$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L191, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
17551
17812
  return { $loc, token: $1 };
17552
17813
  });
17553
17814
  function OpenBracket(ctx, state2) {
@@ -17559,49 +17820,49 @@ var OpenParen$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L4, 'OpenParen
17559
17820
  function OpenParen(ctx, state2) {
17560
17821
  return (0, import_lib2.$EVENT)(ctx, state2, "OpenParen", OpenParen$0);
17561
17822
  }
17562
- 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) {
17823
+ 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) {
17563
17824
  return { $loc, token: $1 };
17564
17825
  });
17565
17826
  function Operator(ctx, state2) {
17566
17827
  return (0, import_lib2.$EVENT)(ctx, state2, "Operator", Operator$0);
17567
17828
  }
17568
- 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) {
17829
+ 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) {
17569
17830
  return { $loc, token: $1, ts: true };
17570
17831
  });
17571
17832
  function Override(ctx, state2) {
17572
17833
  return (0, import_lib2.$EVENT)(ctx, state2, "Override", Override$0);
17573
17834
  }
17574
- 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) {
17835
+ 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) {
17575
17836
  return { $loc, token: $1 };
17576
17837
  });
17577
17838
  function Own(ctx, state2) {
17578
17839
  return (0, import_lib2.$EVENT)(ctx, state2, "Own", Own$0);
17579
17840
  }
17580
- 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) {
17841
+ 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) {
17581
17842
  return { $loc, token: $1 };
17582
17843
  });
17583
17844
  function Public(ctx, state2) {
17584
17845
  return (0, import_lib2.$EVENT)(ctx, state2, "Public", Public$0);
17585
17846
  }
17586
- 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) {
17847
+ 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) {
17587
17848
  return { $loc, token: $1 };
17588
17849
  });
17589
17850
  function Private(ctx, state2) {
17590
17851
  return (0, import_lib2.$EVENT)(ctx, state2, "Private", Private$0);
17591
17852
  }
17592
- 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) {
17853
+ 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) {
17593
17854
  return { $loc, token: $1 };
17594
17855
  });
17595
17856
  function Protected(ctx, state2) {
17596
17857
  return (0, import_lib2.$EVENT)(ctx, state2, "Protected", Protected$0);
17597
17858
  }
17598
- 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) {
17859
+ 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) {
17599
17860
  return { $loc, token: "||>" };
17600
17861
  });
17601
- var Pipe$1 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L198, 'Pipe "|>="'), (0, import_lib2.$EXPECT)($L199, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
17862
+ var 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) {
17602
17863
  return { $loc, token: "|>=" };
17603
17864
  });
17604
- var Pipe$2 = (0, import_lib2.$TV)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L200, 'Pipe "|>"'), (0, import_lib2.$EXPECT)($L201, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
17865
+ var 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) {
17605
17866
  return { $loc, token: "|>" };
17606
17867
  });
17607
17868
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -17614,19 +17875,19 @@ var QuestionMark$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L6, 'Questio
17614
17875
  function QuestionMark(ctx, state2) {
17615
17876
  return (0, import_lib2.$EVENT)(ctx, state2, "QuestionMark", QuestionMark$0);
17616
17877
  }
17617
- 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) {
17878
+ 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) {
17618
17879
  return { $loc, token: $1, ts: true };
17619
17880
  });
17620
17881
  function Readonly(ctx, state2) {
17621
17882
  return (0, import_lib2.$EVENT)(ctx, state2, "Readonly", Readonly$0);
17622
17883
  }
17623
- 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) {
17884
+ 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) {
17624
17885
  return { $loc, token: $1 };
17625
17886
  });
17626
17887
  function Return(ctx, state2) {
17627
17888
  return (0, import_lib2.$EVENT)(ctx, state2, "Return", Return$0);
17628
17889
  }
17629
- 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) {
17890
+ 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) {
17630
17891
  return { $loc, token: $1 };
17631
17892
  });
17632
17893
  function Satisfies(ctx, state2) {
@@ -17638,7 +17899,7 @@ var Semicolon$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L119, 'Semicolo
17638
17899
  function Semicolon(ctx, state2) {
17639
17900
  return (0, import_lib2.$EVENT)(ctx, state2, "Semicolon", Semicolon$0);
17640
17901
  }
17641
- var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L205, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
17902
+ var SingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
17642
17903
  return { $loc, token: $1 };
17643
17904
  });
17644
17905
  function SingleQuote(ctx, state2) {
@@ -17650,149 +17911,149 @@ var Star$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L75, 'Star "*"'), fu
17650
17911
  function Star(ctx, state2) {
17651
17912
  return (0, import_lib2.$EVENT)(ctx, state2, "Star", Star$0);
17652
17913
  }
17653
- 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) {
17914
+ 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) {
17654
17915
  return { $loc, token: $1 };
17655
17916
  });
17656
- var Static$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L144, 'Static "@"'), (0, import_lib2.$N)((0, import_lib2.$C)((0, import_lib2.$EXPECT)($L4, 'Static "("'), (0, import_lib2.$EXPECT)($L144, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
17917
+ var 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) {
17657
17918
  return { $loc, token: "static " };
17658
17919
  });
17659
17920
  var Static$$ = [Static$0, Static$1];
17660
17921
  function Static(ctx, state2) {
17661
17922
  return (0, import_lib2.$EVENT_C)(ctx, state2, "Static", Static$$);
17662
17923
  }
17663
- var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L207, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
17924
+ var SubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L209, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
17664
17925
  return { $loc, token: $1 };
17665
17926
  });
17666
17927
  function SubstitutionStart(ctx, state2) {
17667
17928
  return (0, import_lib2.$EVENT)(ctx, state2, "SubstitutionStart", SubstitutionStart$0);
17668
17929
  }
17669
- 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) {
17930
+ 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) {
17670
17931
  return { $loc, token: $1 };
17671
17932
  });
17672
17933
  function Super(ctx, state2) {
17673
17934
  return (0, import_lib2.$EVENT)(ctx, state2, "Super", Super$0);
17674
17935
  }
17675
- 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) {
17936
+ 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) {
17676
17937
  return { $loc, token: $1 };
17677
17938
  });
17678
17939
  function Switch(ctx, state2) {
17679
17940
  return (0, import_lib2.$EVENT)(ctx, state2, "Switch", Switch$0);
17680
17941
  }
17681
- 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) {
17942
+ 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) {
17682
17943
  return { $loc, token: $1 };
17683
17944
  });
17684
17945
  function Target(ctx, state2) {
17685
17946
  return (0, import_lib2.$EVENT)(ctx, state2, "Target", Target$0);
17686
17947
  }
17687
- 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) {
17948
+ 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) {
17688
17949
  return { $loc, token: "" };
17689
17950
  });
17690
17951
  function Then(ctx, state2) {
17691
17952
  return (0, import_lib2.$EVENT)(ctx, state2, "Then", Then$0);
17692
17953
  }
17693
- 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) {
17954
+ 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) {
17694
17955
  return { $loc, token: $1 };
17695
17956
  });
17696
17957
  function This(ctx, state2) {
17697
17958
  return (0, import_lib2.$EVENT)(ctx, state2, "This", This$0);
17698
17959
  }
17699
- 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) {
17960
+ 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) {
17700
17961
  return { $loc, token: $1 };
17701
17962
  });
17702
17963
  function Throw(ctx, state2) {
17703
17964
  return (0, import_lib2.$EVENT)(ctx, state2, "Throw", Throw$0);
17704
17965
  }
17705
- var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L214, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
17966
+ var TripleDoubleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
17706
17967
  return { $loc, token: "`" };
17707
17968
  });
17708
17969
  function TripleDoubleQuote(ctx, state2) {
17709
17970
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleQuote", TripleDoubleQuote$0);
17710
17971
  }
17711
- var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L215, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
17972
+ var TripleSingleQuote$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
17712
17973
  return { $loc, token: "`" };
17713
17974
  });
17714
17975
  function TripleSingleQuote(ctx, state2) {
17715
17976
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSingleQuote", TripleSingleQuote$0);
17716
17977
  }
17717
- var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L216, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
17978
+ var TripleSlash$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L218, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
17718
17979
  return { $loc, token: "/" };
17719
17980
  });
17720
17981
  function TripleSlash(ctx, state2) {
17721
17982
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlash", TripleSlash$0);
17722
17983
  }
17723
- var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L217, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
17984
+ var TripleTick$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L219, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
17724
17985
  return { $loc, token: "`" };
17725
17986
  });
17726
17987
  function TripleTick(ctx, state2) {
17727
17988
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleTick", TripleTick$0);
17728
17989
  }
17729
- 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) {
17990
+ 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) {
17730
17991
  return { $loc, token: $1 };
17731
17992
  });
17732
17993
  function Try(ctx, state2) {
17733
17994
  return (0, import_lib2.$EVENT)(ctx, state2, "Try", Try$0);
17734
17995
  }
17735
- 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) {
17996
+ 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) {
17736
17997
  return { $loc, token: $1 };
17737
17998
  });
17738
17999
  function Typeof(ctx, state2) {
17739
18000
  return (0, import_lib2.$EVENT)(ctx, state2, "Typeof", Typeof$0);
17740
18001
  }
17741
- 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) {
18002
+ 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) {
17742
18003
  return { $loc, token: $1 };
17743
18004
  });
17744
18005
  function Undefined(ctx, state2) {
17745
18006
  return (0, import_lib2.$EVENT)(ctx, state2, "Undefined", Undefined$0);
17746
18007
  }
17747
- 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) {
18008
+ 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) {
17748
18009
  return { $loc, token: $1, negated: true };
17749
18010
  });
17750
18011
  function Unless(ctx, state2) {
17751
18012
  return (0, import_lib2.$EVENT)(ctx, state2, "Unless", Unless$0);
17752
18013
  }
17753
- 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) {
18014
+ 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) {
17754
18015
  return { $loc, token: $1, negated: true };
17755
18016
  });
17756
18017
  function Until(ctx, state2) {
17757
18018
  return (0, import_lib2.$EVENT)(ctx, state2, "Until", Until$0);
17758
18019
  }
17759
- 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) {
18020
+ 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) {
17760
18021
  return { $loc, token: $1 };
17761
18022
  });
17762
18023
  function Using(ctx, state2) {
17763
18024
  return (0, import_lib2.$EVENT)(ctx, state2, "Using", Using$0);
17764
18025
  }
17765
- 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) {
18026
+ 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) {
17766
18027
  return { $loc, token: $1 };
17767
18028
  });
17768
18029
  function Var(ctx, state2) {
17769
18030
  return (0, import_lib2.$EVENT)(ctx, state2, "Var", Var$0);
17770
18031
  }
17771
- 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) {
18032
+ 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) {
17772
18033
  return { $loc, token: $1 };
17773
18034
  });
17774
18035
  function Void(ctx, state2) {
17775
18036
  return (0, import_lib2.$EVENT)(ctx, state2, "Void", Void$0);
17776
18037
  }
17777
- 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) {
18038
+ 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) {
17778
18039
  return { $loc, token: "case" };
17779
18040
  });
17780
18041
  function When(ctx, state2) {
17781
18042
  return (0, import_lib2.$EVENT)(ctx, state2, "When", When$0);
17782
18043
  }
17783
- 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) {
18044
+ 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) {
17784
18045
  return { $loc, token: $1 };
17785
18046
  });
17786
18047
  function While(ctx, state2) {
17787
18048
  return (0, import_lib2.$EVENT)(ctx, state2, "While", While$0);
17788
18049
  }
17789
- 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) {
18050
+ 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) {
17790
18051
  return { $loc, token: $1 };
17791
18052
  });
17792
18053
  function With(ctx, state2) {
17793
18054
  return (0, import_lib2.$EVENT)(ctx, state2, "With", With$0);
17794
18055
  }
17795
- 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) {
18056
+ 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) {
17796
18057
  return { $loc, token: $1, type: "Yield" };
17797
18058
  });
17798
18059
  function Yield(ctx, state2) {
@@ -17869,7 +18130,7 @@ var JSXElement$$ = [JSXElement$0, JSXElement$1, JSXElement$2];
17869
18130
  function JSXElement(ctx, state2) {
17870
18131
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElement", JSXElement$$);
17871
18132
  }
17872
- 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) {
18133
+ 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) {
17873
18134
  return { type: "JSXElement", children: $0, tag: $2 };
17874
18135
  });
17875
18136
  function JSXSelfClosingElement(ctx, state2) {
@@ -17902,7 +18163,7 @@ var JSXOptionalClosingElement$$ = [JSXOptionalClosingElement$0, JSXOptionalClosi
17902
18163
  function JSXOptionalClosingElement(ctx, state2) {
17903
18164
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
17904
18165
  }
17905
- 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 ">"'));
18166
+ 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 ">"'));
17906
18167
  function JSXClosingElement(ctx, state2) {
17907
18168
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingElement", JSXClosingElement$0);
17908
18169
  }
@@ -17922,7 +18183,7 @@ var JSXFragment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)
17922
18183
  ];
17923
18184
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
17924
18185
  });
17925
- var JSXFragment$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeJSXEnabled, (0, import_lib2.$EXPECT)($L230, 'JSXFragment "<>"'), (0, import_lib2.$E)(JSXChildren), (0, import_lib2.$E)(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
18186
+ var 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) {
17926
18187
  var children = $3;
17927
18188
  $0 = $0.slice(1);
17928
18189
  return {
@@ -17935,7 +18196,7 @@ var JSXFragment$$ = [JSXFragment$0, JSXFragment$1];
17935
18196
  function JSXFragment(ctx, state2) {
17936
18197
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXFragment", JSXFragment$$);
17937
18198
  }
17938
- var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L230, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
18199
+ var PushJSXOpeningFragment$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L232, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
17939
18200
  state.JSXTagStack.push("");
17940
18201
  return $1;
17941
18202
  });
@@ -17951,11 +18212,11 @@ var JSXOptionalClosingFragment$$ = [JSXOptionalClosingFragment$0, JSXOptionalClo
17951
18212
  function JSXOptionalClosingFragment(ctx, state2) {
17952
18213
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
17953
18214
  }
17954
- var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L231, 'JSXClosingFragment "</>"');
18215
+ var JSXClosingFragment$0 = (0, import_lib2.$EXPECT)($L233, 'JSXClosingFragment "</>"');
17955
18216
  function JSXClosingFragment(ctx, state2) {
17956
18217
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXClosingFragment", JSXClosingFragment$0);
17957
18218
  }
17958
- 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) {
18219
+ 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) {
17959
18220
  return config.defaultElement;
17960
18221
  });
17961
18222
  var JSXElementName$1 = (0, import_lib2.$TEXT)((0, import_lib2.$S)(JSXIdentifierName, (0, import_lib2.$C)((0, import_lib2.$S)(Colon, JSXIdentifierName), (0, import_lib2.$Q)((0, import_lib2.$S)(Dot, JSXIdentifierName)))));
@@ -18132,7 +18393,7 @@ var JSXAttribute$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(Identifier, (0, im
18132
18393
  }
18133
18394
  return $skip;
18134
18395
  });
18135
- var JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L176, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
18396
+ var JSXAttribute$5 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L178, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
18136
18397
  return [" ", "id=", $2];
18137
18398
  });
18138
18399
  var JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -18468,7 +18729,7 @@ var JSXChildGeneral$$ = [JSXChildGeneral$0, JSXChildGeneral$1, JSXChildGeneral$2
18468
18729
  function JSXChildGeneral(ctx, state2) {
18469
18730
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXChildGeneral", JSXChildGeneral$$);
18470
18731
  }
18471
- 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) {
18732
+ 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) {
18472
18733
  return ["{/*", $2, "*/}"];
18473
18734
  });
18474
18735
  function JSXComment(ctx, state2) {
@@ -18752,37 +19013,37 @@ var InterfaceExtendsTarget$0 = ImplementsTarget;
18752
19013
  function InterfaceExtendsTarget(ctx, state2) {
18753
19014
  return (0, import_lib2.$EVENT)(ctx, state2, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
18754
19015
  }
18755
- 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) {
19016
+ 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) {
18756
19017
  return { $loc, token: $1 };
18757
19018
  });
18758
19019
  function TypeKeyword(ctx, state2) {
18759
19020
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeKeyword", TypeKeyword$0);
18760
19021
  }
18761
- 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) {
19022
+ 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) {
18762
19023
  return { $loc, token: $1 };
18763
19024
  });
18764
19025
  function Enum(ctx, state2) {
18765
19026
  return (0, import_lib2.$EVENT)(ctx, state2, "Enum", Enum$0);
18766
19027
  }
18767
- 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) {
19028
+ 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) {
18768
19029
  return { $loc, token: $1 };
18769
19030
  });
18770
19031
  function Interface(ctx, state2) {
18771
19032
  return (0, import_lib2.$EVENT)(ctx, state2, "Interface", Interface$0);
18772
19033
  }
18773
- 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) {
19034
+ 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) {
18774
19035
  return { $loc, token: $1 };
18775
19036
  });
18776
19037
  function Global(ctx, state2) {
18777
19038
  return (0, import_lib2.$EVENT)(ctx, state2, "Global", Global$0);
18778
19039
  }
18779
- 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) {
19040
+ 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) {
18780
19041
  return { $loc, token: $1 };
18781
19042
  });
18782
19043
  function Module(ctx, state2) {
18783
19044
  return (0, import_lib2.$EVENT)(ctx, state2, "Module", Module$0);
18784
19045
  }
18785
- 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) {
19046
+ 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) {
18786
19047
  return { $loc, token: $1 };
18787
19048
  });
18788
19049
  function Namespace(ctx, state2) {
@@ -19091,7 +19352,7 @@ var ReturnTypeSuffix$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib
19091
19352
  function ReturnTypeSuffix(ctx, state2) {
19092
19353
  return (0, import_lib2.$EVENT)(ctx, state2, "ReturnTypeSuffix", ReturnTypeSuffix$0);
19093
19354
  }
19094
- 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) {
19355
+ 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) {
19095
19356
  var asserts = $1;
19096
19357
  var t = $3;
19097
19358
  if (!t) return $skip;
@@ -19184,8 +19445,8 @@ var TypeUnarySuffix$$ = [TypeUnarySuffix$0, TypeUnarySuffix$1, TypeUnarySuffix$2
19184
19445
  function TypeUnarySuffix(ctx, state2) {
19185
19446
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnarySuffix", TypeUnarySuffix$$);
19186
19447
  }
19187
- var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L241, 'TypeUnaryOp "keyof"'), NonIdContinue);
19188
- var TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L202, 'TypeUnaryOp "readonly"'), NonIdContinue);
19448
+ var TypeUnaryOp$0 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L243, 'TypeUnaryOp "keyof"'), NonIdContinue);
19449
+ var TypeUnaryOp$1 = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($L204, 'TypeUnaryOp "readonly"'), NonIdContinue);
19189
19450
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
19190
19451
  function TypeUnaryOp(ctx, state2) {
19191
19452
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeUnaryOp", TypeUnaryOp$$);
@@ -19215,7 +19476,7 @@ var TypeIndexedAccess$$ = [TypeIndexedAccess$0, TypeIndexedAccess$1, TypeIndexed
19215
19476
  function TypeIndexedAccess(ctx, state2) {
19216
19477
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeIndexedAccess", TypeIndexedAccess$$);
19217
19478
  }
19218
- var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L242, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
19479
+ var UnknownAlias$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L244, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
19219
19480
  return { $loc, token: "unknown" };
19220
19481
  });
19221
19482
  function UnknownAlias(ctx, state2) {
@@ -19592,13 +19853,13 @@ var TypeLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EX
19592
19853
  if (sign[0] === "+") return num;
19593
19854
  return $0;
19594
19855
  });
19595
- var TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L224, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
19856
+ var TypeLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L226, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
19596
19857
  return { type: "VoidType", $loc, token: $1 };
19597
19858
  });
19598
- var TypeLiteral$4 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L243, 'TypeLiteral "unique"'), _, (0, import_lib2.$EXPECT)($L244, 'TypeLiteral "symbol"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
19859
+ var 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) {
19599
19860
  return { type: "UniqueSymbolType", children: $0 };
19600
19861
  });
19601
- var TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L245, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
19862
+ var TypeLiteral$5 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L247, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
19602
19863
  return { $loc, token: "[]" };
19603
19864
  });
19604
19865
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4, TypeLiteral$5];
@@ -19617,7 +19878,7 @@ var InlineInterfacePropertyDelimiter$0 = (0, import_lib2.$C)((0, import_lib2.$S)
19617
19878
  var InlineInterfacePropertyDelimiter$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)((0, import_lib2.$S)(SameLineOrIndentedFurther, InlineBasicInterfaceProperty)), InsertComma), function(value) {
19618
19879
  return value[1];
19619
19880
  });
19620
- var InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L141, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"'))));
19881
+ var InlineInterfacePropertyDelimiter$2 = (0, import_lib2.$Y)((0, import_lib2.$S)(__, (0, import_lib2.$C)((0, import_lib2.$EXPECT)($L16, 'InlineInterfacePropertyDelimiter ":"'), (0, import_lib2.$EXPECT)($L143, 'InlineInterfacePropertyDelimiter ")"'), (0, import_lib2.$EXPECT)($L46, 'InlineInterfacePropertyDelimiter "]"'), (0, import_lib2.$EXPECT)($L37, 'InlineInterfacePropertyDelimiter "}"'))));
19621
19882
  var InlineInterfacePropertyDelimiter$3 = (0, import_lib2.$Y)(EOS);
19622
19883
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
19623
19884
  function InlineInterfacePropertyDelimiter(ctx, state2) {
@@ -19857,7 +20118,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
19857
20118
  function CivetPrologue(ctx, state2) {
19858
20119
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19859
20120
  }
19860
- 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) {
20121
+ 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) {
19861
20122
  var options = $3;
19862
20123
  return {
19863
20124
  type: "CivetPrologue",
@@ -20566,7 +20827,7 @@ __export(sourcemap_civet_exports, {
20566
20827
  locationTable: () => locationTable,
20567
20828
  lookupLineColumn: () => lookupLineColumn
20568
20829
  });
20569
- var locationTable = function(input) {
20830
+ function locationTable(input) {
20570
20831
  const linesRe = /([^\r\n]*)(\r\n|\r|\n|$)/y;
20571
20832
  const lines = [];
20572
20833
  let line = 0;
@@ -20581,96 +20842,108 @@ var locationTable = function(input) {
20581
20842
  }
20582
20843
  }
20583
20844
  return lines;
20584
- };
20585
- var lookupLineColumn = function(table, pos) {
20845
+ }
20846
+ function lookupLineColumn(table, pos) {
20586
20847
  let l = 0;
20587
20848
  let prevEnd = 0;
20588
20849
  while (table[l] <= pos) {
20589
20850
  prevEnd = table[l++];
20590
20851
  }
20591
20852
  return [l, pos - prevEnd];
20592
- };
20593
- var SourceMap = function(sourceString) {
20594
- const srcTable = locationTable(sourceString);
20595
- const sm = {
20596
- lines: [[]],
20597
- line: 0,
20598
- colOffset: 0,
20599
- // relative to previous entry
20600
- srcLine: 0,
20601
- srcColumn: 0,
20602
- srcOffset: 0,
20603
- srcTable
20604
- };
20605
- const EOL2 = /\r?\n|\r/;
20606
- return {
20607
- data: sm,
20608
- source: function() {
20609
- return sourceString;
20610
- },
20611
- renderMappings: function() {
20612
- let lastSourceLine = 0;
20613
- let lastSourceColumn = 0;
20614
- return sm.lines.map((line) => {
20615
- return line.map((entry) => {
20616
- if (entry.length === 4) {
20617
- let [colDelta, sourceFileIndex, srcLine, srcCol] = entry;
20618
- const lineDelta = srcLine - lastSourceLine;
20619
- colDelta = srcCol - lastSourceColumn;
20620
- lastSourceLine = srcLine;
20621
- lastSourceColumn = srcCol;
20622
- return `${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`;
20623
- } else {
20624
- return encodeVlq(entry[0]);
20853
+ }
20854
+ var EOL2 = /\r?\n|\r/;
20855
+ var SourceMap = class {
20856
+ lines;
20857
+ line;
20858
+ colOffset;
20859
+ // relative to previous entry
20860
+ srcLine;
20861
+ srcColumn;
20862
+ srcOffset;
20863
+ srcTable;
20864
+ source;
20865
+ constructor(source1) {
20866
+ this.source = source1;
20867
+ this.lines = [[]];
20868
+ this.line = 0;
20869
+ this.colOffset = 0;
20870
+ this.srcLine = 0;
20871
+ this.srcColumn = 0;
20872
+ this.srcOffset = 0;
20873
+ this.srcTable = locationTable(this.source);
20874
+ }
20875
+ renderMappings() {
20876
+ let lastSourceLine = 0;
20877
+ let lastSourceColumn = 0;
20878
+ return (() => {
20879
+ const results = [];
20880
+ for (let ref1 = this.lines, i1 = 0, len3 = ref1.length; i1 < len3; i1++) {
20881
+ const line = ref1[i1];
20882
+ results.push((() => {
20883
+ const results1 = [];
20884
+ for (let i2 = 0, len1 = line.length; i2 < len1; i2++) {
20885
+ const entry = line[i2];
20886
+ if (entry.length === 4) {
20887
+ let [colDelta, sourceFileIndex, srcLine, srcCol] = entry;
20888
+ const lineDelta = srcLine - lastSourceLine;
20889
+ colDelta = srcCol - lastSourceColumn;
20890
+ lastSourceLine = srcLine;
20891
+ lastSourceColumn = srcCol;
20892
+ results1.push(`${encodeVlq(entry[0])}${encodeVlq(sourceFileIndex)}${encodeVlq(lineDelta)}${encodeVlq(colDelta)}`);
20893
+ } else {
20894
+ results1.push(encodeVlq(entry[0]));
20895
+ }
20625
20896
  }
20626
- }).join(",");
20627
- }).join(";");
20628
- },
20629
- json: function(srcFileName, outFileName) {
20630
- return {
20631
- version: 3,
20632
- file: outFileName,
20633
- sources: [srcFileName],
20634
- mappings: this.renderMappings(),
20635
- names: [],
20636
- sourcesContent: [sourceString],
20637
- toString: function() {
20638
- return JSON.stringify(this);
20639
- }
20640
- };
20641
- },
20642
- updateSourceMap: function(outputStr, inputPos, colOffset = 0) {
20643
- const outLines = outputStr.split(EOL2);
20644
- let srcLine, srcCol;
20897
+ return results1;
20898
+ })().join(","));
20899
+ }
20900
+ return results;
20901
+ })().join(";");
20902
+ }
20903
+ json(srcFileName, outFileName) {
20904
+ return {
20905
+ version: 3,
20906
+ file: outFileName,
20907
+ sources: [srcFileName],
20908
+ mappings: this.renderMappings(),
20909
+ names: [],
20910
+ sourcesContent: [this.source],
20911
+ toString: function() {
20912
+ return JSON.stringify(this);
20913
+ }
20914
+ };
20915
+ }
20916
+ updateSourceMap(outputStr, inputPos, colOffset = 0) {
20917
+ const outLines = outputStr.split(EOL2);
20918
+ let srcLine, srcCol;
20919
+ if (inputPos != null) {
20920
+ [srcLine, srcCol] = lookupLineColumn(this.srcTable, inputPos);
20921
+ srcCol += colOffset;
20922
+ this.srcLine = srcLine;
20923
+ this.srcColumn = srcCol;
20924
+ this.srcOffset = inputPos + outputStr.length;
20925
+ }
20926
+ for (let i3 = 0, len22 = outLines.length; i3 < len22; i3++) {
20927
+ const i = i3;
20928
+ const line = outLines[i3];
20929
+ if (i > 0) {
20930
+ this.line++;
20931
+ this.srcLine++;
20932
+ this.colOffset = 0;
20933
+ this.lines[this.line] = [];
20934
+ this.srcColumn = srcCol = colOffset;
20935
+ }
20936
+ const l = this.colOffset;
20937
+ this.colOffset = line.length;
20938
+ this.srcColumn += line.length;
20645
20939
  if (inputPos != null) {
20646
- [srcLine, srcCol] = lookupLineColumn(srcTable, inputPos);
20647
- srcCol += colOffset;
20648
- sm.srcLine = srcLine;
20649
- sm.srcColumn = srcCol;
20650
- sm.srcOffset = inputPos + outputStr.length;
20651
- }
20652
- for (let i1 = 0, len3 = outLines.length; i1 < len3; i1++) {
20653
- const i = i1;
20654
- const line = outLines[i1];
20655
- if (i > 0) {
20656
- sm.line++;
20657
- sm.srcLine++;
20658
- sm.colOffset = 0;
20659
- sm.lines[sm.line] = [];
20660
- sm.srcColumn = srcCol = colOffset;
20661
- }
20662
- const l = sm.colOffset;
20663
- sm.colOffset = line.length;
20664
- sm.srcColumn += line.length;
20665
- if (inputPos != null) {
20666
- sm.lines[sm.line].push([l, 0, srcLine + i, srcCol]);
20667
- } else if (l != 0) {
20668
- sm.lines[sm.line].push([l]);
20669
- }
20940
+ this.lines[this.line].push([l, 0, srcLine + i, srcCol]);
20941
+ } else if (l != 0) {
20942
+ this.lines[this.line].push([l]);
20670
20943
  }
20671
- return;
20672
20944
  }
20673
- };
20945
+ return;
20946
+ }
20674
20947
  };
20675
20948
  var smRegexp = /\n\/\/# sourceMappingURL=data:application\/json;charset=utf-8;base64,([+a-zA-Z0-9\/]*=?=?)$/;
20676
20949
  var remap = function(codeWithSourceMap, upstreamMap, sourcePath, targetPath) {
@@ -20681,8 +20954,8 @@ var remap = function(codeWithSourceMap, upstreamMap, sourcePath, targetPath) {
20681
20954
  });
20682
20955
  if (sourceMapText) {
20683
20956
  const parsed = parseWithLines(sourceMapText);
20684
- const composedLines = composeLines(upstreamMap.data.lines, parsed.lines);
20685
- upstreamMap.data.lines = composedLines;
20957
+ const composedLines = composeLines(upstreamMap.lines, parsed.lines);
20958
+ upstreamMap.lines = composedLines;
20686
20959
  }
20687
20960
  const remappedSourceMapJSON = upstreamMap.json(sourcePath, targetPath);
20688
20961
  const newSourceMap = `${"sourceMapping"}URL=data:application/json;charset=utf-8;base64,${base64Encode(JSON.stringify(remappedSourceMapJSON))}`;
@@ -20744,10 +21017,10 @@ var VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;
20744
21017
  var VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;
20745
21018
  var encodeVlq = function(value) {
20746
21019
  let answer = "";
20747
- let ref1;
20748
- if (value < 0) ref1 = 1;
20749
- else ref1 = 0;
20750
- const signBit = ref1;
21020
+ let ref2;
21021
+ if (value < 0) ref2 = 1;
21022
+ else ref2 = 0;
21023
+ const signBit = ref2;
20751
21024
  let valueToEncode = (Math.abs(value) << 1) + signBit;
20752
21025
  while (valueToEncode || !answer) {
20753
21026
  let nextChunk = valueToEncode & VLQ_VALUE_MASK;
@@ -20919,8 +21192,8 @@ var WorkerPool = class {
20919
21192
  async run(op, ...args) {
20920
21193
  const id = this.jobId++;
20921
21194
  return await new Promise(async (resolve2, reject) => {
20922
- this.callbacks.set(id, { resolve: resolve2, reject });
20923
21195
  const job = { id, op, args };
21196
+ this.callbacks.set(id, { job, resolve: resolve2, reject });
20924
21197
  if (this.idle.length) {
20925
21198
  const worker = this.idle.shift();
20926
21199
  worker.ref();
@@ -20947,8 +21220,32 @@ var WorkerPool = class {
20947
21220
  const callback = this.callbacks.get(response.id);
20948
21221
  this.callbacks.delete(response.id);
20949
21222
  if (response.error) {
20950
- callback.reject(response.error);
21223
+ const message = `${response.error.name}: ${response.error.message}`;
21224
+ let ref;
21225
+ if (response.error.type in globalThis) {
21226
+ ref = new globalThis[response.error.type](message);
21227
+ } else {
21228
+ ref = new Error(message);
21229
+ }
21230
+ ;
21231
+ const error = ref;
21232
+ try {
21233
+ error.name = response.error.name;
21234
+ } catch (e) {
21235
+ }
21236
+ callback.reject(error);
20951
21237
  } else {
21238
+ let ref1;
21239
+ if (ref1 = response.result?.sourceMap) {
21240
+ const sourceMap = ref1;
21241
+ response.result.sourceMap = new SourceMap(sourceMap.source);
21242
+ Object.assign(response.result.sourceMap, sourceMap);
21243
+ }
21244
+ let ref2;
21245
+ if (ref2 = callback.job.args[1]?.errors) {
21246
+ const errors = ref2;
21247
+ errors.splice(0, 1 / 0, ...response.errors);
21248
+ }
20952
21249
  callback.resolve(response.result);
20953
21250
  }
20954
21251
  if (this.spawned > this.threads) {
@@ -21132,7 +21429,7 @@ ${counts}`;
21132
21429
  return;
21133
21430
  }
21134
21431
  if (options.sourceMap || options.inlineMap) {
21135
- options.sourceMap = SourceMap2(src);
21432
+ options.sourceMap = new SourceMap2(src);
21136
21433
  const code = generate_civet_default(ast2, options);
21137
21434
  checkErrors();
21138
21435
  if (options.inlineMap) {
@@ -21147,7 +21444,7 @@ ${counts}`;
21147
21444
  const result = generate_civet_default(ast2, options);
21148
21445
  if (options.errors?.length) {
21149
21446
  delete options.errors;
21150
- options.sourceMap = SourceMap2(src);
21447
+ options.sourceMap = new SourceMap2(src);
21151
21448
  generate_civet_default(ast2, options);
21152
21449
  checkErrors();
21153
21450
  }