@danielx/civet 0.8.16 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -62,7 +62,7 @@ var require_machine = __commonJS({
62
62
  $N: () => $N2,
63
63
  $P: () => $P2,
64
64
  $Q: () => $Q2,
65
- $R: () => $R102,
65
+ $R: () => $R103,
66
66
  $R$0: () => $R$02,
67
67
  $S: () => $S2,
68
68
  $T: () => $T2,
@@ -99,7 +99,7 @@ var require_machine = __commonJS({
99
99
  return;
100
100
  };
101
101
  }
102
- function $R102(regExp) {
102
+ function $R103(regExp) {
103
103
  return function(_ctx, state2) {
104
104
  const { input, pos } = state2;
105
105
  regExp.lastIndex = state2.pos;
@@ -1195,7 +1195,6 @@ var skipParens = /* @__PURE__ */ new Set([
1195
1195
  "JSXElement",
1196
1196
  "JSXFragment",
1197
1197
  "Literal",
1198
- "NewExpression",
1199
1198
  "ParenthesizedExpression",
1200
1199
  "Ref",
1201
1200
  "Placeholder",
@@ -1217,7 +1216,10 @@ function makeLeftHandSideExpression(expression) {
1217
1216
  if (skipParens.has(expression.type)) {
1218
1217
  return expression;
1219
1218
  }
1220
- if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($6) => $6.type === "ObjectExpression")) {
1219
+ if (expression.type === "NewExpression" && expression.expression.children.some(($6) => $6?.type === "Call")) {
1220
+ return expression;
1221
+ }
1222
+ if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($7) => $7.type === "ObjectExpression")) {
1221
1223
  return expression;
1222
1224
  }
1223
1225
  }
@@ -1753,13 +1755,14 @@ function gatherBindingCode(statements, opts) {
1753
1755
  return;
1754
1756
  }
1755
1757
  if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
1756
- n.names.forEach((id) => ({
1757
- push: thisAssignments2.push({
1758
+ for (let ref1 = n.names, i2 = 0, len1 = ref1.length; i2 < len1; i2++) {
1759
+ const id = ref1[i2];
1760
+ thisAssignments2.push({
1758
1761
  type: "AssignmentExpression",
1759
1762
  children: [`this.${id} = `, id],
1760
1763
  js: true
1761
- })
1762
- }));
1764
+ });
1765
+ }
1763
1766
  return;
1764
1767
  }
1765
1768
  const { blockPrefix } = n;
@@ -1771,8 +1774,8 @@ function gatherBindingCode(statements, opts) {
1771
1774
  return [splices, thisAssignments];
1772
1775
  }
1773
1776
  function arrayElementHasTrailingComma(elementNode) {
1774
- let ref1;
1775
- const lastChild = (ref1 = elementNode.children)[ref1.length - 1];
1777
+ let ref2;
1778
+ const lastChild = (ref2 = elementNode.children)[ref2.length - 1];
1776
1779
  return lastChild && lastChild[lastChild.length - 1]?.token === ",";
1777
1780
  }
1778
1781
  function gatherBindingPatternTypeSuffix(pattern) {
@@ -1784,8 +1787,8 @@ function gatherBindingPatternTypeSuffix(pattern) {
1784
1787
  case "ArrayBindingPattern": {
1785
1788
  {
1786
1789
  const results = [];
1787
- for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1788
- const elem = ref2[i2];
1790
+ for (let ref3 = pattern.elements, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1791
+ const elem = ref3[i3];
1789
1792
  let { typeSuffix } = elem;
1790
1793
  typeSuffix ??= elem.binding?.typeSuffix;
1791
1794
  if (typeSuffix) {
@@ -1823,8 +1826,8 @@ function gatherBindingPatternTypeSuffix(pattern) {
1823
1826
  {
1824
1827
  let restType;
1825
1828
  const results1 = [];
1826
- for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1827
- const prop = ref3[i3];
1829
+ for (let ref4 = pattern.properties, i4 = 0, len3 = ref4.length; i4 < len3; i4++) {
1830
+ const prop = ref4[i4];
1828
1831
  let { typeSuffix } = prop;
1829
1832
  typeSuffix ??= prop.value?.typeSuffix;
1830
1833
  if (typeSuffix) {
@@ -1976,8 +1979,14 @@ var declareHelper = {
1976
1979
  // [indent, statement]
1977
1980
  preludeVar,
1978
1981
  moduloRef,
1979
- ts(": (a: number, b: number) => number"),
1980
- " = (a, b) => (a % b + b) % b"
1982
+ " = ",
1983
+ ts("("),
1984
+ "(a",
1985
+ ts(": number"),
1986
+ ", b",
1987
+ ts(": number"),
1988
+ ") => (a % b + b) % b",
1989
+ ts(") as ((a: number, b: number) => number) & ((a: bigint, b: bigint) => bigint)")
1981
1990
  ], ";\n"]);
1982
1991
  },
1983
1992
  Falsy(FalsyRef) {
@@ -2542,7 +2551,7 @@ function getTypeArguments(args) {
2542
2551
  if (!Array.isArray(args)) {
2543
2552
  throw new Error("getTypeArguments could not find relevant array");
2544
2553
  }
2545
- return args.filter((a) => typeof a === "object" && a != null && "type" in a && a.type === "TypeArgument");
2554
+ return args.filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "TypeArgument");
2546
2555
  }
2547
2556
  function isVoidType(t) {
2548
2557
  return typeof t === "object" && t != null && "type" in t && t.type === "TypeLiteral" && "t" in t && typeof t.t === "object" && t.t != null && "type" in t.t && t.t.type === "VoidType";
@@ -3408,7 +3417,7 @@ function processParams(f) {
3408
3417
  if (isConstructor) {
3409
3418
  const { ancestor } = findAncestor(f, ($6) => $6.type === "ClassExpression");
3410
3419
  if (ancestor != null) {
3411
- const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($7) => $7.type === "FieldDefinition").map(($8) => $8.id).filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "Identifier").map(($9) => $9.name));
3420
+ const fields = new Set(gatherRecursiveWithinFunction(ancestor, ($7) => $7.type === "FieldDefinition").map(($8) => $8.id).filter((a2) => typeof a2 === "object" && a2 != null && "type" in a2 && a2.type === "Identifier").map(($9) => $9.name));
3412
3421
  const classExpressions = ancestor.body.expressions;
3413
3422
  let index = findChildIndex(classExpressions, f);
3414
3423
  assert.notEqual(index, -1, "Could not find constructor in class");
@@ -3419,15 +3428,20 @@ function processParams(f) {
3419
3428
  const fStatement = classExpressions[index];
3420
3429
  for (let ref16 = gatherRecursive(parameters, ($10) => $10.type === "Parameter"), i8 = 0, len7 = ref16.length; i8 < len7; i8++) {
3421
3430
  const parameter = ref16[i8];
3422
- if (!parameter.typeSuffix) {
3431
+ const { accessModifier } = parameter;
3432
+ if (!(accessModifier || parameter.typeSuffix)) {
3423
3433
  continue;
3424
3434
  }
3425
3435
  for (let ref17 = gatherRecursive(parameter, ($11) => $11.type === "AtBinding"), i9 = 0, len8 = ref17.length; i9 < len8; i9++) {
3426
3436
  const binding = ref17[i9];
3427
3437
  const typeSuffix = binding.parent?.typeSuffix;
3428
- if (!typeSuffix) {
3438
+ if (!(accessModifier || typeSuffix)) {
3429
3439
  continue;
3430
3440
  }
3441
+ if (parameter.accessModifier) {
3442
+ replaceNode(parameter.accessModifier, void 0);
3443
+ parameter.accessModifier = void 0;
3444
+ }
3431
3445
  const id = binding.ref.id;
3432
3446
  if (fields.has(id)) {
3433
3447
  continue;
@@ -3436,7 +3450,7 @@ function processParams(f) {
3436
3450
  type: "FieldDefinition",
3437
3451
  id,
3438
3452
  typeSuffix,
3439
- children: [id, typeSuffix]
3453
+ children: [accessModifier, id, typeSuffix]
3440
3454
  }, ";"]);
3441
3455
  fStatement[0] = "";
3442
3456
  }
@@ -3460,10 +3474,10 @@ function processParams(f) {
3460
3474
  if (isConstructor) {
3461
3475
  const superCalls = gatherNodes(
3462
3476
  expressions,
3463
- (a2) => typeof a2 === "object" && a2 != null && "type" in a2 && a2.type === "CallExpression" && "children" in a2 && Array.isArray(a2.children) && a2.children.length >= 1 && typeof a2.children[0] === "object" && a2.children[0] != null && "token" in a2.children[0] && a2.children[0].token === "super"
3477
+ (a3) => typeof a3 === "object" && a3 != null && "type" in a3 && a3.type === "CallExpression" && "children" in a3 && Array.isArray(a3.children) && a3.children.length >= 1 && typeof a3.children[0] === "object" && a3.children[0] != null && "token" in a3.children[0] && a3.children[0].token === "super"
3464
3478
  );
3465
3479
  if (superCalls.length) {
3466
- const { child } = findAncestor(superCalls[0], (a3) => a3 === block);
3480
+ const { child } = findAncestor(superCalls[0], (a4) => a4 === block);
3467
3481
  const index = findChildIndex(expressions, child);
3468
3482
  if (index < 0) {
3469
3483
  throw new Error("Could not find super call within top-level expressions");
@@ -3478,21 +3492,33 @@ function processParams(f) {
3478
3492
  function processSignature(f) {
3479
3493
  const { block, signature } = f;
3480
3494
  if (!f.async?.length && hasAwait(block)) {
3481
- f.async.push("async ");
3482
- signature.modifier.async = true;
3483
- }
3484
- if (!f.generator?.length && hasYield(block)) {
3485
- if (f.type === "ArrowFunction") {
3486
- gatherRecursiveWithinFunction(block, ($12) => $12.type === "YieldExpression").forEach((y) => {
3487
- const i = y.children.findIndex(($13) => $13.type === "Yield");
3488
- return y.children.splice(i + 1, 0, {
3495
+ if (f.async != null) {
3496
+ f.async.push("async ");
3497
+ signature.modifier.async = true;
3498
+ } else {
3499
+ for (let ref18 = gatherRecursiveWithinFunction(block, ($12) => $12.type === "Await"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3500
+ const a = ref18[i10];
3501
+ const i = findChildIndex(a.parent, a);
3502
+ a.parent.children.splice(i + 1, 0, {
3489
3503
  type: "Error",
3490
- message: "Can't use yield inside of => arrow function"
3504
+ message: `await invalid in ${signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3491
3505
  });
3492
- });
3493
- } else {
3506
+ }
3507
+ }
3508
+ }
3509
+ if (!f.generator?.length && hasYield(block)) {
3510
+ if (f.generator != null) {
3494
3511
  f.generator.push("*");
3495
3512
  signature.modifier.generator = true;
3513
+ } else {
3514
+ for (let ref19 = gatherRecursiveWithinFunction(block, ($13) => $13.type === "YieldExpression"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3515
+ const y = ref19[i11];
3516
+ const i = y.children.findIndex(($14) => $14.type === "Yield");
3517
+ y.children.splice(i + 1, 0, {
3518
+ type: "Error",
3519
+ message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3520
+ });
3521
+ }
3496
3522
  }
3497
3523
  }
3498
3524
  if (signature.modifier.async && !signature.modifier.generator && signature.returnType && !isPromiseType(signature.returnType.t)) {
@@ -3500,21 +3526,15 @@ function processSignature(f) {
3500
3526
  }
3501
3527
  }
3502
3528
  function processFunctions(statements, config2) {
3503
- for (let ref18 = gatherRecursiveAll(statements, ($14) => $14.type === "FunctionExpression" || $14.type === "ArrowFunction"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3504
- const f = ref18[i10];
3505
- if (f.type === "FunctionExpression") {
3529
+ for (let ref20 = gatherRecursiveAll(statements, ($15) => $15.type === "FunctionExpression" || $15.type === "ArrowFunction" || $15.type === "MethodDefinition"), i12 = 0, len11 = ref20.length; i12 < len11; i12++) {
3530
+ const f = ref20[i12];
3531
+ if (f.type === "FunctionExpression" || f.type === "MethodDefinition") {
3506
3532
  implicitFunctionBlock(f);
3507
3533
  }
3508
3534
  processSignature(f);
3509
3535
  processParams(f);
3510
3536
  processReturn(f, config2.implicitReturns);
3511
3537
  }
3512
- for (let ref19 = gatherRecursiveAll(statements, ($15) => $15.type === "MethodDefinition"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3513
- const f = ref19[i11];
3514
- implicitFunctionBlock(f);
3515
- processParams(f);
3516
- processReturn(f, config2.implicitReturns);
3517
- }
3518
3538
  }
3519
3539
  function expressionizeIteration(exp) {
3520
3540
  let { async, generator, block, children, statement } = exp;
@@ -3563,9 +3583,9 @@ function expressionizeIteration(exp) {
3563
3583
  }
3564
3584
  let done;
3565
3585
  if (!async) {
3566
- let ref20;
3567
- if ((ref20 = blockContainingStatement(exp)) && typeof ref20 === "object" && "block" in ref20 && "index" in ref20) {
3568
- const { block: parentBlock, index } = ref20;
3586
+ let ref21;
3587
+ if ((ref21 = blockContainingStatement(exp)) && typeof ref21 === "object" && "block" in ref21 && "index" in ref21) {
3588
+ const { block: parentBlock, index } = ref21;
3569
3589
  statements[0][0] = parentBlock.expressions[index][0];
3570
3590
  parentBlock.expressions.splice(index, index + 1 - index, ...statements);
3571
3591
  updateParentPointers(parentBlock);
@@ -3582,8 +3602,8 @@ function expressionizeIteration(exp) {
3582
3602
  }
3583
3603
  }
3584
3604
  function processIterationExpressions(statements) {
3585
- for (let ref21 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3586
- const s = ref21[i12];
3605
+ for (let ref22 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3606
+ const s = ref22[i13];
3587
3607
  expressionizeIteration(s);
3588
3608
  }
3589
3609
  }
@@ -3609,21 +3629,21 @@ function processCoffeeDo(ws, expression) {
3609
3629
  ...parameters,
3610
3630
  children: (() => {
3611
3631
  const results1 = [];
3612
- for (let ref22 = parameters.children, i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3613
- let parameter = ref22[i13];
3632
+ for (let ref23 = parameters.children, i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3633
+ let parameter = ref23[i14];
3614
3634
  if (typeof parameter === "object" && parameter != null && "type" in parameter && parameter.type === "Parameter") {
3615
- let ref23;
3616
- if (ref23 = parameter.initializer) {
3617
- const initializer = ref23;
3635
+ let ref24;
3636
+ if (ref24 = parameter.initializer) {
3637
+ const initializer = ref24;
3618
3638
  args.push(initializer.expression, parameter.delim);
3619
3639
  parameter = {
3620
3640
  ...parameter,
3621
3641
  initializer: void 0,
3622
- children: parameter.children.filter((a4) => a4 !== initializer)
3642
+ children: parameter.children.filter((a5) => a5 !== initializer)
3623
3643
  };
3624
3644
  } else {
3625
3645
  args.push(parameter.children.filter(
3626
- (a5) => a5 !== parameter.typeSuffix
3646
+ (a6) => a6 !== parameter.typeSuffix
3627
3647
  ));
3628
3648
  }
3629
3649
  }
@@ -3696,7 +3716,7 @@ function makeAmpersandFunction(rhs) {
3696
3716
  }
3697
3717
  if (gatherRecursiveWithinFunction(
3698
3718
  block,
3699
- (a6) => a6 === ref
3719
+ (a7) => a7 === ref
3700
3720
  ).length > 1) {
3701
3721
  fn.ampersandBlock = false;
3702
3722
  }
@@ -5373,7 +5393,6 @@ function processUnaryNestedExpression(pre, args, post) {
5373
5393
 
5374
5394
  // source/parser/pipe.civet
5375
5395
  function constructInvocation(fn, arg) {
5376
- const fnArr = [fn.leadingComment, fn.expr, fn.trailingComment];
5377
5396
  let expr = fn.expr;
5378
5397
  while (expr.type === "ParenthesizedExpression") {
5379
5398
  expr = expr.expression;
@@ -5390,22 +5409,46 @@ function constructInvocation(fn, arg) {
5390
5409
  });
5391
5410
  }
5392
5411
  expr = fn.expr;
5393
- const lhs = makeLeftHandSideExpression(expr);
5412
+ let lhs = expr;
5413
+ if (!(lhs.type === "NewExpression")) {
5414
+ lhs = makeLeftHandSideExpression(lhs);
5415
+ }
5394
5416
  let comment = skipIfOnlyWS(fn.trailingComment);
5395
5417
  if (comment)
5396
- lhs.children.splice(2, 0, comment);
5418
+ lhs.children.push(comment);
5397
5419
  comment = skipIfOnlyWS(fn.leadingComment);
5398
5420
  if (comment)
5399
5421
  lhs.children.splice(1, 0, comment);
5400
5422
  switch (arg.type) {
5401
- case "CommaExpression":
5423
+ case "CommaExpression": {
5402
5424
  arg = makeLeftHandSideExpression(arg);
5403
5425
  break;
5426
+ }
5404
5427
  }
5405
- return {
5406
- type: "CallExpression",
5407
- children: [lhs, "(", arg, ")"]
5428
+ const args = [arg];
5429
+ const call = {
5430
+ type: "Call",
5431
+ args,
5432
+ children: ["(", args, ")"]
5408
5433
  };
5434
+ if (lhs.type === "NewExpression") {
5435
+ let { expression } = lhs;
5436
+ expression = {
5437
+ ...expression,
5438
+ type: "CallExpression",
5439
+ children: [...expression.children, call]
5440
+ };
5441
+ return {
5442
+ ...lhs,
5443
+ expression,
5444
+ children: lhs.children.map(($) => $ === lhs.expression ? expression : $)
5445
+ };
5446
+ } else {
5447
+ return {
5448
+ type: "CallExpression",
5449
+ children: [lhs, call]
5450
+ };
5451
+ }
5409
5452
  }
5410
5453
  function constructPipeStep(fn, arg, returning) {
5411
5454
  if (!returning) {
@@ -5452,21 +5495,24 @@ function processPipelineExpressions(statements) {
5452
5495
  let i = 0, l = body.length;
5453
5496
  const children = [ws];
5454
5497
  let usingRef = null;
5455
- for (i = 0; i < l; i++) {
5456
- const step = body[i];
5498
+ for (let i1 = 0, len3 = body.length; i1 < len3; i1++) {
5499
+ const i2 = i1;
5500
+ const step = body[i1];
5457
5501
  const [leadingComment, pipe, trailingComment, expr] = step;
5458
5502
  const returns = pipe.token === "||>";
5459
5503
  let ref, result, returning = returns ? arg : null;
5460
5504
  if (pipe.token === "|>=") {
5461
5505
  let initRef;
5462
- if (i === 0) {
5506
+ if (i2 === 0) {
5463
5507
  checkValidLHS(arg);
5464
5508
  outer:
5465
5509
  switch (arg.type) {
5466
- case "MemberExpression":
5467
- if (arg.children.length <= 2)
5510
+ case "MemberExpression": {
5511
+ if (arg.children.length <= 2) {
5468
5512
  break;
5469
- case "CallExpression":
5513
+ }
5514
+ }
5515
+ case "CallExpression": {
5470
5516
  const access = arg.children.pop();
5471
5517
  usingRef = makeRef();
5472
5518
  initRef = {
@@ -5478,6 +5524,7 @@ function processPipelineExpressions(statements) {
5478
5524
  children: [usingRef, access]
5479
5525
  };
5480
5526
  break;
5527
+ }
5481
5528
  }
5482
5529
  const lhs = [[
5483
5530
  [initRef],
@@ -5506,7 +5553,7 @@ function processPipelineExpressions(statements) {
5506
5553
  });
5507
5554
  }
5508
5555
  } else {
5509
- if (i === 0)
5556
+ if (i2 === 0)
5510
5557
  s.children = children;
5511
5558
  }
5512
5559
  if (returns && (ref = needsRef(arg))) {
@@ -5531,7 +5578,7 @@ function processPipelineExpressions(statements) {
5531
5578
  returning
5532
5579
  );
5533
5580
  if (result.type === "ReturnStatement") {
5534
- if (i < l - 1) {
5581
+ if (i2 < l - 1) {
5535
5582
  result.children.push({
5536
5583
  type: "Error",
5537
5584
  message: "Can't continue a pipeline after returning"
@@ -5559,7 +5606,7 @@ function processPipelineExpressions(statements) {
5559
5606
  };
5560
5607
  }
5561
5608
  children.push(arg);
5562
- if (!children.some(($) => $?.type === "ReturnStatement") && children.some(($1) => $1 === ",")) {
5609
+ if (!children.some(($1) => $1?.type === "ReturnStatement") && children.some(($2) => $2 === ",")) {
5563
5610
  const { parent } = s;
5564
5611
  const parenthesizedExpression = makeLeftHandSideExpression({ ...s });
5565
5612
  Object.assign(s, parenthesizedExpression, {
@@ -5699,7 +5746,7 @@ function processRangeExpression(start, ws1, range, end) {
5699
5746
  };
5700
5747
  }
5701
5748
  function forRange(open, forDeclaration, range, stepExp, close) {
5702
- const { start, end, left, right, increasing } = range;
5749
+ let { start, end, left, right, increasing } = range;
5703
5750
  const counterRef = makeRef("i");
5704
5751
  const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5705
5752
  let stepRef, asc;
@@ -5741,28 +5788,35 @@ function forRange(open, forDeclaration, range, stepExp, close) {
5741
5788
  let endRef = maybeRef(end, "end");
5742
5789
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
5743
5790
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
5744
- if (!left.inclusive) {
5745
- startRef = [
5746
- makeLeftHandSideExpression(start),
5747
- " + ",
5748
- stepRef
5749
- ];
5750
- }
5751
5791
  let ascDec = [], ascRef;
5752
5792
  if (stepExp) {
5753
5793
  if (!(stepRef === stepExp)) {
5754
5794
  ascDec = [", ", stepRef, " = ", stepExp];
5755
5795
  }
5756
- } else if (start?.type === "Literal" && "Literal" === end?.type) {
5796
+ }
5797
+ if (start?.type === "Literal" && "Literal" === end?.type) {
5757
5798
  asc = literalValue(start) <= literalValue(end);
5758
5799
  if ("StringLiteral" === start.subtype && start.subtype === end.subtype) {
5759
- startRef = literalValue(start).charCodeAt(0).toString();
5800
+ const startChar = literalValue(start).charCodeAt(0).toString();
5801
+ startRef = {
5802
+ type: "Literal",
5803
+ subtype: "NumericLiteral",
5804
+ raw: startChar,
5805
+ children: [startChar]
5806
+ };
5760
5807
  endRef = literalValue(end).charCodeAt(0).toString();
5761
5808
  }
5762
- } else {
5809
+ } else if (!stepExp) {
5763
5810
  ascRef = makeRef("asc");
5764
5811
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
5765
5812
  }
5813
+ if (!left.inclusive) {
5814
+ startRef = [
5815
+ makeLeftHandSideExpression(startRef),
5816
+ " + ",
5817
+ stepRef
5818
+ ];
5819
+ }
5766
5820
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
5767
5821
  let names = forDeclaration?.names ?? [];
5768
5822
  if (forDeclaration != null) {
@@ -5774,7 +5828,7 @@ function forRange(open, forDeclaration, range, stepExp, close) {
5774
5828
  varAssign = [...trimFirstSpace(varName), " = "];
5775
5829
  varLet = [",", ...varName, " = ", counterRef];
5776
5830
  } else {
5777
- const value = "StringLiteral" === start.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5831
+ const value = "StringLiteral" === start?.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5778
5832
  blockPrefix = [
5779
5833
  ["", [forDeclaration, " = ", value], ";"]
5780
5834
  ];
@@ -5845,7 +5899,8 @@ function processForInOf($0) {
5845
5899
  blockPrefix.push(["", {
5846
5900
  type: "Declaration",
5847
5901
  children: [declaration, " = ", trimFirstSpace(expRef2), "[", counterRef, "]"],
5848
- names: assignmentNames
5902
+ names: assignmentNames,
5903
+ implicitLift: true
5849
5904
  }, ";"]);
5850
5905
  declaration = {
5851
5906
  type: "Declaration",
@@ -6933,19 +6988,19 @@ function lastAccessInCallExpression(exp) {
6933
6988
  }
6934
6989
  function convertMethodToFunction(method) {
6935
6990
  const { signature, block } = method;
6936
- let { modifier, optional } = signature;
6937
- if (optional)
6991
+ const { async, modifier, optional } = signature;
6992
+ if (optional) {
6938
6993
  return;
6939
- if (modifier) {
6940
- if (modifier.get || modifier.set) {
6941
- return;
6942
- } else if (modifier.async) {
6943
- modifier = [modifier.children[0][0], " function ", ...modifier.children.slice(1)];
6944
- } else {
6945
- modifier = ["function ", ...modifier.children || []];
6994
+ }
6995
+ if (modifier?.get || modifier?.set) {
6996
+ return;
6997
+ }
6998
+ const func = ["function "];
6999
+ if (async != null) {
7000
+ func.unshift(async);
7001
+ if (async.length && !async[async.length - 1]?.length) {
7002
+ async.push(" ");
6946
7003
  }
6947
- } else {
6948
- modifier = "function ";
6949
7004
  }
6950
7005
  return {
6951
7006
  ...signature,
@@ -6953,7 +7008,7 @@ function convertMethodToFunction(method) {
6953
7008
  signature,
6954
7009
  type: "FunctionExpression",
6955
7010
  children: [
6956
- [modifier, ...signature.children.slice(1)],
7011
+ [...func, ...signature.children.slice(1)],
6957
7012
  block
6958
7013
  ],
6959
7014
  block
@@ -7067,7 +7122,8 @@ function makeGetterMethod(name, ws, value, returnType, block, kind = { token: "g
7067
7122
  block = {
7068
7123
  type: "BlockStatement",
7069
7124
  expressions,
7070
- children: ["{ ", expressions, " }"]
7125
+ children: ["{ ", expressions, " }"],
7126
+ bare: false
7071
7127
  };
7072
7128
  }
7073
7129
  if (autoReturn) {
@@ -7780,7 +7836,13 @@ function processPlaceholders(statements) {
7780
7836
  }
7781
7837
  } else {
7782
7838
  let child;
7839
+ let implicitLift;
7783
7840
  ({ ancestor, child } = findAncestor(exp, (ancestor2, child2) => {
7841
+ const prevImplicitLift = implicitLift;
7842
+ ({ implicitLift } = ancestor2);
7843
+ if (prevImplicitLift) {
7844
+ return;
7845
+ }
7784
7846
  const { type } = ancestor2;
7785
7847
  if (type === "IfStatement") {
7786
7848
  liftedIfs.add(ancestor2);
@@ -7866,7 +7928,7 @@ function processPlaceholders(statements) {
7866
7928
  const placeholder = placeholders[i15];
7867
7929
  typeSuffix ??= placeholder.typeSuffix;
7868
7930
  let ref26;
7869
- replaceNode((ref26 = placeholder.children)[ref26.length - 1], ref);
7931
+ (ref26 = placeholder.children)[ref26.length - 1] = ref;
7870
7932
  }
7871
7933
  const { parent } = ancestor;
7872
7934
  const body = maybeUnwrap(ancestor);
@@ -8156,6 +8218,7 @@ var grammar = {
8156
8218
  LeftHandSideExpression,
8157
8219
  CallExpression,
8158
8220
  CallExpressionRest,
8221
+ ExplicitCallExpressionRest,
8159
8222
  OptionalShorthand,
8160
8223
  OptionalDot,
8161
8224
  NonNullAssertion,
@@ -8439,8 +8502,8 @@ var grammar = {
8439
8502
  Debugger,
8440
8503
  MaybeNestedNonPipelineExpression,
8441
8504
  MaybeNestedPostfixedExpression,
8505
+ NestedPostfixedExpressionNoTrailing,
8442
8506
  MaybeNestedExpression,
8443
- NestedExpression,
8444
8507
  MaybeParenNestedExpression,
8445
8508
  ImportDeclaration,
8446
8509
  ImpliedImport,
@@ -8492,6 +8555,8 @@ var grammar = {
8492
8555
  StringLiteral,
8493
8556
  DoubleStringCharacters,
8494
8557
  SingleStringCharacters,
8558
+ TripleDoubleStringContents,
8559
+ CoffeeTripleDoubleStringCharacters,
8495
8560
  TripleDoubleStringCharacters,
8496
8561
  TripleSingleStringCharacters,
8497
8562
  CoffeeStringSubstitution,
@@ -9162,60 +9227,61 @@ var $R44 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy")
9162
9227
  var $R45 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
9163
9228
  var $R46 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
9164
9229
  var $R47 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
9165
- var $R48 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9166
- var $R49 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9167
- var $R50 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9168
- var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9169
- var $R52 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9170
- var $R53 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9171
- var $R54 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
9172
- var $R55 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9173
- var $R56 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9174
- var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9175
- var $R58 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9176
- var $R59 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9177
- var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9178
- var $R61 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9179
- var $R62 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9180
- var $R63 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9181
- var $R64 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9182
- var $R65 = (0, import_lib2.$R)(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
9183
- var $R66 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9184
- var $R67 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9185
- var $R68 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9186
- var $R69 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9187
- var $R70 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9188
- var $R71 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9189
- var $R72 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9190
- var $R73 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9191
- var $R74 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9192
- var $R75 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9193
- var $R76 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9194
- var $R77 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9195
- var $R78 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9196
- var $R79 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9197
- var $R80 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9198
- var $R81 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9199
- var $R82 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9200
- var $R83 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9201
- var $R84 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9202
- var $R85 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9203
- var $R86 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9204
- var $R87 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9205
- var $R88 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9206
- var $R89 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9207
- var $R90 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9208
- var $R91 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9209
- var $R92 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9210
- var $R93 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9211
- var $R94 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9212
- var $R95 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9213
- var $R96 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9214
- var $R97 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9215
- var $R98 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9216
- var $R99 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9217
- var $R100 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9218
- var $R101 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9230
+ var $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy"));
9231
+ var $R49 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9232
+ var $R50 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9233
+ var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9234
+ var $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9235
+ var $R53 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9236
+ var $R54 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9237
+ var $R55 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy"));
9238
+ var $R56 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9239
+ var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9240
+ var $R58 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9241
+ var $R59 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9242
+ var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9243
+ var $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9244
+ var $R62 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9245
+ var $R63 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9246
+ var $R64 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9247
+ var $R65 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9248
+ var $R66 = (0, import_lib2.$R)(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
9249
+ var $R67 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9250
+ var $R68 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9251
+ var $R69 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9252
+ var $R70 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9253
+ var $R71 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9254
+ var $R72 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9255
+ var $R73 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9256
+ var $R74 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9257
+ var $R75 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9258
+ var $R76 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9259
+ var $R77 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9260
+ var $R78 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9261
+ var $R79 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9262
+ var $R80 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9263
+ var $R81 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9264
+ var $R82 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9265
+ var $R83 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9266
+ var $R84 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9267
+ var $R85 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9268
+ var $R86 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9269
+ var $R87 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9270
+ var $R88 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9271
+ var $R89 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9272
+ var $R90 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9273
+ var $R91 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9274
+ var $R92 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9275
+ var $R93 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9276
+ var $R94 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9277
+ var $R95 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9278
+ var $R96 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9279
+ var $R97 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9280
+ var $R98 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9281
+ var $R99 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9282
+ var $R100 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9283
+ var $R101 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9284
+ var $R102 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9219
9285
  var Program$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Reset, Init, (0, import_lib2.$E)(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9220
9286
  var reset = $1;
9221
9287
  var init = $2;
@@ -9453,7 +9519,7 @@ var ArgumentsWithTrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib
9453
9519
  function ArgumentsWithTrailingCallExpressions(ctx, state2) {
9454
9520
  return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingCallExpressions", ArgumentsWithTrailingCallExpressions$0);
9455
9521
  }
9456
- var TrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(CallExpressionRest), (0, import_lib2.$E)(IndentedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
9522
+ var TrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(ExplicitCallExpressionRest), (0, import_lib2.$E)(IndentedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
9457
9523
  $1 = $1.flat();
9458
9524
  if (!$1.length && !$2)
9459
9525
  return $skip;
@@ -9549,10 +9615,10 @@ var NestedArgumentList$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent,
9549
9615
  function NestedArgumentList(ctx, state2) {
9550
9616
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedArgumentList", NestedArgumentList$0);
9551
9617
  }
9552
- var NestedArgument$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Nested, (0, import_lib2.$N)(Bullet), SingleLineArgumentExpressions, ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
9553
- var indent = $1;
9554
- var args = $3;
9555
- var comma = $4;
9618
+ var NestedArgument$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(NestedImplicitPropertyDefinition), Nested, (0, import_lib2.$N)(Bullet), SingleLineArgumentExpressions, ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9619
+ var indent = $2;
9620
+ var args = $4;
9621
+ var comma = $5;
9556
9622
  let [arg0, ...rest] = args;
9557
9623
  arg0 = prepend(indent, arg0);
9558
9624
  return [arg0, ...rest, comma];
@@ -10742,6 +10808,32 @@ var CallExpressionRest$$ = [CallExpressionRest$0, CallExpressionRest$1, CallExpr
10742
10808
  function CallExpressionRest(ctx, state2) {
10743
10809
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CallExpressionRest", CallExpressionRest$$);
10744
10810
  }
10811
+ var ExplicitCallExpressionRest$0 = MemberExpressionRest;
10812
+ var ExplicitCallExpressionRest$1 = (0, import_lib2.$T)((0, import_lib2.$S)(TypeArguments, (0, import_lib2.$N)((0, import_lib2.$C)(IdentifierName, NumericLiteral))), function(value) {
10813
+ return value[0];
10814
+ });
10815
+ var ExplicitCallExpressionRest$2 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R8, "ExplicitCallExpressionRest /(?=['\"`])/"), (0, import_lib2.$C)(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
10816
+ var literal = $2;
10817
+ if (literal.type === "StringLiteral") {
10818
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
10819
+ }
10820
+ return literal;
10821
+ });
10822
+ var ExplicitCallExpressionRest$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(OptionalShorthand), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
10823
+ var optional = $1;
10824
+ var call = $2;
10825
+ if (!optional)
10826
+ return call;
10827
+ return {
10828
+ ...call,
10829
+ children: [optional, ...call.children],
10830
+ optional
10831
+ };
10832
+ });
10833
+ var ExplicitCallExpressionRest$$ = [ExplicitCallExpressionRest$0, ExplicitCallExpressionRest$1, ExplicitCallExpressionRest$2, ExplicitCallExpressionRest$3];
10834
+ function ExplicitCallExpressionRest(ctx, state2) {
10835
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ExplicitCallExpressionRest", ExplicitCallExpressionRest$$);
10836
+ }
10745
10837
  var OptionalShorthand$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R9, "OptionalShorthand /(?=[\\/?])/"), (0, import_lib2.$Q)(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
10746
10838
  var comments = $2;
10747
10839
  var q = $3;
@@ -11379,7 +11471,8 @@ var NWBindingIdentifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(At, AtIdent
11379
11471
  return {
11380
11472
  type: "AtBinding",
11381
11473
  children: [ref],
11382
- ref
11474
+ ref,
11475
+ names: []
11383
11476
  };
11384
11477
  });
11385
11478
  var NWBindingIdentifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Hash, AtIdentifierRef), function($skip, $loc, $0, $1, $2) {
@@ -11388,7 +11481,8 @@ var NWBindingIdentifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Hash, AtIde
11388
11481
  return {
11389
11482
  type: "AtBinding",
11390
11483
  children: [ref],
11391
- ref
11484
+ ref,
11485
+ names: []
11392
11486
  };
11393
11487
  });
11394
11488
  var NWBindingIdentifier$2 = Identifier;
@@ -12697,7 +12791,8 @@ var RangeDots$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(DotDotDot), function(
12697
12791
  type: "RangeDots",
12698
12792
  left: { inclusive: true, raw: "" },
12699
12793
  right: { inclusive: false, raw: "." },
12700
- increasing: void 0,
12794
+ // Ranges are increasing by default, but adaptive in coffeeCompat mode
12795
+ increasing: config.coffeeRange ? void 0 : true,
12701
12796
  triple: true,
12702
12797
  children: []
12703
12798
  };
@@ -12708,7 +12803,7 @@ var RangeDots$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OptionalRangeEnd, (0,
12708
12803
  var dots = $3;
12709
12804
  var ws2 = $4;
12710
12805
  var right = $5;
12711
- const increasing = left.increasing ?? right.increasing;
12806
+ const increasing = left.increasing ?? right.increasing ?? (config.coffeeRange ? void 0 : true);
12712
12807
  if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
12713
12808
  const error = {
12714
12809
  type: "Error",
@@ -13504,52 +13599,23 @@ var MethodDefinition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Abstract, __,
13504
13599
  abstract: true,
13505
13600
  signature,
13506
13601
  parameters: signature.parameters,
13602
+ async: signature.async,
13603
+ generator: signature.generator,
13507
13604
  ts: true
13508
13605
  };
13509
13606
  });
13510
13607
  var MethodDefinition$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(MethodSignature, (0, import_lib2.$N)((0, import_lib2.$C)(PropertyAccess, ExplicitPropertyGlob, UnaryPostfix, NonNullAssertion)), (0, import_lib2.$E)(BracedBlock)), function($skip, $loc, $0, $1, $2, $3) {
13511
13608
  var signature = $1;
13512
13609
  var block = $3;
13513
- let children = $0;
13514
- let generatorPos = 0;
13515
- let { modifier } = signature;
13516
- if (hasAwait(block)) {
13517
- generatorPos++;
13518
- children = children.slice();
13519
- if (modifier?.get || modifier?.set) {
13520
- children.push({
13521
- type: "Error",
13522
- message: "Getters and setters cannot be async"
13523
- });
13524
- } else if (modifier?.async) {
13525
- } else {
13526
- children.unshift("async ");
13527
- modifier = { ...modifier, async: true };
13528
- signature = { ...signature, modifier };
13529
- }
13530
- }
13531
- if (hasYield(block)) {
13532
- if (children === $0)
13533
- children = children.slice();
13534
- if (modifier?.get || modifier?.set) {
13535
- children.push({
13536
- type: "Error",
13537
- message: "Getters and setters cannot be generators"
13538
- });
13539
- } else if (modifier?.generator) {
13540
- } else {
13541
- children.splice(generatorPos, 0, "*");
13542
- modifier = { ...modifier, generator: true };
13543
- signature = { ...signature, modifier };
13544
- }
13545
- }
13546
13610
  return {
13547
13611
  type: "MethodDefinition",
13548
- children,
13612
+ children: $0,
13549
13613
  name: signature.name,
13550
13614
  signature,
13551
13615
  block,
13552
- parameters: signature.parameters
13616
+ parameters: signature.parameters,
13617
+ async: signature.async,
13618
+ generator: signature.generator
13553
13619
  };
13554
13620
  });
13555
13621
  var MethodDefinition$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(GetOrSet, (0, import_lib2.$E)(_), ForbidIndentedApplication, (0, import_lib2.$E)((0, import_lib2.$S)(MemberBase, (0, import_lib2.$Q)(CallExpressionRest), (0, import_lib2.$E)(ReturnTypeSuffix))), RestoreIndentedApplication, (0, import_lib2.$E)(BracedBlock)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
@@ -13632,36 +13698,38 @@ function MethodDefinition(ctx, state2) {
13632
13698
  }
13633
13699
  var MethodModifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(GetOrSet, (0, import_lib2.$E)(_), (0, import_lib2.$Y)(ClassElementName)), function($skip, $loc, $0, $1, $2, $3) {
13634
13700
  var kind = $1;
13701
+ var ws = $2;
13635
13702
  return {
13636
- type: "MethodModifier",
13637
- async: false,
13638
- generator: false,
13639
- get: kind.token === "get",
13640
- set: kind.token === "set",
13641
- children: $0
13642
- };
13643
- });
13644
- var MethodModifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$S)(Async, __), (0, import_lib2.$E)((0, import_lib2.$S)(Star, __))), function($skip, $loc, $0, $1, $2) {
13645
- return {
13646
- type: "MethodModifier",
13647
- async: true,
13648
- get: false,
13649
- set: false,
13650
- generator: !!$2,
13651
- children: $0
13703
+ // no async or generator, because getters and setters can't be
13704
+ modifier: {
13705
+ async: false,
13706
+ generator: false,
13707
+ get: kind.token === "get",
13708
+ set: kind.token === "set"
13709
+ },
13710
+ children: [kind, ws]
13652
13711
  };
13653
13712
  });
13654
- var MethodModifier$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(Star, __), function($skip, $loc, $0, $1, $2) {
13713
+ var MethodModifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)(Async, __)), (0, import_lib2.$E)((0, import_lib2.$S)(Star, __))), function($skip, $loc, $0, $1, $2) {
13714
+ var async = $1;
13715
+ var generator = $2;
13716
+ if (!async)
13717
+ async = [];
13718
+ if (!generator)
13719
+ generator = [];
13655
13720
  return {
13656
- type: "MethodModifier",
13657
- async: false,
13658
- get: false,
13659
- set: false,
13660
- generator: true,
13661
- children: $0
13721
+ async,
13722
+ generator,
13723
+ modifier: {
13724
+ async: !!async.length,
13725
+ get: false,
13726
+ set: false,
13727
+ generator: !!generator.length
13728
+ },
13729
+ children: [async, generator]
13662
13730
  };
13663
13731
  });
13664
- var MethodModifier$$ = [MethodModifier$0, MethodModifier$1, MethodModifier$2];
13732
+ var MethodModifier$$ = [MethodModifier$0, MethodModifier$1];
13665
13733
  function MethodModifier(ctx, state2) {
13666
13734
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MethodModifier", MethodModifier$$);
13667
13735
  }
@@ -13676,10 +13744,12 @@ var MethodSignature$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(ConstructorShor
13676
13744
  parameters
13677
13745
  };
13678
13746
  });
13679
- var MethodSignature$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(MethodModifier), ClassElementName, (0, import_lib2.$E)(_), (0, import_lib2.$E)(QuestionMark), (0, import_lib2.$E)(_), NonEmptyParameters, (0, import_lib2.$E)(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13747
+ var MethodSignature$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(MethodModifier, ClassElementName, (0, import_lib2.$E)(_), (0, import_lib2.$E)(QuestionMark), (0, import_lib2.$E)(_), NonEmptyParameters, (0, import_lib2.$E)(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13680
13748
  var modifier = $1;
13681
13749
  var name = $2;
13750
+ var ws1 = $3;
13682
13751
  var optional = $4;
13752
+ var ws2 = $5;
13683
13753
  var parameters = $6;
13684
13754
  var returnType = $7;
13685
13755
  if (name.name) {
@@ -13688,14 +13758,15 @@ var MethodSignature$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2
13688
13758
  name = name.token.match(/^(?:"|')/) ? name.token.slice(1, -1) : name.token;
13689
13759
  }
13690
13760
  if (optional)
13691
- $0[3] = optional = { ...optional, ts: true };
13692
- modifier = modifier || {};
13761
+ optional = { ...optional, ts: true };
13693
13762
  return {
13694
13763
  type: "MethodSignature",
13695
- children: $0,
13764
+ children: [...modifier.children, name, ws1, optional, ws2, parameters, returnType],
13765
+ async: modifier.async,
13766
+ generator: modifier.generator,
13696
13767
  name,
13697
13768
  optional,
13698
- modifier,
13769
+ modifier: modifier.modifier,
13699
13770
  // get/set/async/generator
13700
13771
  returnType,
13701
13772
  parameters
@@ -15696,48 +15767,65 @@ function Debugger(ctx, state2) {
15696
15767
  return (0, import_lib2.$EVENT)(ctx, state2, "Debugger", Debugger$0);
15697
15768
  }
15698
15769
  var MaybeNestedNonPipelineExpression$0 = NestedBulletedArray;
15699
- var MaybeNestedNonPipelineExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, NonPipelineExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15700
- if ($3)
15701
- return $3;
15702
- return $skip;
15770
+ var MaybeNestedNonPipelineExpression$1 = NestedImplicitObjectLiteral;
15771
+ var MaybeNestedNonPipelineExpression$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, NonPipelineExpression)), PopIndent, (0, import_lib2.$E)(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2, $3, $4) {
15772
+ var expression = $2;
15773
+ var trailing = $4;
15774
+ if (!expression)
15775
+ return $skip;
15776
+ if (!trailing)
15777
+ return expression;
15778
+ return [expression, trailing];
15703
15779
  });
15704
- var MaybeNestedNonPipelineExpression$2 = NonPipelineExpression;
15705
- var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2];
15780
+ var MaybeNestedNonPipelineExpression$3 = NonPipelineExpression;
15781
+ var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2, MaybeNestedNonPipelineExpression$3];
15706
15782
  function MaybeNestedNonPipelineExpression(ctx, state2) {
15707
15783
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedNonPipelineExpression", MaybeNestedNonPipelineExpression$$);
15708
15784
  }
15709
15785
  var MaybeNestedPostfixedExpression$0 = NestedBulletedArray;
15710
- var MaybeNestedPostfixedExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, PostfixedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15711
- if ($3)
15712
- return $3;
15713
- return $skip;
15786
+ var MaybeNestedPostfixedExpression$1 = NestedImplicitObjectLiteral;
15787
+ var MaybeNestedPostfixedExpression$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, PostfixedExpression)), PopIndent, (0, import_lib2.$E)(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2, $3, $4) {
15788
+ var expression = $2;
15789
+ var trailing = $4;
15790
+ if (!expression)
15791
+ return $skip;
15792
+ if (!trailing)
15793
+ return expression;
15794
+ return [expression, trailing];
15714
15795
  });
15715
- var MaybeNestedPostfixedExpression$2 = PostfixedExpression;
15716
- var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2];
15796
+ var MaybeNestedPostfixedExpression$3 = PostfixedExpression;
15797
+ var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2, MaybeNestedPostfixedExpression$3];
15717
15798
  function MaybeNestedPostfixedExpression(ctx, state2) {
15718
15799
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedPostfixedExpression", MaybeNestedPostfixedExpression$$);
15719
15800
  }
15801
+ var NestedPostfixedExpressionNoTrailing$0 = NestedBulletedArray;
15802
+ var NestedPostfixedExpressionNoTrailing$1 = NestedImplicitObjectLiteral;
15803
+ var NestedPostfixedExpressionNoTrailing$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, PostfixedExpression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15804
+ var expression = $2;
15805
+ if (!expression)
15806
+ return $skip;
15807
+ return expression;
15808
+ });
15809
+ var NestedPostfixedExpressionNoTrailing$$ = [NestedPostfixedExpressionNoTrailing$0, NestedPostfixedExpressionNoTrailing$1, NestedPostfixedExpressionNoTrailing$2];
15810
+ function NestedPostfixedExpressionNoTrailing(ctx, state2) {
15811
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedPostfixedExpressionNoTrailing", NestedPostfixedExpressionNoTrailing$$);
15812
+ }
15720
15813
  var MaybeNestedExpression$0 = NestedBulletedArray;
15721
- var MaybeNestedExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, Expression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15722
- if ($3)
15723
- return $3;
15724
- return $skip;
15814
+ var MaybeNestedExpression$1 = NestedImplicitObjectLiteral;
15815
+ var MaybeNestedExpression$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, Expression)), PopIndent, (0, import_lib2.$E)(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2, $3, $4) {
15816
+ var expression = $2;
15817
+ var trailing = $4;
15818
+ if (!expression)
15819
+ return $skip;
15820
+ if (!trailing)
15821
+ return expression;
15822
+ return [expression, trailing];
15725
15823
  });
15726
- var MaybeNestedExpression$2 = Expression;
15727
- var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2];
15824
+ var MaybeNestedExpression$3 = Expression;
15825
+ var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2, MaybeNestedExpression$3];
15728
15826
  function MaybeNestedExpression(ctx, state2) {
15729
15827
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedExpression", MaybeNestedExpression$$);
15730
15828
  }
15731
- var NestedExpression$0 = NestedBulletedArray;
15732
- var NestedExpression$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$E)((0, import_lib2.$S)(Nested, Expression)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15733
- if ($3)
15734
- return $3;
15735
- return $skip;
15736
- });
15737
- var NestedExpression$$ = [NestedExpression$0, NestedExpression$1];
15738
- function NestedExpression(ctx, state2) {
15739
- return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedExpression", NestedExpression$$);
15740
- }
15741
15829
  var MaybeParenNestedExpression$0 = (0, import_lib2.$T)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), PostfixStatement, NoBlock)), function(value) {
15742
15830
  return "";
15743
15831
  });
