@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/browser.js CHANGED
@@ -70,7 +70,7 @@ var Civet = (() => {
70
70
  $N: () => $N2,
71
71
  $P: () => $P2,
72
72
  $Q: () => $Q2,
73
- $R: () => $R102,
73
+ $R: () => $R103,
74
74
  $R$0: () => $R$02,
75
75
  $S: () => $S2,
76
76
  $T: () => $T2,
@@ -107,7 +107,7 @@ var Civet = (() => {
107
107
  return;
108
108
  };
109
109
  }
110
- function $R102(regExp) {
110
+ function $R103(regExp) {
111
111
  return function(_ctx, state2) {
112
112
  const { input, pos } = state2;
113
113
  regExp.lastIndex = state2.pos;
@@ -1204,7 +1204,6 @@ ${body}`;
1204
1204
  "JSXElement",
1205
1205
  "JSXFragment",
1206
1206
  "Literal",
1207
- "NewExpression",
1208
1207
  "ParenthesizedExpression",
1209
1208
  "Ref",
1210
1209
  "Placeholder",
@@ -1226,7 +1225,10 @@ ${body}`;
1226
1225
  if (skipParens.has(expression.type)) {
1227
1226
  return expression;
1228
1227
  }
1229
- if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($6) => $6.type === "ObjectExpression")) {
1228
+ if (expression.type === "NewExpression" && expression.expression.children.some(($6) => $6?.type === "Call")) {
1229
+ return expression;
1230
+ }
1231
+ if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($7) => $7.type === "ObjectExpression")) {
1230
1232
  return expression;
1231
1233
  }
1232
1234
  }
@@ -1762,13 +1764,14 @@ ${body}`;
1762
1764
  return;
1763
1765
  }
1764
1766
  if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
1765
- n.names.forEach((id) => ({
1766
- push: thisAssignments2.push({
1767
+ for (let ref1 = n.names, i2 = 0, len1 = ref1.length; i2 < len1; i2++) {
1768
+ const id = ref1[i2];
1769
+ thisAssignments2.push({
1767
1770
  type: "AssignmentExpression",
1768
1771
  children: [`this.${id} = `, id],
1769
1772
  js: true
1770
- })
1771
- }));
1773
+ });
1774
+ }
1772
1775
  return;
1773
1776
  }
1774
1777
  const { blockPrefix } = n;
@@ -1780,8 +1783,8 @@ ${body}`;
1780
1783
  return [splices, thisAssignments];
1781
1784
  }
1782
1785
  function arrayElementHasTrailingComma(elementNode) {
1783
- let ref1;
1784
- const lastChild = (ref1 = elementNode.children)[ref1.length - 1];
1786
+ let ref2;
1787
+ const lastChild = (ref2 = elementNode.children)[ref2.length - 1];
1785
1788
  return lastChild && lastChild[lastChild.length - 1]?.token === ",";
1786
1789
  }
