@danielx/civet 0.8.16 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.mjs CHANGED
@@ -60,7 +60,7 @@ var require_machine = __commonJS({
60
60
  $N: () => $N2,
61
61
  $P: () => $P2,
62
62
  $Q: () => $Q2,
63
- $R: () => $R102,
63
+ $R: () => $R103,
64
64
  $R$0: () => $R$02,
65
65
  $S: () => $S2,
66
66
  $T: () => $T2,
@@ -97,7 +97,7 @@ var require_machine = __commonJS({
97
97
  return;
98
98
  };
99
99
  }
100
- function $R102(regExp) {
100
+ function $R103(regExp) {
101
101
  return function(_ctx, state2) {
102
102
  const { input, pos } = state2;
103
103
  regExp.lastIndex = state2.pos;
@@ -1175,7 +1175,6 @@ var skipParens = /* @__PURE__ */ new Set([
1175
1175
  "JSXElement",
1176
1176
  "JSXFragment",
1177
1177
  "Literal",
1178
- "NewExpression",
1179
1178
  "ParenthesizedExpression",
1180
1179
  "Ref",
1181
1180
  "Placeholder",
@@ -1197,7 +1196,10 @@ function makeLeftHandSideExpression(expression) {
1197
1196
  if (skipParens.has(expression.type)) {
1198
1197
  return expression;
1199
1198
  }
1200
- if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($6) => $6.type === "ObjectExpression")) {
1199
+ if (expression.type === "NewExpression" && expression.expression.children.some(($6) => $6?.type === "Call")) {
1200
+ return expression;
1201
+ }
1202
+ if (expression.type === "MemberExpression" && !startsWithPredicate(expression, ($7) => $7.type === "ObjectExpression")) {
1201
1203
  return expression;
1202
1204
  }
1203
1205
  }
@@ -1733,13 +1735,14 @@ function gatherBindingCode(statements, opts) {
1733
1735
  return;
1734
1736
  }
1735
1737
  if (opts?.injectParamProps && n.type === "Parameter" && n.accessModifier) {
1736
- n.names.forEach((id) => ({
1737
- push: thisAssignments2.push({
1738
+ for (let ref1 = n.names, i2 = 0, len1 = ref1.length; i2 < len1; i2++) {
1739
+ const id = ref1[i2];
1740
+ thisAssignments2.push({
1738
1741
  type: "AssignmentExpression",
1739
1742
  children: [`this.${id} = `, id],
1740
1743
  js: true
1741
- })
1742
- }));
1744
+ });
1745
+ }
1743
1746
  return;
1744
1747
  }
1745
1748
  const { blockPrefix } = n;
@@ -1751,8 +1754,8 @@ function gatherBindingCode(statements, opts) {
1751
1754
  return [splices, thisAssignments];
1752
1755
  }
1753
1756
  function arrayElementHasTrailingComma(elementNode) {
1754
- let ref1;
1755
- const lastChild = (ref1 = elementNode.children)[ref1.length - 1];
1757
+ let ref2;
1758
+ const lastChild = (ref2 = elementNode.children)[ref2.length - 1];
1756
1759
  return lastChild && lastChild[lastChild.length - 1]?.token === ",";
1757
1760
  }
1758
1761
  function gatherBindingPatternTypeSuffix(pattern) {
@@ -1764,8 +1767,8 @@ function gatherBindingPatternTypeSuffix(pattern) {
1764
1767
  case "ArrayBindingPattern": {
1765
1768
  {
1766
1769
  const results = [];
1767
- for (let ref2 = pattern.elements, i2 = 0, len1 = ref2.length; i2 < len1; i2++) {
1768
- const elem = ref2[i2];
1770
+ for (let ref3 = pattern.elements, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1771
+ const elem = ref3[i3];
1769
1772
  let { typeSuffix } = elem;
1770
1773
  typeSuffix ??= elem.binding?.typeSuffix;
1771
1774
  if (typeSuffix) {
@@ -1803,8 +1806,8 @@ function gatherBindingPatternTypeSuffix(pattern) {
1803
1806
  {
1804
1807
  let restType;
1805
1808
  const results1 = [];
1806
- for (let ref3 = pattern.properties, i3 = 0, len22 = ref3.length; i3 < len22; i3++) {
1807
- const prop = ref3[i3];
1809
+ for (let ref4 = pattern.properties, i4 = 0, len3 = ref4.length; i4 < len3; i4++) {
1810
+ const prop = ref4[i4];
1808
1811
  let { typeSuffix } = prop;
1809
1812
  typeSuffix ??= prop.value?.typeSuffix;
1810
1813
  if (typeSuffix) {
@@ -1956,8 +1959,14 @@ var declareHelper = {
1956
1959
  // [indent, statement]
1957
1960
  preludeVar,
1958
1961
  moduloRef,
1959
- ts(": (a: number, b: number) => number"),
1960
- " = (a, b) => (a % b + b) % b"
1962
+ " = ",
1963
+ ts("("),
1964
+ "(a",
1965
+ ts(": number"),
1966
+ ", b",
1967
+ ts(": number"),
1968
+ ") => (a % b + b) % b",
1969
+ ts(") as ((a: number, b: number) => number) & ((a: bigint, b: bigint) => bigint)")
1961
1970
  ], ";\n"]);
1962
1971
  },
1963
1972
  Falsy(FalsyRef) {
@@ -2522,7 +2531,7 @@ function getTypeArguments(args) {
2522
2531
  if (!Array.isArray(args)) {
2523
2532
  throw new Error("getTypeArguments could not find relevant array");
2524
2533
  }
2525
- return args.filter((a) => typeof a === "object" && a != null && "type" in a && a.type === "TypeArgument");
2534
+ return args.filter((a1) => typeof a1 === "object" && a1 != null && "type" in a1 && a1.type === "TypeArgument");
2526
2535
  }
2527
2536
  function isVoidType(t) {
2528
2537
  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";
@@ -3388,7 +3397,7 @@ function processParams(f) {
3388
3397
  if (isConstructor) {
3389
3398
  const { ancestor } = findAncestor(f, ($6) => $6.type === "ClassExpression");
3390
3399
  if (ancestor != null) {
3391
- 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));
3400
+ 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));
3392
3401
  const classExpressions = ancestor.body.expressions;
3393
3402
  let index = findChildIndex(classExpressions, f);
3394
3403
  assert.notEqual(index, -1, "Could not find constructor in class");
@@ -3399,15 +3408,20 @@ function processParams(f) {
3399
3408
  const fStatement = classExpressions[index];
3400
3409
  for (let ref16 = gatherRecursive(parameters, ($10) => $10.type === "Parameter"), i8 = 0, len7 = ref16.length; i8 < len7; i8++) {
3401
3410
  const parameter = ref16[i8];
3402
- if (!parameter.typeSuffix) {
3411
+ const { accessModifier } = parameter;
3412
+ if (!(accessModifier || parameter.typeSuffix)) {
3403
3413
  continue;
3404
3414
  }
3405
3415
  for (let ref17 = gatherRecursive(parameter, ($11) => $11.type === "AtBinding"), i9 = 0, len8 = ref17.length; i9 < len8; i9++) {
3406
3416
  const binding = ref17[i9];
3407
3417
  const typeSuffix = binding.parent?.typeSuffix;
3408
- if (!typeSuffix) {
3418
+ if (!(accessModifier || typeSuffix)) {
3409
3419
  continue;
3410
3420
  }
3421
+ if (parameter.accessModifier) {
3422
+ replaceNode(parameter.accessModifier, void 0);
3423
+ parameter.accessModifier = void 0;
3424
+ }
3411
3425
  const id = binding.ref.id;
3412
3426
  if (fields.has(id)) {
3413
3427
  continue;
@@ -3416,7 +3430,7 @@ function processParams(f) {
3416
3430
  type: "FieldDefinition",
3417
3431
  id,
3418
3432
  typeSuffix,
3419
- children: [id, typeSuffix]
3433
+ children: [accessModifier, id, typeSuffix]
3420
3434
  }, ";"]);
3421
3435
  fStatement[0] = "";
3422
3436
  }
@@ -3440,10 +3454,10 @@ function processParams(f) {
3440
3454
  if (isConstructor) {
3441
3455
  const superCalls = gatherNodes(
3442
3456
  expressions,
3443
- (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"
3457
+ (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"
3444
3458
  );
3445
3459
  if (superCalls.length) {
3446
- const { child } = findAncestor(superCalls[0], (a3) => a3 === block);
3460
+ const { child } = findAncestor(superCalls[0], (a4) => a4 === block);
3447
3461
  const index = findChildIndex(expressions, child);
3448
3462
  if (index < 0) {
3449
3463
  throw new Error("Could not find super call within top-level expressions");
@@ -3458,21 +3472,33 @@ function processParams(f) {
3458
3472
  function processSignature(f) {
3459
3473
  const { block, signature } = f;
3460
3474
  if (!f.async?.length && hasAwait(block)) {
3461
- f.async.push("async ");
3462
- signature.modifier.async = true;
3463
- }
3464
- if (!f.generator?.length && hasYield(block)) {
3465
- if (f.type === "ArrowFunction") {
3466
- gatherRecursiveWithinFunction(block, ($12) => $12.type === "YieldExpression").forEach((y) => {
3467
- const i = y.children.findIndex(($13) => $13.type === "Yield");
3468
- return y.children.splice(i + 1, 0, {
3475
+ if (f.async != null) {
3476
+ f.async.push("async ");
3477
+ signature.modifier.async = true;
3478
+ } else {
3479
+ for (let ref18 = gatherRecursiveWithinFunction(block, ($12) => $12.type === "Await"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3480
+ const a = ref18[i10];
3481
+ const i = findChildIndex(a.parent, a);
3482
+ a.parent.children.splice(i + 1, 0, {
3469
3483
  type: "Error",
3470
- message: "Can't use yield inside of => arrow function"
3484
+ message: `await invalid in ${signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3471
3485
  });
3472
- });
3473
- } else {
3486
+ }
3487
+ }
3488
+ }
3489
+ if (!f.generator?.length && hasYield(block)) {
3490
+ if (f.generator != null) {
3474
3491
  f.generator.push("*");
3475
3492
  signature.modifier.generator = true;
3493
+ } else {
3494
+ for (let ref19 = gatherRecursiveWithinFunction(block, ($13) => $13.type === "YieldExpression"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3495
+ const y = ref19[i11];
3496
+ const i = y.children.findIndex(($14) => $14.type === "Yield");
3497
+ y.children.splice(i + 1, 0, {
3498
+ type: "Error",
3499
+ message: `yield invalid in ${f.type === "ArrowFunction" ? "=> arrow function" : signature.modifier.get ? "getter" : signature.modifier.set ? "setter" : signature.name}`
3500
+ });
3501
+ }
3476
3502
  }
3477
3503
  }
3478
3504
  if (signature.modifier.async && !signature.modifier.generator && signature.returnType && !isPromiseType(signature.returnType.t)) {
@@ -3480,21 +3506,15 @@ function processSignature(f) {
3480
3506
  }
3481
3507
  }
3482
3508
  function processFunctions(statements, config2) {
3483
- for (let ref18 = gatherRecursiveAll(statements, ($14) => $14.type === "FunctionExpression" || $14.type === "ArrowFunction"), i10 = 0, len9 = ref18.length; i10 < len9; i10++) {
3484
- const f = ref18[i10];
3485
- if (f.type === "FunctionExpression") {
3509
+ for (let ref20 = gatherRecursiveAll(statements, ($15) => $15.type === "FunctionExpression" || $15.type === "ArrowFunction" || $15.type === "MethodDefinition"), i12 = 0, len11 = ref20.length; i12 < len11; i12++) {
3510
+ const f = ref20[i12];
3511
+ if (f.type === "FunctionExpression" || f.type === "MethodDefinition") {
3486
3512
  implicitFunctionBlock(f);
3487
3513
  }
3488
3514
  processSignature(f);
3489
3515
  processParams(f);
3490
3516
  processReturn(f, config2.implicitReturns);
3491
3517
  }
3492
- for (let ref19 = gatherRecursiveAll(statements, ($15) => $15.type === "MethodDefinition"), i11 = 0, len10 = ref19.length; i11 < len10; i11++) {
3493
- const f = ref19[i11];
3494
- implicitFunctionBlock(f);
3495
- processParams(f);
3496
- processReturn(f, config2.implicitReturns);
3497
- }
3498
3518
  }
3499
3519
  function expressionizeIteration(exp) {
3500
3520
  let { async, generator, block, children, statement } = exp;
@@ -3543,9 +3563,9 @@ function expressionizeIteration(exp) {
3543
3563
  }
3544
3564
  let done;
3545
3565
  if (!async) {
3546
- let ref20;
3547
- if ((ref20 = blockContainingStatement(exp)) && typeof ref20 === "object" && "block" in ref20 && "index" in ref20) {
3548
- const { block: parentBlock, index } = ref20;
3566
+ let ref21;
3567
+ if ((ref21 = blockContainingStatement(exp)) && typeof ref21 === "object" && "block" in ref21 && "index" in ref21) {
3568
+ const { block: parentBlock, index } = ref21;
3549
3569
  statements[0][0] = parentBlock.expressions[index][0];
3550
3570
  parentBlock.expressions.splice(index, index + 1 - index, ...statements);
3551
3571
  updateParentPointers(parentBlock);
@@ -3562,8 +3582,8 @@ function expressionizeIteration(exp) {
3562
3582
  }
3563
3583
  }
3564
3584
  function processIterationExpressions(statements) {
3565
- for (let ref21 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i12 = 0, len11 = ref21.length; i12 < len11; i12++) {
3566
- const s = ref21[i12];
3585
+ for (let ref22 = gatherRecursiveAll(statements, ($16) => $16.type === "IterationExpression"), i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3586
+ const s = ref22[i13];
3567
3587
  expressionizeIteration(s);
3568
3588
  }
3569
3589
  }
@@ -3589,21 +3609,21 @@ function processCoffeeDo(ws, expression) {
3589
3609
  ...parameters,
3590
3610
  children: (() => {
3591
3611
  const results1 = [];
3592
- for (let ref22 = parameters.children, i13 = 0, len12 = ref22.length; i13 < len12; i13++) {
3593
- let parameter = ref22[i13];
3612
+ for (let ref23 = parameters.children, i14 = 0, len13 = ref23.length; i14 < len13; i14++) {
3613
+ let parameter = ref23[i14];
3594
3614
  if (typeof parameter === "object" && parameter != null && "type" in parameter && parameter.type === "Parameter") {
3595
- let ref23;
3596
- if (ref23 = parameter.initializer) {
3597
- const initializer = ref23;
3615
+ let ref24;
3616
+ if (ref24 = parameter.initializer) {
3617
+ const initializer = ref24;
3598
3618
  args.push(initializer.expression, parameter.delim);
3599
3619
  parameter = {
3600
3620
  ...parameter,
3601
3621
  initializer: void 0,
3602
- children: parameter.children.filter((a4) => a4 !== initializer)
3622
+ children: parameter.children.filter((a5) => a5 !== initializer)
3603
3623
  };
3604
3624
  } else {
3605
3625
  args.push(parameter.children.filter(
3606
- (a5) => a5 !== parameter.typeSuffix
3626
+ (a6) => a6 !== parameter.typeSuffix
3607
3627
  ));
3608
3628
  }
3609
3629
  }
@@ -3676,7 +3696,7 @@ function makeAmpersandFunction(rhs) {
3676
3696
  }
3677
3697
  if (gatherRecursiveWithinFunction(
3678
3698
  block,
3679
- (a6) => a6 === ref
3699
+ (a7) => a7 === ref
3680
3700
  ).length > 1) {
3681
3701
  fn.ampersandBlock = false;
3682
3702
  }
@@ -5353,7 +5373,6 @@ function processUnaryNestedExpression(pre, args, post) {
5353
5373
 
5354
5374
  // source/parser/pipe.civet
5355
5375
  function constructInvocation(fn, arg) {
5356
- const fnArr = [fn.leadingComment, fn.expr, fn.trailingComment];
5357
5376
  let expr = fn.expr;
5358
5377
  while (expr.type === "ParenthesizedExpression") {
5359
5378
  expr = expr.expression;
@@ -5370,22 +5389,46 @@ function constructInvocation(fn, arg) {
5370
5389
  });
5371
5390
  }
5372
5391
  expr = fn.expr;
5373
- const lhs = makeLeftHandSideExpression(expr);
5392
+ let lhs = expr;
5393
+ if (!(lhs.type === "NewExpression")) {
5394
+ lhs = makeLeftHandSideExpression(lhs);
5395
+ }
5374
5396
  let comment = skipIfOnlyWS(fn.trailingComment);
5375
5397
  if (comment)
5376
- lhs.children.splice(2, 0, comment);
5398
+ lhs.children.push(comment);
5377
5399
  comment = skipIfOnlyWS(fn.leadingComment);
5378
5400
  if (comment)
5379
5401
  lhs.children.splice(1, 0, comment);
5380
5402
  switch (arg.type) {
5381
- case "CommaExpression":
5403
+ case "CommaExpression": {
5382
5404
  arg = makeLeftHandSideExpression(arg);
5383
5405
  break;
5406
+ }
5384
5407
  }
5385
- return {
5386
- type: "CallExpression",
5387
- children: [lhs, "(", arg, ")"]
5408
+ const args = [arg];
5409
+ const call = {
5410
+ type: "Call",
5411
+ args,
5412
+ children: ["(", args, ")"]
5388
5413
  };
5414
+ if (lhs.type === "NewExpression") {
5415
+ let { expression } = lhs;
5416
+ expression = {
5417
+ ...expression,
5418
+ type: "CallExpression",
5419
+ children: [...expression.children, call]
5420
+ };
5421
+ return {
5422
+ ...lhs,
5423
+ expression,
5424
+ children: lhs.children.map(($) => $ === lhs.expression ? expression : $)
5425
+ };
5426
+ } else {
5427
+ return {
5428
+ type: "CallExpression",
5429
+ children: [lhs, call]
5430
+ };
5431
+ }
5389
5432
  }
5390
5433
  function constructPipeStep(fn, arg, returning) {
5391
5434
  if (!returning) {
@@ -5432,21 +5475,24 @@ function processPipelineExpressions(statements) {
5432
5475
  let i = 0, l = body.length;
5433
5476
  const children = [ws];
5434
5477
  let usingRef = null;
5435
- for (i = 0; i < l; i++) {
5436
- const step = body[i];
5478
+ for (let i1 = 0, len3 = body.length; i1 < len3; i1++) {
5479
+ const i2 = i1;
5480
+ const step = body[i1];
5437
5481
  const [leadingComment, pipe, trailingComment, expr] = step;
5438
5482
  const returns = pipe.token === "||>";
5439
5483
  let ref, result, returning = returns ? arg : null;
5440
5484
  if (pipe.token === "|>=") {
5441
5485
  let initRef;
5442
- if (i === 0) {
5486
+ if (i2 === 0) {
5443
5487
  checkValidLHS(arg);
5444
5488
  outer:
5445
5489
  switch (arg.type) {
5446
- case "MemberExpression":
5447
- if (arg.children.length <= 2)
5490
+ case "MemberExpression": {
5491
+ if (arg.children.length <= 2) {
5448
5492
  break;
5449
- case "CallExpression":
5493
+ }
5494
+ }
5495
+ case "CallExpression": {
5450
5496
  const access = arg.children.pop();
5451
5497
  usingRef = makeRef();
5452
5498
  initRef = {
@@ -5458,6 +5504,7 @@ function processPipelineExpressions(statements) {
5458
5504
  children: [usingRef, access]
5459
5505
  };
5460
5506
  break;
5507
+ }
5461
5508
  }
5462
5509
  const lhs = [[
5463
5510
  [initRef],
@@ -5486,7 +5533,7 @@ function processPipelineExpressions(statements) {
5486
5533
  });
5487
5534
  }
5488
5535
  } else {
5489
- if (i === 0)
5536
+ if (i2 === 0)
5490
5537
  s.children = children;
5491
5538
  }
5492
5539
  if (returns && (ref = needsRef(arg))) {
@@ -5511,7 +5558,7 @@ function processPipelineExpressions(statements) {
5511
5558
  returning
5512
5559
  );
5513
5560
  if (result.type === "ReturnStatement") {
5514
- if (i < l - 1) {
5561
+ if (i2 < l - 1) {
5515
5562
  result.children.push({
5516
5563
  type: "Error",
5517
5564
  message: "Can't continue a pipeline after returning"
@@ -5539,7 +5586,7 @@ function processPipelineExpressions(statements) {
5539
5586
  };
5540
5587
  }
5541
5588
  children.push(arg);
5542
- if (!children.some(($) => $?.type === "ReturnStatement") && children.some(($1) => $1 === ",")) {
5589
+ if (!children.some(($1) => $1?.type === "ReturnStatement") && children.some(($2) => $2 === ",")) {
5543
5590
  const { parent } = s;
5544
5591
  const parenthesizedExpression = makeLeftHandSideExpression({ ...s });
5545
5592
  Object.assign(s, parenthesizedExpression, {
@@ -5679,7 +5726,7 @@ function processRangeExpression(start, ws1, range, end) {
5679
5726
  };
5680
5727
  }
5681
5728
  function forRange(open, forDeclaration, range, stepExp, close) {
5682
- const { start, end, left, right, increasing } = range;
5729
+ let { start, end, left, right, increasing } = range;
5683
5730
  const counterRef = makeRef("i");
5684
5731
  const infinite = typeof end === "object" && end != null && "type" in end && end.type === "Identifier" && "name" in end && end.name === "Infinity";
5685
5732
  let stepRef, asc;
@@ -5721,28 +5768,35 @@ function forRange(open, forDeclaration, range, stepExp, close) {
5721
5768
  let endRef = maybeRef(end, "end");
5722
5769
  const startRefDec = startRef !== start ? [startRef, " = ", start, ", "] : [];
5723
5770
  const endRefDec = endRef !== end ? [endRef, " = ", end, ", "] : [];
5724
- if (!left.inclusive) {
5725
- startRef = [
5726
- makeLeftHandSideExpression(start),
5727
- " + ",
5728
- stepRef
5729
- ];
5730
- }
5731
5771
  let ascDec = [], ascRef;
5732
5772
  if (stepExp) {
5733
5773
  if (!(stepRef === stepExp)) {
5734
5774
  ascDec = [", ", stepRef, " = ", stepExp];
5735
5775
  }
5736
- } else if (start?.type === "Literal" && "Literal" === end?.type) {
5776
+ }
5777
+ if (start?.type === "Literal" && "Literal" === end?.type) {
5737
5778
  asc = literalValue(start) <= literalValue(end);
5738
5779
  if ("StringLiteral" === start.subtype && start.subtype === end.subtype) {
5739
- startRef = literalValue(start).charCodeAt(0).toString();
5780
+ const startChar = literalValue(start).charCodeAt(0).toString();
5781
+ startRef = {
5782
+ type: "Literal",
5783
+ subtype: "NumericLiteral",
5784
+ raw: startChar,
5785
+ children: [startChar]
5786
+ };
5740
5787
  endRef = literalValue(end).charCodeAt(0).toString();
5741
5788
  }
5742
- } else {
5789
+ } else if (!stepExp) {
5743
5790
  ascRef = makeRef("asc");
5744
5791
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
5745
5792
  }
5793
+ if (!left.inclusive) {
5794
+ startRef = [
5795
+ makeLeftHandSideExpression(startRef),
5796
+ " + ",
5797
+ stepRef
5798
+ ];
5799
+ }
5746
5800
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
5747
5801
  let names = forDeclaration?.names ?? [];
5748
5802
  if (forDeclaration != null) {
@@ -5754,7 +5808,7 @@ function forRange(open, forDeclaration, range, stepExp, close) {
5754
5808
  varAssign = [...trimFirstSpace(varName), " = "];
5755
5809
  varLet = [",", ...varName, " = ", counterRef];
5756
5810
  } else {
5757
- const value = "StringLiteral" === start.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5811
+ const value = "StringLiteral" === start?.subtype ? ["String.fromCharCode(", counterRef, ")"] : counterRef;
5758
5812
  blockPrefix = [
5759
5813
  ["", [forDeclaration, " = ", value], ";"]
5760
5814
  ];
@@ -5825,7 +5879,8 @@ function processForInOf($0) {
5825
5879
  blockPrefix.push(["", {
5826
5880
  type: "Declaration",
5827
5881
  children: [declaration, " = ", trimFirstSpace(expRef2), "[", counterRef, "]"],
5828
- names: assignmentNames
5882
+ names: assignmentNames,
5883
+ implicitLift: true
5829
5884
  }, ";"]);
5830
5885
  declaration = {
5831
5886
  type: "Declaration",
@@ -6913,19 +6968,19 @@ function lastAccessInCallExpression(exp) {
6913
6968
  }
6914
6969
  function convertMethodToFunction(method) {
6915
6970
  const { signature, block } = method;
6916
- let { modifier, optional } = signature;
6917
- if (optional)
6971
+ const { async, modifier, optional } = signature;
6972
+ if (optional) {
6918
6973
  return;
6919
- if (modifier) {
6920
- if (modifier.get || modifier.set) {
6921
- return;
6922
- } else if (modifier.async) {
6923
- modifier = [modifier.children[0][0], " function ", ...modifier.children.slice(1)];
6924
- } else {
6925
- modifier = ["function ", ...modifier.children || []];
6974
+ }
6975
+ if (modifier?.get || modifier?.set) {
6976
+ return;
6977
+ }
6978
+ const func = ["function "];
6979
+ if (async != null) {
6980
+ func.unshift(async);
6981
+ if (async.length && !async[async.length - 1]?.length) {
6982
+ async.push(" ");
6926
6983
  }
6927
- } else {
6928
- modifier = "function ";
6929
6984
  }
6930
6985
  return {
6931
6986
  ...signature,
@@ -6933,7 +6988,7 @@ function convertMethodToFunction(method) {
6933
6988
  signature,
6934
6989
  type: "FunctionExpression",
6935
6990
  children: [
6936
- [modifier, ...signature.children.slice(1)],
6991
+ [...func, ...signature.children.slice(1)],
6937
6992
  block
6938
6993
  ],
6939
6994
  block
@@ -7047,7 +7102,8 @@ function makeGetterMethod(name, ws, value, returnType, block, kind = { token: "g
7047
7102
  block = {
7048
7103
  type: "BlockStatement",
7049
7104
  expressions,
7050
- children: ["{ ", expressions, " }"]
7105
+ children: ["{ ", expressions, " }"],
7106
+ bare: false
7051
7107
  };
7052
7108
  }
7053
7109
  if (autoReturn) {
@@ -7760,7 +7816,13 @@ function processPlaceholders(statements) {
7760
7816
  }
7761
7817
  } else {
7762
7818
  let child;
7819
+ let implicitLift;
7763
7820
  ({ ancestor, child } = findAncestor(exp, (ancestor2, child2) => {
7821
+ const prevImplicitLift = implicitLift;
7822
+ ({ implicitLift } = ancestor2);
7823
+ if (prevImplicitLift) {
7824
+ return;
7825
+ }
7764
7826
  const { type } = ancestor2;
7765
7827
  if (type === "IfStatement") {
7766
7828
  liftedIfs.add(ancestor2);
@@ -7846,7 +7908,7 @@ function processPlaceholders(statements) {
7846
7908
  const placeholder = placeholders[i15];
7847
7909
  typeSuffix ??= placeholder.typeSuffix;
7848
7910
  let ref26;
7849
- replaceNode((ref26 = placeholder.children)[ref26.length - 1], ref);
7911
+ (ref26 = placeholder.children)[ref26.length - 1] = ref;
7850
7912
  }
7851
7913
  const { parent } = ancestor;
7852
7914
  const body = maybeUnwrap(ancestor);
@@ -8136,6 +8198,7 @@ var grammar = {
8136
8198
  LeftHandSideExpression,
8137
8199
  CallExpression,
8138
8200
  CallExpressionRest,
8201
+ ExplicitCallExpressionRest,
8139
8202
  OptionalShorthand,
8140
8203
  OptionalDot,
8141
8204
  NonNullAssertion,
@@ -8419,8 +8482,8 @@ var grammar = {
8419
8482
  Debugger,
8420
8483
  MaybeNestedNonPipelineExpression,
8421
8484
  MaybeNestedPostfixedExpression,
8485
+ NestedPostfixedExpressionNoTrailing,
8422
8486
  MaybeNestedExpression,
8423
- NestedExpression,
8424
8487
  MaybeParenNestedExpression,
8425
8488
  ImportDeclaration,
8426
8489
  ImpliedImport,
@@ -8472,6 +8535,8 @@ var grammar = {
8472
8535
  StringLiteral,
8473
8536
  DoubleStringCharacters,
8474
8537
  SingleStringCharacters,
8538
+ TripleDoubleStringContents,
8539
+ CoffeeTripleDoubleStringCharacters,
8475
8540
  TripleDoubleStringCharacters,
8476
8541
  TripleSingleStringCharacters,
8477
8542
  CoffeeStringSubstitution,
@@ -9142,60 +9207,61 @@ var $R44 = (0, import_lib2.$R)(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy")
9142
9207
  var $R45 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|[^"])*', "suy"));
9143
9208
  var $R46 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^'])*", "suy"));
9144
9209
  var $R47 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
9145
- var $R48 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9146
- var $R49 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9147
- var $R50 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9148
- var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9149
- var $R52 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9150
- var $R53 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9151
- var $R54 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
9152
- var $R55 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9153
- var $R56 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9154
- var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9155
- var $R58 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9156
- var $R59 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9157
- var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9158
- var $R61 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9159
- var $R62 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9160
- var $R63 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9161
- var $R64 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9162
- 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"));
9163
- var $R66 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9164
- var $R67 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9165
- var $R68 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9166
- var $R69 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9167
- var $R70 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9168
- var $R71 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9169
- var $R72 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9170
- var $R73 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9171
- var $R74 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9172
- var $R75 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9173
- var $R76 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9174
- var $R77 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9175
- var $R78 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9176
- var $R79 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9177
- var $R80 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9178
- var $R81 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9179
- var $R82 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9180
- var $R83 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9181
- var $R84 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9182
- var $R85 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9183
- var $R86 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9184
- var $R87 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9185
- var $R88 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9186
- var $R89 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9187
- var $R90 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9188
- var $R91 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9189
- var $R92 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9190
- var $R93 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9191
- var $R94 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9192
- var $R95 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9193
- var $R96 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9194
- var $R97 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9195
- var $R98 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9196
- var $R99 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9197
- var $R100 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9198
- var $R101 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9210
+ var $R48 = (0, import_lib2.$R)(new RegExp('(?:"(?!"")|\\\\.|[^"])+', "suy"));
9211
+ var $R49 = (0, import_lib2.$R)(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
9212
+ var $R50 = (0, import_lib2.$R)(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
9213
+ var $R51 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
9214
+ var $R52 = (0, import_lib2.$R)(new RegExp("(?:\\\\.)", "suy"));
9215
+ var $R53 = (0, import_lib2.$R)(new RegExp("[\\s]+", "suy"));
9216
+ var $R54 = (0, import_lib2.$R)(new RegExp("\\/(?!\\/\\/)", "suy"));
9217
+ var $R55 = (0, import_lib2.$R)(new RegExp("[^[\\/\\s#$\\\\]+|[#$]", "suy"));
9218
+ var $R56 = (0, import_lib2.$R)(new RegExp("[*\\/\\r\\n]", "suy"));
9219
+ var $R57 = (0, import_lib2.$R)(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
9220
+ var $R58 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
9221
+ var $R59 = (0, import_lib2.$R)(new RegExp("(?=[`'\"])", "suy"));
9222
+ var $R60 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
9223
+ var $R61 = (0, import_lib2.$R)(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
9224
+ var $R62 = (0, import_lib2.$R)(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
9225
+ var $R63 = (0, import_lib2.$R)(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
9226
+ var $R64 = (0, import_lib2.$R)(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
9227
+ var $R65 = (0, import_lib2.$R)(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
9228
+ 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"));
9229
+ var $R67 = (0, import_lib2.$R)(new RegExp("(?=\\/|#)", "suy"));
9230
+ var $R68 = (0, import_lib2.$R)(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
9231
+ var $R69 = (0, import_lib2.$R)(new RegExp(".", "suy"));
9232
+ var $R70 = (0, import_lib2.$R)(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
9233
+ var $R71 = (0, import_lib2.$R)(new RegExp("[^]*?###", "suy"));
9234
+ var $R72 = (0, import_lib2.$R)(new RegExp("###(?!#)", "suy"));
9235
+ var $R73 = (0, import_lib2.$R)(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
9236
+ var $R74 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
9237
+ var $R75 = (0, import_lib2.$R)(new RegExp("(?=\\s|\\/|#)", "suy"));
9238
+ var $R76 = (0, import_lib2.$R)(new RegExp("(?!\\p{ID_Continue})", "suy"));
9239
+ var $R77 = (0, import_lib2.$R)(new RegExp("[=:]", "suy"));
9240
+ var $R78 = (0, import_lib2.$R)(new RegExp("['\u2019]s", "suy"));
9241
+ var $R79 = (0, import_lib2.$R)(new RegExp("\\s", "suy"));
9242
+ var $R80 = (0, import_lib2.$R)(new RegExp("(?=[<])", "suy"));
9243
+ var $R81 = (0, import_lib2.$R)(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
9244
+ var $R82 = (0, import_lib2.$R)(new RegExp("[!+-]", "suy"));
9245
+ var $R83 = (0, import_lib2.$R)(new RegExp("[\\s>]|\\/>", "suy"));
9246
+ var $R84 = (0, import_lib2.$R)(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
9247
+ var $R85 = (0, import_lib2.$R)(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
9248
+ var $R86 = (0, import_lib2.$R)(new RegExp("[<>]", "suy"));
9249
+ var $R87 = (0, import_lib2.$R)(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
9250
+ var $R88 = (0, import_lib2.$R)(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
9251
+ var $R89 = (0, import_lib2.$R)(new RegExp("[^{}<>\\r\\n]+", "suy"));
9252
+ var $R90 = (0, import_lib2.$R)(new RegExp("[+-]?", "suy"));
9253
+ var $R91 = (0, import_lib2.$R)(new RegExp("(?=if|unless)", "suy"));
9254
+ var $R92 = (0, import_lib2.$R)(new RegExp("[|&<!=\\-\u21D2\u2192]", "suy"));
9255
+ var $R93 = (0, import_lib2.$R)(new RegExp("(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
9256
+ var $R94 = (0, import_lib2.$R)(new RegExp("const|in|out", "suy"));
9257
+ var $R95 = (0, import_lib2.$R)(new RegExp("#![^\\r\\n]*", "suy"));
9258
+ var $R96 = (0, import_lib2.$R)(new RegExp("[\\t ]*", "suy"));
9259
+ var $R97 = (0, import_lib2.$R)(new RegExp("[\\s]*", "suy"));
9260
+ var $R98 = (0, import_lib2.$R)(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([\\p{ID_Continue}.,+-]*))?", "suy"));
9261
+ var $R99 = (0, import_lib2.$R)(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
9262
+ var $R100 = (0, import_lib2.$R)(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
9263
+ var $R101 = (0, import_lib2.$R)(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
9264
+ var $R102 = (0, import_lib2.$R)(new RegExp("[^]*", "suy"));
9199
9265
  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) {
9200
9266
  var reset = $1;
9201
9267
  var init = $2;
@@ -9433,7 +9499,7 @@ var ArgumentsWithTrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib
9433
9499
  function ArgumentsWithTrailingCallExpressions(ctx, state2) {
9434
9500
  return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingCallExpressions", ArgumentsWithTrailingCallExpressions$0);
9435
9501
  }
9436
- 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) {
9502
+ 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) {
9437
9503
  $1 = $1.flat();
9438
9504
  if (!$1.length && !$2)
9439
9505
  return $skip;
@@ -9529,10 +9595,10 @@ var NestedArgumentList$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent,
9529
9595
  function NestedArgumentList(ctx, state2) {
9530
9596
  return (0, import_lib2.$EVENT)(ctx, state2, "NestedArgumentList", NestedArgumentList$0);
9531
9597
  }
9532
- 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) {
9533
- var indent = $1;
9534
- var args = $3;
9535
- var comma = $4;
9598
+ 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) {
9599
+ var indent = $2;
9600
+ var args = $4;
9601
+ var comma = $5;
9536
9602
  let [arg0, ...rest] = args;
9537
9603
  arg0 = prepend(indent, arg0);
9538
9604
  return [arg0, ...rest, comma];
@@ -10722,6 +10788,32 @@ var CallExpressionRest$$ = [CallExpressionRest$0, CallExpressionRest$1, CallExpr
10722
10788
  function CallExpressionRest(ctx, state2) {
10723
10789
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CallExpressionRest", CallExpressionRest$$);
10724
10790
  }
10791
+ var ExplicitCallExpressionRest$0 = MemberExpressionRest;
10792
+ var ExplicitCallExpressionRest$1 = (0, import_lib2.$T)((0, import_lib2.$S)(TypeArguments, (0, import_lib2.$N)((0, import_lib2.$C)(IdentifierName, NumericLiteral))), function(value) {
10793
+ return value[0];
10794
+ });
10795
+ 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) {
10796
+ var literal = $2;
10797
+ if (literal.type === "StringLiteral") {
10798
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
10799
+ }
10800
+ return literal;
10801
+ });
10802
+ var ExplicitCallExpressionRest$3 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$E)(OptionalShorthand), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
10803
+ var optional = $1;
10804
+ var call = $2;
10805
+ if (!optional)
10806
+ return call;
10807
+ return {
10808
+ ...call,
10809
+ children: [optional, ...call.children],
10810
+ optional
10811
+ };
10812
+ });
10813
+ var ExplicitCallExpressionRest$$ = [ExplicitCallExpressionRest$0, ExplicitCallExpressionRest$1, ExplicitCallExpressionRest$2, ExplicitCallExpressionRest$3];
10814
+ function ExplicitCallExpressionRest(ctx, state2) {
10815
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "ExplicitCallExpressionRest", ExplicitCallExpressionRest$$);
10816
+ }
10725
10817
  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) {
10726
10818
  var comments = $2;
10727
10819
  var q = $3;
@@ -11359,7 +11451,8 @@ var NWBindingIdentifier$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(At, AtIdent
11359
11451
  return {
11360
11452
  type: "AtBinding",
11361
11453
  children: [ref],
11362
- ref
11454
+ ref,
11455
+ names: []
11363
11456
  };
11364
11457
  });
11365
11458
  var NWBindingIdentifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Hash, AtIdentifierRef), function($skip, $loc, $0, $1, $2) {
@@ -11368,7 +11461,8 @@ var NWBindingIdentifier$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Hash, AtIde
11368
11461
  return {
11369
11462
  type: "AtBinding",
11370
11463
  children: [ref],
11371
- ref
11464
+ ref,
11465
+ names: []
11372
11466
  };
11373
11467
  });
11374
11468
  var NWBindingIdentifier$2 = Identifier;
@@ -12677,7 +12771,8 @@ var RangeDots$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(DotDotDot), function(
12677
12771
  type: "RangeDots",
12678
12772
  left: { inclusive: true, raw: "" },
12679
12773
  right: { inclusive: false, raw: "." },
12680
- increasing: void 0,
12774
+ // Ranges are increasing by default, but adaptive in coffeeCompat mode
12775
+ increasing: config.coffeeRange ? void 0 : true,
12681
12776
  triple: true,
12682
12777
  children: []
12683
12778
  };
@@ -12688,7 +12783,7 @@ var RangeDots$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(OptionalRangeEnd, (0,
12688
12783
  var dots = $3;
12689
12784
  var ws2 = $4;
12690
12785
  var right = $5;
12691
- const increasing = left.increasing ?? right.increasing;
12786
+ const increasing = left.increasing ?? right.increasing ?? (config.coffeeRange ? void 0 : true);
12692
12787
  if (left.increasing != null && right.increasing != null && left.increasing !== right.increasing) {
12693
12788
  const error = {
12694
12789
  type: "Error",
@@ -13484,52 +13579,23 @@ var MethodDefinition$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Abstract, __,
13484
13579
  abstract: true,
13485
13580
  signature,
13486
13581
  parameters: signature.parameters,
13582
+ async: signature.async,
13583
+ generator: signature.generator,
13487
13584
  ts: true
13488
13585
  };
13489
13586
  });
13490
13587
  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) {
13491
13588
  var signature = $1;
13492
13589
  var block = $3;
13493
- let children = $0;
13494
- let generatorPos = 0;
13495
- let { modifier } = signature;
13496
- if (hasAwait(block)) {
13497
- generatorPos++;
13498
- children = children.slice();
13499
- if (modifier?.get || modifier?.set) {
13500
- children.push({
13501
- type: "Error",
13502
- message: "Getters and setters cannot be async"
13503
- });
13504
- } else if (modifier?.async) {
13505
- } else {
13506
- children.unshift("async ");
13507
- modifier = { ...modifier, async: true };
13508
- signature = { ...signature, modifier };
13509
- }
13510
- }
13511
- if (hasYield(block)) {
13512
- if (children === $0)
13513
- children = children.slice();
13514
- if (modifier?.get || modifier?.set) {
13515
- children.push({
13516
- type: "Error",
13517
- message: "Getters and setters cannot be generators"
13518
- });
13519
- } else if (modifier?.generator) {
13520
- } else {
13521
- children.splice(generatorPos, 0, "*");
13522
- modifier = { ...modifier, generator: true };
13523
- signature = { ...signature, modifier };
13524
- }
13525
- }
13526
13590
  return {
13527
13591
  type: "MethodDefinition",
13528
- children,
13592
+ children: $0,
13529
13593
  name: signature.name,
13530
13594
  signature,
13531
13595
  block,
13532
- parameters: signature.parameters
13596
+ parameters: signature.parameters,
13597
+ async: signature.async,
13598
+ generator: signature.generator
13533
13599
  };
13534
13600
  });
13535
13601
  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) {
@@ -13612,36 +13678,38 @@ function MethodDefinition(ctx, state2) {
13612
13678
  }
13613
13679
  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) {
13614
13680
  var kind = $1;
13681
+ var ws = $2;
13615
13682
  return {
13616
- type: "MethodModifier",
13617
- async: false,
13618
- generator: false,
13619
- get: kind.token === "get",
13620
- set: kind.token === "set",
13621
- children: $0
13622
- };
13623
- });
13624
- 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) {
13625
- return {
13626
- type: "MethodModifier",
13627
- async: true,
13628
- get: false,
13629
- set: false,
13630
- generator: !!$2,
13631
- children: $0
13683
+ // no async or generator, because getters and setters can't be
13684
+ modifier: {
13685
+ async: false,
13686
+ generator: false,
13687
+ get: kind.token === "get",
13688
+ set: kind.token === "set"
13689
+ },
13690
+ children: [kind, ws]
13632
13691
  };
13633
13692
  });
13634
- var MethodModifier$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(Star, __), function($skip, $loc, $0, $1, $2) {
13693
+ 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) {
13694
+ var async = $1;
13695
+ var generator = $2;
13696
+ if (!async)
13697
+ async = [];
13698
+ if (!generator)
13699
+ generator = [];
13635
13700
  return {
13636
- type: "MethodModifier",
13637
- async: false,
13638
- get: false,
13639
- set: false,
13640
- generator: true,
13641
- children: $0
13701
+ async,
13702
+ generator,
13703
+ modifier: {
13704
+ async: !!async.length,
13705
+ get: false,
13706
+ set: false,
13707
+ generator: !!generator.length
13708
+ },
13709
+ children: [async, generator]
13642
13710
  };
13643
13711
  });
13644
- var MethodModifier$$ = [MethodModifier$0, MethodModifier$1, MethodModifier$2];
13712
+ var MethodModifier$$ = [MethodModifier$0, MethodModifier$1];
13645
13713
  function MethodModifier(ctx, state2) {
13646
13714
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MethodModifier", MethodModifier$$);
13647
13715
  }
@@ -13656,10 +13724,12 @@ var MethodSignature$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(ConstructorShor
13656
13724
  parameters
13657
13725
  };
13658
13726
  });
13659
- 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) {
13727
+ 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) {
13660
13728
  var modifier = $1;
13661
13729
  var name = $2;
13730
+ var ws1 = $3;
13662
13731
  var optional = $4;
13732
+ var ws2 = $5;
13663
13733
  var parameters = $6;
13664
13734
  var returnType = $7;
13665
13735
  if (name.name) {
@@ -13668,14 +13738,15 @@ var MethodSignature$1 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2
13668
13738
  name = name.token.match(/^(?:"|')/) ? name.token.slice(1, -1) : name.token;
13669
13739
  }
13670
13740
  if (optional)
13671
- $0[3] = optional = { ...optional, ts: true };
13672
- modifier = modifier || {};
13741
+ optional = { ...optional, ts: true };
13673
13742
  return {
13674
13743
  type: "MethodSignature",
13675
- children: $0,
13744
+ children: [...modifier.children, name, ws1, optional, ws2, parameters, returnType],
13745
+ async: modifier.async,
13746
+ generator: modifier.generator,
13676
13747
  name,
13677
13748
  optional,
13678
- modifier,
13749
+ modifier: modifier.modifier,
13679
13750
  // get/set/async/generator
13680
13751
  returnType,
13681
13752
  parameters
@@ -15676,48 +15747,65 @@ function Debugger(ctx, state2) {
15676
15747
  return (0, import_lib2.$EVENT)(ctx, state2, "Debugger", Debugger$0);
15677
15748
  }
15678
15749
  var MaybeNestedNonPipelineExpression$0 = NestedBulletedArray;
15679
- 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) {
15680
- if ($3)
15681
- return $3;
15682
- return $skip;
15750
+ var MaybeNestedNonPipelineExpression$1 = NestedImplicitObjectLiteral;
15751
+ 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) {
15752
+ var expression = $2;
15753
+ var trailing = $4;
15754
+ if (!expression)
15755
+ return $skip;
15756
+ if (!trailing)
15757
+ return expression;
15758
+ return [expression, trailing];
15683
15759
  });
15684
- var MaybeNestedNonPipelineExpression$2 = NonPipelineExpression;
15685
- var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2];
15760
+ var MaybeNestedNonPipelineExpression$3 = NonPipelineExpression;
15761
+ var MaybeNestedNonPipelineExpression$$ = [MaybeNestedNonPipelineExpression$0, MaybeNestedNonPipelineExpression$1, MaybeNestedNonPipelineExpression$2, MaybeNestedNonPipelineExpression$3];
15686
15762
  function MaybeNestedNonPipelineExpression(ctx, state2) {
15687
15763
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedNonPipelineExpression", MaybeNestedNonPipelineExpression$$);
15688
15764
  }
15689
15765
  var MaybeNestedPostfixedExpression$0 = NestedBulletedArray;
15690
- 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) {
15691
- if ($3)
15692
- return $3;
15693
- return $skip;
15766
+ var MaybeNestedPostfixedExpression$1 = NestedImplicitObjectLiteral;
15767
+ 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) {
15768
+ var expression = $2;
15769
+ var trailing = $4;
15770
+ if (!expression)
15771
+ return $skip;
15772
+ if (!trailing)
15773
+ return expression;
15774
+ return [expression, trailing];
15694
15775
  });
15695
- var MaybeNestedPostfixedExpression$2 = PostfixedExpression;
15696
- var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2];
15776
+ var MaybeNestedPostfixedExpression$3 = PostfixedExpression;
15777
+ var MaybeNestedPostfixedExpression$$ = [MaybeNestedPostfixedExpression$0, MaybeNestedPostfixedExpression$1, MaybeNestedPostfixedExpression$2, MaybeNestedPostfixedExpression$3];
15697
15778
  function MaybeNestedPostfixedExpression(ctx, state2) {
15698
15779
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedPostfixedExpression", MaybeNestedPostfixedExpression$$);
15699
15780
  }
15781
+ var NestedPostfixedExpressionNoTrailing$0 = NestedBulletedArray;
15782
+ var NestedPostfixedExpressionNoTrailing$1 = NestedImplicitObjectLiteral;
15783
+ 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) {
15784
+ var expression = $2;
15785
+ if (!expression)
15786
+ return $skip;
15787
+ return expression;
15788
+ });
15789
+ var NestedPostfixedExpressionNoTrailing$$ = [NestedPostfixedExpressionNoTrailing$0, NestedPostfixedExpressionNoTrailing$1, NestedPostfixedExpressionNoTrailing$2];
15790
+ function NestedPostfixedExpressionNoTrailing(ctx, state2) {
15791
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedPostfixedExpressionNoTrailing", NestedPostfixedExpressionNoTrailing$$);
15792
+ }
15700
15793
  var MaybeNestedExpression$0 = NestedBulletedArray;
15701
- 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) {
15702
- if ($3)
15703
- return $3;
15704
- return $skip;
15794
+ var MaybeNestedExpression$1 = NestedImplicitObjectLiteral;
15795
+ 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) {
15796
+ var expression = $2;
15797
+ var trailing = $4;
15798
+ if (!expression)
15799
+ return $skip;
15800
+ if (!trailing)
15801
+ return expression;
15802
+ return [expression, trailing];
15705
15803
  });
15706
- var MaybeNestedExpression$2 = Expression;
15707
- var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2];
15804
+ var MaybeNestedExpression$3 = Expression;
15805
+ var MaybeNestedExpression$$ = [MaybeNestedExpression$0, MaybeNestedExpression$1, MaybeNestedExpression$2, MaybeNestedExpression$3];
15708
15806
  function MaybeNestedExpression(ctx, state2) {
15709
15807
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MaybeNestedExpression", MaybeNestedExpression$$);
15710
15808
  }
15711
- var NestedExpression$0 = NestedBulletedArray;
15712
- 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) {
15713
- if ($3)
15714
- return $3;
15715
- return $skip;
15716
- });
15717
- var NestedExpression$$ = [NestedExpression$0, NestedExpression$1];
15718
- function NestedExpression(ctx, state2) {
15719
- return (0, import_lib2.$EVENT_C)(ctx, state2, "NestedExpression", NestedExpression$$);
15720
- }
15721
15809
  var MaybeParenNestedExpression$0 = (0, import_lib2.$T)((0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)(_), PostfixStatement, NoBlock)), function(value) {
15722
15810
  return "";
15723
15811
  });
@@ -15727,7 +15815,7 @@ var MaybeParenNestedExpression$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, i
15727
15815
  var MaybeParenNestedExpression$2 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$Y)(EOS), (0, import_lib2.$C)(ArrayLiteral, ObjectLiteral)), function(value) {
15728
15816
  return value[1];
15729
15817
  });
15730
- 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) {
15818
+ 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) {
15731
15819
  var exp = $5;
15732
15820
  if (!exp)
15733
15821
  return $skip;
@@ -16436,13 +16524,29 @@ var SingleStringCharacters$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R4
16436
16524
  function SingleStringCharacters(ctx, state2) {
16437
16525
  return (0, import_lib2.$EVENT)(ctx, state2, "SingleStringCharacters", SingleStringCharacters$0);
16438
16526
  }
16439
- 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) {
16527
+ var TripleDoubleStringContents$0 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, (0, import_lib2.$Q)((0, import_lib2.$C)(CoffeeTripleDoubleStringCharacters, CoffeeStringSubstitution))), function(value) {
16528
+ return value[1];
16529
+ });
16530
+ var TripleDoubleStringContents$1 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$N)(CoffeeInterpolationEnabled), TripleDoubleStringCharacters), function(value) {
16531
+ return [value[1]];
16532
+ });
16533
+ var TripleDoubleStringContents$$ = [TripleDoubleStringContents$0, TripleDoubleStringContents$1];
16534
+ function TripleDoubleStringContents(ctx, state2) {
16535
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "TripleDoubleStringContents", TripleDoubleStringContents$$);
16536
+ }
16537
+ 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) {
16538
+ return { $loc, token: $0 };
16539
+ });
16540
+ function CoffeeTripleDoubleStringCharacters(ctx, state2) {
16541
+ return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeTripleDoubleStringCharacters", CoffeeTripleDoubleStringCharacters$0);
16542
+ }
16543
+ 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) {
16440
16544
  return { $loc, token: $0 };
16441
16545
  });
16442
16546
  function TripleDoubleStringCharacters(ctx, state2) {
16443
16547
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
16444
16548
  }
16445
- 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) {
16549
+ 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) {
16446
16550
  return { $loc, token: $0 };
16447
16551
  });
16448
16552
  function TripleSingleStringCharacters(ctx, state2) {
@@ -16465,7 +16569,7 @@ var CoffeeInterpolatedDoubleQuotedString$0 = (0, import_lib2.$TS)((0, import_lib
16465
16569
  function CoffeeInterpolatedDoubleQuotedString(ctx, state2) {
16466
16570
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
16467
16571
  }
16468
- 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) {
16572
+ 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) {
16469
16573
  return { $loc, token: $0 };
16470
16574
  });
16471
16575
  function CoffeeDoubleQuotedStringCharacters(ctx, state2) {
@@ -16485,7 +16589,7 @@ var RegularExpressionClass$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, i
16485
16589
  function RegularExpressionClass(ctx, state2) {
16486
16590
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionClass", RegularExpressionClass$0);
16487
16591
  }
16488
- 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) {
16592
+ 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) {
16489
16593
  return { $loc, token: $0 };
16490
16594
  });
16491
16595
  function RegularExpressionClassCharacters(ctx, state2) {
@@ -16536,13 +16640,13 @@ function HeregexBody(ctx, state2) {
16536
16640
  return (0, import_lib2.$EVENT)(ctx, state2, "HeregexBody", HeregexBody$0);
16537
16641
  }
16538
16642
  var HeregexPart$0 = RegularExpressionClass;
16539
- var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeStringSubstitution), function(value) {
16540
- return { "type": "Substitution", "children": value[0] };
16643
+ var HeregexPart$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeInterpolationEnabled, CoffeeStringSubstitution), function(value) {
16644
+ return { "type": "Substitution", "children": value[1] };
16541
16645
  });
16542
16646
  var HeregexPart$2 = (0, import_lib2.$T)((0, import_lib2.$S)(TemplateSubstitution), function(value) {
16543
16647
  return { "type": "Substitution", "children": value[0] };
16544
16648
  });
16545
- 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) {
16649
+ 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) {
16546
16650
  let token = $0;
16547
16651
  switch ($0[1]) {
16548
16652
  case "\n":
@@ -16560,26 +16664,28 @@ var HeregexPart$3 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R51, "Heregex
16560
16664
  var HeregexPart$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(HeregexComment), function($skip, $loc, $0, $1) {
16561
16665
  return { $loc, token: "" };
16562
16666
  });
16563
- 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) {
16667
+ 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) {
16564
16668
  return { $loc, token: "" };
16565
16669
  });
16566
- 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) {
16670
+ 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) {
16567
16671
  return { $loc, token: "\\/" };
16568
16672
  });
16569
- 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) {
16673
+ 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) {
16570
16674
  return { $loc, token: $0 };
16571
16675
  });
16572
16676
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
16573
16677
  function HeregexPart(ctx, state2) {
16574
16678
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexPart", HeregexPart$$);
16575
16679
  }
16576
- var HeregexComment$0 = JSSingleLineComment;
16577
- var HeregexComment$1 = CoffeeSingleLineComment;
16680
+ var HeregexComment$0 = (0, import_lib2.$S)((0, import_lib2.$N)(CoffeeDivEnabled), JSSingleLineComment);
16681
+ var HeregexComment$1 = (0, import_lib2.$T)((0, import_lib2.$S)(CoffeeCommentEnabled, CoffeeSingleLineComment), function(value) {
16682
+ return value[1];
16683
+ });
16578
16684
  var HeregexComment$$ = [HeregexComment$0, HeregexComment$1];
16579
16685
  function HeregexComment(ctx, state2) {
16580
16686
  return (0, import_lib2.$EVENT_C)(ctx, state2, "HeregexComment", HeregexComment$$);
16581
16687
  }
16582
- 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));
16688
+ 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));
16583
16689
  function RegularExpressionBody(ctx, state2) {
16584
16690
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionBody", RegularExpressionBody$0);
16585
16691
  }
@@ -16589,15 +16695,15 @@ var RegExpPart$$ = [RegExpPart$0, RegExpPart$1];
16589
16695
  function RegExpPart(ctx, state2) {
16590
16696
  return (0, import_lib2.$EVENT_C)(ctx, state2, "RegExpPart", RegExpPart$$);
16591
16697
  }
16592
- var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R56, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16698
+ var RegExpCharacter$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
16593
16699
  function RegExpCharacter(ctx, state2) {
16594
16700
  return (0, import_lib2.$EVENT)(ctx, state2, "RegExpCharacter", RegExpCharacter$0);
16595
16701
  }
16596
- var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R57, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16702
+ var RegularExpressionFlags$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R58, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
16597
16703
  function RegularExpressionFlags(ctx, state2) {
16598
16704
  return (0, import_lib2.$EVENT)(ctx, state2, "RegularExpressionFlags", RegularExpressionFlags$0);
16599
16705
  }
16600
- var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R58, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16706
+ var TemplateLiteral$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R59, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
16601
16707
  return value[1];
16602
16708
  });