@@ -15747,7 +15835,7 @@ var MaybeParenNestedExpression$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, i
15747
15835
  var MaybeParenNestedExpression$2 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), (0, import_lib2.$C)(ArrayLiteral, ObjectLiteral)), function(value) {
15748
15836
  return value[1];
15749
15837
  });
15750
- var MaybeParenNestedExpression$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), InsertSpace, InsertOpenParen, PushIndent, (0, import_lib2.$S)(Nested, Expression), PopIndent, InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15838
+ var MaybeParenNestedExpression$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), InsertSpace, InsertOpenParen, PushIndent, (0, import_lib2.$S)(Nested, Expression), PopIndent, (0, import_lib2.$E)(AllowedTrailingCallExpressions), InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
15751
15839
  var exp = $5;
15752
15840
  if (!exp)
15753
15841
  return $skip;
@@ -16456,13 +16544,29 @@ var SingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R4
16456
16544
  function SingleStringCharacters(ctx, state2) {
16457
16545
  return (0, import_lib2.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
16458
16546
  }
16459
- var TripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R47, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16547
+ var TripleDoubleStringContents$0 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, (0, import_lib2.$Q)((0, import_lib2.$C)(CoffeeTripleDoubleStringCharacters, CoffeeStringSubstitution))), function(value) {
16548
+ return value[1];
16549
+ });
16550
+ var TripleDoubleStringContents$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeInterpolationEnabled), TripleDoubleStringCharacters), function(value) {
16551
+ return [value[1]];
16552
+ });
16553
+ var TripleDoubleStringContents$$ = [TripleDoubleStringContents$0, TripleDoubleStringContents$1];
16554
+ function TripleDoubleStringContents(ctx, state2) {
16555
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "TripleDoubleStringContents", TripleDoubleStringContents$$);
16556
+ }
16557
+ var CoffeeTripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R47, 'CoffeeTripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16558
+ return { $loc, token: $0 };
16559
+ });
16560
+ function CoffeeTripleDoubleStringCharacters(ctx, state2) {
16561
+ return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeTripleDoubleStringCharacters", CoffeeTripleDoubleStringCharacters$0);
16562
+ }
16563
+ var TripleDoubleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R48, 'TripleDoubleStringCharacters /(?:"(?!"")|\\\\.|[^"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16460
16564
  return { $loc, token: $0 };