1787
1790
  function gatherBindingPatternTypeSuffix(pattern) {
@@ -1793,8 +1796,8 @@ ${body}`;
1793
1796
  case "ArrayBindingPattern": {
1794
1797
  {
1795
1798
  const results = [];
1796
- for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1797
- const elem = ref2[i2];
1799
+ for (let ref3 = pattern.elements, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1800
+ const elem = ref3[i3];
1798
1801
  let { typeSuffix } = elem;
1799
1802
  typeSuffix ??= elem.binding?.typeSuffix;
1800
1803
  if (typeSuffix) {
@@ -1832,8 +1835,8 @@ ${body}`;
1832
1835
  {
1833
1836
  let restType;
1834
1837
  const results1 = [];
1835
- for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1836
- const prop = ref3[i3];
1838
+ for (let ref4 = pattern.properties, i4 = 0, len3 = ref4.length; i4 < len3; i4++) {
1839
+ const prop = ref4[i4];
1837
1840
  let { typeSuffix } = prop;
1838
1841
  typeSuffix ??= prop.value?.typeSuffix;
1839
1842
  if (typeSuffix) {
@@ -2000,8 +2003,14 @@ ${body}`;
2000
2003
  // [indent, statement]
2001
2004
  preludeVar,
2002
2005
  moduloRef,
2003
- ts(": (a: number, b: number) => number"),
2004
- " = (a, b) => (a % b + b) % b"
2006
+ " = ",
2007
+ ts("("),
2008
+ "(a",
2009
+ ts(": number"),
2010
+ ", b",
2011
+ ts(": number"),
2012
+ ") => (a % b + b) % b",
2013
+ ts(") as ((a: number, b: number) => number) & ((a: bigint, b: bigint) => bigint)")
2005
2014
  ], ";\n"]);
2006
2015
  },
2007
2016
  Falsy(FalsyRef) {
@@ -2566,7 +2575,7 @@ ${js}`
2566
2575
  if (!Array.isArray(args)) {
2567
2576
  throw new Error("getTypeArguments could not find relevant array");
2568
2577
  }
2569
- return args.filter((a) => typeof a === "object" && a != null && "type" in a && a.type === "TypeArgument");
2578
+ return args.filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "TypeArgument");
2570
2579
  }
2571
2580
  function isVoidType(t) {
2572
2581
  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";
@@ -3432,7 +3441,7 @@ ${js}`
3432
3441
  if (isConstructor) {
3433
3442
  const { ancestor } = findAncestor(f, ($6) => $6.type === "ClassExpression");
3434
3443
  if (ancestor != null) {
3435
- 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));
3444
+ 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));
3436
3445
  const classExpressions = ancestor.body.expressions;
3437
3446
  let index = findChildIndex(classExpressions, f);
3438
3447
  assert.notEqual(index, -1, "Could not find constructor in class");
@@ -3443,15 +3452,20 @@ ${js}`
3443
3452
  const fStatement = classExpressions[index];
3444
3453
  for (let ref16 = gatherRecursive(parameters, ($10) => $10.type === "Parameter"), i8 = 0, len7 = ref16.length; i8 < len7; i8++) {
3445
3454
  const parameter = ref16[i8];
3446
- if (!parameter.typeSuffix) {
3455
+ const { accessModifier } = parameter;
3456
+ if (!(accessModifier || parameter.typeSuffix)) {
3447
3457
  continue;
3448
3458
  }
3449
3459
  for (let ref17 = gatherRecursive(parameter, ($11) => $11.type === "AtBinding"), i9 = 0, len8 = ref17.length; i9 < len8; i9++) {
3450
3460
  const binding = ref17[i9];
3451
3461
  const typeSuffix = binding.parent?.typeSuffix;
3452
- if (!typeSuffix) {
3462
+ if (!(accessModifier || typeSuffix)) {
3453
3463
  continue;
3454
3464
  }
3465
+ if (parameter.accessModifier) {
3466
+ replaceNode(parameter.accessModifier, void 0);
3467
+ parameter.accessModifier = void 0;
3468
+ }
3455
3469
  const id = binding.ref.id;
3456
3470
  if (fields.has(id)) {
3457
3471
  continue;
@@ -3460,7 +3474,7 @@ ${js}`
3460
3474
  type: "FieldDefinition",
3461
3475
  id,
3462
3476
  typeSuffix,
3463
- children: [id, typeSuffix]
3477
+ children: [accessModifier, id, typeSuffix]
3464
3478
  }, ";"]);
3465
3479
  fStatement[0] = "";
3466
3480
  }
@@ -3484,10 +3498,10 @@ ${js}`
3484
3498
  if (isConstructor) {
3485
3499
  const superCalls = gatherNodes(
3486
3500
  expressions,
3487
- (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"
3501
+ (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"
3488
3502
  );
3489
3503
  if (superCalls.length) {
3490
- const { child } = findAncestor(superCalls[0], (a3) => a3 === block);
3504
+ const { child } = findAncestor(superCalls[0], (a4) => a4 === block);
3491
3505
  const index = findChildIndex(expressions, child);
3492
3506
  if (index < 0) {
3493
3507
  throw new Error("Could not find super call within top-level expressions");
@@ -3502,21 +3516,33 @@ ${js}`
3502
3516
  function processSignature(f) {
3503
3517
  const { block, signature } = f;
3504
3518
  if (!f.async?.length && hasAwait(block)) {
3505
- f.async.push("async ");
3506
- signature.modifier.async = true;
3507
- }
3508
- if (!f.generator?.length && hasYield(block)) {
3509
- if (f.type === "ArrowFunction") {
3510
- gatherRecursiveWithinFunction(block, ($12) => $12.type === "YieldExpression").forEach((y) => {
3511
- const i = y.children.findIndex(($13) => $13.type === "Yield");
3512
- return y.children.splice(i + 1, 0, {
3519
+ if (f.async != null) {
3520
+ f.async.push("async ");
3521
+ signature.modifier.async = true;
3522
+ } else {
3523
+ for (let ref18 = gatherRecursiveWithinFunction(block, ($12) => $12.type === "Await"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3524
+ const a = ref18[i10];
3525
+ const i = findChildIndex(a.parent, a);
3526
+ a.parent.children.splice(i + 1, 0, {
3513
3527
  type: "Error",
3514
- message: "Can't use yield inside of => arrow function"
3528
+ message: `await invalid in ${signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3515
3529
  });
3516
- });
3517
- } else {
3530
+ }
3531
+ }
3532
+ }
3533
+ if (!f.generator?.length && hasYield(block)) {
3534
+ if (f.generator != null) {
3518
3535
  f.generator.push("*");
3519
3536
  signature.modifier.generator = true;
3537
+ } else {
3538
+ for (let ref19 = gatherRecursiveWithinFunction(block, ($13) => $13.type === "YieldExpression"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3539
+ const y = ref19[i11];
3540
+ const i = y.children.findIndex(($14) => $14.type === "Yield");
3541
+ y.children.splice(i + 1, 0, {
3542
+ type: "Error",
3543
+ message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3544
+ });
3545
+ }
3520
3546
  }
3521
3547
  }
3522
3548
  if (signature.modifier.async && !signature.modifier.generator && signature.returnType && !isPromiseType(signature.returnType.t)) {
@@ -3524,21 +3550,15 @@ ${js}`
3524
3550
  }
3525
3551
  }
3526
3552
  function processFunctions(statements, config2) {
3527
- for (let ref18 = gatherRecursiveAll(statements, ($14) => $14.type === "FunctionExpression" || $14.type === "ArrowFunction"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3528
- const f = ref18[i10];
3529
- if (f.type === "FunctionExpression") {
3553
+ for (let ref20 = gatherRecursiveAll(statements, ($15) => $15.type === "FunctionExpression" || $15.type === "ArrowFunction" || $15.type === "MethodDefinition"), i12 = 0, len11 = ref20.length; i12 < len11; i12++) {
3554
+ const f = ref20[i12];
3555
+ if (f.type === "FunctionExpression" || f.type === "MethodDefinition") {
3530
3556
  implicitFunctionBlock(f);
3531
3557
  }
3532
3558
  processSignature(f);
3533
3559
  processParams(f);
3534
3560
  processReturn(f, config2.implicitReturns);
3535
3561
  }
3536
- for (let ref19 = gatherRecursiveAll(statements, ($15) => $15.type === "MethodDefinition"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3537
- const f = ref19[i11];
3538
- implicitFunctionBlock(f);
3539
- processParams(f);
3540
- processReturn(f, config2.implicitReturns);
3541
- }
3542
3562
  }
3543
3563
  function expressionizeIteration(exp) {
3544
3564
  let { async, generator, block, children, statement } = exp;
@@ -3587,9 +3607,9 @@ ${js}`
3587
3607
  }
3588
3608
  let done;
3589
3609
  if (!async) {
3590
- let ref20;
3591
- if ((ref20 = blockContainingStatement(exp)) && typeof ref20 === "object" && "block" in ref20 && "index" in ref20) {
3592
- const { block: parentBlock, index } = ref20;
3610
+ let ref21;
3611
+ if ((ref21 = blockContainingStatement(exp)) && typeof ref21 === "object" && "block" in ref21 && "index" in ref21) {
3612
+ const { block: parentBlock, index } = ref21;
3593
3613
  statements[0][0] = parentBlock.expressions[index][0];
3594
3614
  parentBlock.expressions.splice(index, index + 1 - index, ...statements);
3595
3615
  updateParentPointers(parentBlock);
@@ -3606,8 +3626,8 @@ ${js}`
3606
3626
  }
3607
3627
  }
3608
3628
  function processIterationExpressions(statements) {
3609
- for (let ref21 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3610
- const s = ref21[i12];
3629
+ for (let ref22 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3630
+ const s = ref22[i13];
3611
3631
  expressionizeIteration(s);
3612
3632
  }
3613
3633
  }
@@ -3633,21 +3653,21 @@ ${js}`
3633
3653
  ...parameters,
3634
3654
  children: (() => {
3635
3655
  const results1 = [];
3636
- for (let ref22 = parameters.children, i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3637
- let parameter = ref22[i13];
3656
+ for (let ref23 = parameters.children, i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3657
+ let parameter = ref23[i14];
3638
3658
  if (typeof parameter === "object" && parameter != null && "type" in parameter && parameter.type === "Parameter") {
3639
- let ref23;
3640
- if (ref23 = parameter.initializer) {
3641
- const initializer = ref23;
3659
+ let ref24;
3660
+ if (ref24 = parameter.initializer) {
3661
+ const initializer = ref24;
3642
3662
  args.push(initializer.expression, parameter.delim);
3643
3663
  parameter = {
3644
3664
  ...parameter,
3645
3665
  initializer: void 0,
3646
- children: parameter.children.filter((a4) => a4 !== initializer)
3666
+ children: parameter.children.filter((a5) => a5 !== initializer)
3647
3667
  };
3648
3668
  } else {
3649
3669
  args.push(parameter.children.filter(
3650
- (a5) => a5 !== parameter.typeSuffix
3670
+ (a6) => a6 !== parameter.typeSuffix
3651
3671
  ));
3652
3672
  }
3653
3673
  }
@@ -3720,7 +3740,7 @@ ${js}`
3720
3740
  }
3721
3741
  if (gatherRecursiveWithinFunction(
3722
3742
  block,
3723
- (a6) => a6 === ref
3743
+ (a7) => a7 === ref
3724
3744
  ).length > 1) {
3725
3745
  fn.ampersandBlock = false;
3726
3746
  }
@@ -5397,7 +5417,6 @@ ${js}`
5397
5417
 
5398
5418
  // source/parser/pipe.civet
5399
5419
  function constructInvocation(fn, arg) {
5400
- const fnArr = [fn.leadingComment, fn.expr, fn.trailingComment];
5401
5420
  let expr = fn.expr;
5402
5421
  while (expr.type === "ParenthesizedExpression") {
5403
5422
  expr = expr.expression;
@@ -5414,22 +5433,46 @@ ${js}`
5414
5433
  });
5415
5434
  }
5416
5435
  expr = fn.expr;
5417
- const lhs = makeLeftHandSideExpression(expr);
5436
+ let lhs = expr;
5437
+ if (!(lhs.type === "NewExpression")) {
5438
+ lhs = makeLeftHandSideExpression(lhs);
5439
+ }
5418
5440
  let comment = skipIfOnlyWS(fn.trailingComment);
5419
5441
  if (comment)
5420
- lhs.children.splice(2, 0, comment);
5442
+ lhs.children.push(comment);
5421
5443
  comment = skipIfOnlyWS(fn.leadingComment);
5422
5444
  if (comment)
5423
5445
  lhs.children.splice(1, 0, comment);
5424
5446
  switch (arg.type) {
5425
- case "CommaExpression":
5447
+ case "CommaExpression": {
5426
5448
  arg = makeLeftHandSideExpression(arg);
5427
5449
  break;
5450
+ }
5428
5451
  }
5429
- return {
5430
- type: "CallExpression",
5431
- children: [lhs, "(", arg, ")"]
5452
+ const args = [arg];
5453
+ const call = {
5454
+ type: "Call",
5455
+ args,
5456
+ children: ["(", args, ")"]
5432
5457
  };
5458
+ if (lhs.type === "NewExpression") {
5459
+ let { expression } = lhs;
5460
+ expression = {
5461
+ ...expression,
5462
+ type: "CallExpression",
5463
+ children: [...expression.children, call]
5464
+ };
5465
+ return {
5466
+ ...lhs,
5467
+ expression,
5468
+ children: lhs.children.map(($) => $ === lhs.expression ? expression : $)
5469
+ };
5470
+ } else {
5471
+ return {
5472
+ type: "CallExpression",
5473
+ children: [lhs, call]
5474
+ };
5475
+ }
5433
5476
  }
5434
5477
  function constructPipeStep(fn, arg, returning) {
5435
5478
  if (!returning) {
@@ -5476,21 +5519,24 @@ ${js}`
5476
5519
  let i = 0, l = body.length;
5477
5520
  const children = [ws];
5478
5521
  let usingRef = null;
5479
- for (i = 0; i < l; i++) {
5480
- const step = body[i];
5522
+ for (let i1 = 0, len3 = body.length; i1 < len3; i1++) {
5523
+ const i2 = i1;
5524
+ const step = body[i1];
5481
5525
  const [leadingComment, pipe, trailingComment, expr] = step;
5482
5526
  const returns = pipe.token === "||>";
5483
5527
  let ref, result, returning = returns ? arg : null;
5484
5528
  if (pipe.token === "|>=") {
5485
5529
  let initRef;
5486
- if (i === 0) {
5530
+ if (i2 === 0) {
5487
5531
  checkValidLHS(arg);
5488
5532
  outer:
5489
5533
  switch (arg.type) {
5490
- case "MemberExpression":
5491
- if (arg.children.length <= 2)
5534
+ case "MemberExpression": {
5535
+ if (arg.children.length <= 2) {
5492
5536
  break;
5493
- case "CallExpression":
5537
+ }
5538
+ }
5539
+ case "CallExpression": {
5494
5540
  const access = arg.children.pop();
5495
5541
  usingRef = makeRef();
5496
5542
  initRef = {
@@ -5502,6 +5548,7 @@ ${js}`
5502
5548
  children: [usingRef, access]
5503
5549
  };
5504
5550
  break;
5551
+ }
5505
5552
  }
5506
5553
  const lhs = [[
5507
5554
  [initRef],
@@ -5530,7 +5577,7 @@ ${js}`
5530
5577
  });
5531
5578
  }
5532
5579
  } else {
5533
- if (i === 0)
5580
+ if (i2 === 0)
5534
5581
  s.children = children;
5535
5582
  }
5536
5583
  if (returns && (ref = needsRef(arg))) {
@@ -5555,7 +5602,7 @@ ${js}`
5555
5602
  returning
5556
5603
  );
5557
5604
  if (result.type === "ReturnStatement") {
5558
- if (i < l - 1) {
5605
+ if (i2 < l - 1) {
5559
5606
  result.children.push({
5560
5607
  type: "Error",
5561
5608
  message: "Can't continue a pipeline after returning"
@@ -5583,7 +5630,7 @@ ${js}`
5583
5630
  };
5584
5631
  }
5585
5632
  children.push(arg);
5586
- if (!children.some(($) => $?.type === "ReturnStatement") && children.some(($1) => $1 === ",")) {
5633
+ if (!children.some(($1) => $1?.type === "ReturnStatement") && children.some(($2) => $2 === ",")) {
5587
5634
  const { parent } = s;
5588
5635
  const parenthesizedExpression = makeLeftHandSideExpression({ ...s });
5589
5636
  Object.assign(s, parenthesizedExpression, {
@@ -5723,7 +5770,7 @@ ${js}`
5723
5770
  };
5724
5771
  }
5725
5772
  function forRange(open, forDeclaration, range, stepExp, close) {
5726
- const { start, end, left, right, increasing } = range;
5773
+ let { start, end, left, right, increasing } = range;
5727
5774
  const counterRef = makeRef("i");
5728
5775
  const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5729
5776
  let stepRef, asc;
@@ -5765,28 +5812,35 @@ ${js}`
5765
5812
  let endRef = maybeRef(end, "end");
5766
5813
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
5767
5814
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
5768
- if (!left.inclusive) {
5769
- startRef = [
5770
- makeLeftHandSideExpression(start),
5771
- " + ",
5772
- stepRef
5773
- ];
5774
- }
5775
5815
  let ascDec = [], ascRef;
5776
5816
  if (stepExp) {
5777
5817
  if (!(stepRef === stepExp)) {
5778
5818
  ascDec = [", ", stepRef, " = ", stepExp];
5779
5819
  }
5780
- } else if (start?.type === "Literal" && "Literal" === end?.type) {
5820
+ }
5821
+ if (start?.type === "Literal" && "Literal" === end?.type) {
5781
5822
  asc = literalValue(start) <= literalValue(end);
5782
5823
  if ("StringLiteral" === start.subtype && start.subtype === end.subtype) {
5783
- startRef = literalValue(start).charCodeAt(0).toString();
5824
+ const startChar = literalValue(start).charCodeAt(0).toString();
5825
+ startRef = {
5826
+ type: "Literal",
5827
+ subtype: "NumericLiteral",
5828
+ raw: startChar,
5829
+ children: [startChar]
5830
+ };
5784
5831
  endRef = literalValue(end).charCodeAt(0).toString();
5785
5832
  }
5786
- } else {
5833
+ } else if (!stepExp) {
5787
5834
  ascRef = makeRef("asc");
5788
5835
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
5789
5836
  }
5837
+ if (!left.inclusive) {
5838
+ startRef = [
5839
+ makeLeftHandSideExpression(startRef),
5840
+ " + ",
5841
+ stepRef
5842
+ ];
5843
+ }
5790
5844
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
5791
5845
  let names = forDeclaration?.names ?? [];
5792
5846
  if (forDeclaration != null) {
@@ -5798,7 +5852,7 @@ ${js}`
5798
5852
  varAssign = [...trimFirstSpace(varName), " = "];
5799
5853
  varLet = [",", ...varName, " = ", counterRef];
5800
5854
  } else {
5801
- const value = "StringLiteral" === start.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5855
+ const value = "StringLiteral" === start?.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5802
5856
  blockPrefix = [
5803
5857
  ["", [forDeclaration, " = ", value], ";"]
5804
5858
  ];
@@ -5869,7 +5923,8 @@ ${js}`
5869
5923
  blockPrefix.push(["", {
5870
5924
  type: "Declaration",
5871
5925
  children: [declaration, " = ", trimFirstSpace(expRef2), "[", counterRef, "]"],
5872
- names: assignmentNames
5926
+ names: assignmentNames,
5927
+ implicitLift: true
5873
5928
  }, ";"]);
5874
5929
  declaration = {
5875
5930
  type: "Declaration",
@@ -6957,19 +7012,19 @@ ${js}`
6957
7012
  }
6958
7013
  function convertMethodToFunction(method) {
6959
7014
  const { signature, block } = method;
6960
- let { modifier, optional } = signature;
6961
- if (optional)
7015
+ const { async, modifier, optional } = signature;
7016
+ if (optional) {
6962
7017
  return;
6963
- if (modifier) {
6964
- if (modifier.get || modifier.set) {
6965
- return;
6966
- } else if (modifier.async) {
6967
- modifier = [modifier.children[0][0], " function ", ...modifier.children.slice(1)];
6968
- } else {
6969
- modifier = ["function ", ...modifier.children || []];
7018
+ }
7019
+ if (modifier?.get || modifier?.set) {
7020
+ return;
7021
+ }
7022
+ const func = ["function "];
7023
+ if (async != null) {
7024
+ func.unshift(async);
7025
+ if (async.length && !async[async.length - 1]?.length) {
7026
+ async.push(" ");
6970
7027
  }
6971
- } else {
6972
- modifier = "function ";
6973
7028
  }
6974
7029
  return {
6975
7030
  ...signature,
@@ -6977,7 +7032,7 @@ ${js}`
6977
7032
  signature,
6978
7033
  type: "FunctionExpression",
6979
7034
  children: [
6980
- [modifier, ...signature.children.slice(1)],
7035
+ [...func, ...signature.children.slice(1)],
6981
7036
  block
6982
7037
  ],
6983
7038
  block
@@ -7091,7 +7146,8 @@ ${js}`
7091
7146
  block = {
7092
7147
  type: "BlockStatement",
7093
7148
  expressions,
7094
- children: ["{ ", expressions, " }"]
7149
+ children: ["{ ", expressions, " }"],
7150
+ bare: false
7095
7151
  };
7096
7152
  }
7097
7153
  if (autoReturn) {
@@ -7804,7 +7860,13 @@ ${js}`
7804
7860
  }
7805
7861
  } else {
7806
7862
  let child;
7863
+ let implicitLift;
7807
7864
  ({ ancestor, child } = findAncestor(exp, (ancestor2, child2) => {
7865
+ const prevImplicitLift = implicitLift;
7866
+ ({ implicitLift } = ancestor2);
7867
+ if (prevImplicitLift) {
7868
+ return;
7869
+ }
7808
7870
  const { type } = ancestor2;
7809
7871
  if (type === "IfStatement") {
7810
7872
  liftedIfs.add(ancestor2);
@@ -7890,7 +7952,7 @@ ${js}`
7890
7952
  const placeholder = placeholders[i15];
7891
7953
  typeSuffix ??= placeholder.typeSuffix;
7892
7954
  let ref26;
7893
- replaceNode((ref26 = placeholder.children)[ref26.length - 1], ref);
7955
+ (ref26 = placeholder.children)[ref26.length - 1] = ref;
7894
7956
  }
7895
7957
  const { parent } = ancestor;
7896
7958
  const body = maybeUnwrap(ancestor);
@@ -8180,6 +8242,7 @@ ${js}`
8180
8242
  LeftHandSideExpression,
8181
8243
  CallExpression,
8182
8244
  CallExpressionRest,
8245
+ ExplicitCallExpressionRest,
8183
8246
  OptionalShorthand,
8184
8247
  OptionalDot,
8185
8248
  NonNullAssertion,
@@ -8463,8 +8526,8 @@ ${js}`
8463
8526
  Debugger,
8464
8527
  MaybeNestedNonPipelineExpression,
8465
8528
  MaybeNestedPostfixedExpression,
8529
+ NestedPostfixedExpressionNoTrailing,
8466
8530
  MaybeNestedExpression,
8467
- NestedExpression,
8468
8531
  MaybeParenNestedExpression,
8469
8532
  ImportDeclaration,
8470
8533
  ImpliedImport,
@@ -8516,6 +8579,8 @@ ${js}`
8516
8579
  StringLiteral,
8517
8580
  DoubleStringCharacters,
8518
8581
  SingleStringCharacters,
8582
+ TripleDoubleStringContents,
8583
+ CoffeeTripleDoubleStringCharacters,
8519
8584
  TripleDoubleStringCharacters,
8520
8585
  TripleSingleStringCharacters,
8521
8586
  CoffeeStringSubstitution,
@@ -9186,60 +9251,61 @@ ${js}`
9186
9251
  var $R45 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
9187
9252
  var $R46 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
9188
9253
  var $R47 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
9189
- var $R48 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9190
- var $R49 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9191
- var $R50 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9192
- var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9193
- var $R52 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9194
- var $R53 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9195
- var $R54 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
9196
- var $R55 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9197
- var $R56 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9198
- var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9199
- var $R58 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9200
- var $R59 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9201
- var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9202
- var $R61 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9203
- var $R62 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9204
- var $R63 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9205
- var $R64 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9206
- 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"));
9207
- var $R66 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9208
- var $R67 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9209
- var $R68 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9210
- var $R69 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9211
- var $R70 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9212
- var $R71 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9213
- var $R72 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9214
- var $R73 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9215
- var $R74 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9216
- var $R75 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9217
- var $R76 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9218
- var $R77 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9219
- var $R78 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9220
- var $R79 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9221
- var $R80 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9222
- var $R81 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9223
- var $R82 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9224
- var $R83 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9225
- var $R84 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9226
- var $R85 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9227
- var $R86 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9228
- var $R87 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9229
- var $R88 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9230
- var $R89 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9231
- var $R90 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9232
- var $R91 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9233
- var $R92 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9234
- var $R93 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9235
- var $R94 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9236
- var $R95 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9237
- var $R96 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9238
- var $R97 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9239
- var $R98 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9240
- var $R99 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9241
- var $R100 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9242
- var $R101 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9254
+ var $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy"));
9255
+ var $R49 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9256
+ var $R50 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9257
+ var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9258
+ var $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9259
+ var $R53 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9260
+ var $R54 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9261
+ var $R55 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy"));
9262
+ var $R56 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9263
+ var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9264
+ var $R58 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9265
+ var $R59 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9266
+ var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9267
+ var $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9268
+ var $R62 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9269
+ var $R63 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9270
+ var $R64 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9271
+ var $R65 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9272
+ 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"));
9273
+ var $R67 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9274
+ var $R68 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9275
+ var $R69 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9276
+ var $R70 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9277
+ var $R71 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9278
+ var $R72 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9279
+ var $R73 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9280
+ var $R74 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9281
+ var $R75 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9282
+ var $R76 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9283
+ var $R77 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9284
+ var $R78 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9285
+ var $R79 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9286
+ var $R80 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9287
+ var $R81 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9288
+ var $R82 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9289
+ var $R83 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9290
+ var $R84 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9291
+ var $R85 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9292
+ var $R86 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9293
+ var $R87 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9294
+ var $R88 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9295
+ var $R89 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9296
+ var $R90 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9297
+ var $R91 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9298
+ var $R92 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9299
+ var $R93 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9300
+ var $R94 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9301
+ var $R95 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9302
+ var $R96 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9303
+ var $R97 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9304
+ var $R98 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9305
+ var $R99 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9306
+ var $R100 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9307
+ var $R101 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9308
+ var $R102 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9243
9309
  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) {
9244
9310
  var reset = $1;
9245
9311
  var init = $2;
@@ -9477,7 +9543,7 @@ ${js}`
9477
9543
  function ArgumentsWithTrailingCallExpressions(ctx, state2) {
9478
9544
  return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingCallExpressions", ArgumentsWithTrailingCallExpressions$0);
9479
9545
  }
9480
- 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) {
9546
+ 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) {
9481
9547
  $1 = $1.flat();
9482
9548
  if (!$1.length && !$2)
9483
9549
  return $skip;
@@ -9573,10 +9639,10 @@ ${js}`
9573
9639
  function NestedArgumentList(ctx, state2) {
9574
9640
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedArgumentList", NestedArgumentList$0);
9575
9641
  }
9576
- 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) {
9577
- var indent = $1;
9578
- var args = $3;
9579
- var comma = $4;
9642
+ 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) {
9643
+ var indent = $2;
9644
+ var args = $4;
9645
+ var comma = $5;
9580
9646
  let [arg0, ...rest] = args;
9581
9647
  arg0 = prepend(indent, arg0);
9582
9648
  return [arg0, ...rest, comma];
@@ -10766,6 +10832,32 @@ ${js}`
10766
10832
  function CallExpressionRest(ctx, state2) {
10767
10833
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CallExpressionRest", CallExpressionRest$$);
10768
10834
  }
10835
+ var ExplicitCallExpressionRest$0 = MemberExpressionRest;
10836
+ var ExplicitCallExpressionRest$1 = (0, import_lib2.$T)((0, import_lib2.$S)(TypeArguments, (0, import_lib2.$N)((0, import_lib2.$C)(IdentifierName, NumericLiteral))), function(value) {
10837
+ return value[0];
10838
+ });
10839
+ 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) {
10840
+ var literal = $2;
10841
+ if (literal.type === "StringLiteral") {
10842
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
10843
+ }
10844
+ return literal;
10845
+ });
10846
+ var ExplicitCallExpressionRest$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(OptionalShorthand), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
10847
+ var optional = $1;
10848
+ var call = $2;
10849
+ if (!optional)
10850
+ return call;
10851
+ return {
10852
+ ...call,
10853
+ children: [optional, ...call.children],
10854
+ optional
10855
+ };
10856
+ });
10857
+ var ExplicitCallExpressionRest$$ = [ExplicitCallExpressionRest$0, ExplicitCallExpressionRest$1, ExplicitCallExpressionRest$2, ExplicitCallExpressionRest$3];
10858
+ function ExplicitCallExpressionRest(ctx, state2) {
10859
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ExplicitCallExpressionRest", ExplicitCallExpressionRest$$);
10860
+ }
10769
10861
  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) {
10770
10862
  var comments = $2;
10771
10863
  var q = $3;
@@ -11403,7 +11495,8 @@ ${js}`
11403
11495
  return {
11404
11496
  type: "AtBinding",
11405
11497
  children: [ref],
11406
- ref
11498
+ ref,
11499
+ names: []
11407
11500
  };
11408
11501
  });
11409
11502
  var NWBindingIdentifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Hash, AtIdentifierRef), function($skip, $loc, $0, $1, $2) {
@@ -11412,7 +11505,8 @@ ${js}`
11412
11505
  return {
11413
11506
  type: "AtBinding",
11414
11507
  children: [ref],
11415
- ref
11508
+ ref,
11509
+ names: []
11416
11510
  };
11417
11511
  });
11418
11512
  var NWBindingIdentifier$2 = Identifier;
@@ -12721,7 +12815,8 @@ ${js}`
12721
12815
  type: "RangeDots",
12722
12816
  left: { inclusive: true, raw: "" },
12723
12817
  right: { inclusive: false, raw: "." },
12724
- increasing: void 0,
12818
+ // Ranges are increasing by default, but adaptive in coffeeCompat mode
12819
+ increasing: config.coffeeRange ? void 0 : true,
12725
12820
  triple: true,
12726
12821
  children: []
12727
12822
  };
@@ -12732,7 +12827,7 @@ ${js}`
12732
12827
  var dots = $3;
12733
12828
  var ws2 = $4;
12734
12829
  var right = $5;
12735
- const increasing = left.increasing ?? right.increasing;
12830
+ const increasing = left.increasing ?? right.increasing ?? (config.coffeeRange ? void 0 : true);
12736
12831
  if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
12737
12832
  const error = {
12738
12833
  type: "Error",
@@ -13528,52 +13623,23 @@ ${js}`
13528
13623
  abstract: true,
13529
13624
  signature,
13530
13625
  parameters: signature.parameters,
13626
+ async: signature.async,
13627
+ generator: signature.generator,
13531
13628
  ts: true
13532
13629
  };
13533
13630
  });
13534
13631
  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) {
13535
13632
  var signature = $1;
13536
13633
  var block = $3;
13537
- let children = $0;
13538
- let generatorPos = 0;
13539
- let { modifier } = signature;
13540
- if (hasAwait(block)) {
13541
- generatorPos++;
13542
- children = children.slice();
13543
- if (modifier?.get || modifier?.set) {
13544
- children.push({
13545
- type: "Error",
13546
- message: "Getters and setters cannot be async"
13547
- });
13548
- } else if (modifier?.async) {
13549
- } else {
13550
- children.unshift("async ");
13551
- modifier = { ...modifier, async: true };
13552
- signature = { ...signature, modifier };
13553
- }
13554
- }
13555
- if (hasYield(block)) {
13556
- if (children === $0)
13557
- children = children.slice();
13558
- if (modifier?.get || modifier?.set) {
13559
- children.push({
13560
- type: "Error",
13561
- message: "Getters and setters cannot be generators"
13562
- });
13563
- } else if (modifier?.generator) {
13564
- } else {
13565
- children.splice(generatorPos, 0, "*");
13566
- modifier = { ...modifier, generator: true };
13567
- signature = { ...signature, modifier };
13568
- }
13569
- }
13570
13634
  return {
13571
13635
  type: "MethodDefinition",
13572
- children,
13636
+ children: $0,
13573
13637
  name: signature.name,
13574
13638
  signature,
13575
13639
  block,
13576
- parameters: signature.parameters
13640
+ parameters: signature.parameters,
13641
+ async: signature.async,
13642
+ generator: signature.generator
13577
13643
  };
13578
13644
  });
13579
13645
  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) {
@@ -13656,36 +13722,38 @@ ${js}`
13656
13722
  }
13657
13723
  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) {
13658
13724
  var kind = $1;
13725
+ var ws = $2;
13659
13726
  return {
13660
- type: "MethodModifier",
13661
- async: false,
13662
- generator: false,
13663
- get: kind.token === "get",
13664
- set: kind.token === "set",
13665
- children: $0
13666
- };
13667
- });
13668
- 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) {
13669
- return {
13670
- type: "MethodModifier",
13671
- async: true,
13672
- get: false,
13673
- set: false,
13674
- generator: !!$2,
13675
- children: $0
13727
+ // no async or generator, because getters and setters can't be
13728
+ modifier: {
13729
+ async: false,
13730
+ generator: false,
13731
+ get: kind.token === "get",
13732
+ set: kind.token === "set"
13733
+ },
13734
+ children: [kind, ws]
13676
13735
  };
13677
13736
  });
13678
- var MethodModifier$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(Star, __), function($skip, $loc, $0, $1, $2) {
13737
+ 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) {
13738
+ var async = $1;
13739
+ var generator = $2;
13740
+ if (!async)
13741
+ async = [];
13742
+ if (!generator)
13743
+ generator = [];
13679
13744
  return {
13680
- type: "MethodModifier",
13681
- async: false,
13682
- get: false,
13683
- set: false,
13684
- generator: true,
13685
- children: $0
13745
+ async,
13746
+ generator,
13747
+ modifier: {
13748
+ async: !!async.length,
13749
+ get: false,
13750
+ set: false,
13751
+ generator: !!generator.length
13752
+ },
13753
+ children: [async, generator]
13686
13754
  };
13687
13755
  });
13688
- var MethodModifier$$ = [MethodModifier$0, MethodModifier$1, MethodModifier$2];
13756
+ var MethodModifier$$ = [MethodModifier$0, MethodModifier$1];
13689
13757
  function MethodModifier(ctx, state2) {
13690
13758
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MethodModifier", MethodModifier$$);
13691
13759
  }
@@ -13700,10 +13768,12 @@ ${js}`
13700
13768
  parameters
13701
13769
  };
13702
13770
  });
13703
- 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) {
13771
+ 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) {
13704
13772
  var modifier = $1;
13705
13773
  var name = $2;
13774
+ var ws1 = $3;
13706
13775
  var optional = $4;
13776
+ var ws2 = $5;
13707
13777
  var parameters = $6;
13708
13778
  var returnType = $7;
13709
13779
  if (name.name) {
@@ -13712,14 +13782,15 @@ ${js}`
13712
13782
  name = name.token.match(/^(?:"|')/) ? name.token.slice(1, -1) : name.token;
13713
13783
  }
13714
13784
  if (optional)
13715
- $0[3] = optional = { ...optional, ts: true };
13716
- modifier = modifier || {};
13785
+ optional = { ...optional, ts: true };
13717
13786
  return {
13718
13787
  type: "MethodSignature",
13719
- children: $0,
13788
+ children: [...modifier.children, name, ws1, optional, ws2, parameters, returnType],
13789
+ async: modifier.async,
13790
+ generator: modifier.generator,
13720
13791
  name,
13721
13792
  optional,
13722
- modifier,
13793
+ modifier: modifier.modifier,
13723
13794
  // get/set/async/generator
13724
13795
  returnType,
13725
13796
  parameters
@@ -15720,48 +15791,65 @@ ${js}`
15720
15791
  return (0, import_lib2.$EVENT)(ctx, state2, "Debugger", Debugger$0);
15721
15792
  }
15722
15793
  var MaybeNestedNonPipelineExpression$0 = NestedBulletedArray;
15723
- 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) {
15724
- if ($3)
15725
- return $3;
15726
- return $skip;
15794
+ var MaybeNestedNonPipelineExpression$1 = NestedImplicitObjectLiteral;
15795
+ 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) {
15796
+ var expression = $2;
15797
+ var trailing = $4;
15798
+ if (!expression)
15799
+ return $skip;
15800
+ if (!trailing)
15801
+ return expression;
15802
+ return [expression, trailing];
15727
15803
  });
15728
- var MaybeNestedNonPipelineExpression$2 = NonPipelineExpression;
15729
- var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2];
15804
+ var MaybeNestedNonPipelineExpression$3 = NonPipelineExpression;
15805
+ var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2, MaybeNestedNonPipelineExpression$3];
15730
15806
  function MaybeNestedNonPipelineExpression(ctx, state2) {
15731
15807
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedNonPipelineExpression", MaybeNestedNonPipelineExpression$$);
15732
15808
  }
15733
15809
  var MaybeNestedPostfixedExpression$0 = NestedBulletedArray;
15734
- 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) {
15735
- if ($3)
15736
- return $3;
15737
- return $skip;
15810
+ var MaybeNestedPostfixedExpression$1 = NestedImplicitObjectLiteral;
15811
+ 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) {
15812
+ var expression = $2;
15813
+ var trailing = $4;
15814
+ if (!expression)
15815
+ return $skip;
15816
+ if (!trailing)
15817
+ return expression;
15818
+ return [expression, trailing];
15738
15819
  });
15739
- var MaybeNestedPostfixedExpression$2 = PostfixedExpression;
15740
- var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2];
15820
+ var MaybeNestedPostfixedExpression$3 = PostfixedExpression;
15821
+ var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2, MaybeNestedPostfixedExpression$3];
15741
15822
  function MaybeNestedPostfixedExpression(ctx, state2) {
15742
15823
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedPostfixedExpression", MaybeNestedPostfixedExpression$$);
15743
15824
  }
15825
+ var NestedPostfixedExpressionNoTrailing$0 = NestedBulletedArray;
15826
+ var NestedPostfixedExpressionNoTrailing$1 = NestedImplicitObjectLiteral;
15827
+ 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) {
15828
+ var expression = $2;
15829
+ if (!expression)
15830
+ return $skip;
15831
+ return expression;
15832
+ });
15833
+ var NestedPostfixedExpressionNoTrailing$$ = [NestedPostfixedExpressionNoTrailing$0, NestedPostfixedExpressionNoTrailing$1, NestedPostfixedExpressionNoTrailing$2];
15834
+ function NestedPostfixedExpressionNoTrailing(ctx, state2) {
15835
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedPostfixedExpressionNoTrailing", NestedPostfixedExpressionNoTrailing$$);
15836
+ }
15744
15837
  var MaybeNestedExpression$0 = NestedBulletedArray;
15745
- 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) {
15746
- if ($3)
15747
- return $3;
15748
- return $skip;
15838
+ var MaybeNestedExpression$1 = NestedImplicitObjectLiteral;
15839
+ 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) {
15840
+ var expression = $2;
15841
+ var trailing = $4;
15842
+ if (!expression)
15843
+ return $skip;
15844
+ if (!trailing)
15845
+ return expression;
15846
+ return [expression, trailing];
15749
15847
  });
15750
- var MaybeNestedExpression$2 = Expression;
15751
- var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2];
15848
+ var MaybeNestedExpression$3 = Expression;
15849
+ var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2, MaybeNestedExpression$3];
15752
15850
  function MaybeNestedExpression(ctx, state2) {
15753
15851
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedExpression", MaybeNestedExpression$$);
15754
15852
  }
15755
- var NestedExpression$0 = NestedBulletedArray;
15756
- 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) {
15757
- if ($3)
15758
- return $3;
15759
- return $skip;
15760
- });
15761
- var NestedExpression$$ = [NestedExpression$0, NestedExpression$1];
15762
- function NestedExpression(ctx, state2) {
15763
- return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedExpression", NestedExpression$$);
15764
- }
15765
15853
  var MaybeParenNestedExpression$0 = (0, import_lib2.$T)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), PostfixStatement, NoBlock)), function(value) {
15766
15854
  return "";
15767
15855
  });
@@ -15771,7 +15859,7 @@ ${js}`
15771
15859
  var MaybeParenNestedExpression$2 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), (0, import_lib2.$C)(ArrayLiteral, ObjectLiteral)), function(value) {
15772
15860
  return value[1];
15773
15861
  });
15774
- 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) {
15862
+ 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) {
15775
15863
  var exp = $5;
15776
15864
  if (!exp)
15777
15865
  return $skip;
@@ -16480,13 +16568,29 @@ ${js}`
16480
16568
  function SingleStringCharacters(ctx, state2) {
16481
16569
  return (0, import_lib2.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
16482
16570
  }
16483
- 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) {
16571
+ var TripleDoubleStringContents$0 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, (0, import_lib2.$Q)((0, import_lib2.$C)(CoffeeTripleDoubleStringCharacters, CoffeeStringSubstitution))), function(value) {
16572
+ return value[1];
16573
+ });
16574
+ var TripleDoubleStringContents$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeInterpolationEnabled), TripleDoubleStringCharacters), function(value) {
16575
+ return [value[1]];
16576
+ });
16577
+ var TripleDoubleStringContents$$ = [TripleDoubleStringContents$0, TripleDoubleStringContents$1];
16578
+ function TripleDoubleStringContents(ctx, state2) {
16579
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "TripleDoubleStringContents", TripleDoubleStringContents$$);
16580
+ }
16581
+ 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) {
16582
+ return { $loc, token: $0 };
16583
+ });
16584
+ function CoffeeTripleDoubleStringCharacters(ctx, state2) {
16585
+ return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeTripleDoubleStringCharacters", CoffeeTripleDoubleStringCharacters$0);
16586
+ }
16587
+ 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) {
16484
16588
  return { $loc, token: $0 };
16485
16589
  });
16486
16590
  function TripleDoubleStringCharacters(ctx, state2) {
16487
16591
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
16488
16592
  }
16489
- 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) {
16593
+ 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) {
16490
16594
  return { $loc, token: $0 };
16491
16595
  });
16492
16596
  function TripleSingleStringCharacters(ctx, state2) {
@@ -16509,7 +16613,7 @@ ${js}`
16509
16613
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
16510
16614
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
16511
16615
  }
16512
- 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) {
16616
+ 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) {
16513
16617
  return { $loc, token: $0 };
16514
16618
  });
16515
16619
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -16529,7 +16633,7 @@ ${js}`
16529
16633
  function RegularExpressionClass(ctx, state2) {
16530
16634
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
16531
16635
  }
16532
- 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) {
16636
+ 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) {
16533
16637
  return { $loc, token: $0 };
16534
16638
  });
16535
16639
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -16580,13 +16684,13 @@ ${js}`
16580
16684
  return (0, import_lib2.$EVENT)(ctx, state2, "HeregexBody", HeregexBody$0);
16581
16685
  }
16582
16686
  var HeregexPart$0 = RegularExpressionClass;
16583
- var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeStringSubstitution), function(value) {
16584
- return { "type": "Substitution", "children": value[0] };
16687
+ var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, CoffeeStringSubstitution), function(value) {
16688
+ return { "type": "Substitution", "children": value[1] };
16585
16689
  });
16586
16690
  var HeregexPart$2 = (0, import_lib2.$T)((0, import_lib2.$S)(TemplateSubstitution), function(value) {
16587
16691
  return { "type": "Substitution", "children": value[0] };
16588
16692
  });
16589
- 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) {
16693
+ 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) {
16590
16694
  let token = $0;
16591
16695
  switch ($0[1]) {
16592
16696
  case "\n":
@@ -16604,26 +16708,28 @@ ${js}`
16604
16708
  var HeregexPart$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(HeregexComment), function($skip, $loc, $0, $1) {
16605
16709
  return { $loc, token: "" };
16606
16710
  });
16607
- 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) {
16711
+ 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) {
16608
16712
  return { $loc, token: "" };
16609
16713
  });
16610
- 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) {
16714
+ 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) {
16611
16715
  return { $loc, token: "\\/" };
16612
16716
  });
16613
- 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) {
16717
+ 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) {
16614
16718
  return { $loc, token: $0 };
16615
16719
  });
16616
16720
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
16617
16721
  function HeregexPart(ctx, state2) {
16618
16722
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexPart", HeregexPart$$);
16619
16723
  }
16620
- var HeregexComment$0 = JSSingleLineComment;
16621
- var HeregexComment$1 = CoffeeSingleLineComment;
16724
+ var HeregexComment$0 = (0, import_lib2.$S)((0, import_lib2.$N)(CoffeeDivEnabled), JSSingleLineComment);
16725
+ var HeregexComment$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeCommentEnabled, CoffeeSingleLineComment), function(value) {
16726
+ return value[1];
16727
+ });
16622
16728
  var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
16623
16729
  function HeregexComment(ctx, state2) {
16624
16730
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
16625
16731
  }
16626
- 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));
16732
+ 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));
16627
16733
  function RegularExpressionBody(ctx, state2) {
16628
16734
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
16629
16735
  }
@@ -16633,15 +16739,15 @@ ${js}`
16633
16739
  function RegExpPart(ctx, state2) {
16634
16740
  return (0, import_lib2.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
16635
16741
  }
16636
- var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R56, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16742
+ var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16637
16743
  function RegExpCharacter(ctx, state2) {
16638
16744
  return (0, import_lib2.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
16639
16745
  }
16640
- var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16746
+ var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R58, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16641
16747
  function RegularExpressionFlags(ctx, state2) {
16642
16748
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
16643
16749
  }
16644
- var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R58, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16750
+ var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R59, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16645
16751
  return value[1];
16646
16752
  });
16647
16753
  function TemplateLiteral(ctx, state2) {
@@ -16656,7 +16762,7 @@ ${js}`
16656
16762
  children: $0
16657
16763
  };
16658
16764
  });
16659
- 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) {
16765
+ var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, TripleDoubleStringContents, TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16660
16766
  return dedentBlockSubstitutions($0, config.tab);
16661
16767
  });
16662
16768
  var _TemplateLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
@@ -16681,28 +16787,28 @@ ${js}`
16681
16787
  function TemplateSubstitution(ctx, state2) {
16682
16788
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
16683
16789
  }
16684
- 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) {
16790
+ 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) {
16685
16791
  return { $loc, token: $0 };
16686
16792
  });
16687
16793
  function TemplateCharacters(ctx, state2) {
16688
16794
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
16689
16795
  }
16690
- 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) {
16796
+ 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) {
16691
16797
  return { $loc, token: $0 };
16692
16798
  });
16693
16799
  function TemplateBlockCharacters(ctx, state2) {
16694
16800
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
16695
16801
  }
16696
- 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);
16697
- var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R62, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16698
- var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16699
- var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16700
- 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})/"));
16802
+ 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);
16803
+ var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16804
+ var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16805
+ var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16806
+ 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})/"));
16701
16807
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
16702
16808
  function ReservedWord(ctx, state2) {
16703
16809
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
16704
16810
  }
16705
- var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R66, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16811
+ var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R67, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16706
16812
  return value[1];
16707
16813
  });
16708
16814
  function Comment(ctx, state2) {
@@ -16720,7 +16826,7 @@ ${js}`
16720
16826
  function SingleLineComment(ctx, state2) {
16721
16827
  return (0, import_lib2.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
16722
16828
  }
16723
- 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) {
16829
+ 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) {
16724
16830
  return { type: "Comment", $loc, token: $0 };
16725
16831
  });
16726
16832
  function JSSingleLineComment(ctx, state2) {
@@ -16732,30 +16838,30 @@ ${js}`
16732
16838
  function MultiLineComment(ctx, state2) {
16733
16839
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
16734
16840
  }
16735
- 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) {
16841
+ 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) {
16736
16842
  return { type: "Comment", $loc, token: $1 };
16737
16843
  });
16738
16844
  function JSMultiLineComment(ctx, state2) {
16739
16845
  return (0, import_lib2.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
16740
16846
  }
16741
- 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) {
16847
+ 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) {
16742
16848
  return { type: "Comment", $loc, token: `//${$1}` };
16743
16849
  });