16603
16709
  function TemplateLiteral(ctx, state2) {
@@ -16612,7 +16718,7 @@ var _TemplateLiteral$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(Backtick, (0,
16612
16718
  children: $0
16613
16719
  };
16614
16720
  });
16615
- 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) {
16721
+ var _TemplateLiteral$2 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleDoubleQuote, TripleDoubleStringContents, TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
16616
16722
  return dedentBlockSubstitutions($0, config.tab);
16617
16723
  });
16618
16724
  var _TemplateLiteral$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
@@ -16637,28 +16743,28 @@ var TemplateSubstitution$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Substituti
16637
16743
  function TemplateSubstitution(ctx, state2) {
16638
16744
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateSubstitution", TemplateSubstitution$0);
16639
16745
  }
16640
- 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) {
16746
+ 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) {
16641
16747
  return { $loc, token: $0 };
16642
16748
  });
16643
16749
  function TemplateCharacters(ctx, state2) {
16644
16750
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateCharacters", TemplateCharacters$0);
16645
16751
  }
16646
- 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) {
16752
+ 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) {
16647
16753
  return { $loc, token: $0 };
16648
16754
  });
16649
16755
  function TemplateBlockCharacters(ctx, state2) {
16650
16756
  return (0, import_lib2.$EVENT)(ctx, state2, "TemplateBlockCharacters", TemplateBlockCharacters$0);
16651
16757
  }