16461
16565
  });
16462
16566
  function TripleDoubleStringCharacters(ctx, state2) {
16463
16567
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
16464
16568
  }
16465
- var TripleSingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R48, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16569
+ var TripleSingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R49, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16466
16570
  return { $loc, token: $0 };
16467
16571
  });
16468
16572
  function TripleSingleStringCharacters(ctx, state2) {
@@ -16485,7 +16589,7 @@ var CoffeeInterpolatedDoubleQuotedString$0 = (0, import_lib2.$TS)((0, import_lib
16485
16589
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
16486
16590
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
16487
16591
  }
16488
- var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R49, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16592
+ var CoffeeDoubleQuotedStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R50, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16489
16593
  return { $loc, token: $0 };
16490
16594
  });
16491
16595
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -16505,7 +16609,7 @@ var RegularExpressionClass$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, i
16505
16609
  function RegularExpressionClass(ctx, state2) {
16506
16610
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
16507
16611
  }
16508
- var RegularExpressionClassCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R50, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16612
+ var RegularExpressionClassCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16509
16613
  return { $loc, token: $0 };
16510
16614
  });
16511
16615
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -16556,13 +16660,13 @@ function HeregexBody(ctx, state2) {
16556
16660
  return (0, import_lib2.$EVENT)(ctx, state2, "HeregexBody", HeregexBody$0);
16557
16661
  }