16744
16850
  function CoffeeSingleLineComment(ctx, state2) {
16745
16851
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
16746
16852
  }
16747
- 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) {
16853
+ 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) {
16748
16854
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
16749
16855
  return { type: "Comment", $loc, token: `/*${$2}*/` };
16750
16856
  });
16751
16857
  function CoffeeMultiLineComment(ctx, state2) {
16752
16858
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
16753
16859
  }
16754
- var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R71, "CoffeeHereCommentStart /###(?!#)/"));
16860
+ var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R72, "CoffeeHereCommentStart /###(?!#)/"));
16755
16861
  function CoffeeHereCommentStart(ctx, state2) {
16756
16862
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
16757
16863
  }
16758
- 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) {
16864
+ 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) {
16759
16865
  return { $loc, token: $0 };
16760
16866
  });
16761
16867
  function InlineComment(ctx, state2) {
@@ -16769,7 +16875,7 @@ ${js}`
16769
16875
  function TrailingComment(ctx, state2) {
16770
16876
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
16771
16877
  }
16772
- 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) {
16878
+ 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) {
16773
16879
  return value[1];
16774
16880
  });
16775
16881
  function _(ctx, state2) {
@@ -16792,7 +16898,7 @@ ${js}`
16792
16898
  function Trimmed_(ctx, state2) {
16793
16899
  return (0, import_lib2.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
16794
16900
  }
16795
- 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) {
16901
+ 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) {
16796
16902
  return value[1];
16797
16903
  });