16652
- 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);
16653
- var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R62, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16654
- var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16655
- var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16656
- 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})/"));
16758
+ 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);
16759
+ var ReservedWord$1 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R63, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
16760
+ var ReservedWord$2 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R64, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
16761
+ var ReservedWord$3 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R65, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
16762
+ 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})/"));
16657
16763
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
16658
16764
  function ReservedWord(ctx, state2) {
16659
16765
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ReservedWord", ReservedWord$$);
16660
16766
  }
16661
- var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R66, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16767
+ var Comment$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R67, "Comment /(?=\\/|#)/"), _Comment), function(value) {
16662
16768
  return value[1];
16663
16769
  });
16664
16770
  function Comment(ctx, state2) {
@@ -16676,7 +16782,7 @@ var SingleLineComment$$ = [SingleLineComment$0, SingleLineComment$1];
16676
16782
  function SingleLineComment(ctx, state2) {
16677
16783
  return (0, import_lib2.$EVENT_C)(ctx, state2, "SingleLineComment", SingleLineComment$$);
16678
16784
  }
16679
- 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) {
16785
+ 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) {
16680
16786
  return { type: "Comment", $loc, token: $0 };
16681
16787
  });
16682
16788
  function JSSingleLineComment(ctx, state2) {
@@ -16688,30 +16794,30 @@ var MultiLineComment$$ = [MultiLineComment$0, MultiLineComment$1];
16688
16794
  function MultiLineComment(ctx, state2) {
16689
16795
  return (0, import_lib2.$EVENT_C)(ctx, state2, "MultiLineComment", MultiLineComment$$);
16690
16796
  }
16691
- 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) {
16797
+ 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) {
16692
16798
  return { type: "Comment", $loc, token: $1 };
16693
16799
  });