16558
16662
  var HeregexPart$0 = RegularExpressionClass;
16559
- var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeStringSubstitution), function(value) {
16560
- return { "type": "Substitution", "children": value[0] };
16663
+ var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, CoffeeStringSubstitution), function(value) {
16664
+ return { "type": "Substitution", "children": value[1] };
16561
16665
  });
16562
16666
  var HeregexPart$2 = (0, import_lib2.$T)((0, import_lib2.$S)(TemplateSubstitution), function(value) {
16563
16667
  return { "type": "Substitution", "children": value[0] };
16564
16668
  });
16565
- var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16669
+ var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16566
16670
  let token = $0;
16567
16671
  switch ($0[1]) {
16568
16672
  case "\n":
@@ -16580,26 +16684,28 @@ var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, "Heregex
16580
16684
  var HeregexPart$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(HeregexComment), function($skip, $loc, $0, $1) {
16581
16685
  return { $loc, token: "" };
16582
16686
  });
16583
- var HeregexPart$5 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16687
+ var HeregexPart$5 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R53, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16584
16688
  return { $loc, token: "" };
16585
16689
  });
16586
- var HeregexPart$6 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R53, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16690
+ var HeregexPart$6 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R54, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16587
16691
  return { $loc, token: "\\/" };
16588
16692
  });