16798
16904
  var __$1 = (0, import_lib2.$EXPECT)($L0, '__ ""');
@@ -16800,7 +16906,7 @@ ${js}`
16800
16906
  function __(ctx, state2) {
16801
16907
  return (0, import_lib2.$EVENT_C)(ctx, state2, "__", __$$);
16802
16908
  }
16803
- 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) {
16909
+ 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) {
16804
16910
  return { $loc, token: $0 };
16805
16911
  });
16806
16912
  function Whitespace(ctx, state2) {
@@ -16842,7 +16948,7 @@ ${js}`
16842
16948
  function SemicolonDelimiter(ctx, state2) {
16843
16949
  return (0, import_lib2.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
16844
16950
  }
16845
- var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R75, "NonIdContinue /(?!\\p{ID_Continue})/"));
16951
+ var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R76, "NonIdContinue /(?!\\p{ID_Continue})/"));
16846
16952
  function NonIdContinue(ctx, state2) {
16847
16953
  return (0, import_lib2.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
16848
16954
  }
@@ -16960,7 +17066,7 @@ ${js}`
16960
17066
  function CoffeeSubstitutionStart(ctx, state2) {
16961
17067
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
16962
17068
  }
16963
- 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) {
17069
+ 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) {
16964
17070
  return { $loc, token: $1 };
16965
17071
  });
16966
17072
  function Colon(ctx, state2) {
@@ -17011,7 +17117,7 @@ ${js}`
17011
17117
  var Dot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
17012
17118
  return { $loc, token: $1 };
17013
17119
  });