16694
16800
  function JSMultiLineComment(ctx, state2) {
16695
16801
  return (0, import_lib2.$EVENT)(ctx, state2, "JSMultiLineComment", JSMultiLineComment$0);
16696
16802
  }
16697
- 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) {
16803
+ 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) {
16698
16804
  return { type: "Comment", $loc, token: `//${$1}` };
16699
16805
  });
16700
16806
  function CoffeeSingleLineComment(ctx, state2) {
16701
16807
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
16702
16808
  }
16703
- 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) {
16809
+ 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) {
16704
16810
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
16705
16811
  return { type: "Comment", $loc, token: `/*${$2}*/` };
16706
16812
  });
16707
16813
  function CoffeeMultiLineComment(ctx, state2) {
16708
16814
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
16709
16815
  }
16710
- var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R71, "CoffeeHereCommentStart /###(?!#)/"));
16816
+ var CoffeeHereCommentStart$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R72, "CoffeeHereCommentStart /###(?!#)/"));
16711
16817
  function CoffeeHereCommentStart(ctx, state2) {
16712
16818
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
16713
16819
  }
16714
- 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) {
16820
+ 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) {
16715
16821
  return { $loc, token: $0 };
16716
16822
  });
16717
16823
  function InlineComment(ctx, state2) {
@@ -16725,7 +16831,7 @@ var TrailingComment$0 = (0, import_lib2.$S)((0, import_lib2.$E)(_), (0, import_l
16725
16831
  function TrailingComment(ctx, state2) {
16726
16832
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingComment", TrailingComment$0);
16727
16833
  }
16728
- 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) {
16834
+ 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) {
16729
16835
  return value[1];
16730
16836
  });
16731
16837
  function _(ctx, state2) {
@@ -16748,7 +16854,7 @@ var Trimmed_$0 = (0, import_lib2.$TV)(_, function($skip, $loc, $0, $1) {
16748
16854
  function Trimmed_(ctx, state2) {
16749
16855
  return (0, import_lib2.$EVENT)(ctx, state2, "Trimmed_", Trimmed_$0);
16750
16856
  }
16751
- 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) {
16857
+ 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) {
16752
16858
  return value[1];
16753
16859
  });
16754
16860
  var __$1 = (0, import_lib2.$EXPECT)($L0, '__ ""');
@@ -16756,7 +16862,7 @@ var __$$ = [__$0, __$1];
16756
16862
  function __(ctx, state2) {
16757
16863
  return (0, import_lib2.$EVENT_C)(ctx, state2, "__", __$$);
16758
16864
  }
16759
- 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) {
16865
+ 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) {
16760
16866
  return { $loc, token: $0 };
16761
16867
  });