16589
- var HeregexPart$7 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R54, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16693
+ var HeregexPart$7 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R55, "HeregexPart /[^[\\/\\s#$\\\\]+|[#$]/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16590
16694
  return { $loc, token: $0 };
16591
16695
  });
16592
16696
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
16593
16697
  function HeregexPart(ctx, state2) {
16594
16698
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexPart", HeregexPart$$);
16595
16699
  }
16596
- var HeregexComment$0 = JSSingleLineComment;
16597
- var HeregexComment$1 = CoffeeSingleLineComment;
16700
+ var HeregexComment$0 = (0, import_lib2.$S)((0, import_lib2.$N)(CoffeeDivEnabled), JSSingleLineComment);
16701
+ var HeregexComment$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeCommentEnabled, CoffeeSingleLineComment), function(value) {
16702
+ return value[1];
16703
+ });
16598
16704
  var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
16599
16705
  function HeregexComment(ctx, state2) {
16600
16706
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
16601
16707
  }
16602
- var RegularExpressionBody$0 = (0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R55, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib2.$Q)(RegExpPart));
16708
+ var RegularExpressionBody$0 = (0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R56, "RegularExpressionBody /[*\\/\\r\\n]/"))), (0, import_lib2.$Q)(RegExpPart));
16603
16709
  function RegularExpressionBody(ctx, state2) {
16604
16710
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
16605
16711
  }