17014
- 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) {
17120
+ 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) {
17015
17121
  var ws = $2;
17016
17122
  return [
17017
17123
  { $loc, token: "." },
@@ -17144,7 +17250,7 @@ ${js}`
17144
17250
  function If(ctx, state2) {
17145
17251
  return (0, import_lib2.$EVENT)(ctx, state2, "If", If$0);
17146
17252
  }
17147
- 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) {
17253
+ 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) {
17148
17254
  return { $loc, token: $1 };
17149
17255
  });
17150
17256
  function Import(ctx, state2) {
@@ -17502,7 +17608,7 @@ ${js}`
17502
17608
  function JSXImplicitFragment(ctx, state2) {
17503
17609
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
17504
17610
  }
17505
- var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R79, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17611
+ var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R80, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17506
17612
  return value[1];
17507
17613
  });
17508
17614
  function JSXTag(ctx, state2) {
@@ -17649,7 +17755,7 @@ ${js}`
17649
17755
  function JSXElementName(ctx, state2) {
17650
17756
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
17651
17757
  }
17652
- var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R80, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17758
+ var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R81, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17653
17759
  function JSXIdentifierName(ctx, state2) {
17654
17760
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
17655
17761
  }
@@ -17831,7 +17937,7 @@ ${js}`
17831
17937
  class: $2
17832
17938
  };