16762
16868
  function Whitespace(ctx, state2) {
@@ -16798,7 +16904,7 @@ var SemicolonDelimiter$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_l
16798
16904
  function SemicolonDelimiter(ctx, state2) {
16799
16905
  return (0, import_lib2.$EVENT)(ctx, state2, "SemicolonDelimiter", SemicolonDelimiter$0);
16800
16906
  }
16801
- var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R75, "NonIdContinue /(?!\\p{ID_Continue})/"));
16907
+ var NonIdContinue$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R76, "NonIdContinue /(?!\\p{ID_Continue})/"));
16802
16908
  function NonIdContinue(ctx, state2) {
16803
16909
  return (0, import_lib2.$EVENT)(ctx, state2, "NonIdContinue", NonIdContinue$0);
16804
16910
  }
@@ -16916,7 +17022,7 @@ var CoffeeSubstitutionStart$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L
16916
17022
  function CoffeeSubstitutionStart(ctx, state2) {
16917
17023
  return (0, import_lib2.$EVENT)(ctx, state2, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
16918
17024
  }
16919
- 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) {
17025
+ 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) {
16920
17026
  return { $loc, token: $1 };
16921
17027
  });
16922
17028
  function Colon(ctx, state2) {
@@ -16967,7 +17073,7 @@ function Do(ctx, state2) {
16967
17073
  var Dot$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
16968
17074
  return { $loc, token: $1 };
16969
17075
  });