@@ -16609,15 +16715,15 @@ var RegExpPart$$ = [RegExpPart$0, RegExpPart$1];
16609
16715
  function RegExpPart(ctx, state2) {
16610
16716
  return (0, import_lib2.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
16611
16717
  }
16612
- var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R56, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16718
+ var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16613
16719
  function RegExpCharacter(ctx, state2) {
16614
16720
  return (0, import_lib2.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
16615
16721
  }
16616
- var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16722
+ var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R58, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16617
16723
  function RegularExpressionFlags(ctx, state2) {
16618
16724
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
16619
16725
  }
16620
- var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R58, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16726
+ var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R59, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16621
16727
  return value[1];
16622
16728
  });
16623
16729
  function TemplateLiteral(ctx, state2) {
@@ -16632,7 +16738,7 @@ var _TemplateLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Backtick, (0,
16632
16738
  children: $0
16633
16739
  };
16634
16740
  });
16635
- var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, (0, import_lib2.$Q)((0, import_lib2.$C)(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16741
+ var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, TripleDoubleStringContents, TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16636
16742
  return dedentBlockSubstitutions($0, config.tab);
16637
16743
  });
16638
16744
  var _TemplateLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
@@ -16657,28 +16763,28 @@ var TemplateSubstitution$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Substituti
16657
16763
  function TemplateSubstitution(ctx, state2) {
16658
16764
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
16659
16765
  }
16660
- var TemplateCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R59, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16766
+ var TemplateCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R60, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16661
16767
  return { $loc, token: $0 };
16662
16768
  });
16663
16769
  function TemplateCharacters(ctx, state2) {
16664
16770
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
16665
16771
  }
16666
- var TemplateBlockCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R60, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16772
+ var TemplateBlockCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R61, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16667
16773
  return { $loc, token: $0 };
16668
16774
  });
16669
16775
  function TemplateBlockCharacters(ctx, state2) {
16670
16776
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
16671
16777
  }