17833
17939
  });
17834
- 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) {
17940
+ 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) {
17835
17941
  var toggle = $1;
17836
17942
  var id = $2;
17837
17943
  const value = toggle === "+" ? "true" : "false";
@@ -17841,11 +17947,11 @@ ${js}`
17841
17947
  function JSXAttribute(ctx, state2) {
17842
17948
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
17843
17949
  }
17844
- var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R82, "JSXAttributeSpace /[\\s>]|\\/>/"));
17950
+ var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R83, "JSXAttributeSpace /[\\s>]|\\/>/"));
17845
17951
  function JSXAttributeSpace(ctx, state2) {
17846
17952
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
17847
17953
  }
17848
- 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) {
17954
+ 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) {
17849
17955
  return quoteString($0);
17850
17956
  });
17851
17957
  var JSXShorthandString$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -17863,17 +17969,13 @@ ${js}`
17863
17969
  function JSXAttributeName(ctx, state2) {
17864
17970
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeName", JSXAttributeName$$);
17865
17971
  }
17866
- 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) {
17972
+ 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) {
17867
17973
  var ws1 = $2;
17868
17974
  var equals = $3;
17869
- var ws2 = $4;
17870
17975
  var open = $5;
17871
- var indent = $6;
17872
- var expression = $7;
17873
- var close = $9;
17874
- if (!expression)
17875
- return $skip;
17876
- return [ws1, equals, ws2, open, indent, expression, close];
17976
+ var expression = $6;
17977
+ var close = $7;
17978
+ return [ws1, equals, open, trimFirstSpace(expression), close];
17877
17979
  });