16970
- 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) {
17076
+ 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) {
16971
17077
  var ws = $2;
16972
17078
  return [
16973
17079
  { $loc, token: "." },
@@ -17100,7 +17206,7 @@ var If$0 = (0, import_lib2.$TV)((0, import_lib2.$TEXT)((0, import_lib2.$S)((0, i
17100
17206
  function If(ctx, state2) {
17101
17207
  return (0, import_lib2.$EVENT)(ctx, state2, "If", If$0);
17102
17208
  }
17103
- 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) {
17209
+ 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) {
17104
17210
  return { $loc, token: $1 };
17105
17211
  });
17106
17212
  function Import(ctx, state2) {
@@ -17458,7 +17564,7 @@ var JSXImplicitFragment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(JSXTag, (0,
17458
17564
  function JSXImplicitFragment(ctx, state2) {
17459
17565
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXImplicitFragment", JSXImplicitFragment$0);
17460
17566
  }
17461
- var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R79, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17567
+ var JSXTag$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$EXPECT)($R80, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
17462
17568
  return value[1];
17463
17569
  });
17464
17570
  function JSXTag(ctx, state2) {
@@ -17605,7 +17711,7 @@ var JSXElementName$$ = [JSXElementName$0, JSXElementName$1];
17605
17711
  function JSXElementName(ctx, state2) {
17606
17712
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXElementName", JSXElementName$$);
17607
17713
  }
17608
- var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R80, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17714
+ var JSXIdentifierName$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R81, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
17609
17715
  function JSXIdentifierName(ctx, state2) {
17610
17716
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXIdentifierName", JSXIdentifierName$0);
17611
17717
  }
@@ -17787,7 +17893,7 @@ var JSXAttribute$6 = (0, import_lib2.$TS)((0, import_lib2.$S)(Dot, JSXShorthandS
17787
17893
  class: $2
17788
17894
  };
17789
17895
  });
17790
- 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) {
17896
+ 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) {
17791
17897
  var toggle = $1;
17792
17898
  var id = $2;
17793
17899
  const value = toggle === "+" ? "true" : "false";
@@ -17797,11 +17903,11 @@ var JSXAttribute$$ = [JSXAttribute$0, JSXAttribute$1, JSXAttribute$2, JSXAttribu
17797
17903
  function JSXAttribute(ctx, state2) {
17798
17904
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttribute", JSXAttribute$$);
17799
17905
  }
17800
- var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R82, "JSXAttributeSpace /[\\s>]|\\/>/"));
17906
+ var JSXAttributeSpace$0 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R83, "JSXAttributeSpace /[\\s>]|\\/>/"));
17801
17907
  function JSXAttributeSpace(ctx, state2) {
17802
17908
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXAttributeSpace", JSXAttributeSpace$0);
17803
17909
  }
17804
- 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) {
17910
+ 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) {
17805
17911
  return quoteString($0);
17806
17912
  });