16672
- var ReservedWord$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R61, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
16673
- var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R62, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16674
- var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16675
- var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16676
- var ReservedWord$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
16778
+ var ReservedWord$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R62, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
16779
+ var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16780
+ var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16781
+ var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16782
+ var ReservedWord$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R66, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
16677
16783
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
16678
16784
  function ReservedWord(ctx, state2) {
16679
16785
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
16680
16786
  }
16681
- var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R66, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16787
+ var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R67, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16682
16788
  return value[1];
16683
16789
  });
16684
16790
  function Comment(ctx, state2) {
@@ -16696,7 +16802,7 @@ var SingleLineComment$$ = [SingleLineComment$0, SingleLineComment$1];
16696
16802
  function SingleLineComment(ctx, state2) {
16697
16803
  return (0, import_lib2.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
16698
16804
  }
16699
- var JSSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R67, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16805
+ var JSSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R68, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16700
16806
  return { type: "Comment", $loc, token: $0 };
16701
16807
  });
16702
16808
  function JSSingleLineComment(ctx, state2) {
@@ -16708,30 +16814,30 @@ var MultiLineComment$$ = [MultiLineComment$0, MultiLineComment$1];
16708
16814
  function MultiLineComment(ctx, state2) {
16709
16815
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
16710
16816
  }
16711
- 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)($R68, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16817
+ 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)($R69, "JSMultiLineComment /./"))), (0, import_lib2.$EXPECT)($L139, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
16712
16818
  return { type: "Comment", $loc, token: $1 };
16713
16819
  });
16714
16820
  function JSMultiLineComment(ctx, state2) {
16715
16821
  return (0, import_lib2.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
16716
16822
  }
16717
- var CoffeeSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R69, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16823
+ var CoffeeSingleLineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R70, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16718
16824
  return { type: "Comment", $loc, token: `//${$1}` };
16719
16825
  });
16720
16826
  function CoffeeSingleLineComment(ctx, state2) {
16721
16827
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
16722
16828
  }
16723
- var CoffeeMultiLineComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeHereCommentStart, (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R70, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
16829
+ var CoffeeMultiLineComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(CoffeeHereCommentStart, (0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R71, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
16724
16830
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
16725
16831
  return { type: "Comment", $loc, token: `/*${$2}*/` };
16726
16832
  });
16727
16833
  function CoffeeMultiLineComment(ctx, state2) {
16728
16834
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
16729
16835
  }
16730
- var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R71, "CoffeeHereCommentStart /###(?!#)/"));
16836
+ var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R72, "CoffeeHereCommentStart /###(?!#)/"));
16731
16837
  function CoffeeHereCommentStart(ctx, state2) {
16732
16838
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
16733
16839
  }
16734
- var InlineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R72, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16840
+ var InlineComment$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R73, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16735
16841
  return { $loc, token: $0 };
16736
16842
  });
16737
16843
  function InlineComment(ctx, state2) {
@@ -16745,7 +16851,7 @@ var TrailingComment$0 = (0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_l
16745
16851
  function TrailingComment(ctx, state2) {
16746
16852
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
16747
16853
  }
16748
- var _$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R73, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib2.$P)((0, import_lib2.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
16854
+ var _$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R74, "_ /(?=[ \\t\\/\\\\])/"), (0, import_lib2.$P)((0, import_lib2.$C)(NonNewlineWhitespace, InlineComment))), function(value) {
16749
16855
  return value[1];
16750
16856
  });
16751
16857
  function _(ctx, state2) {
@@ -16768,7 +16874,7 @@ var Trimmed_$0 = (0, import_lib2.$TV)(_, function($skip, $loc, $0, $1) {
16768
16874
  function Trimmed_(ctx, state2) {
16769
16875
  return (0, import_lib2.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
16770
16876
  }
16771
- var __$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R74, "__ /(?=\\s|\\/|#)/"), (0, import_lib2.$Q)((0, import_lib2.$C)(Whitespace, Comment))), function(value) {
16877
+ var __$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R75, "__ /(?=\\s|\\/|#)/"), (0, import_lib2.$Q)((0, import_lib2.$C)(Whitespace, Comment))), function(value) {
16772
16878
  return value[1];
16773
16879
  });
16774
16880
  var __$1 = (0, import_lib2.$EXPECT)($L0, '__ ""');
@@ -16776,7 +16882,7 @@ var __$$ = [__$0, __$1];
16776
16882
  function __(ctx, state2) {
16777
16883
  return (0, import_lib2.$EVENT_C)(ctx, state2, "__", __$$);
16778
16884
  }
16779
- var Whitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R52, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16885
+ var Whitespace$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R53, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16780
16886
  return { $loc, token: $0 };
16781
16887
  });
16782
16888
  function Whitespace(ctx, state2) {
@@ -16818,7 +16924,7 @@ var SemicolonDelimiter$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
16818
16924
  function SemicolonDelimiter(ctx, state2) {
16819
16925
  return (0, import_lib2.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
16820
16926
  }
16821
- var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R75, "NonIdContinue /(?!\\p{ID_Continue})/"));
16927
+ var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R76, "NonIdContinue /(?!\\p{ID_Continue})/"));
16822
16928
  function NonIdContinue(ctx, state2) {
16823
16929
  return (0, import_lib2.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
16824
16930
  }
@@ -16936,7 +17042,7 @@ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L
16936
17042
  function CoffeeSubstitutionStart(ctx, state2) {
16937
17043
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
16938
17044
  }
16939
- var Colon$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L16, 'Colon ":"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R76, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
17045
+ var Colon$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L16, 'Colon ":"'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R77, "Colon /[=:]/"))), function($skip, $loc, $0, $1, $2) {
16940
17046
  return { $loc, token: $1 };
16941
17047
  });
16942
17048
  function Colon(ctx, state2) {
@@ -16987,7 +17093,7 @@ function Do(ctx, state2) {
16987
17093
  var Dot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
16988
17094
  return { $loc, token: $1 };
16989
17095
  });
16990
- var Dot$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R77, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
17096
+ var Dot$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R78, "Dot /['\u2019]s/"), Trimmed_), function($skip, $loc, $0, $1, $2) {
16991
17097
  var ws = $2;
16992
17098
  return [
16993
17099
  { $loc, token: "." },
@@ -17120,7 +17226,7 @@ var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, i
17120
17226
  function If(ctx, state2) {
17121
17227
  return (0, import_lib2.$EVENT)(ctx, state2, "If", If$0);
17122
17228
  }
17123
- var Import$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'Import "import"'), (0, import_lib2.$Y)((0, import_lib2.$EXPECT)($R78, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17229
+ var Import$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($L15, 'Import "import"'), (0, import_lib2.$Y)((0, import_lib2.$EXPECT)($R79, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
17124
17230
  return { $loc, token: $1 };
17125
17231
  });
17126
17232
  function Import(ctx, state2) {
@@ -17478,7 +17584,7 @@ var JSXImplicitFragment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(JSXTag, (0,
17478
17584
  function JSXImplicitFragment(ctx, state2) {
17479
17585
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
17480
17586
  }
17481
- var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R79, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17587
+ var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R80, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17482
17588
  return value[1];
17483
17589
  });
17484
17590
  function JSXTag(ctx, state2) {
@@ -17625,7 +17731,7 @@ var JSXElementName$$ = [JSXElementName$0, JSXElementName$1];
17625
17731
  function JSXElementName(ctx, state2) {
17626
17732
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
17627
17733
  }
17628
- var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R80, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17734
+ var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R81, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17629
17735
  function JSXIdentifierName(ctx, state2) {
17630
17736
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
17631
17737
  }
@@ -17807,7 +17913,7 @@ var JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandS
17807
17913
  class: $2
17808
17914
  };
17809
17915
  });
17810
- var JSXAttribute$7 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R81, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib2.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
17916
+ var JSXAttribute$7 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R82, "JSXAttribute /[!+-]/")), JSXAttributeName, (0, import_lib2.$Y)(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
17811
17917
  var toggle = $1;
17812
17918
  var id = $2;
17813
17919
  const value = toggle === "+" ? "true" : "false";
@@ -17817,11 +17923,11 @@ var JSXAttribute$$ = [JSXAttribute$0, JSXAttribute$1, JSXAttribute$2, JSXAttribu
17817
17923
  function JSXAttribute(ctx, state2) {
17818
17924
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
17819
17925
  }
17820
- var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R82, "JSXAttributeSpace /[\\s>]|\\/>/"));
17926
+ var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R83, "JSXAttributeSpace /[\\s>]|\\/>/"));
17821
17927
  function JSXAttributeSpace(ctx, state2) {
17822
17928
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
17823
17929
  }
17824
- var JSXShorthandString$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R83, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17930
+ var JSXShorthandString$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R84, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17825
17931
  return quoteString($0);
17826
17932
  });
17827
17933
  var JSXShorthandString$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -17839,17 +17945,13 @@ var JSXAttributeName$$ = [JSXAttributeName$0, JSXAttributeName$1];
17839
17945
  function JSXAttributeName(ctx, state2) {
17840
17946
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeName", JSXAttributeName$$);
17841
17947
  }
17842
- var JSXAttributeInitializer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeJSXEnabled), (0, import_lib2.$E)(Whitespace), Equals, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$Q)(NonNewlineWhitespace), EOL)), InsertInlineOpenBrace, PushIndent, (0, import_lib2.$E)(PostfixedExpression), PopIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17948
+ var JSXAttributeInitializer$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeJSXEnabled), (0, import_lib2.$E)(Whitespace), Equals, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$Q)(NonNewlineWhitespace), EOL)), InsertInlineOpenBrace, NestedPostfixedExpressionNoTrailing, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
17843
17949
  var ws1 = $2;
17844
17950
  var equals = $3;
17845
- var ws2 = $4;
17846
17951
  var open = $5;