17878
17980
  var JSXAttributeInitializer$1 = (0, import_lib2.$S)((0, import_lib2.$E)(Whitespace), Equals, (0, import_lib2.$E)(Whitespace), JSXAttributeValue);
17879
17981
  var JSXAttributeInitializer$$ = [JSXAttributeInitializer$0, JSXAttributeInitializer$1];
@@ -17892,7 +17994,7 @@ ${js}`
17892
17994
  }
17893
17995
  return [open, value, close];
17894
17996
  });
17895
- var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R84, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17997
+ var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R85, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17896
17998
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
17897
17999
  function JSXAttributeValue(ctx, state2) {
17898
18000
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -17905,7 +18007,7 @@ ${js}`
17905
18007
  function InlineJSXAttributeValue(ctx, state2) {
17906
18008
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
17907
18009
  }
17908
- 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) {
18010
+ 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) {
17909
18011
  var op = $2;
17910
18012
  var rhs = $3;
17911
18013
  return [[], op, [], rhs];
@@ -17922,7 +18024,7 @@ ${js}`
17922
18024
  function InlineJSXUnaryExpression(ctx, state2) {
17923
18025
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
17924
18026
  }
17925
- 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) {
18027
+ 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) {
17926
18028
  return { $loc, token: $0 };
17927
18029
  });
17928
18030
  function InlineJSXUnaryOp(ctx, state2) {
@@ -18173,13 +18275,13 @@ ${js}`
18173
18275
  function JSXComment(ctx, state2) {
18174
18276
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
18175
18277
  }
18176
- 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) {
18278
+ 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) {
18177
18279
  return { $loc, token: $0.replace(/\*\//g, "* /") };
18178
18280
  });
18179
18281
  function JSXCommentContent(ctx, state2) {
18180
18282
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
18181
18283
  }
18182
- 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) {
18284
+ 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) {
18183
18285
  return {
18184
18286
  type: "JSXText",
18185
18287
  token: $0,
@@ -18713,7 +18815,7 @@ ${js}`
18713
18815
  function TypeProperty(ctx, state2) {
18714
18816
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
18715
18817
  }
18716
- 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)))));
18818
+ 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)))));
18717
18819
  function TypeIndexSignature(ctx, state2) {
18718
18820
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
18719
18821
  }
@@ -19222,7 +19324,7 @@ ${js}`
19222
19324
  function TypeWithPostfix(ctx, state2) {
19223
19325
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
19224
19326
  }
19225
- 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) {
19327
+ 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) {
19226
19328
  return prepend($1, expressionizeTypeIf($3));
19227
19329
  });