17807
17913
  var JSXShorthandString$1 = (0, import_lib2.$TS)((0, import_lib2.$S)(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -17819,17 +17925,13 @@ var JSXAttributeName$$ = [JSXAttributeName$0, JSXAttributeName$1];
17819
17925
  function JSXAttributeName(ctx, state2) {
17820
17926
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeName", JSXAttributeName$$);
17821
17927
  }
17822
- 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) {
17928
+ 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) {
17823
17929
  var ws1 = $2;
17824
17930
  var equals = $3;
17825
- var ws2 = $4;
17826
17931
  var open = $5;
17827
- var indent = $6;
17828
- var expression = $7;
17829
- var close = $9;
17830
- if (!expression)
17831
- return $skip;
17832
- return [ws1, equals, ws2, open, indent, expression, close];
17932
+ var expression = $6;
17933
+ var close = $7;
17934
+ return [ws1, equals, open, trimFirstSpace(expression), close];
17833
17935
  });
17834
17936
  var JSXAttributeInitializer$1 = (0, import_lib2.$S)((0, import_lib2.$E)(Whitespace), Equals, (0, import_lib2.$E)(Whitespace), JSXAttributeValue);
17835
17937
  var JSXAttributeInitializer$$ = [JSXAttributeInitializer$0, JSXAttributeInitializer$1];