17847
- var indent = $6;
17848
- var expression = $7;
17849
- var close = $9;
17850
- if (!expression)
17851
- return $skip;
17852
- return [ws1, equals, ws2, open, indent, expression, close];
17952
+ var expression = $6;
17953
+ var close = $7;
17954
+ return [ws1, equals, open, trimFirstSpace(expression), close];
17853
17955
  });
17854
17956
  var JSXAttributeInitializer$1 = (0, import_lib2.$S)((0, import_lib2.$E)(Whitespace), Equals, (0, import_lib2.$E)(Whitespace), JSXAttributeValue);
17855
17957
  var JSXAttributeInitializer$$ = [JSXAttributeInitializer$0, JSXAttributeInitializer$1];
@@ -17868,7 +17970,7 @@ var JSXAttributeValue$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertInlineO
17868
17970
  }
17869
17971
  return [open, value, close];
17870
17972
  });
17871
- var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R84, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17973
+ var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R85, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17872
17974
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
17873
17975
  function JSXAttributeValue(ctx, state2) {
17874
17976
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -17881,7 +17983,7 @@ var InlineJSXAttributeValue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(InlineJ
17881
17983
  function InlineJSXAttributeValue(ctx, state2) {
17882
17984
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
17883
17985
  }
17884
- var InlineJSXBinaryOpRHS$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($R85, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
17986
+ var InlineJSXBinaryOpRHS$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$N)((0, import_lib2.$EXPECT)($R86, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
17885
17987
  var op = $2;
17886
17988
  var rhs = $3;
17887
17989
  return [[], op, [], rhs];
@@ -17898,7 +18000,7 @@ var InlineJSXUnaryExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, im
17898
18000
  function InlineJSXUnaryExpression(ctx, state2) {
17899
18001
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
17900
18002
  }
17901
- var InlineJSXUnaryOp$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R86, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18003
+ var InlineJSXUnaryOp$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R87, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17902
18004
  return { $loc, token: $0 };
17903
18005
  });
17904
18006
  function InlineJSXUnaryOp(ctx, state2) {
@@ -18149,13 +18251,13 @@ var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXP
18149
18251
  function JSXComment(ctx, state2) {
18150
18252
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
18151
18253
  }
18152
- var JSXCommentContent$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R87, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18254
+ var JSXCommentContent$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R88, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18153
18255
  return { $loc, token: $0.replace(/\*\//g, "* /") };
18154
18256
  });
18155
18257
  function JSXCommentContent(ctx, state2) {
18156
18258
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
18157
18259
  }
18158
- var JSXText$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R88, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18260
+ var JSXText$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R89, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18159
18261
  return {
18160
18262
  type: "JSXText",
18161
18263
  token: $0,
@@ -18689,7 +18791,7 @@ var TypeProperty$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)
18689
18791
  function TypeProperty(ctx, state2) {
18690
18792
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
18691
18793
  }
18692
- var TypeIndexSignature$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R89, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R14, "TypeIndexSignature /[+-]/")), (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), QuestionMark)))));
18794
+ var TypeIndexSignature$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R90, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, (0, import_lib2.$E)((0, import_lib2.$S)(__, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R14, "TypeIndexSignature /[+-]/")), (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), QuestionMark)))));
18693
18795
  function TypeIndexSignature(ctx, state2) {
18694
18796
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
18695
18797
  }
@@ -19198,7 +19300,7 @@ var TypeWithPostfix$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeConditional
19198
19300
  function TypeWithPostfix(ctx, state2) {
19199
19301
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
19200
19302
  }
19201
- var TypeConditional$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($R90, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
19303
+ var TypeConditional$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_lib2.$EXPECT)($R91, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
19202
19304
  return prepend($1, expressionizeTypeIf($3));
19203
19305
  });
19204
19306
  var TypeConditional$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeCondition, NotDedented, QuestionMark, __, Type, __, Colon, __, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
@@ -19432,8 +19534,8 @@ function TypeApplicationStart(ctx, state2) {
19432
19534
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
19433
19535
  }
19434
19536
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
19435
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19436
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19537
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19538
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19437
19539
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
19438
19540
  function ForbiddenImplicitTypeCalls(ctx, state2) {
19439
19541
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -19524,7 +19626,7 @@ var TypeParameters$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenAngleBracket
19524
19626
  function TypeParameters(ctx, state2) {
19525
19627
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
19526
19628
  }
19527
- var TypeParameter$0 = (0, import_lib2.$S)(__, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib2.$E)(TypeConstraint), (0, import_lib2.$E)(TypeInitializer), TypeParameterDelimiter);
19629
+ var TypeParameter$0 = (0, import_lib2.$S)(__, (0, import_lib2.$Q)((0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "TypeParameter /const|in|out/")), _)), Identifier, (0, import_lib2.$E)(TypeConstraint), (0, import_lib2.$E)(TypeInitializer), TypeParameterDelimiter);
19528
19630
  function TypeParameter(ctx, state2) {
19529
19631
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
19530
19632
  }
@@ -19551,15 +19653,15 @@ var ThisType$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$E)(_),
19551
19653
  function ThisType(ctx, state2) {
19552
19654
  return (0, import_lib2.$EVENT)(ctx, state2, "ThisType", ThisType$0);
19553
19655
  }
19554
- var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "Shebang /#![^\\r\\n]*/")), EOL);
19656
+ var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "Shebang /#![^\\r\\n]*/")), EOL);
19555
19657
  function Shebang(ctx, state2) {
19556
19658
  return (0, import_lib2.$EVENT)(ctx, state2, "Shebang", Shebang$0);
19557
19659
  }
19558
- var CivetPrologue$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R95, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19660
+ var CivetPrologue$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R96, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19559
19661
  var content = value[2];
19560
19662
  return content;
19561
19663
  });
19562
- var CivetPrologue$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R95, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19664
+ var CivetPrologue$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R96, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, (0, import_lib2.$EXPECT)($R22, "CivetPrologue /[ \\t]*/"), (0, import_lib2.$C)(EOL, (0, import_lib2.$Y)(RestOfLine))), function(value) {
19563
19665
  var content = value[2];
19564
19666
  return content;
19565
19667
  });
@@ -19567,7 +19669,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
19567
19669
  function CivetPrologue(ctx, state2) {
19568
19670
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19569
19671
  }
19570
- 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)($R96, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19672
+ 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)($R97, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
19571
19673
  var options = $3;
19572
19674
  return {
19573
19675
  type: "CivetPrologue",
@@ -19578,7 +19680,7 @@ var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import
19578
19680
  function CivetPrologueContent(ctx, state2) {
19579
19681
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
19580
19682
  }
19581
- var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R97, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19683
+ var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R98, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19582
19684
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
19583
19685
  if (l)
19584
19686
  return l.toUpperCase();
@@ -19601,11 +19703,11 @@ var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R97, "CivetOp
19601
19703
  function CivetOption(ctx, state2) {
19602
19704
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
19603
19705
  }
19604
- var UnknownPrologue$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib2.$TEXT)(SimpleStatementDelimiter), EOS);
19706
+ var UnknownPrologue$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R96, "UnknownPrologue /[\\t ]*/")), StringLiteral, (0, import_lib2.$TEXT)(SimpleStatementDelimiter), EOS);
19605
19707
  function UnknownPrologue(ctx, state2) {
19606
19708
  return (0, import_lib2.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
19607
19709
  }
19608
- var TripleSlashDirective$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R98, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib2.$E)(EOS));
19710
+ var TripleSlashDirective$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R99, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), (0, import_lib2.$E)(EOS));
19609
19711
  function TripleSlashDirective(ctx, state2) {
19610
19712
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
19611
19713
  }
@@ -19621,13 +19723,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
19621
19723
  function PrologueString(ctx, state2) {
19622
19724
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
19623
19725
  }
19624
- var EOS$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R99, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib2.$P)(RestOfLine)), function(value) {
19726
+ var EOS$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R100, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), (0, import_lib2.$P)(RestOfLine)), function(value) {
19625
19727
  return value[1];
19626
19728
  });
19627
19729
  function EOS(ctx, state2) {
19628
19730
  return (0, import_lib2.$EVENT)(ctx, state2, "EOS", EOS$0);
19629
19731
  }
19630
- var EOL$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R100, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19732
+ var EOL$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R101, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19631
19733
  return { $loc, token: $0 };
19632
19734
  });
19633
19735
  function EOL(ctx, state2) {
@@ -19955,6 +20057,7 @@ var Reset$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Reset ""'), fu
19955
20057
  coffeeNot: false,
19956
20058
  coffeeOf: false,
19957
20059
  coffeePrototype: false,
20060
+ coffeeRange: false,
19958
20061
  defaultElement: "div",
19959
20062
  globals: [],
19960
20063
  iife: false,
@@ -19998,7 +20101,8 @@ var Reset$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Reset ""'), fu
19998
20101
  "coffeeLineContinuation",
19999
20102
  "coffeeNot",
20000
20103
  "coffeeOf",
20001
- "coffeePrototype"
20104
+ "coffeePrototype",
20105
+ "coffeeRange"
20002
20106
  ]) {
20003
20107
  config[option] = b;
20004
20108
  }
@@ -20041,7 +20145,7 @@ var Prologue$0 = (0, import_lib2.$Q)((0, import_lib2.$C)(TripleSlashDirective, (
20041
20145
  function Prologue(ctx, state2) {
20042
20146
  return (0, import_lib2.$EVENT)(ctx, state2, "Prologue", Prologue$0);
20043
20147
  }
20044
- var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R101, "ProloguePrefix /[^]*/")));
20148
+ var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R102, "ProloguePrefix /[^]*/")));
20045
20149
  function ProloguePrefix(ctx, state2) {
20046
20150
  return (0, import_lib2.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
20047
20151
  }