19228
19330
  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) {
@@ -19456,8 +19558,8 @@ ${js}`
19456
19558
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
19457
19559
  }
19458
19560
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
19459
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19460
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19561
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19562
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19461
19563
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
19462
19564
  function ForbiddenImplicitTypeCalls(ctx, state2) {
19463
19565
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -19548,7 +19650,7 @@ ${js}`
19548
19650
  function TypeParameters(ctx, state2) {
19549
19651
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
19550
19652
  }
19551
- 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);
19653
+ 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);
19552
19654
  function TypeParameter(ctx, state2) {
19553
19655
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
19554
19656
  }
@@ -19575,15 +19677,15 @@ ${js}`
19575
19677
  function ThisType(ctx, state2) {
19576
19678
  return (0, import_lib2.$EVENT)(ctx, state2, "ThisType", ThisType$0);
19577
19679
  }
19578
- var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "Shebang /#![^\\r\\n]*/")), EOL);
19680
+ var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "Shebang /#![^\\r\\n]*/")), EOL);
19579
19681
  function Shebang(ctx, state2) {
19580
19682
  return (0, import_lib2.$EVENT)(ctx, state2, "Shebang", Shebang$0);
19581
19683
  }
19582
- 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) {
19684
+ 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) {
19583
19685
  var content = value[2];
19584
19686
  return content;
19585
19687
  });
19586
- 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) {
19688
+ 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) {
19587
19689
  var content = value[2];
19588
19690
  return content;
19589
19691
  });
@@ -19591,7 +19693,7 @@ ${js}`
19591
19693
  function CivetPrologue(ctx, state2) {
19592
19694
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19593
19695
  }
19594
- 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) {
19696
+ 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) {
19595
19697
  var options = $3;
19596
19698
  return {
19597
19699
  type: "CivetPrologue",
@@ -19602,7 +19704,7 @@ ${js}`
19602
19704
  function CivetPrologueContent(ctx, state2) {
19603
19705
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
19604
19706
  }
19605
- 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) {
19707
+ 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) {
19606
19708
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
19607
19709
  if (l)
19608
19710
  return l.toUpperCase();
@@ -19625,11 +19727,11 @@ ${js}`
19625
19727
  function CivetOption(ctx, state2) {
19626
19728
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
19627
19729
  }
19628
- 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);
19730
+ 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);
19629
19731
  function UnknownPrologue(ctx, state2) {
19630
19732
  return (0, import_lib2.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
19631
19733
  }
19632
- 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));
19734
+ 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));
19633
19735
  function TripleSlashDirective(ctx, state2) {
19634
19736
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
19635
19737
  }
@@ -19645,13 +19747,13 @@ ${js}`
19645
19747
  function PrologueString(ctx, state2) {
19646
19748
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
19647
19749
  }
19648
- 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) {
19750
+ 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) {
19649
19751
  return value[1];
19650
19752
  });
19651
19753
  function EOS(ctx, state2) {
19652
19754
  return (0, import_lib2.$EVENT)(ctx, state2, "EOS", EOS$0);
19653
19755
  }
19654
- 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) {
19756
+ 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) {
19655
19757
  return { $loc, token: $0 };
19656
19758
  });
19657
19759
  function EOL(ctx, state2) {
@@ -19979,6 +20081,7 @@ ${js}`
19979
20081
  coffeeNot: false,
19980
20082
  coffeeOf: false,
19981
20083
  coffeePrototype: false,
20084
+ coffeeRange: false,
19982
20085
  defaultElement: "div",
19983
20086
  globals: [],
19984
20087
  iife: false,
@@ -20022,7 +20125,8 @@ ${js}`
20022
20125
  "coffeeLineContinuation",
20023
20126
  "coffeeNot",
20024
20127
  "coffeeOf",
20025
- "coffeePrototype"
20128
+ "coffeePrototype",
20129
+ "coffeeRange"
20026
20130
  ]) {
20027
20131
  config[option] = b;
20028
20132
  }
@@ -20065,7 +20169,7 @@ ${js}`
20065
20169
  function Prologue(ctx, state2) {
20066
20170
  return (0, import_lib2.$EVENT)(ctx, state2, "Prologue", Prologue$0);
20067
20171
  }
20068
- var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R101, "ProloguePrefix /[^]*/")));
20172
+ var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R102, "ProloguePrefix /[^]*/")));
20069
20173
  function ProloguePrefix(ctx, state2) {
20070
20174
  return (0, import_lib2.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
20071
20175
  }