@@ -17848,7 +17950,7 @@ var JSXAttributeValue$3 = (0, import_lib2.$TS)((0, import_lib2.$S)(InsertInlineO
17848
17950
  }
17849
17951
  return [open, value, close];
17850
17952
  });
17851
- var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R84, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17953
+ var JSXAttributeValue$4 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R85, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
17852
17954
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
17853
17955
  function JSXAttributeValue(ctx, state2) {
17854
17956
  return (0, import_lib2.$EVENT_C)(ctx, state2, "JSXAttributeValue", JSXAttributeValue$$);
@@ -17861,7 +17963,7 @@ var InlineJSXAttributeValue$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(InlineJ
17861
17963
  function InlineJSXAttributeValue(ctx, state2) {
17862
17964
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
17863
17965
  }
17864
- 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) {
17966
+ 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) {
17865
17967
  var op = $2;
17866
17968
  var rhs = $3;
17867
17969
  return [[], op, [], rhs];
@@ -17878,7 +17980,7 @@ var InlineJSXUnaryExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, im
17878
17980
  function InlineJSXUnaryExpression(ctx, state2) {
17879
17981
  return (0, import_lib2.$EVENT)(ctx, state2, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
17880
17982
  }
17881
- 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) {
17983
+ 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) {
17882
17984
  return { $loc, token: $0 };
17883
17985
  });
17884
17986
  function InlineJSXUnaryOp(ctx, state2) {
@@ -18129,13 +18231,13 @@ var JSXComment$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$EXP
18129
18231
  function JSXComment(ctx, state2) {
18130
18232
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXComment", JSXComment$0);
18131
18233
  }
18132
- 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) {
18234
+ 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) {
18133
18235
  return { $loc, token: $0.replace(/\*\//g, "* /") };
18134
18236
  });
18135
18237
  function JSXCommentContent(ctx, state2) {
18136
18238
  return (0, import_lib2.$EVENT)(ctx, state2, "JSXCommentContent", JSXCommentContent$0);
18137
18239
  }
18138
- 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) {
18240
+ 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) {
18139
18241
  return {
18140
18242
  type: "JSXText",
18141
18243
  token: $0,
@@ -18669,7 +18771,7 @@ var TypeProperty$0 = (0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$S)
18669
18771
  function TypeProperty(ctx, state2) {
18670
18772
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeProperty", TypeProperty$0);
18671
18773
  }
18672
- 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)))));
18774
+ 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)))));
18673
18775
  function TypeIndexSignature(ctx, state2) {
18674
18776
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeIndexSignature", TypeIndexSignature$0);
18675
18777
  }
@@ -19178,7 +19280,7 @@ var TypeWithPostfix$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeConditional
19178
19280
  function TypeWithPostfix(ctx, state2) {
19179
19281
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeWithPostfix", TypeWithPostfix$0);
19180
19282
  }
19181
- 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) {
19283
+ 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) {
19182
19284
  return prepend($1, expressionizeTypeIf($3));
19183
19285
  });
19184
19286
  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) {
@@ -19412,8 +19514,8 @@ function TypeApplicationStart(ctx, state2) {
19412
19514
  return (0, import_lib2.$EVENT_C)(ctx, state2, "TypeApplicationStart", TypeApplicationStart$$);
19413
19515
  }
19414
19516
  var ForbiddenImplicitTypeCalls$0 = ReservedBinary;
19415
- var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R91, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19416
- var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19517
+ var ForbiddenImplicitTypeCalls$1 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R92, "ForbiddenImplicitTypeCalls /[|&<!=\\-\u21D2\u2192]/"));
19518
+ var ForbiddenImplicitTypeCalls$2 = (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R93, "ForbiddenImplicitTypeCalls /(extends|not|is)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
19417
19519
  var ForbiddenImplicitTypeCalls$$ = [ForbiddenImplicitTypeCalls$0, ForbiddenImplicitTypeCalls$1, ForbiddenImplicitTypeCalls$2];
19418
19520
  function ForbiddenImplicitTypeCalls(ctx, state2) {
19419
19521
  return (0, import_lib2.$EVENT_C)(ctx, state2, "ForbiddenImplicitTypeCalls", ForbiddenImplicitTypeCalls$$);
@@ -19504,7 +19606,7 @@ var TypeParameters$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenAngleBracket
19504
19606
  function TypeParameters(ctx, state2) {
19505
19607
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameters", TypeParameters$0);
19506
19608
  }
19507
- 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);
19609
+ 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);
19508
19610
  function TypeParameter(ctx, state2) {
19509
19611
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeParameter", TypeParameter$0);
19510
19612
  }
@@ -19531,15 +19633,15 @@ var ThisType$0 = (0, import_lib2.$T)((0, import_lib2.$S)((0, import_lib2.$E)(_),
19531
19633
  function ThisType(ctx, state2) {
19532
19634
  return (0, import_lib2.$EVENT)(ctx, state2, "ThisType", ThisType$0);
19533
19635
  }
19534
- var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R94, "Shebang /#![^\\r\\n]*/")), EOL);
19636
+ var Shebang$0 = (0, import_lib2.$S)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R95, "Shebang /#![^\\r\\n]*/")), EOL);
19535
19637
  function Shebang(ctx, state2) {
19536
19638
  return (0, import_lib2.$EVENT)(ctx, state2, "Shebang", Shebang$0);
19537
19639
  }
19538
- 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) {
19640
+ 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) {
19539
19641
  var content = value[2];
19540
19642
  return content;
19541
19643
  });
19542
- 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) {
19644
+ 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) {
19543
19645
  var content = value[2];
19544
19646
  return content;
19545
19647
  });
@@ -19547,7 +19649,7 @@ var CivetPrologue$$ = [CivetPrologue$0, CivetPrologue$1];
19547
19649
  function CivetPrologue(ctx, state2) {
19548
19650
  return (0, import_lib2.$EVENT_C)(ctx, state2, "CivetPrologue", CivetPrologue$$);
19549
19651
  }
19550
- 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) {
19652
+ 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) {
19551
19653
  var options = $3;
19552
19654
  return {
19553
19655
  type: "CivetPrologue",
@@ -19558,7 +19660,7 @@ var CivetPrologueContent$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import
19558
19660
  function CivetPrologueContent(ctx, state2) {
19559
19661
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetPrologueContent", CivetPrologueContent$0);
19560
19662
  }
19561
- 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) {
19663
+ 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) {
19562
19664
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
19563
19665
  if (l)
19564
19666
  return l.toUpperCase();
@@ -19581,11 +19683,11 @@ var CivetOption$0 = (0, import_lib2.$TR)((0, import_lib2.$EXPECT)($R97, "CivetOp
19581
19683
  function CivetOption(ctx, state2) {
19582
19684
  return (0, import_lib2.$EVENT)(ctx, state2, "CivetOption", CivetOption$0);
19583
19685
  }
19584
- 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);
19686
+ 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);
19585
19687
  function UnknownPrologue(ctx, state2) {
19586
19688
  return (0, import_lib2.$EVENT)(ctx, state2, "UnknownPrologue", UnknownPrologue$0);
19587
19689
  }
19588
- 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));
19690
+ 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));
19589
19691
  function TripleSlashDirective(ctx, state2) {
19590
19692
  return (0, import_lib2.$EVENT)(ctx, state2, "TripleSlashDirective", TripleSlashDirective$0);
19591
19693
  }
@@ -19601,13 +19703,13 @@ var PrologueString$$ = [PrologueString$0, PrologueString$1];
19601
19703
  function PrologueString(ctx, state2) {
19602
19704
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PrologueString", PrologueString$$);
19603
19705
  }
19604
- 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) {
19706
+ 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) {
19605
19707
  return value[1];
19606
19708
  });
19607
19709
  function EOS(ctx, state2) {
19608
19710
  return (0, import_lib2.$EVENT)(ctx, state2, "EOS", EOS$0);
19609
19711
  }
19610
- 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) {
19712
+ 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) {
19611
19713
  return { $loc, token: $0 };
19612
19714
  });
19613
19715
  function EOL(ctx, state2) {
@@ -19935,6 +20037,7 @@ var Reset$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Reset ""'), fu
19935
20037
  coffeeNot: false,
19936
20038
  coffeeOf: false,
19937
20039
  coffeePrototype: false,
20040
+ coffeeRange: false,
19938
20041
  defaultElement: "div",
19939
20042
  globals: [],
19940
20043
  iife: false,
@@ -19978,7 +20081,8 @@ var Reset$0 = (0, import_lib2.$TV)((0, import_lib2.$EXPECT)($L0, 'Reset ""'), fu
19978
20081
  "coffeeLineContinuation",
19979
20082
  "coffeeNot",
19980
20083
  "coffeeOf",
19981
- "coffeePrototype"
20084
+ "coffeePrototype",
20085
+ "coffeeRange"
19982
20086
  ]) {
19983
20087
  config[option] = b;
19984
20088
  }
@@ -20021,7 +20125,7 @@ var Prologue$0 = (0, import_lib2.$Q)((0, import_lib2.$C)(TripleSlashDirective, (
20021
20125
  function Prologue(ctx, state2) {
20022
20126
  return (0, import_lib2.$EVENT)(ctx, state2, "Prologue", Prologue$0);
20023
20127
  }
20024
- var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R101, "ProloguePrefix /[^]*/")));
20128
+ var ProloguePrefix$0 = (0, import_lib2.$S)(Prologue, (0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R102, "ProloguePrefix /[^]*/")));
20025
20129
  function ProloguePrefix(ctx, state2) {
20026
20130
  return (0, import_lib2.$EVENT)(ctx, state2, "ProloguePrefix", ProloguePrefix$0);
20027
20131
  }