@danielx/civet 0.6.61 → 0.6.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -495,6 +495,7 @@ ${input.slice(result.pos)}
495
495
  var require_lib = __commonJS({
496
496
  "source/lib.civet"(exports, module) {
497
497
  "use strict";
498
+ var xor = (a, b) => a ? !b && a : b;
498
499
  function addParentPointers(node, parent) {
499
500
  if (node == null)
500
501
  return;
@@ -902,6 +903,31 @@ ${input.slice(result.pos)}
902
903
  children
903
904
  };
904
905
  }
906
+ function expressionizeTypeIf([ws, ifOp, condition, t, e]) {
907
+ const children = [
908
+ ws,
909
+ "(",
910
+ insertTrimmingSpace(condition, ""),
911
+ "?"
912
+ ];
913
+ if (!xor(ifOp.negated, condition.negated)) {
914
+ children.push(t);
915
+ if (e) {
916
+ children.push(e[0], ":", ...e.slice(2));
917
+ } else {
918
+ children.push(":never");
919
+ }
920
+ } else {
921
+ if (e) {
922
+ children.push(...e.slice(2), e[0], ":");
923
+ } else {
924
+ children.push("never:");
925
+ }
926
+ children.push(t);
927
+ }
928
+ children.push(")");
929
+ return children;
930
+ }
905
931
  function expressionizeIteration(exp) {
906
932
  const { async, subtype, block, children, statement } = exp;
907
933
  const i = children.indexOf(statement);
@@ -974,10 +1000,13 @@ ${input.slice(result.pos)}
974
1000
  if (op.reversed) {
975
1001
  if (end !== i + 2)
976
1002
  b = makeLeftHandSideExpression(b);
1003
+ b = dotNumericLiteral(b);
977
1004
  children = [wsB, b, wsOp, ".", op.method, "(", a, ")"];
978
1005
  } else {
979
- if (start !== i - 2)
1006
+ if (start !== i - 2 || a.type === "NumericLiteral") {
980
1007
  a = makeLeftHandSideExpression(a);
1008
+ }
1009
+ a = dotNumericLiteral(a);
981
1010
  children = [a, wsOp, ".", op.method, "(", wsB, b, ")"];
982
1011
  }
983
1012
  } else if (op.token) {
@@ -1416,18 +1445,18 @@ ${input.slice(result.pos)}
1416
1445
  }
1417
1446
  function findChildIndex(parent, child) {
1418
1447
  const children = Array.isArray(parent) ? parent : parent.children;
1419
- const len = children.length;
1420
- for (let i = 0; i < len; i++) {
1421
- const c = children[i];
1448
+ for (let i4 = 0, len4 = children.length; i4 < len4; i4++) {
1449
+ const i = i4;
1450
+ const c = children[i4];
1422
1451
  if (c === child || Array.isArray(c) && arrayRecurse(c)) {
1423
1452
  return i;
1424
1453
  }
1425
1454
  }
1426
1455
  function arrayRecurse(array) {
1427
- const len2 = array.length;
1428
1456
  const results2 = [];
1429
- for (let i = 0; i < len2; i++) {
1430
- const c = array[i];
1457
+ for (let i5 = 0, len5 = array.length; i5 < len5; i5++) {
1458
+ const i = i5;
1459
+ const c = array[i5];
1431
1460
  if (c === child || Array.isArray(c) && arrayRecurse(c)) {
1432
1461
  return true;
1433
1462
  } else {
@@ -1439,6 +1468,32 @@ ${input.slice(result.pos)}
1439
1468
  }
1440
1469
  return -1;
1441
1470
  }
1471
+ function replaceNode(node, newNode) {
1472
+ if (!(node.parent != null)) {
1473
+ throw new Error("replaceNode failed: node has no parent");
1474
+ }
1475
+ function recurse(children) {
1476
+ for (let i6 = 0, len6 = children.length; i6 < len6; i6++) {
1477
+ const i = i6;
1478
+ const child = children[i6];
1479
+ if (child === node) {
1480
+ children[i] = newNode;
1481
+ return true;
1482
+ } else if (Array.isArray(child)) {
1483
+ if (recurse(child)) {
1484
+ return true;
1485
+ }
1486
+ }
1487
+ }
1488
+ return false;
1489
+ }
1490
+ if (!recurse(node.parent.children)) {
1491
+ throw new Error("replaceNode failed: didn't find child node in parent");
1492
+ }
1493
+ if (typeof newNode === "object" && !Array.isArray(newNode)) {
1494
+ newNode.parent = node.parent;
1495
+ }
1496
+ }
1442
1497
  function findAncestor(node, predicate, stopPredicate) {
1443
1498
  let { parent } = node;
1444
1499
  while (parent && !stopPredicate?.(parent, node)) {
@@ -2017,6 +2072,13 @@ ${input.slice(result.pos)}
2017
2072
  insertRestSplices(statements, splices, thisAssignments);
2018
2073
  return [splices, thisAssignments];
2019
2074
  }
2075
+ function dotNumericLiteral(literal) {
2076
+ if (literal?.type === "Literal" && /^[+-]?(?:0|[1-9](?:_[0-9]|[0-9])*)$/.test(literal.raw)) {
2077
+ literal.children.push(".");
2078
+ literal.raw += ".";
2079
+ }
2080
+ return literal;
2081
+ }
2020
2082
  function literalValue(literal) {
2021
2083
  let { raw } = literal;
2022
2084
  switch (raw) {
@@ -2125,6 +2187,20 @@ ${input.slice(result.pos)}
2125
2187
  return expression;
2126
2188
  }
2127
2189
  }
2190
+ var typeNeedsNoParens = /* @__PURE__ */ new Set([
2191
+ "IdentifierType",
2192
+ "ImportType",
2193
+ "LiteralType",
2194
+ "TupleType",
2195
+ "ParenthesizedType",
2196
+ "UnaryType"
2197
+ ]);
2198
+ function parenthesizeType(type) {
2199
+ if (typeNeedsNoParens.has(type.type)) {
2200
+ return type;
2201
+ }
2202
+ return ["(", type, ")"];
2203
+ }
2128
2204
  function modifyString(str) {
2129
2205
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
2130
2206
  }
@@ -2176,6 +2252,25 @@ ${input.slice(result.pos)}
2176
2252
  block
2177
2253
  };
2178
2254
  }
2255
+ function convertOptionalType(suffix) {
2256
+ if (suffix.t.type === "AssertsType") {
2257
+ spliceChild(suffix, suffix.optional, 1, suffix.optional = {
2258
+ type: "Error",
2259
+ message: "Can't use optional ?: syntax with asserts type"
2260
+ });
2261
+ return;
2262
+ }
2263
+ spliceChild(suffix, suffix.optional, 1, suffix.optional = void 0);
2264
+ const wrap = suffix.type === "ReturnTypeAnnotation";
2265
+ spliceChild(suffix, suffix.t, 1, suffix.t = [
2266
+ getTrimmingSpace(suffix.t),
2267
+ wrap && "(",
2268
+ // TODO: avoid parens if unnecessary
2269
+ "undefined | ",
2270
+ parenthesizeType(insertTrimmingSpace(suffix.t, "")),
2271
+ wrap && ")"
2272
+ ]);
2273
+ }
2179
2274
  function convertObjectToJSXAttributes(obj) {
2180
2275
  const { properties } = obj;
2181
2276
  const parts = [];
@@ -2461,21 +2556,14 @@ ${input.slice(result.pos)}
2461
2556
  return n.type === "Declaration";
2462
2557
  }).forEach(({ bindings }) => {
2463
2558
  return bindings?.forEach((binding) => {
2464
- const { initializer } = binding;
2465
- if (!initializer) {
2466
- return;
2559
+ const suffix = binding.suffix;
2560
+ if (suffix && suffix.optional && suffix.t) {
2561
+ convertOptionalType(suffix);
2467
2562
  }
2468
- const exp = initializer[2];
2469
- if (exp?.type === "PipelineExpression") {
2470
- if (exp.children.at(-2) === ",") {
2471
- const { parent } = exp;
2472
- const parenthesizedExpression = makeLeftHandSideExpression(exp);
2473
- parenthesizedExpression.parent = parent;
2474
- exp.parent = parenthesizedExpression;
2475
- return initializer[2] = parenthesizedExpression;
2476
- }
2477
- ;
2478
- return;
2563
+ const { initializer } = binding;
2564
+ if (initializer) {
2565
+ const exp = initializer[2];
2566
+ return exp;
2479
2567
  }
2480
2568
  ;
2481
2569
  return;
@@ -2502,13 +2590,17 @@ ${input.slice(result.pos)}
2502
2590
  }
2503
2591
  }
2504
2592
  function processReturn(f, implicitReturns) {
2593
+ let { returnType } = f.signature;
2594
+ if (returnType && returnType.optional) {
2595
+ convertOptionalType(returnType);
2596
+ }
2505
2597
  if (!processReturnValue(f) && implicitReturns) {
2506
2598
  const { signature, block } = f;
2507
- const { modifier, name, returnType } = signature;
2599
+ const { modifier, name, returnType: returnType2 } = signature;
2508
2600
  const { async, generator, set } = modifier;
2509
2601
  const isMethod = f.type === "MethodDefinition";
2510
2602
  const isConstructor = isMethod && name === "constructor";
2511
- const isVoid = isVoidType(returnType?.t) || async && isPromiseVoidType(returnType?.t) || !async && generator && isGeneratorVoidType(returnType?.t);
2603
+ const isVoid = isVoidType(returnType2?.t) || async && isPromiseVoidType(returnType2?.t) || !async && generator && isGeneratorVoidType(returnType2?.t);
2512
2604
  const isBlock = block?.type === "BlockStatement";
2513
2605
  if (!isVoid && !set && !isConstructor && isBlock) {
2514
2606
  insertReturn(block);
@@ -2584,12 +2676,10 @@ ${input.slice(result.pos)}
2584
2676
  gatherRecursiveAll(statements, (n) => n.type === "AssignmentExpression" && n.names === null).forEach((exp) => {
2585
2677
  let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
2586
2678
  if ($1.some((left) => left[left.length - 1].special)) {
2587
- if ($1.length !== 1) {
2679
+ if ($1.length !== 1)
2588
2680
  throw new Error("Only one assignment with id= is allowed");
2589
- }
2590
2681
  const [, lhs, , op] = $1[0];
2591
- const { call } = op;
2592
- op[op.length - 1] = "=";
2682
+ const { call, omitLhs } = op;
2593
2683
  const index2 = exp.children.indexOf($2);
2594
2684
  if (index2 < 0)
2595
2685
  throw new Error("Assertion error: exp not in AssignmentExpression");
@@ -2598,6 +2688,9 @@ ${input.slice(result.pos)}
2598
2688
  1,
2599
2689
  exp.exp = $2 = [call, "(", lhs, ", ", $2, ")"]
2600
2690
  );
2691
+ if (omitLhs) {
2692
+ replaceNode(exp, $2);
2693
+ }
2601
2694
  }
2602
2695
  let wrapped = false;
2603
2696
  while (i < len) {
@@ -2664,9 +2757,9 @@ ${input.slice(result.pos)}
2664
2757
  }
2665
2758
  function insertSemicolon(statements) {
2666
2759
  const l = statements.length;
2667
- for (let i4 = 0, len4 = statements.length; i4 < len4; i4++) {
2668
- const i = i4;
2669
- const s = statements[i4];
2760
+ for (let i7 = 0, len7 = statements.length; i7 < len7; i7++) {
2761
+ const i = i7;
2762
+ const s = statements[i7];
2670
2763
  if (i < l - 1) {
2671
2764
  if (needsPrecedingSemicolon(statements[i + 1])) {
2672
2765
  const delim = s[2];
@@ -3211,9 +3304,51 @@ ${input.slice(result.pos)}
3211
3304
  };
3212
3305
  }
3213
3306
  children.push(arg);
3307
+ if (!children.some(($3) => $3?.type === "ReturnStatement") && children.some(($4) => $4 === ",")) {
3308
+ const { parent } = s;
3309
+ const parenthesizedExpression = makeLeftHandSideExpression({ ...s });
3310
+ Object.assign(s, parenthesizedExpression, {
3311
+ parent,
3312
+ hoistDec: void 0
3313
+ });
3314
+ }
3214
3315
  return addParentPointers(s, s.parent);
3215
3316
  });
3216
3317
  }
3318
+ function processTypes(node) {
3319
+ return gatherRecursiveAll(node, (n) => n.type === "UnaryType").forEach((unary) => {
3320
+ let last;
3321
+ let count = 0;
3322
+ while (unary.suffix.length && unary.suffix.at(-1)?.token === "?") {
3323
+ last = unary.suffix.pop();
3324
+ count++;
3325
+ }
3326
+ if (!count) {
3327
+ return;
3328
+ }
3329
+ if (unary.parent?.type === "TypeTuple") {
3330
+ if (count === 1) {
3331
+ unary.suffix.push(last);
3332
+ return;
3333
+ }
3334
+ replaceNode(unary, [
3335
+ getTrimmingSpace(unary),
3336
+ "(",
3337
+ parenthesizeType(insertTrimmingSpace(unary, "")),
3338
+ " | null)",
3339
+ last
3340
+ ]);
3341
+ } else {
3342
+ replaceNode(unary, [
3343
+ getTrimmingSpace(unary),
3344
+ "(",
3345
+ parenthesizeType(insertTrimmingSpace(unary, "")),
3346
+ count === 1 ? " | undefined" : " | undefined | null",
3347
+ ")"
3348
+ ]);
3349
+ }
3350
+ });
3351
+ }
3217
3352
  function processProgram(root, config, m, ReservedWord) {
3218
3353
  assert.equal(m.forbidBracedApplication.length, 1, "forbidBracedApplication");
3219
3354
  assert.equal(m.forbidClassImplicitCall.length, 1, "forbidClassImplicitCall");
@@ -3223,6 +3358,7 @@ ${input.slice(result.pos)}
3223
3358
  assert.equal(m.JSXTagStack.length, 1, "JSXTagStack");
3224
3359
  addParentPointers(root);
3225
3360
  const { expressions: statements } = root;
3361
+ processTypes(statements);
3226
3362
  processDeclarationConditions(statements);
3227
3363
  processPipelineExpressions(statements);
3228
3364
  processDeclarations(statements);
@@ -3621,9 +3757,9 @@ ${input.slice(result.pos)}
3621
3757
  return root;
3622
3758
  }
3623
3759
  }
3624
- for (let i5 = 0, len5 = array.length; i5 < len5; i5++) {
3625
- const i = i5;
3626
- const node = array[i5];
3760
+ for (let i8 = 0, len8 = array.length; i8 < len8; i8++) {
3761
+ const i = i8;
3762
+ const node = array[i8];
3627
3763
  if (!(node != null)) {
3628
3764
  return;
3629
3765
  }
@@ -3635,6 +3771,17 @@ ${input.slice(result.pos)}
3635
3771
  }
3636
3772
  return root;
3637
3773
  }
3774
+ function spliceChild(node, child, del, ...replacements) {
3775
+ const children = node?.children ?? node;
3776
+ if (!Array.isArray(children)) {
3777
+ throw new Error("spliceChild: non-array node has no children field");
3778
+ }
3779
+ const index = children.indexOf(child);
3780
+ if (index < 0) {
3781
+ throw new Error("spliceChild: child not found");
3782
+ }
3783
+ return children.splice(index, del, ...replacements);
3784
+ }
3638
3785
  function skipIfOnlyWS(target) {
3639
3786
  if (!target)
3640
3787
  return target;
@@ -3780,6 +3927,7 @@ ${input.slice(result.pos)}
3780
3927
  dedentBlockSubstitutions,
3781
3928
  deepCopy,
3782
3929
  expressionizeIfClause,
3930
+ expressionizeTypeIf,
3783
3931
  findAncestor,
3784
3932
  forRange,
3785
3933
  gatherBindingCode,
@@ -3907,6 +4055,7 @@ ${input.slice(result.pos)}
3907
4055
  UnaryBody,
3908
4056
  UnaryWithoutParenthesizedAssignmentBody,
3909
4057
  UnaryPostfix,
4058
+ TypePostfix,
3910
4059
  UpdateExpression,
3911
4060
  UpdateExpressionSymbol,
3912
4061
  AssignmentExpression,
@@ -3936,6 +4085,8 @@ ${input.slice(result.pos)}
3936
4085
  ExtendsClause,
3937
4086
  ExtendsToken,
3938
4087
  ExtendsShorthand,
4088
+ NotExtendsToken,
4089
+ OmittedNegation,
3939
4090
  ExtendsTarget,
3940
4091
  ImplementsClause,
3941
4092
  ImplementsToken,
@@ -4334,6 +4485,7 @@ ${input.slice(result.pos)}
4334
4485
  Each,
4335
4486
  Else,
4336
4487
  Equals,
4488
+ ExclamationPoint,
4337
4489
  Export,
4338
4490
  Extends,
4339
4491
  Finally,
@@ -4476,6 +4628,7 @@ ${input.slice(result.pos)}
4476
4628
  TypeIndexSignature,
4477
4629
  TypeIndex,
4478
4630
  TypeSuffix,
4631
+ MaybeIndentedType,
4479
4632
  ReturnTypeSuffix,
4480
4633
  ReturnType,
4481
4634
  TypePredicate,
@@ -4494,6 +4647,10 @@ ${input.slice(result.pos)}
4494
4647
  NestedTypeList,
4495
4648
  NestedType,
4496
4649
  TypeConditional,
4650
+ TypeCondition,
4651
+ TypeIfThenElse,
4652
+ TypeElse,
4653
+ TypeBlock,
4497
4654
  TypeTemplateSubstitution,
4498
4655
  TypeTemplateLiteral,
4499
4656
  CoffeeStringTypeSubstitution,
@@ -4581,296 +4738,299 @@ ${input.slice(result.pos)}
4581
4738
  var $L7 = $L(".");
4582
4739
  var $L8 = $L("++");
4583
4740
  var $L9 = $L("--");
4584
- var $L10 = $L("=>");
4585
- var $L11 = $L("\u21D2");
4586
- var $L12 = $L(":");
4587
- var $L13 = $L(" ");
4588
- var $L14 = $L("<");
4589
- var $L15 = $L("implements");
4590
- var $L16 = $L("<:");
4591
- var $L17 = $L("import");
4592
- var $L18 = $L("!");
4593
- var $L19 = $L("^");
4594
- var $L20 = $L("-");
4595
- var $L21 = $L("import.meta");
4596
- var $L22 = $L("return.value");
4597
- var $L23 = $L(",");
4598
- var $L24 = $L("(&)");
4599
- var $L25 = $L("->");
4600
- var $L26 = $L("\u2192");
4601
- var $L27 = $L("}");
4602
- var $L28 = $L("null");
4603
- var $L29 = $L("true");
4604
- var $L30 = $L("false");
4605
- var $L31 = $L("yes");
4606
- var $L32 = $L("on");
4607
- var $L33 = $L("no");
4608
- var $L34 = $L("off");
4609
- var $L35 = $L(">");
4610
- var $L36 = $L("]");
4611
- var $L37 = $L("**=");
4612
- var $L38 = $L("*=");
4613
- var $L39 = $L("/=");
4614
- var $L40 = $L("%=");
4615
- var $L41 = $L("+=");
4616
- var $L42 = $L("-=");
4617
- var $L43 = $L("<<=");
4618
- var $L44 = $L(">>>=");
4619
- var $L45 = $L(">>=");
4620
- var $L46 = $L("&&=");
4621
- var $L47 = $L("&=");
4622
- var $L48 = $L("^=");
4623
- var $L49 = $L("||=");
4624
- var $L50 = $L("|=");
4625
- var $L51 = $L("??=");
4626
- var $L52 = $L("?=");
4627
- var $L53 = $L("and=");
4628
- var $L54 = $L("or=");
4629
- var $L55 = $L("**");
4630
- var $L56 = $L("*");
4631
- var $L57 = $L("/");
4632
- var $L58 = $L("%%");
4633
- var $L59 = $L("%");
4634
- var $L60 = $L("+");
4635
- var $L61 = $L("<=");
4636
- var $L62 = $L("\u2264");
4637
- var $L63 = $L(">=");
4638
- var $L64 = $L("\u2265");
4639
- var $L65 = $L("<?");
4640
- var $L66 = $L("!<?");
4641
- var $L67 = $L("<<");
4642
- var $L68 = $L("\xAB");
4643
- var $L69 = $L(">>>");
4644
- var $L70 = $L("\u22D9");
4645
- var $L71 = $L(">>");
4646
- var $L72 = $L("\xBB");
4647
- var $L73 = $L("!==");
4648
- var $L74 = $L("\u2262");
4649
- var $L75 = $L("!=");
4650
- var $L76 = $L("\u2260");
4651
- var $L77 = $L("isnt");
4652
- var $L78 = $L("===");
4653
- var $L79 = $L("\u2263");
4654
- var $L80 = $L("\u2A76");
4655
- var $L81 = $L("==");
4656
- var $L82 = $L("\u2261");
4657
- var $L83 = $L("\u2A75");
4658
- var $L84 = $L("and");
4659
- var $L85 = $L("&&");
4660
- var $L86 = $L("or");
4661
- var $L87 = $L("||");
4662
- var $L88 = $L("\u2016");
4663
- var $L89 = $L("^^");
4664
- var $L90 = $L("xor");
4665
- var $L91 = $L("xnor");
4666
- var $L92 = $L("??");
4667
- var $L93 = $L("\u2047");
4668
- var $L94 = $L("instanceof");
4669
- var $L95 = $L("\u2208");
4670
- var $L96 = $L("\u220B");
4671
- var $L97 = $L("\u220C");
4672
- var $L98 = $L("\u2209");
4673
- var $L99 = $L("&");
4674
- var $L100 = $L("|");
4675
- var $L101 = $L(";");
4676
- var $L102 = $L("$:");
4677
- var $L103 = $L("break");
4678
- var $L104 = $L("continue");
4679
- var $L105 = $L("debugger");
4680
- var $L106 = $L("with");
4681
- var $L107 = $L("assert");
4682
- var $L108 = $L(":=");
4683
- var $L109 = $L("\u2254");
4684
- var $L110 = $L(".=");
4685
- var $L111 = $L("/*");
4686
- var $L112 = $L("*/");
4687
- var $L113 = $L("\\");
4688
- var $L114 = $L(")");
4689
- var $L115 = $L("abstract");
4690
- var $L116 = $L("as");
4691
- var $L117 = $L("@");
4692
- var $L118 = $L("@@");
4693
- var $L119 = $L("async");
4694
- var $L120 = $L("await");
4695
- var $L121 = $L("`");
4696
- var $L122 = $L("by");
4697
- var $L123 = $L("case");
4698
- var $L124 = $L("catch");
4699
- var $L125 = $L("class");
4700
- var $L126 = $L("#{");
4701
- var $L127 = $L("declare");
4702
- var $L128 = $L("default");
4703
- var $L129 = $L("delete");
4704
- var $L130 = $L("do");
4705
- var $L131 = $L("..");
4706
- var $L132 = $L("\u2025");
4707
- var $L133 = $L("...");
4708
- var $L134 = $L("\u2026");
4709
- var $L135 = $L("::");
4710
- var $L136 = $L('"');
4711
- var $L137 = $L("each");
4712
- var $L138 = $L("else");
4713
- var $L139 = $L("export");
4714
- var $L140 = $L("extends");
4715
- var $L141 = $L("finally");
4716
- var $L142 = $L("for");
4717
- var $L143 = $L("from");
4718
- var $L144 = $L("function");
4719
- var $L145 = $L("get");
4720
- var $L146 = $L("set");
4721
- var $L147 = $L("#");
4722
- var $L148 = $L("if");
4723
- var $L149 = $L("in");
4724
- var $L150 = $L("let");
4725
- var $L151 = $L("const");
4726
- var $L152 = $L("is");
4727
- var $L153 = $L("loop");
4728
- var $L154 = $L("new");
4729
- var $L155 = $L("not");
4730
- var $L156 = $L("of");
4731
- var $L157 = $L("[");
4732
- var $L158 = $L("operator");
4733
- var $L159 = $L("own");
4734
- var $L160 = $L("public");
4735
- var $L161 = $L("private");
4736
- var $L162 = $L("protected");
4737
- var $L163 = $L("||>");
4738
- var $L164 = $L("|\u25B7");
4739
- var $L165 = $L("|>=");
4740
- var $L166 = $L("\u25B7=");
4741
- var $L167 = $L("|>");
4742
- var $L168 = $L("\u25B7");
4743
- var $L169 = $L("readonly");
4744
- var $L170 = $L("return");
4745
- var $L171 = $L("satisfies");
4746
- var $L172 = $L("'");
4747
- var $L173 = $L("static");
4748
- var $L174 = $L("${");
4749
- var $L175 = $L("super");
4750
- var $L176 = $L("switch");
4751
- var $L177 = $L("target");
4752
- var $L178 = $L("then");
4753
- var $L179 = $L("this");
4754
- var $L180 = $L("throw");
4755
- var $L181 = $L('"""');
4756
- var $L182 = $L("'''");
4757
- var $L183 = $L("///");
4758
- var $L184 = $L("```");
4759
- var $L185 = $L("try");
4760
- var $L186 = $L("typeof");
4761
- var $L187 = $L("unless");
4762
- var $L188 = $L("until");
4763
- var $L189 = $L("using");
4764
- var $L190 = $L("var");
4765
- var $L191 = $L("void");
4766
- var $L192 = $L("when");
4767
- var $L193 = $L("while");
4768
- var $L194 = $L("yield");
4769
- var $L195 = $L("/>");
4770
- var $L196 = $L("</");
4771
- var $L197 = $L("<>");
4772
- var $L198 = $L("</>");
4773
- var $L199 = $L("<!--");
4774
- var $L200 = $L("-->");
4775
- var $L201 = $L("type");
4776
- var $L202 = $L("enum");
4777
- var $L203 = $L("interface");
4778
- var $L204 = $L("global");
4779
- var $L205 = $L("module");
4780
- var $L206 = $L("namespace");
4781
- var $L207 = $L("asserts");
4782
- var $L208 = $L("keyof");
4783
- var $L209 = $L("infer");
4784
- var $L210 = $L("???");
4785
- var $L211 = $L("[]");
4786
- var $L212 = $L("civet");
4741
+ var $L10 = $L("\u29FA");
4742
+ var $L11 = $L("=>");
4743
+ var $L12 = $L("\u21D2");
4744
+ var $L13 = $L(":");
4745
+ var $L14 = $L(" ");
4746
+ var $L15 = $L("<");
4747
+ var $L16 = $L("implements");
4748
+ var $L17 = $L("<:");
4749
+ var $L18 = $L("import");
4750
+ var $L19 = $L("!");
4751
+ var $L20 = $L("^");
4752
+ var $L21 = $L("-");
4753
+ var $L22 = $L("import.meta");
4754
+ var $L23 = $L("return.value");
4755
+ var $L24 = $L(",");
4756
+ var $L25 = $L("(&)");
4757
+ var $L26 = $L("->");
4758
+ var $L27 = $L("\u2192");
4759
+ var $L28 = $L("}");
4760
+ var $L29 = $L("null");
4761
+ var $L30 = $L("true");
4762
+ var $L31 = $L("false");
4763
+ var $L32 = $L("yes");
4764
+ var $L33 = $L("on");
4765
+ var $L34 = $L("no");
4766
+ var $L35 = $L("off");
4767
+ var $L36 = $L(">");
4768
+ var $L37 = $L("]");
4769
+ var $L38 = $L("**=");
4770
+ var $L39 = $L("*=");
4771
+ var $L40 = $L("/=");
4772
+ var $L41 = $L("%=");
4773
+ var $L42 = $L("+=");
4774
+ var $L43 = $L("-=");
4775
+ var $L44 = $L("<<=");
4776
+ var $L45 = $L(">>>=");
4777
+ var $L46 = $L(">>=");
4778
+ var $L47 = $L("&&=");
4779
+ var $L48 = $L("&=");
4780
+ var $L49 = $L("^=");
4781
+ var $L50 = $L("||=");
4782
+ var $L51 = $L("|=");
4783
+ var $L52 = $L("??=");
4784
+ var $L53 = $L("?=");
4785
+ var $L54 = $L("and=");
4786
+ var $L55 = $L("or=");
4787
+ var $L56 = $L("**");
4788
+ var $L57 = $L("*");
4789
+ var $L58 = $L("/");
4790
+ var $L59 = $L("%%");
4791
+ var $L60 = $L("%");
4792
+ var $L61 = $L("+");
4793
+ var $L62 = $L("<=");
4794
+ var $L63 = $L("\u2264");
4795
+ var $L64 = $L(">=");
4796
+ var $L65 = $L("\u2265");
4797
+ var $L66 = $L("<?");
4798
+ var $L67 = $L("!<?");
4799
+ var $L68 = $L("<<");
4800
+ var $L69 = $L("\xAB");
4801
+ var $L70 = $L(">>>");
4802
+ var $L71 = $L("\u22D9");
4803
+ var $L72 = $L(">>");
4804
+ var $L73 = $L("\xBB");
4805
+ var $L74 = $L("!==");
4806
+ var $L75 = $L("\u2262");
4807
+ var $L76 = $L("!=");
4808
+ var $L77 = $L("\u2260");
4809
+ var $L78 = $L("isnt");
4810
+ var $L79 = $L("===");
4811
+ var $L80 = $L("\u2263");
4812
+ var $L81 = $L("\u2A76");
4813
+ var $L82 = $L("==");
4814
+ var $L83 = $L("\u2261");
4815
+ var $L84 = $L("\u2A75");
4816
+ var $L85 = $L("and");
4817
+ var $L86 = $L("&&");
4818
+ var $L87 = $L("or");
4819
+ var $L88 = $L("||");
4820
+ var $L89 = $L("\u2016");
4821
+ var $L90 = $L("^^");
4822
+ var $L91 = $L("xor");
4823
+ var $L92 = $L("xnor");
4824
+ var $L93 = $L("??");
4825
+ var $L94 = $L("\u2047");
4826
+ var $L95 = $L("instanceof");
4827
+ var $L96 = $L("\u2208");
4828
+ var $L97 = $L("\u220B");
4829
+ var $L98 = $L("\u220C");
4830
+ var $L99 = $L("\u2209");
4831
+ var $L100 = $L("&");
4832
+ var $L101 = $L("|");
4833
+ var $L102 = $L(";");
4834
+ var $L103 = $L("$:");
4835
+ var $L104 = $L("break");
4836
+ var $L105 = $L("continue");
4837
+ var $L106 = $L("debugger");
4838
+ var $L107 = $L("with");
4839
+ var $L108 = $L("assert");
4840
+ var $L109 = $L(":=");
4841
+ var $L110 = $L("\u2254");
4842
+ var $L111 = $L(".=");
4843
+ var $L112 = $L("/*");
4844
+ var $L113 = $L("*/");
4845
+ var $L114 = $L("\\");
4846
+ var $L115 = $L(")");
4847
+ var $L116 = $L("abstract");
4848
+ var $L117 = $L("as");
4849
+ var $L118 = $L("@");
4850
+ var $L119 = $L("@@");
4851
+ var $L120 = $L("async");
4852
+ var $L121 = $L("await");
4853
+ var $L122 = $L("`");
4854
+ var $L123 = $L("by");
4855
+ var $L124 = $L("case");
4856
+ var $L125 = $L("catch");
4857
+ var $L126 = $L("class");
4858
+ var $L127 = $L("#{");
4859
+ var $L128 = $L("declare");
4860
+ var $L129 = $L("default");
4861
+ var $L130 = $L("delete");
4862
+ var $L131 = $L("do");
4863
+ var $L132 = $L("..");
4864
+ var $L133 = $L("\u2025");
4865
+ var $L134 = $L("...");
4866
+ var $L135 = $L("\u2026");
4867
+ var $L136 = $L("::");
4868
+ var $L137 = $L('"');
4869
+ var $L138 = $L("each");
4870
+ var $L139 = $L("else");
4871
+ var $L140 = $L("export");
4872
+ var $L141 = $L("extends");
4873
+ var $L142 = $L("finally");
4874
+ var $L143 = $L("for");
4875
+ var $L144 = $L("from");
4876
+ var $L145 = $L("function");
4877
+ var $L146 = $L("get");
4878
+ var $L147 = $L("set");
4879
+ var $L148 = $L("#");
4880
+ var $L149 = $L("if");
4881
+ var $L150 = $L("in");
4882
+ var $L151 = $L("let");
4883
+ var $L152 = $L("const");
4884
+ var $L153 = $L("is");
4885
+ var $L154 = $L("loop");
4886
+ var $L155 = $L("new");
4887
+ var $L156 = $L("not");
4888
+ var $L157 = $L("of");
4889
+ var $L158 = $L("[");
4890
+ var $L159 = $L("operator");
4891
+ var $L160 = $L("own");
4892
+ var $L161 = $L("public");
4893
+ var $L162 = $L("private");
4894
+ var $L163 = $L("protected");
4895
+ var $L164 = $L("||>");
4896
+ var $L165 = $L("|\u25B7");
4897
+ var $L166 = $L("|>=");
4898
+ var $L167 = $L("\u25B7=");
4899
+ var $L168 = $L("|>");
4900
+ var $L169 = $L("\u25B7");
4901
+ var $L170 = $L("readonly");
4902
+ var $L171 = $L("return");
4903
+ var $L172 = $L("satisfies");
4904
+ var $L173 = $L("'");
4905
+ var $L174 = $L("static");
4906
+ var $L175 = $L("${");
4907
+ var $L176 = $L("super");
4908
+ var $L177 = $L("switch");
4909
+ var $L178 = $L("target");
4910
+ var $L179 = $L("then");
4911
+ var $L180 = $L("this");
4912
+ var $L181 = $L("throw");
4913
+ var $L182 = $L('"""');
4914
+ var $L183 = $L("'''");
4915
+ var $L184 = $L("///");
4916
+ var $L185 = $L("```");
4917
+ var $L186 = $L("try");
4918
+ var $L187 = $L("typeof");
4919
+ var $L188 = $L("unless");
4920
+ var $L189 = $L("until");
4921
+ var $L190 = $L("using");
4922
+ var $L191 = $L("var");
4923
+ var $L192 = $L("void");
4924
+ var $L193 = $L("when");
4925
+ var $L194 = $L("while");
4926
+ var $L195 = $L("yield");
4927
+ var $L196 = $L("/>");
4928
+ var $L197 = $L("</");
4929
+ var $L198 = $L("<>");
4930
+ var $L199 = $L("</>");
4931
+ var $L200 = $L("<!--");
4932
+ var $L201 = $L("-->");
4933
+ var $L202 = $L("type");
4934
+ var $L203 = $L("enum");
4935
+ var $L204 = $L("interface");
4936
+ var $L205 = $L("global");
4937
+ var $L206 = $L("module");
4938
+ var $L207 = $L("namespace");
4939
+ var $L208 = $L("asserts");
4940
+ var $L209 = $L("keyof");
4941
+ var $L210 = $L("infer");
4942
+ var $L211 = $L("???");
4943
+ var $L212 = $L("[]");
4944
+ var $L213 = $L("civet");
4787
4945
  var $R0 = $R(new RegExp("(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
4788
4946
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4789
4947
  var $R2 = $R(new RegExp("[0-9]", "suy"));
4790
- var $R3 = $R(new RegExp("[ \\t]", "suy"));
4791
- var $R4 = $R(new RegExp("(?=['\"`<])", "suy"));
4792
- var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4793
- var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4794
- var $R7 = $R(new RegExp("[)}]", "suy"));
4795
- var $R8 = $R(new RegExp("[&]", "suy"));
4796
- var $R9 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
4797
- var $R10 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
4798
- var $R11 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
4799
- var $R12 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4800
- var $R13 = $R(new RegExp("(?=\\[)", "suy"));
4801
- var $R14 = $R(new RegExp("[!+-]", "suy"));
4802
- var $R15 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>+-])", "suy"));
4803
- var $R16 = $R(new RegExp("!\\^\\^?", "suy"));
4804
- var $R17 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
4805
- var $R18 = $R(new RegExp("[:.]", "suy"));
4806
- var $R19 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
4807
- var $R20 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
4808
- var $R21 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4809
- var $R22 = $R(new RegExp('[^;"\\s]+', "suy"));
4810
- var $R23 = $R(new RegExp("(?=[0-9.])", "suy"));
4811
- var $R24 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4812
- var $R25 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4813
- var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4814
- var $R27 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4815
- var $R28 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4816
- var $R29 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4817
- var $R30 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4818
- var $R31 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4819
- var $R32 = $R(new RegExp("(?=[0-9])", "suy"));
4820
- var $R33 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4821
- var $R34 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4822
- var $R35 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4823
- var $R36 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4824
- var $R37 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4825
- var $R38 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4826
- var $R39 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4827
- var $R40 = $R(new RegExp("(?:\\\\.)", "suy"));
4828
- var $R41 = $R(new RegExp("[\\s]+", "suy"));
4829
- var $R42 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4830
- var $R43 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4831
- var $R44 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4832
- var $R45 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4833
- var $R46 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4834
- var $R47 = $R(new RegExp("(?=[`'\"])", "suy"));
4835
- var $R48 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4836
- var $R49 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
4837
- var $R50 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
4838
- var $R51 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
4839
- var $R52 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
4840
- var $R53 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
4841
- var $R54 = $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"));
4842
- var $R55 = $R(new RegExp("(?=\\/|#)", "suy"));
4843
- var $R56 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
4844
- var $R57 = $R(new RegExp(".", "suy"));
4845
- var $R58 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
4846
- var $R59 = $R(new RegExp("[^]*?###", "suy"));
4847
- var $R60 = $R(new RegExp("###(?!#)", "suy"));
4848
- var $R61 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
4849
- var $R62 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
4850
- var $R63 = $R(new RegExp("[ \\t]+", "suy"));
4851
- var $R64 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
4852
- var $R65 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
4853
- var $R66 = $R(new RegExp("['\u2019]s", "suy"));
4854
- var $R67 = $R(new RegExp("\\s", "suy"));
4855
- var $R68 = $R(new RegExp("(?=[<])", "suy"));
4856
- var $R69 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
4857
- var $R70 = $R(new RegExp("[\\s>]|\\/>", "suy"));
4858
- var $R71 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
4859
- var $R72 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
4860
- var $R73 = $R(new RegExp("[<>]", "suy"));
4861
- var $R74 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
4862
- var $R75 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
4863
- var $R76 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
4864
- var $R77 = $R(new RegExp("[+-]?", "suy"));
4865
- var $R78 = $R(new RegExp("[+-]", "suy"));
4866
- var $R79 = $R(new RegExp("#![^\\r\\n]*", "suy"));
4867
- var $R80 = $R(new RegExp("[\\t ]*", "suy"));
4868
- var $R81 = $R(new RegExp("[ \\t]*", "suy"));
4869
- var $R82 = $R(new RegExp("[\\s]*", "suy"));
4870
- var $R83 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
4871
- var $R84 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
4872
- var $R85 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
4873
- var $R86 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4948
+ var $R3 = $R(new RegExp("(?!\\p{ID_Start}|[_$0-9(\\[{])", "suy"));
4949
+ var $R4 = $R(new RegExp("[ \\t]", "suy"));
4950
+ var $R5 = $R(new RegExp("(?=['\"`<])", "suy"));
4951
+ var $R6 = $R(new RegExp("(?=[\\/?])", "suy"));
4952
+ var $R7 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4953
+ var $R8 = $R(new RegExp("[)}]", "suy"));
4954
+ var $R9 = $R(new RegExp("[&]", "suy"));
4955
+ var $R10 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
4956
+ var $R11 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
4957
+ var $R12 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
4958
+ var $R13 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4959
+ var $R14 = $R(new RegExp("(?=\\[)", "suy"));
4960
+ var $R15 = $R(new RegExp("[!+-]", "suy"));
4961
+ var $R16 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
4962
+ var $R17 = $R(new RegExp("!\\^\\^?", "suy"));
4963
+ var $R18 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
4964
+ var $R19 = $R(new RegExp("[:.]", "suy"));
4965
+ var $R20 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
4966
+ var $R21 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
4967
+ var $R22 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4968
+ var $R23 = $R(new RegExp('[^;"\\s]+', "suy"));
4969
+ var $R24 = $R(new RegExp("(?=[0-9.])", "suy"));
4970
+ var $R25 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4971
+ var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4972
+ var $R27 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4973
+ var $R28 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4974
+ var $R29 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4975
+ var $R30 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4976
+ var $R31 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4977
+ var $R32 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4978
+ var $R33 = $R(new RegExp("(?=[0-9])", "suy"));
4979
+ var $R34 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4980
+ var $R35 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4981
+ var $R36 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4982
+ var $R37 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4983
+ var $R38 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4984
+ var $R39 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4985
+ var $R40 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4986
+ var $R41 = $R(new RegExp("(?:\\\\.)", "suy"));
4987
+ var $R42 = $R(new RegExp("[\\s]+", "suy"));
4988
+ var $R43 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4989
+ var $R44 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4990
+ var $R45 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4991
+ var $R46 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4992
+ var $R47 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4993
+ var $R48 = $R(new RegExp("(?=[`'\"])", "suy"));
4994
+ var $R49 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4995
+ var $R50 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
4996
+ var $R51 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
4997
+ var $R52 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
4998
+ var $R53 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
4999
+ var $R54 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
5000
+ var $R55 = $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"));
5001
+ var $R56 = $R(new RegExp("(?=\\/|#)", "suy"));
5002
+ var $R57 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
5003
+ var $R58 = $R(new RegExp(".", "suy"));
5004
+ var $R59 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
5005
+ var $R60 = $R(new RegExp("[^]*?###", "suy"));
5006
+ var $R61 = $R(new RegExp("###(?!#)", "suy"));
5007
+ var $R62 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
5008
+ var $R63 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
5009
+ var $R64 = $R(new RegExp("[ \\t]+", "suy"));
5010
+ var $R65 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
5011
+ var $R66 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
5012
+ var $R67 = $R(new RegExp("['\u2019]s", "suy"));
5013
+ var $R68 = $R(new RegExp("\\s", "suy"));
5014
+ var $R69 = $R(new RegExp("(?=[<])", "suy"));
5015
+ var $R70 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
5016
+ var $R71 = $R(new RegExp("[\\s>]|\\/>", "suy"));
5017
+ var $R72 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
5018
+ var $R73 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
5019
+ var $R74 = $R(new RegExp("[<>]", "suy"));
5020
+ var $R75 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
5021
+ var $R76 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
5022
+ var $R77 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
5023
+ var $R78 = $R(new RegExp("[+-]?", "suy"));
5024
+ var $R79 = $R(new RegExp("[+-]", "suy"));
5025
+ var $R80 = $R(new RegExp("(?=if|unless)", "suy"));
5026
+ var $R81 = $R(new RegExp("#![^\\r\\n]*", "suy"));
5027
+ var $R82 = $R(new RegExp("[\\t ]*", "suy"));
5028
+ var $R83 = $R(new RegExp("[ \\t]*", "suy"));
5029
+ var $R84 = $R(new RegExp("[\\s]*", "suy"));
5030
+ var $R85 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
5031
+ var $R86 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
5032
+ var $R87 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
5033
+ var $R88 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4874
5034
  var Program$0 = $TS($S(Reset, Init, $E(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4875
5035
  var statements = $4;
4876
5036
  processProgram({
@@ -5290,13 +5450,28 @@ ${input.slice(result.pos)}
5290
5450
  return $EVENT_C(ctx, state, "UnaryWithoutParenthesizedAssignmentBody", UnaryWithoutParenthesizedAssignmentBody$$);
5291
5451
  }
5292
5452
  var UnaryPostfix$0 = QuestionMark;
5293
- var UnaryPostfix$1 = $T($P($S(__, $C(As, Satisfies), Type)), function(value) {
5453
+ var UnaryPostfix$1 = $T($P(TypePostfix), function(value) {
5294
5454
  return { "ts": true, "children": value };
5295
5455
  });
5296
5456
  var UnaryPostfix$$ = [UnaryPostfix$0, UnaryPostfix$1];
5297
5457
  function UnaryPostfix(ctx, state) {
5298
5458
  return $EVENT_C(ctx, state, "UnaryPostfix", UnaryPostfix$$);
5299
5459
  }
5460
+ var TypePostfix$0 = $TS($S(_, As, $E(ExclamationPoint), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
5461
+ var ws = $1;
5462
+ var as = $2;
5463
+ var ex = $3;
5464
+ var type = $4;
5465
+ if (ex) {
5466
+ return [{ $loc: ex.$loc, token: " as unknown" }, ws, as, type];
5467
+ }
5468
+ return [ws, as, type];
5469
+ });
5470
+ var TypePostfix$1 = $S(_, Satisfies, Type);
5471
+ var TypePostfix$$ = [TypePostfix$0, TypePostfix$1];
5472
+ function TypePostfix(ctx, state) {
5473
+ return $EVENT_C(ctx, state, "TypePostfix", TypePostfix$$);
5474
+ }
5300
5475
  var UpdateExpression$0 = $TS($S(UpdateExpressionSymbol, UnaryWithoutParenthesizedAssignment), function($skip, $loc, $0, $1, $2) {
5301
5476
  return {
5302
5477
  type: "UpdateExpression",
@@ -5304,13 +5479,13 @@ ${input.slice(result.pos)}
5304
5479
  children: $0
5305
5480
  };
5306
5481
  });
5307
- var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
5482
+ var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E($S(UpdateExpressionSymbol, $EXPECT($R3, "UpdateExpression /(?!\\p{ID_Start}|[_$0-9(\\[{])/")))), function($skip, $loc, $0, $1, $2) {
5308
5483
  if (!$2)
5309
5484
  return $1;
5310
5485
  return {
5311
5486
  type: "UpdateExpression",
5312
5487
  assigned: $1,
5313
- children: $0
5488
+ children: [$1, $2[0]]
5314
5489
  };
5315
5490
  });
5316
5491
  var UpdateExpression$$ = [UpdateExpression$0, UpdateExpression$1];
@@ -5320,8 +5495,12 @@ ${input.slice(result.pos)}
5320
5495
  var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L8, 'UpdateExpressionSymbol "++"'), $EXPECT($L9, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
5321
5496
  return { $loc, token: $1 };
5322
5497
  });
5498
+ var UpdateExpressionSymbol$1 = $TV($EXPECT($L10, 'UpdateExpressionSymbol "\u29FA"'), function($skip, $loc, $0, $1) {
5499
+ return { $loc, token: "++" };
5500
+ });
5501
+ var UpdateExpressionSymbol$$ = [UpdateExpressionSymbol$0, UpdateExpressionSymbol$1];
5323
5502
  function UpdateExpressionSymbol(ctx, state) {
5324
- return $EVENT(ctx, state, "UpdateExpressionSymbol", UpdateExpressionSymbol$0);
5503
+ return $EVENT_C(ctx, state, "UpdateExpressionSymbol", UpdateExpressionSymbol$$);
5325
5504
  }
5326
5505
  var AssignmentExpression$0 = PipelineExpression;
5327
5506
  var AssignmentExpression$1 = SingleLineAssignmentExpression;
@@ -5424,7 +5603,7 @@ ${input.slice(result.pos)}
5424
5603
  function ArrowFunction(ctx, state) {
5425
5604
  return $EVENT_C(ctx, state, "ArrowFunction", ArrowFunction$$);
5426
5605
  }
5427
- var FatArrow$0 = $TS($S($E(_), $C($EXPECT($L10, 'FatArrow "=>"'), $EXPECT($L11, 'FatArrow "\u21D2"'))), function($skip, $loc, $0, $1, $2) {
5606
+ var FatArrow$0 = $TS($S($E(_), $C($EXPECT($L11, 'FatArrow "=>"'), $EXPECT($L12, 'FatArrow "\u21D2"'))), function($skip, $loc, $0, $1, $2) {
5428
5607
  var ws = $1;
5429
5608
  if (!ws)
5430
5609
  return " =>";
@@ -5459,7 +5638,7 @@ ${input.slice(result.pos)}
5459
5638
  return $EVENT(ctx, state, "ConditionalExpression", ConditionalExpression$0);
5460
5639
  }
5461
5640
  var TernaryRest$0 = NestedTernaryRest;
5462
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R3, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5641
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($R4, "TernaryRest /[ \\t]/")), _, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5463
5642
  return $0.slice(2);
5464
5643
  });
5465
5644
  var TernaryRest$$ = [TernaryRest$0, TernaryRest$1];
@@ -5587,7 +5766,7 @@ ${input.slice(result.pos)}
5587
5766
  function ClassDeclaration(ctx, state) {
5588
5767
  return $EVENT(ctx, state, "ClassDeclaration", ClassDeclaration$0);
5589
5768
  }
5590
- var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L12, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5769
+ var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L13, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5591
5770
  function ClassExpression(ctx, state) {
5592
5771
  return $EVENT(ctx, state, "ClassExpression", ClassExpression$0);
5593
5772
  }
@@ -5607,27 +5786,67 @@ ${input.slice(result.pos)}
5607
5786
  function ExtendsClause(ctx, state) {
5608
5787
  return $EVENT(ctx, state, "ExtendsClause", ExtendsClause$0);
5609
5788
  }
5610
- var ExtendsToken$0 = $TS($S(Loc, __, ExtendsShorthand, $E($EXPECT($L13, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5789
+ var ExtendsToken$0 = $TS($S(Loc, $E(_), ExtendsShorthand, $E($EXPECT($L14, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5611
5790
  var l = $1;
5612
5791
  var ws = $2;
5613
5792
  var t = $3;
5614
- const children = [...ws, t];
5615
- if (!ws.length) {
5616
- children.unshift({ $loc: l.$loc, token: " " });
5617
- }
5618
- return { children };
5793
+ return {
5794
+ type: "Extends",
5795
+ children: [
5796
+ ws || { $loc: l.$loc, token: " " },
5797
+ t
5798
+ ]
5799
+ };
5800
+ });
5801
+ var ExtendsToken$1 = $TS($S($E(_), Extends), function($skip, $loc, $0, $1, $2) {
5802
+ return {
5803
+ type: "Extends",
5804
+ children: $0
5805
+ };
5619
5806
  });
5620
- var ExtendsToken$1 = $S(__, Extends);
5621
5807
  var ExtendsToken$$ = [ExtendsToken$0, ExtendsToken$1];
5622
5808
  function ExtendsToken(ctx, state) {
5623
5809
  return $EVENT_C(ctx, state, "ExtendsToken", ExtendsToken$$);
5624
5810
  }
5625
- var ExtendsShorthand$0 = $TV($EXPECT($L14, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
5811
+ var ExtendsShorthand$0 = $TV($EXPECT($L15, 'ExtendsShorthand "<"'), function($skip, $loc, $0, $1) {
5626
5812
  return { $loc, token: "extends " };
5627
5813
  });
5628
5814
  function ExtendsShorthand(ctx, state) {
5629
5815
  return $EVENT(ctx, state, "ExtendsShorthand", ExtendsShorthand$0);
5630
5816
  }
5817
+ var NotExtendsToken$0 = $TS($S(Loc, $E(_), OmittedNegation, ExtendsShorthand, $E($EXPECT($L14, 'NotExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5818
+ var l = $1;
5819
+ var ws1 = $2;
5820
+ var ws2 = $3;
5821
+ var t = $4;
5822
+ const ws = ws1 && ws2 ? [ws1, ws2] : ws1 || ws2 || { $loc: l.$loc, token: " " };
5823
+ return {
5824
+ type: "Extends",
5825
+ negated: true,
5826
+ children: [ws, t]
5827
+ };
5828
+ });
5829
+ var NotExtendsToken$1 = $TS($S($E(_), OmittedNegation, Extends), function($skip, $loc, $0, $1, $2, $3) {
5830
+ return {
5831
+ type: "Extends",
5832
+ negated: true,
5833
+ children: $0
5834
+ };
5835
+ });
5836
+ var NotExtendsToken$$ = [NotExtendsToken$0, NotExtendsToken$1];
5837
+ function NotExtendsToken(ctx, state) {
5838
+ return $EVENT_C(ctx, state, "NotExtendsToken", NotExtendsToken$$);
5839
+ }
5840
+ var OmittedNegation$0 = $T($S(ExclamationPoint), function(value) {
5841
+ return "";
5842
+ });
5843
+ var OmittedNegation$1 = $T($S(Not, $E($EXPECT($L14, 'OmittedNegation " "')), $E(_)), function(value) {
5844
+ return value[2];
5845
+ });
5846
+ var OmittedNegation$$ = [OmittedNegation$0, OmittedNegation$1];
5847
+ function OmittedNegation(ctx, state) {
5848
+ return $EVENT_C(ctx, state, "OmittedNegation", OmittedNegation$$);
5849
+ }
5631
5850
  var ExtendsTarget$0 = $TS($S(LeftHandSideExpressionWithObjectApplicationForbidden, $E(TypeArguments)), function($skip, $loc, $0, $1, $2) {
5632
5851
  var exp = $1;
5633
5852
  var ta = $2;
@@ -5648,7 +5867,7 @@ ${input.slice(result.pos)}
5648
5867
  function ImplementsClause(ctx, state) {
5649
5868
  return $EVENT(ctx, state, "ImplementsClause", ImplementsClause$0);
5650
5869
  }
5651
- var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L13, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5870
+ var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L14, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5652
5871
  var l = $1;
5653
5872
  var ws = $2;
5654
5873
  var token = $3;
@@ -5658,7 +5877,7 @@ ${input.slice(result.pos)}
5658
5877
  }
5659
5878
  return { children };
5660
5879
  });
5661
- var ImplementsToken$1 = $TS($S(__, $EXPECT($L15, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
5880
+ var ImplementsToken$1 = $TS($S(__, $EXPECT($L16, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
5662
5881
  $2 = { $loc, token: $2 };
5663
5882
  return [$1, $2];
5664
5883
  });
@@ -5666,7 +5885,7 @@ ${input.slice(result.pos)}
5666
5885
  function ImplementsToken(ctx, state) {
5667
5886
  return $EVENT_C(ctx, state, "ImplementsToken", ImplementsToken$$);
5668
5887
  }
5669
- var ImplementsShorthand$0 = $TV($EXPECT($L16, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
5888
+ var ImplementsShorthand$0 = $TV($EXPECT($L17, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
5670
5889
  return { $loc, token: "implements " };
5671
5890
  });
5672
5891
  function ImplementsShorthand(ctx, state) {
@@ -5878,7 +6097,7 @@ ${input.slice(result.pos)}
5878
6097
  function AtThis(ctx, state) {
5879
6098
  return $EVENT(ctx, state, "AtThis", AtThis$0);
5880
6099
  }
5881
- var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L12, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
6100
+ var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L13, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
5882
6101
  var LeftHandSideExpression$1 = CallExpression;
5883
6102
  var LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1];
5884
6103
  function LeftHandSideExpression(ctx, state) {
@@ -5891,7 +6110,7 @@ ${input.slice(result.pos)}
5891
6110
  children: [$1, ...$2, ...rest.flat()]
5892
6111
  });
5893
6112
  });
5894
- var CallExpression$1 = $TS($S($EXPECT($L17, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
6113
+ var CallExpression$1 = $TS($S($EXPECT($L18, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
5895
6114
  var rest = $3;
5896
6115
  return processCallMemberExpression({
5897
6116
  type: "CallExpression",
@@ -5916,7 +6135,7 @@ ${input.slice(result.pos)}
5916
6135
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5917
6136
  }
5918
6137
  var CallExpressionRest$0 = MemberExpressionRest;
5919
- var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
6138
+ var CallExpressionRest$1 = $TS($S($EXPECT($R5, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
5920
6139
  var args = $2;
5921
6140
  var literal = $3;
5922
6141
  if (literal.type === "StringLiteral") {
@@ -5935,7 +6154,7 @@ ${input.slice(result.pos)}
5935
6154
  function CallExpressionRest(ctx, state) {
5936
6155
  return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
5937
6156
  }
5938
- var OptionalShorthand$0 = $TS($S($EXPECT($R5, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
6157
+ var OptionalShorthand$0 = $TS($S($EXPECT($R6, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
5939
6158
  return {
5940
6159
  type: "Optional",
5941
6160
  children: $0
@@ -5952,7 +6171,7 @@ ${input.slice(result.pos)}
5952
6171
  function OptionalDot(ctx, state) {
5953
6172
  return $EVENT_C(ctx, state, "OptionalDot", OptionalDot$$);
5954
6173
  }
5955
- var NonNullAssertion$0 = $T($S($EXPECT($L18, 'NonNullAssertion "!"'), $N($EXPECT($L19, 'NonNullAssertion "^"'))), function(value) {
6174
+ var NonNullAssertion$0 = $T($S($EXPECT($L19, 'NonNullAssertion "!"'), $N($EXPECT($L20, 'NonNullAssertion "^"'))), function(value) {
5956
6175
  return { "type": "NonNullAssertion", "ts": true, "children": value[0] };
5957
6176
  });
5958
6177
  function NonNullAssertion(ctx, state) {
@@ -5988,7 +6207,7 @@ ${input.slice(result.pos)}
5988
6207
  function MemberBase(ctx, state) {
5989
6208
  return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5990
6209
  }
5991
- var MemberExpressionRest$0 = $TS($S($EXPECT($R6, "MemberExpressionRest /(?=[\\/\\[{?.!@'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
6210
+ var MemberExpressionRest$0 = $TS($S($EXPECT($R7, "MemberExpressionRest /(?=[\\/\\[{?.!@'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
5992
6211
  var comments = $2;
5993
6212
  var body = $3;
5994
6213
  if (Array.isArray(body))
@@ -6143,7 +6362,7 @@ ${input.slice(result.pos)}
6143
6362
  ]
6144
6363
  };
6145
6364
  });
6146
- var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L20, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6365
+ var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L21, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6147
6366
  var dot = $1;
6148
6367
  var neg = $2;
6149
6368
  var num = $3;
@@ -6219,7 +6438,7 @@ ${input.slice(result.pos)}
6219
6438
  return $EVENT_C(ctx, state, "SuperProperty", SuperProperty$$);
6220
6439
  }
6221
6440
  var MetaProperty$0 = $S(New, Dot, Target);
6222
- var MetaProperty$1 = $TS($S($EXPECT($L21, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6441
+ var MetaProperty$1 = $TS($S($EXPECT($L22, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6223
6442
  return { $loc, token: $1 };
6224
6443
  });
6225
6444
  var MetaProperty$2 = ReturnValue;
@@ -6227,7 +6446,7 @@ ${input.slice(result.pos)}
6227
6446
  function MetaProperty(ctx, state) {
6228
6447
  return $EVENT_C(ctx, state, "MetaProperty", MetaProperty$$);
6229
6448
  }
6230
- var ReturnValue$0 = $TV($C($S($EXPECT($L22, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6449
+ var ReturnValue$0 = $TV($C($S($EXPECT($L23, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6231
6450
  return { type: "ReturnValue", children: [$1[0]] };
6232
6451
  });
6233
6452
  function ReturnValue(ctx, state) {
@@ -6429,7 +6648,7 @@ ${input.slice(result.pos)}
6429
6648
  return $EVENT(ctx, state, "ParameterElement", ParameterElement$0);
6430
6649
  }
6431
6650
  var ParameterElementDelimiter$0 = $S($E(_), Comma);
6432
- var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R7, "ParameterElementDelimiter /[)}]/"))));
6651
+ var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R8, "ParameterElementDelimiter /[)}]/"))));
6433
6652
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
6434
6653
  return value[1];
6435
6654
  });
@@ -6740,7 +6959,7 @@ ${input.slice(result.pos)}
6740
6959
  children: [ws, binding]
6741
6960
  };
6742
6961
  });
6743
- var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L23, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
6962
+ var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L24, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
6744
6963
  return {
6745
6964
  children: [{
6746
6965
  type: "ElisionElement",
@@ -6864,7 +7083,7 @@ ${input.slice(result.pos)}
6864
7083
  block
6865
7084
  };
6866
7085
  });
6867
- var FunctionExpression$1 = $TV($EXPECT($L24, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
7086
+ var FunctionExpression$1 = $TV($EXPECT($L25, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
6868
7087
  const ref = makeRef("$"), body = [ref];
6869
7088
  const parameters = {
6870
7089
  type: "Parameters",
@@ -6879,7 +7098,7 @@ ${input.slice(result.pos)}
6879
7098
  signature: {
6880
7099
  modifier: {}
6881
7100
  },
6882
- children: [ref, " => ", body],
7101
+ children: [parameters, " => ", body],
6883
7102
  ref,
6884
7103
  body,
6885
7104
  ampersandBlock: true,
@@ -6887,8 +7106,38 @@ ${input.slice(result.pos)}
6887
7106
  parameters
6888
7107
  };
6889
7108
  });
6890
- var FunctionExpression$2 = AmpersandFunctionExpression;
6891
- var FunctionExpression$3 = $TS($S(Identifier, __, ConstAssignment, $Q(_), ThinArrowFunction), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7109
+ var FunctionExpression$2 = $TS($S(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
7110
+ var open = $1;
7111
+ var op = $2;
7112
+ var close = $3;
7113
+ if (op.special && op.call && !op.negated)
7114
+ return op.call;
7115
+ const refA = makeRef("a"), refB = makeRef("b"), body = processBinaryOpExpression([refA, [
7116
+ [[], op, [], refB]
7117
+ // BinaryOpRHS
7118
+ ]]);
7119
+ const parameters = {
7120
+ type: "Parameters",
7121
+ children: ["(", refA, ",", refB, ")"],
7122
+ names: []
7123
+ };
7124
+ const block = {
7125
+ expressions: [body]
7126
+ };
7127
+ return {
7128
+ type: "ArrowFunction",
7129
+ signature: {
7130
+ modifier: {}
7131
+ },
7132
+ children: [open, parameters, " => ", body, close],
7133
+ body,
7134
+ ampersandBlock: true,
7135
+ block,
7136
+ parameters
7137
+ };
7138
+ });
7139
+ var FunctionExpression$3 = AmpersandFunctionExpression;
7140
+ var FunctionExpression$4 = $TS($S(Identifier, __, ConstAssignment, $Q(_), ThinArrowFunction), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6892
7141
  var id = $1;
6893
7142
  var ws = $4;
6894
7143
  var fn = $5;
@@ -6903,7 +7152,7 @@ ${input.slice(result.pos)}
6903
7152
  ]
6904
7153
  };
6905
7154
  });
6906
- var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3];
7155
+ var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3, FunctionExpression$4];
6907
7156
  function FunctionExpression(ctx, state) {
6908
7157
  return $EVENT_C(ctx, state, "FunctionExpression", FunctionExpression$$);
6909
7158
  }
@@ -7034,7 +7283,7 @@ ${input.slice(result.pos)}
7034
7283
  function AmpersandBlockRHS(ctx, state) {
7035
7284
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
7036
7285
  }
7037
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
7286
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R9, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
7038
7287
  var callExpRest = $1;
7039
7288
  var unaryPostfix = $2;
7040
7289
  var assign = $3;
@@ -7124,7 +7373,7 @@ ${input.slice(result.pos)}
7124
7373
  function ThinArrowFunction(ctx, state) {
7125
7374
  return $EVENT(ctx, state, "ThinArrowFunction", ThinArrowFunction$0);
7126
7375
  }
7127
- var Arrow$0 = $TV($C($EXPECT($L25, 'Arrow "->"'), $EXPECT($L26, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7376
+ var Arrow$0 = $TV($C($EXPECT($L26, 'Arrow "->"'), $EXPECT($L27, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7128
7377
  return { $loc, token: "->" };
7129
7378
  });
7130
7379
  function Arrow(ctx, state) {
@@ -7410,7 +7659,7 @@ ${input.slice(result.pos)}
7410
7659
  }
7411
7660
  var BracedContent$0 = NestedBlockStatements;
7412
7661
  var BracedContent$1 = SingleLineStatements;
7413
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L27, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7662
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L28, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7414
7663
  const expressions = [];
7415
7664
  return {
7416
7665
  type: "BlockStatement",
@@ -7460,7 +7709,7 @@ ${input.slice(result.pos)}
7460
7709
  function BlockStatementPart(ctx, state) {
7461
7710
  return $EVENT(ctx, state, "BlockStatementPart", BlockStatementPart$0);
7462
7711
  }
7463
- var Literal$0 = $TS($S($EXPECT($R9, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
7712
+ var Literal$0 = $TS($S($EXPECT($R10, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
7464
7713
  var literal = $2;
7465
7714
  return {
7466
7715
  type: "Literal",
@@ -7480,13 +7729,13 @@ ${input.slice(result.pos)}
7480
7729
  function LiteralContent(ctx, state) {
7481
7730
  return $EVENT_C(ctx, state, "LiteralContent", LiteralContent$$);
7482
7731
  }
7483
- var NullLiteral$0 = $TS($S($EXPECT($L28, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7732
+ var NullLiteral$0 = $TS($S($EXPECT($L29, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7484
7733
  return { $loc, token: $1 };
7485
7734
  });
7486
7735
  function NullLiteral(ctx, state) {
7487
7736
  return $EVENT(ctx, state, "NullLiteral", NullLiteral$0);
7488
7737
  }
7489
- var BooleanLiteral$0 = $T($S($EXPECT($R10, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
7738
+ var BooleanLiteral$0 = $T($S($EXPECT($R11, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
7490
7739
  return value[1];
7491
7740
  });
7492
7741
  function BooleanLiteral(ctx, state) {
@@ -7495,31 +7744,31 @@ ${input.slice(result.pos)}
7495
7744
  var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
7496
7745
  return value[1];
7497
7746
  });
7498
- var _BooleanLiteral$1 = $TS($S($C($EXPECT($L29, '_BooleanLiteral "true"'), $EXPECT($L30, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7747
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L30, '_BooleanLiteral "true"'), $EXPECT($L31, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7499
7748
  return { $loc, token: $1 };
7500
7749
  });
7501
7750
  var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
7502
7751
  function _BooleanLiteral(ctx, state) {
7503
7752
  return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
7504
7753
  }
7505
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L31, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L32, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7754
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L32, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L33, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7506
7755
  return { $loc, token: "true" };
7507
7756
  });
7508
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L33, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L34, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7757
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L34, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L35, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7509
7758
  return { $loc, token: "false" };
7510
7759
  });
7511
7760
  var CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
7512
7761
  function CoffeeScriptBooleanLiteral(ctx, state) {
7513
7762
  return $EVENT_C(ctx, state, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
7514
7763
  }
7515
- var Identifier$0 = $T($S($EXPECT($R11, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
7764
+ var Identifier$0 = $T($S($EXPECT($R12, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
7516
7765
  var id = value[2];
7517
7766
  return id;
7518
7767
  });
7519
7768
  function Identifier(ctx, state) {
7520
7769
  return $EVENT(ctx, state, "Identifier", Identifier$0);
7521
7770
  }
7522
- var IdentifierName$0 = $TR($EXPECT($R12, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7771
+ var IdentifierName$0 = $TR($EXPECT($R13, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7523
7772
  return {
7524
7773
  type: "Identifier",
7525
7774
  name: $0,
@@ -7537,11 +7786,11 @@ ${input.slice(result.pos)}
7537
7786
  function IdentifierReference(ctx, state) {
7538
7787
  return $EVENT(ctx, state, "IdentifierReference", IdentifierReference$0);
7539
7788
  }
7540
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L35, 'UpcomingAssignment ">"')))));
7789
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L36, 'UpcomingAssignment ">"')))));
7541
7790
  function UpcomingAssignment(ctx, state) {
7542
7791
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
7543
7792
  }
7544
- var ArrayLiteral$0 = $T($S($EXPECT($R13, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
7793
+ var ArrayLiteral$0 = $T($S($EXPECT($R14, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
7545
7794
  return value[1];
7546
7795
  });
7547
7796
  function ArrayLiteral(ctx, state) {
@@ -7695,7 +7944,7 @@ ${input.slice(result.pos)}
7695
7944
  return $EVENT(ctx, state, "NestedElement", NestedElement$0);
7696
7945
  }
7697
7946
  var ArrayElementDelimiter$0 = $S(__, Comma);
7698
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L36, 'ArrayElementDelimiter "]"')));
7947
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L37, 'ArrayElementDelimiter "]"')));
7699
7948
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
7700
7949
  return value[1];
7701
7950
  });
@@ -7925,7 +8174,7 @@ ${input.slice(result.pos)}
7925
8174
  return $EVENT_C(ctx, state, "ImplicitInlineObjectPropertyDelimiter", ImplicitInlineObjectPropertyDelimiter$$);
7926
8175
  }
7927
8176
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
7928
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L27, 'ObjectPropertyDelimiter "}"')));
8177
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L28, 'ObjectPropertyDelimiter "}"')));
7929
8178
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
7930
8179
  return value[1];
7931
8180
  });
@@ -7941,7 +8190,7 @@ ${input.slice(result.pos)}
7941
8190
  children: [ws, ...prop.children]
7942
8191
  };
7943
8192
  });
7944
- var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R14, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
8193
+ var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R15, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
7945
8194
  var ws = $1;
7946
8195
  var toggle = $2;
7947
8196
  var id = $3;
@@ -8108,7 +8357,7 @@ ${input.slice(result.pos)}
8108
8357
  implicit: true
8109
8358
  };
8110
8359
  });
8111
- var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L20, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8360
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L21, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8112
8361
  const expression = [$2, $3];
8113
8362
  return {
8114
8363
  type: "ComputedPropertyName",
@@ -8368,11 +8617,16 @@ ${input.slice(result.pos)}
8368
8617
  }
8369
8618
  var AssignmentOp$0 = $TS($S(AssignmentOpSymbol, $E(_)), function($skip, $loc, $0, $1, $2) {
8370
8619
  if ($2?.length) {
8620
+ if (typeof $1 !== "string") {
8621
+ return { ...$1, children: [...$1.children, $2] };
8622
+ }
8371
8623
  return {
8372
8624
  token: $1,
8373
8625
  children: [$1, ...$2]
8374
8626
  };
8375
8627
  }
8628
+ if (typeof $1 !== "string")
8629
+ return $1;
8376
8630
  return { $loc, token: $1 };
8377
8631
  });
8378
8632
  function AssignmentOp(ctx, state) {
@@ -8403,38 +8657,46 @@ ${input.slice(result.pos)}
8403
8657
  function OperatorAssignmentOp(ctx, state) {
8404
8658
  return $EVENT_C(ctx, state, "OperatorAssignmentOp", OperatorAssignmentOp$$);
8405
8659
  }
8406
- var AssignmentOpSymbol$0 = $EXPECT($L37, 'AssignmentOpSymbol "**="');
8407
- var AssignmentOpSymbol$1 = $EXPECT($L38, 'AssignmentOpSymbol "*="');
8408
- var AssignmentOpSymbol$2 = $EXPECT($L39, 'AssignmentOpSymbol "/="');
8409
- var AssignmentOpSymbol$3 = $EXPECT($L40, 'AssignmentOpSymbol "%="');
8410
- var AssignmentOpSymbol$4 = $EXPECT($L41, 'AssignmentOpSymbol "+="');
8411
- var AssignmentOpSymbol$5 = $EXPECT($L42, 'AssignmentOpSymbol "-="');
8412
- var AssignmentOpSymbol$6 = $EXPECT($L43, 'AssignmentOpSymbol "<<="');
8413
- var AssignmentOpSymbol$7 = $EXPECT($L44, 'AssignmentOpSymbol ">>>="');
8414
- var AssignmentOpSymbol$8 = $EXPECT($L45, 'AssignmentOpSymbol ">>="');
8415
- var AssignmentOpSymbol$9 = $EXPECT($L46, 'AssignmentOpSymbol "&&="');
8416
- var AssignmentOpSymbol$10 = $EXPECT($L47, 'AssignmentOpSymbol "&="');
8417
- var AssignmentOpSymbol$11 = $EXPECT($L48, 'AssignmentOpSymbol "^="');
8418
- var AssignmentOpSymbol$12 = $EXPECT($L49, 'AssignmentOpSymbol "||="');
8419
- var AssignmentOpSymbol$13 = $EXPECT($L50, 'AssignmentOpSymbol "|="');
8420
- var AssignmentOpSymbol$14 = $EXPECT($L51, 'AssignmentOpSymbol "??="');
8421
- var AssignmentOpSymbol$15 = $T($EXPECT($L52, 'AssignmentOpSymbol "?="'), function(value) {
8660
+ var AssignmentOpSymbol$0 = $EXPECT($L38, 'AssignmentOpSymbol "**="');
8661
+ var AssignmentOpSymbol$1 = $EXPECT($L39, 'AssignmentOpSymbol "*="');
8662
+ var AssignmentOpSymbol$2 = $EXPECT($L40, 'AssignmentOpSymbol "/="');
8663
+ var AssignmentOpSymbol$3 = $EXPECT($L41, 'AssignmentOpSymbol "%="');
8664
+ var AssignmentOpSymbol$4 = $TS($S($C($EXPECT($L8, 'AssignmentOpSymbol "++"'), $EXPECT($L10, 'AssignmentOpSymbol "\u29FA"')), Equals), function($skip, $loc, $0, $1, $2) {
8665
+ return {
8666
+ special: true,
8667
+ call: module.getRef("concatAssign"),
8668
+ omitLhs: true,
8669
+ children: [$2]
8670
+ };
8671
+ });
8672
+ var AssignmentOpSymbol$5 = $EXPECT($L42, 'AssignmentOpSymbol "+="');
8673
+ var AssignmentOpSymbol$6 = $EXPECT($L43, 'AssignmentOpSymbol "-="');
8674
+ var AssignmentOpSymbol$7 = $EXPECT($L44, 'AssignmentOpSymbol "<<="');
8675
+ var AssignmentOpSymbol$8 = $EXPECT($L45, 'AssignmentOpSymbol ">>>="');
8676
+ var AssignmentOpSymbol$9 = $EXPECT($L46, 'AssignmentOpSymbol ">>="');
8677
+ var AssignmentOpSymbol$10 = $EXPECT($L47, 'AssignmentOpSymbol "&&="');
8678
+ var AssignmentOpSymbol$11 = $EXPECT($L48, 'AssignmentOpSymbol "&="');
8679
+ var AssignmentOpSymbol$12 = $EXPECT($L49, 'AssignmentOpSymbol "^="');
8680
+ var AssignmentOpSymbol$13 = $EXPECT($L50, 'AssignmentOpSymbol "||="');
8681
+ var AssignmentOpSymbol$14 = $EXPECT($L51, 'AssignmentOpSymbol "|="');
8682
+ var AssignmentOpSymbol$15 = $EXPECT($L52, 'AssignmentOpSymbol "??="');
8683
+ var AssignmentOpSymbol$16 = $T($EXPECT($L53, 'AssignmentOpSymbol "?="'), function(value) {
8422
8684
  return "??=";
8423
8685
  });
8424
- var AssignmentOpSymbol$16 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
8686
+ var AssignmentOpSymbol$17 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
8425
8687
  return value[0];
8426
8688
  });
8427
- var AssignmentOpSymbol$17 = $T($S(CoffeeWordAssignmentOp), function(value) {
8689
+ var AssignmentOpSymbol$18 = $T($S(CoffeeWordAssignmentOp), function(value) {
8428
8690
  return value[0];
8429
8691
  });
8430
- var AssignmentOpSymbol$$ = [AssignmentOpSymbol$0, AssignmentOpSymbol$1, AssignmentOpSymbol$2, AssignmentOpSymbol$3, AssignmentOpSymbol$4, AssignmentOpSymbol$5, AssignmentOpSymbol$6, AssignmentOpSymbol$7, AssignmentOpSymbol$8, AssignmentOpSymbol$9, AssignmentOpSymbol$10, AssignmentOpSymbol$11, AssignmentOpSymbol$12, AssignmentOpSymbol$13, AssignmentOpSymbol$14, AssignmentOpSymbol$15, AssignmentOpSymbol$16, AssignmentOpSymbol$17];
8692
+ var AssignmentOpSymbol$$ = [AssignmentOpSymbol$0, AssignmentOpSymbol$1, AssignmentOpSymbol$2, AssignmentOpSymbol$3, AssignmentOpSymbol$4, AssignmentOpSymbol$5, AssignmentOpSymbol$6, AssignmentOpSymbol$7, AssignmentOpSymbol$8, AssignmentOpSymbol$9, AssignmentOpSymbol$10, AssignmentOpSymbol$11, AssignmentOpSymbol$12, AssignmentOpSymbol$13, AssignmentOpSymbol$14, AssignmentOpSymbol$15, AssignmentOpSymbol$16, AssignmentOpSymbol$17, AssignmentOpSymbol$18];
8431
8693
  function AssignmentOpSymbol(ctx, state) {
8432
8694
  return $EVENT_C(ctx, state, "AssignmentOpSymbol", AssignmentOpSymbol$$);
8433
8695
  }
8434
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L53, 'CoffeeWordAssignmentOp "and="'), function(value) {
8696
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L54, 'CoffeeWordAssignmentOp "and="'), function(value) {
8435
8697
  return "&&=";
8436
8698
  });
8437
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L54, 'CoffeeWordAssignmentOp "or="'), function(value) {
8699
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L55, 'CoffeeWordAssignmentOp "or="'), function(value) {
8438
8700
  return "||=";
8439
8701
  });
8440
8702
  var CoffeeWordAssignmentOp$$ = [CoffeeWordAssignmentOp$0, CoffeeWordAssignmentOp$1];
@@ -8468,7 +8730,7 @@ ${input.slice(result.pos)}
8468
8730
  function IdentifierBinaryOp(ctx, state) {
8469
8731
  return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
8470
8732
  }
8471
- var BinaryOp$0 = $T($S($EXPECT($R15, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>+-])/"), _BinaryOp), function(value) {
8733
+ var BinaryOp$0 = $T($S($EXPECT($R16, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
8472
8734
  var op = value[1];
8473
8735
  return op;
8474
8736
  });
@@ -8503,27 +8765,33 @@ ${input.slice(result.pos)}
8503
8765
  function _BinaryOp(ctx, state) {
8504
8766
  return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
8505
8767
  }
8506
- var BinaryOpSymbol$0 = $EXPECT($L55, 'BinaryOpSymbol "**"');
8507
- var BinaryOpSymbol$1 = $EXPECT($L56, 'BinaryOpSymbol "*"');
8508
- var BinaryOpSymbol$2 = $EXPECT($L57, 'BinaryOpSymbol "/"');
8509
- var BinaryOpSymbol$3 = $TV($EXPECT($L58, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
8768
+ var BinaryOpSymbol$0 = $EXPECT($L56, 'BinaryOpSymbol "**"');
8769
+ var BinaryOpSymbol$1 = $EXPECT($L57, 'BinaryOpSymbol "*"');
8770
+ var BinaryOpSymbol$2 = $EXPECT($L58, 'BinaryOpSymbol "/"');
8771
+ var BinaryOpSymbol$3 = $TV($EXPECT($L59, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
8510
8772
  return {
8511
8773
  call: module.getRef("modulo"),
8512
8774
  special: true
8513
8775
  };
8514
8776
  });
8515
- var BinaryOpSymbol$4 = $EXPECT($L59, 'BinaryOpSymbol "%"');
8516
- var BinaryOpSymbol$5 = $EXPECT($L60, 'BinaryOpSymbol "+"');
8517
- var BinaryOpSymbol$6 = $EXPECT($L20, 'BinaryOpSymbol "-"');
8518
- var BinaryOpSymbol$7 = $EXPECT($L61, 'BinaryOpSymbol "<="');
8519
- var BinaryOpSymbol$8 = $T($EXPECT($L62, 'BinaryOpSymbol "\u2264"'), function(value) {
8777
+ var BinaryOpSymbol$4 = $EXPECT($L60, 'BinaryOpSymbol "%"');
8778
+ var BinaryOpSymbol$5 = $TV($C($EXPECT($L8, 'BinaryOpSymbol "++"'), $EXPECT($L10, 'BinaryOpSymbol "\u29FA"')), function($skip, $loc, $0, $1) {
8779
+ return {
8780
+ method: "concat",
8781
+ special: true
8782
+ };
8783
+ });
8784
+ var BinaryOpSymbol$6 = $EXPECT($L61, 'BinaryOpSymbol "+"');
8785
+ var BinaryOpSymbol$7 = $EXPECT($L21, 'BinaryOpSymbol "-"');
8786
+ var BinaryOpSymbol$8 = $EXPECT($L62, 'BinaryOpSymbol "<="');
8787
+ var BinaryOpSymbol$9 = $T($EXPECT($L63, 'BinaryOpSymbol "\u2264"'), function(value) {
8520
8788
  return "<=";
8521
8789
  });
8522
- var BinaryOpSymbol$9 = $EXPECT($L63, 'BinaryOpSymbol ">="');
8523
- var BinaryOpSymbol$10 = $T($EXPECT($L64, 'BinaryOpSymbol "\u2265"'), function(value) {
8790
+ var BinaryOpSymbol$10 = $EXPECT($L64, 'BinaryOpSymbol ">="');
8791
+ var BinaryOpSymbol$11 = $T($EXPECT($L65, 'BinaryOpSymbol "\u2265"'), function(value) {
8524
8792
  return ">=";
8525
8793
  });
8526
- var BinaryOpSymbol$11 = $TV($EXPECT($L65, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
8794
+ var BinaryOpSymbol$12 = $TV($EXPECT($L66, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
8527
8795
  return {
8528
8796
  $loc,
8529
8797
  token: "instanceof",
@@ -8531,7 +8799,7 @@ ${input.slice(result.pos)}
8531
8799
  special: true
8532
8800
  };
8533
8801
  });
8534
- var BinaryOpSymbol$12 = $TV($EXPECT($L66, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
8802
+ var BinaryOpSymbol$13 = $TV($EXPECT($L67, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
8535
8803
  return {
8536
8804
  $loc,
8537
8805
  token: "instanceof",
@@ -8540,74 +8808,74 @@ ${input.slice(result.pos)}
8540
8808
  negated: true
8541
8809
  };
8542
8810
  });
8543
- var BinaryOpSymbol$13 = $EXPECT($L67, 'BinaryOpSymbol "<<"');
8544
- var BinaryOpSymbol$14 = $T($EXPECT($L68, 'BinaryOpSymbol "\xAB"'), function(value) {
8811
+ var BinaryOpSymbol$14 = $EXPECT($L68, 'BinaryOpSymbol "<<"');
8812
+ var BinaryOpSymbol$15 = $T($EXPECT($L69, 'BinaryOpSymbol "\xAB"'), function(value) {
8545
8813
  return "<<";
8546
8814
  });
8547
- var BinaryOpSymbol$15 = $EXPECT($L14, 'BinaryOpSymbol "<"');
8548
- var BinaryOpSymbol$16 = $EXPECT($L69, 'BinaryOpSymbol ">>>"');
8549
- var BinaryOpSymbol$17 = $T($EXPECT($L70, 'BinaryOpSymbol "\u22D9"'), function(value) {
8815
+ var BinaryOpSymbol$16 = $EXPECT($L15, 'BinaryOpSymbol "<"');
8816
+ var BinaryOpSymbol$17 = $EXPECT($L70, 'BinaryOpSymbol ">>>"');
8817
+ var BinaryOpSymbol$18 = $T($EXPECT($L71, 'BinaryOpSymbol "\u22D9"'), function(value) {
8550
8818
  return ">>>";
8551
8819
  });
8552
- var BinaryOpSymbol$18 = $EXPECT($L71, 'BinaryOpSymbol ">>"');
8553
- var BinaryOpSymbol$19 = $T($EXPECT($L72, 'BinaryOpSymbol "\xBB"'), function(value) {
8820
+ var BinaryOpSymbol$19 = $EXPECT($L72, 'BinaryOpSymbol ">>"');
8821
+ var BinaryOpSymbol$20 = $T($EXPECT($L73, 'BinaryOpSymbol "\xBB"'), function(value) {
8554
8822
  return ">>";
8555
8823
  });
8556
- var BinaryOpSymbol$20 = $EXPECT($L35, 'BinaryOpSymbol ">"');
8557
- var BinaryOpSymbol$21 = $EXPECT($L73, 'BinaryOpSymbol "!=="');
8558
- var BinaryOpSymbol$22 = $T($EXPECT($L74, 'BinaryOpSymbol "\u2262"'), function(value) {
8824
+ var BinaryOpSymbol$21 = $EXPECT($L36, 'BinaryOpSymbol ">"');
8825
+ var BinaryOpSymbol$22 = $EXPECT($L74, 'BinaryOpSymbol "!=="');
8826
+ var BinaryOpSymbol$23 = $T($EXPECT($L75, 'BinaryOpSymbol "\u2262"'), function(value) {
8559
8827
  return "!==";
8560
8828
  });
8561
- var BinaryOpSymbol$23 = $TV($C($EXPECT($L75, 'BinaryOpSymbol "!="'), $EXPECT($L76, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
8829
+ var BinaryOpSymbol$24 = $TV($C($EXPECT($L76, 'BinaryOpSymbol "!="'), $EXPECT($L77, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
8562
8830
  if (module.config.coffeeEq)
8563
8831
  return "!==";
8564
8832
  return "!=";
8565
8833
  });
8566
- var BinaryOpSymbol$24 = $TS($S($EXPECT($L77, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8834
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L78, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8567
8835
  if (module.config.coffeeIsnt)
8568
8836
  return "!==";
8569
8837
  return $skip;
8570
8838
  });
8571
- var BinaryOpSymbol$25 = $EXPECT($L78, 'BinaryOpSymbol "==="');
8572
- var BinaryOpSymbol$26 = $T($C($EXPECT($L79, 'BinaryOpSymbol "\u2263"'), $EXPECT($L80, 'BinaryOpSymbol "\u2A76"')), function(value) {
8839
+ var BinaryOpSymbol$26 = $EXPECT($L79, 'BinaryOpSymbol "==="');
8840
+ var BinaryOpSymbol$27 = $T($C($EXPECT($L80, 'BinaryOpSymbol "\u2263"'), $EXPECT($L81, 'BinaryOpSymbol "\u2A76"')), function(value) {
8573
8841
  return "===";
8574
8842
  });
8575
- var BinaryOpSymbol$27 = $TV($C($EXPECT($L81, 'BinaryOpSymbol "=="'), $EXPECT($L82, 'BinaryOpSymbol "\u2261"'), $EXPECT($L83, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
8843
+ var BinaryOpSymbol$28 = $TV($C($EXPECT($L82, 'BinaryOpSymbol "=="'), $EXPECT($L83, 'BinaryOpSymbol "\u2261"'), $EXPECT($L84, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
8576
8844
  if (module.config.coffeeEq)
8577
8845
  return "===";
8578
8846
  return "==";
8579
8847
  });
8580
- var BinaryOpSymbol$28 = $T($S($EXPECT($L84, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
8848
+ var BinaryOpSymbol$29 = $T($S($EXPECT($L85, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
8581
8849
  return "&&";
8582
8850
  });
8583
- var BinaryOpSymbol$29 = $EXPECT($L85, 'BinaryOpSymbol "&&"');
8584
- var BinaryOpSymbol$30 = $T($S($EXPECT($L86, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8851
+ var BinaryOpSymbol$30 = $EXPECT($L86, 'BinaryOpSymbol "&&"');
8852
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L87, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8585
8853
  return "||";
8586
8854
  });
8587
- var BinaryOpSymbol$31 = $EXPECT($L87, 'BinaryOpSymbol "||"');
8588
- var BinaryOpSymbol$32 = $T($EXPECT($L88, 'BinaryOpSymbol "\u2016"'), function(value) {
8855
+ var BinaryOpSymbol$32 = $EXPECT($L88, 'BinaryOpSymbol "||"');
8856
+ var BinaryOpSymbol$33 = $T($EXPECT($L89, 'BinaryOpSymbol "\u2016"'), function(value) {
8589
8857
  return "||";
8590
8858
  });
8591
- var BinaryOpSymbol$33 = $TV($C($EXPECT($L89, 'BinaryOpSymbol "^^"'), $S($EXPECT($L90, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8859
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L90, 'BinaryOpSymbol "^^"'), $S($EXPECT($L91, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8592
8860
  return {
8593
8861
  call: module.getRef("xor"),
8594
8862
  special: true
8595
8863
  };
8596
8864
  });
8597
- var BinaryOpSymbol$34 = $TV($C($EXPECT($R16, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L91, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8865
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R17, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L92, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8598
8866
  return {
8599
8867
  call: module.getRef("xnor"),
8600
8868
  special: true
8601
8869
  };
8602
8870
  });
8603
- var BinaryOpSymbol$35 = $EXPECT($L92, 'BinaryOpSymbol "??"');
8604
- var BinaryOpSymbol$36 = $T($EXPECT($L93, 'BinaryOpSymbol "\u2047"'), function(value) {
8871
+ var BinaryOpSymbol$36 = $EXPECT($L93, 'BinaryOpSymbol "??"');
8872
+ var BinaryOpSymbol$37 = $T($EXPECT($L94, 'BinaryOpSymbol "\u2047"'), function(value) {
8605
8873
  return "??";
8606
8874
  });
8607
- var BinaryOpSymbol$37 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
8875
+ var BinaryOpSymbol$38 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
8608
8876
  return "??";
8609
8877
  });
8610
- var BinaryOpSymbol$38 = $TS($S($EXPECT($L94, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8878
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L95, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8611
8879
  return {
8612
8880
  $loc,
8613
8881
  token: $1,
@@ -8616,15 +8884,15 @@ ${input.slice(result.pos)}
8616
8884
  // for typeof shorthand
8617
8885
  };
8618
8886
  });
8619
- var BinaryOpSymbol$39 = $T($S(CoffeeOfEnabled, CoffeeOfOp), function(value) {
8887
+ var BinaryOpSymbol$40 = $T($S(CoffeeOfEnabled, CoffeeOfOp), function(value) {
8620
8888
  var op = value[1];
8621
8889
  return op;
8622
8890
  });
8623
- var BinaryOpSymbol$40 = $TS($S(Not, __, NotOp), function($skip, $loc, $0, $1, $2, $3) {
8891
+ var BinaryOpSymbol$41 = $TS($S(Not, __, NotOp), function($skip, $loc, $0, $1, $2, $3) {
8624
8892
  var op = $3;
8625
8893
  return { ...op, $loc };
8626
8894
  });
8627
- var BinaryOpSymbol$41 = $TV($C($S(Is, __, In), $EXPECT($L95, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8895
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L96, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8628
8896
  return {
8629
8897
  method: "includes",
8630
8898
  relational: true,
@@ -8632,14 +8900,14 @@ ${input.slice(result.pos)}
8632
8900
  special: true
8633
8901
  };
8634
8902
  });
8635
- var BinaryOpSymbol$42 = $TV($EXPECT($L96, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8903
+ var BinaryOpSymbol$43 = $TV($EXPECT($L97, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8636
8904
  return {
8637
8905
  method: "includes",
8638
8906
  relational: true,
8639
8907
  special: true
8640
8908
  };
8641
8909
  });
8642
- var BinaryOpSymbol$43 = $TV($EXPECT($L97, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8910
+ var BinaryOpSymbol$44 = $TV($EXPECT($L98, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8643
8911
  return {
8644
8912
  method: "includes",
8645
8913
  relational: true,
@@ -8647,7 +8915,7 @@ ${input.slice(result.pos)}
8647
8915
  negated: true
8648
8916
  };
8649
8917
  });
8650
- var BinaryOpSymbol$44 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L98, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8918
+ var BinaryOpSymbol$45 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L99, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8651
8919
  return {
8652
8920
  method: "includes",
8653
8921
  relational: true,
@@ -8656,7 +8924,7 @@ ${input.slice(result.pos)}
8656
8924
  negated: true
8657
8925
  };
8658
8926
  });
8659
- var BinaryOpSymbol$45 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8927
+ var BinaryOpSymbol$46 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8660
8928
  if (module.config.objectIs) {
8661
8929
  return {
8662
8930
  call: module.getRef("is"),
@@ -8668,7 +8936,7 @@ ${input.slice(result.pos)}
8668
8936
  }
8669
8937
  return "!==";
8670
8938
  });
8671
- var BinaryOpSymbol$46 = $TS($S(Is), function($skip, $loc, $0, $1) {
8939
+ var BinaryOpSymbol$47 = $TS($S(Is), function($skip, $loc, $0, $1) {
8672
8940
  if (module.config.objectIs) {
8673
8941
  return {
8674
8942
  call: module.getRef("is"),
@@ -8679,11 +8947,11 @@ ${input.slice(result.pos)}
8679
8947
  }
8680
8948
  return "===";
8681
8949
  });
8682
- var BinaryOpSymbol$47 = In;
8683
- var BinaryOpSymbol$48 = $EXPECT($L99, 'BinaryOpSymbol "&"');
8684
- var BinaryOpSymbol$49 = $EXPECT($L19, 'BinaryOpSymbol "^"');
8685
- var BinaryOpSymbol$50 = $EXPECT($L100, 'BinaryOpSymbol "|"');
8686
- var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50];
8950
+ var BinaryOpSymbol$48 = In;
8951
+ var BinaryOpSymbol$49 = $EXPECT($L100, 'BinaryOpSymbol "&"');
8952
+ var BinaryOpSymbol$50 = $EXPECT($L20, 'BinaryOpSymbol "^"');
8953
+ var BinaryOpSymbol$51 = $EXPECT($L101, 'BinaryOpSymbol "|"');
8954
+ var BinaryOpSymbol$$ = [BinaryOpSymbol$0, BinaryOpSymbol$1, BinaryOpSymbol$2, BinaryOpSymbol$3, BinaryOpSymbol$4, BinaryOpSymbol$5, BinaryOpSymbol$6, BinaryOpSymbol$7, BinaryOpSymbol$8, BinaryOpSymbol$9, BinaryOpSymbol$10, BinaryOpSymbol$11, BinaryOpSymbol$12, BinaryOpSymbol$13, BinaryOpSymbol$14, BinaryOpSymbol$15, BinaryOpSymbol$16, BinaryOpSymbol$17, BinaryOpSymbol$18, BinaryOpSymbol$19, BinaryOpSymbol$20, BinaryOpSymbol$21, BinaryOpSymbol$22, BinaryOpSymbol$23, BinaryOpSymbol$24, BinaryOpSymbol$25, BinaryOpSymbol$26, BinaryOpSymbol$27, BinaryOpSymbol$28, BinaryOpSymbol$29, BinaryOpSymbol$30, BinaryOpSymbol$31, BinaryOpSymbol$32, BinaryOpSymbol$33, BinaryOpSymbol$34, BinaryOpSymbol$35, BinaryOpSymbol$36, BinaryOpSymbol$37, BinaryOpSymbol$38, BinaryOpSymbol$39, BinaryOpSymbol$40, BinaryOpSymbol$41, BinaryOpSymbol$42, BinaryOpSymbol$43, BinaryOpSymbol$44, BinaryOpSymbol$45, BinaryOpSymbol$46, BinaryOpSymbol$47, BinaryOpSymbol$48, BinaryOpSymbol$49, BinaryOpSymbol$50, BinaryOpSymbol$51];
8687
8955
  function BinaryOpSymbol(ctx, state) {
8688
8956
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
8689
8957
  }
@@ -8720,7 +8988,7 @@ ${input.slice(result.pos)}
8720
8988
  function CoffeeOfOp(ctx, state) {
8721
8989
  return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
8722
8990
  }
8723
- var NotOp$0 = $TS($S($EXPECT($L94, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8991
+ var NotOp$0 = $TS($S($EXPECT($L95, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8724
8992
  return {
8725
8993
  $loc,
8726
8994
  token: "instanceof",
@@ -8741,24 +9009,24 @@ ${input.slice(result.pos)}
8741
9009
  function NotOp(ctx, state) {
8742
9010
  return $EVENT_C(ctx, state, "NotOp", NotOp$$);
8743
9011
  }
8744
- var Xor$0 = $EXPECT($L89, 'Xor "^^"');
8745
- var Xor$1 = $S($EXPECT($L90, 'Xor "xor"'), NonIdContinue);
9012
+ var Xor$0 = $EXPECT($L90, 'Xor "^^"');
9013
+ var Xor$1 = $S($EXPECT($L91, 'Xor "xor"'), NonIdContinue);
8746
9014
  var Xor$$ = [Xor$0, Xor$1];
8747
9015
  function Xor(ctx, state) {
8748
9016
  return $EVENT_C(ctx, state, "Xor", Xor$$);
8749
9017
  }
8750
- var Xnor$0 = $R$0($EXPECT($R16, "Xnor /!\\^\\^?/"));
8751
- var Xnor$1 = $EXPECT($L91, 'Xnor "xnor"');
9018
+ var Xnor$0 = $R$0($EXPECT($R17, "Xnor /!\\^\\^?/"));
9019
+ var Xnor$1 = $EXPECT($L92, 'Xnor "xnor"');
8752
9020
  var Xnor$$ = [Xnor$0, Xnor$1];
8753
9021
  function Xnor(ctx, state) {
8754
9022
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
8755
9023
  }
8756
- var UnaryOp$0 = $TR($EXPECT($R17, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9024
+ var UnaryOp$0 = $TR($EXPECT($R18, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8757
9025
  return { $loc, token: $0 };
8758
9026
  });
8759
9027
  var UnaryOp$1 = AwaitOp;
8760
- var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R18, "UnaryOp /[:.]/"))), $E(_));
8761
- var UnaryOp$3 = $T($S(Not, $N($EXPECT($R18, "UnaryOp /[:.]/")), $E($EXPECT($L13, 'UnaryOp " "')), $E(_)), function(value) {
9028
+ var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R19, "UnaryOp /[:.]/"))), $E(_));
9029
+ var UnaryOp$3 = $T($S(Not, $N($EXPECT($R19, "UnaryOp /[:.]/")), $E($EXPECT($L14, 'UnaryOp " "')), $E(_)), function(value) {
8762
9030
  return [value[0], value[3]];
8763
9031
  });
8764
9032
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -8853,7 +9121,7 @@ ${input.slice(result.pos)}
8853
9121
  function NonPipelinePostfixedExpression(ctx, state) {
8854
9122
  return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
8855
9123
  }
8856
- var PostfixStatement$0 = $T($S($EXPECT($R19, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
9124
+ var PostfixStatement$0 = $T($S($EXPECT($R20, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
8857
9125
  return value[1];
8858
9126
  });
8859
9127
  function PostfixStatement(ctx, state) {
@@ -8896,7 +9164,7 @@ ${input.slice(result.pos)}
8896
9164
  function NoCommaStatement(ctx, state) {
8897
9165
  return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
8898
9166
  }
8899
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L101, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9167
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L102, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8900
9168
  return { type: "EmptyStatement", children: $1 || [] };
8901
9169
  });
8902
9170
  function EmptyStatement(ctx, state) {
@@ -8927,7 +9195,7 @@ ${input.slice(result.pos)}
8927
9195
  var w = $3;
8928
9196
  return [id, colon, w];
8929
9197
  });
8930
- var Label$1 = $S($EXPECT($L102, 'Label "$:"'), Whitespace);
9198
+ var Label$1 = $S($EXPECT($L103, 'Label "$:"'), Whitespace);
8931
9199
  var Label$$ = [Label$0, Label$1];
8932
9200
  function Label(ctx, state) {
8933
9201
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -9100,7 +9368,7 @@ ${input.slice(result.pos)}
9100
9368
  function BlockExpressionPart(ctx, state) {
9101
9369
  return $EVENT(ctx, state, "BlockExpressionPart", BlockExpressionPart$0);
9102
9370
  }
9103
- var IterationStatement$0 = $T($S($EXPECT($R20, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9371
+ var IterationStatement$0 = $T($S($EXPECT($R21, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9104
9372
  return value[1];
9105
9373
  });
9106
9374
  function IterationStatement(ctx, state) {
@@ -9453,7 +9721,7 @@ ${input.slice(result.pos)}
9453
9721
  names: binding.names
9454
9722
  };
9455
9723
  });
9456
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R21, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
9724
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R22, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
9457
9725
  var c = $1;
9458
9726
  var binding = $2;
9459
9727
  return {
@@ -9679,7 +9947,7 @@ ${input.slice(result.pos)}
9679
9947
  function IgnoreColon(ctx, state) {
9680
9948
  return $EVENT(ctx, state, "IgnoreColon", IgnoreColon$0);
9681
9949
  }
9682
- var TryStatement$0 = $TS($S(Try, $N($EXPECT($L12, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9950
+ var TryStatement$0 = $TS($S(Try, $N($EXPECT($L13, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9683
9951
  var t = $1;
9684
9952
  var b = $3;
9685
9953
  var c = $4;
@@ -10015,7 +10283,7 @@ ${input.slice(result.pos)}
10015
10283
  };
10016
10284
  });
10017
10285
  var KeywordStatement$2 = DebuggerStatement;
10018
- var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L12, 'KeywordStatement ":"'), $EXPECT($L7, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
10286
+ var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L13, 'KeywordStatement ":"'), $EXPECT($L7, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
10019
10287
  var expression = value[2];
10020
10288
  return { "type": "ReturnStatement", "expression": expression, "children": value };
10021
10289
  });
@@ -10036,19 +10304,19 @@ ${input.slice(result.pos)}
10036
10304
  function ThrowStatement(ctx, state) {
10037
10305
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
10038
10306
  }
10039
- var Break$0 = $TS($S($EXPECT($L103, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10307
+ var Break$0 = $TS($S($EXPECT($L104, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10040
10308
  return { $loc, token: $1 };
10041
10309
  });
10042
10310
  function Break(ctx, state) {
10043
10311
  return $EVENT(ctx, state, "Break", Break$0);
10044
10312
  }
10045
- var Continue$0 = $TS($S($EXPECT($L104, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10313
+ var Continue$0 = $TS($S($EXPECT($L105, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10046
10314
  return { $loc, token: $1 };
10047
10315
  });
10048
10316
  function Continue(ctx, state) {
10049
10317
  return $EVENT(ctx, state, "Continue", Continue$0);
10050
10318
  }
10051
- var Debugger$0 = $TS($S($EXPECT($L105, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10319
+ var Debugger$0 = $TS($S($EXPECT($L106, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10052
10320
  return { $loc, token: $1 };
10053
10321
  });
10054
10322
  function Debugger(ctx, state) {
@@ -10169,7 +10437,7 @@ ${input.slice(result.pos)}
10169
10437
  function FromClause(ctx, state) {
10170
10438
  return $EVENT(ctx, state, "FromClause", FromClause$0);
10171
10439
  }
10172
- var ImportAssertion$0 = $S($E(_), $C($EXPECT($L106, 'ImportAssertion "with"'), $EXPECT($L107, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10440
+ var ImportAssertion$0 = $S($E(_), $C($EXPECT($L107, 'ImportAssertion "with"'), $EXPECT($L108, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10173
10441
  function ImportAssertion(ctx, state) {
10174
10442
  return $EVENT(ctx, state, "ImportAssertion", ImportAssertion$0);
10175
10443
  }
@@ -10217,7 +10485,7 @@ ${input.slice(result.pos)}
10217
10485
  return $EVENT_C(ctx, state, "ImportSpecifier", ImportSpecifier$$);
10218
10486
  }
10219
10487
  var ImportAsToken$0 = $S(__, As);
10220
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L13, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
10488
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L14, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
10221
10489
  var l = $1;
10222
10490
  var ws = $2;
10223
10491
  var c = $3;
@@ -10257,7 +10525,7 @@ ${input.slice(result.pos)}
10257
10525
  function UnprocessedModuleSpecifier(ctx, state) {
10258
10526
  return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
10259
10527
  }
10260
- var UnquotedSpecifier$0 = $TV($EXPECT($R22, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10528
+ var UnquotedSpecifier$0 = $TV($EXPECT($R23, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10261
10529
  var spec = $0;
10262
10530
  return { $loc, token: `"${spec}"` };
10263
10531
  });
@@ -10389,13 +10657,13 @@ ${input.slice(result.pos)}
10389
10657
  function LexicalDeclaration(ctx, state) {
10390
10658
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
10391
10659
  }
10392
- var ConstAssignment$0 = $TV($C($EXPECT($L108, 'ConstAssignment ":="'), $EXPECT($L109, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
10660
+ var ConstAssignment$0 = $TV($C($EXPECT($L109, 'ConstAssignment ":="'), $EXPECT($L110, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
10393
10661
  return { $loc, token: "=" };
10394
10662
  });
10395
10663
  function ConstAssignment(ctx, state) {
10396
10664
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
10397
10665
  }
10398
- var LetAssignment$0 = $TV($EXPECT($L110, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10666
+ var LetAssignment$0 = $TV($EXPECT($L111, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10399
10667
  return { $loc, token: "=" };
10400
10668
  });
10401
10669
  function LetAssignment(ctx, state) {
@@ -10463,7 +10731,7 @@ ${input.slice(result.pos)}
10463
10731
  function VariableDeclarationList(ctx, state) {
10464
10732
  return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
10465
10733
  }
10466
- var NumericLiteral$0 = $TS($S($EXPECT($R23, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
10734
+ var NumericLiteral$0 = $TS($S($EXPECT($R24, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
10467
10735
  var token = $2;
10468
10736
  return { type: "NumericLiteral", $loc, token };
10469
10737
  });
@@ -10479,36 +10747,36 @@ ${input.slice(result.pos)}
10479
10747
  function NumericLiteralKind(ctx, state) {
10480
10748
  return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
10481
10749
  }
10482
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R24, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
10750
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R25, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
10483
10751
  function DecimalBigIntegerLiteral(ctx, state) {
10484
10752
  return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
10485
10753
  }
10486
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R25, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
10754
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R26, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
10487
10755
  return $1 + ".";
10488
10756
  });
10489
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R26, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
10490
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R27, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
10757
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R27, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
10758
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R28, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
10491
10759
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
10492
10760
  function DecimalLiteral(ctx, state) {
10493
10761
  return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
10494
10762
  }
10495
- var ExponentPart$0 = $R$0($EXPECT($R28, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
10763
+ var ExponentPart$0 = $R$0($EXPECT($R29, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
10496
10764
  function ExponentPart(ctx, state) {
10497
10765
  return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
10498
10766
  }
10499
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R29, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
10767
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R30, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
10500
10768
  function BinaryIntegerLiteral(ctx, state) {
10501
10769
  return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
10502
10770
  }
10503
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R30, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
10771
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R31, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
10504
10772
  function OctalIntegerLiteral(ctx, state) {
10505
10773
  return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
10506
10774
  }
10507
- var HexIntegerLiteral$0 = $R$0($EXPECT($R31, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
10775
+ var HexIntegerLiteral$0 = $R$0($EXPECT($R32, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
10508
10776
  function HexIntegerLiteral(ctx, state) {
10509
10777
  return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
10510
10778
  }
10511
- var IntegerLiteral$0 = $TS($S($EXPECT($R32, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
10779
+ var IntegerLiteral$0 = $TS($S($EXPECT($R33, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
10512
10780
  var token = $2;
10513
10781
  return { $loc, token };
10514
10782
  });
@@ -10524,7 +10792,7 @@ ${input.slice(result.pos)}
10524
10792
  function IntegerLiteralKind(ctx, state) {
10525
10793
  return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
10526
10794
  }
10527
- var DecimalIntegerLiteral$0 = $R$0($EXPECT($R33, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
10795
+ var DecimalIntegerLiteral$0 = $R$0($EXPECT($R34, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
10528
10796
  function DecimalIntegerLiteral(ctx, state) {
10529
10797
  return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
10530
10798
  }
@@ -10548,25 +10816,25 @@ ${input.slice(result.pos)}
10548
10816
  function StringLiteral(ctx, state) {
10549
10817
  return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
10550
10818
  }
10551
- var DoubleStringCharacters$0 = $TR($EXPECT($R34, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10819
+ var DoubleStringCharacters$0 = $TR($EXPECT($R35, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10552
10820
  return { $loc, token: $0 };
10553
10821
  });
10554
10822
  function DoubleStringCharacters(ctx, state) {
10555
10823
  return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
10556
10824
  }
10557
- var SingleStringCharacters$0 = $TR($EXPECT($R35, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10825
+ var SingleStringCharacters$0 = $TR($EXPECT($R36, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10558
10826
  return { $loc, token: $0 };
10559
10827
  });
10560
10828
  function SingleStringCharacters(ctx, state) {
10561
10829
  return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
10562
10830
  }
10563
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R36, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10831
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R37, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10564
10832
  return { $loc, token: $0 };
10565
10833
  });
10566
10834
  function TripleDoubleStringCharacters(ctx, state) {
10567
10835
  return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
10568
10836
  }
10569
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R37, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10837
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R38, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10570
10838
  return { $loc, token: $0 };
10571
10839
  });
10572
10840
  function TripleSingleStringCharacters(ctx, state) {
@@ -10585,14 +10853,14 @@ ${input.slice(result.pos)}
10585
10853
  function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
10586
10854
  return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
10587
10855
  }
10588
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R38, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10856
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R39, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10589
10857
  return { $loc, token: $0 };
10590
10858
  });
10591
10859
  function CoffeeDoubleQuotedStringCharacters(ctx, state) {
10592
10860
  return $EVENT(ctx, state, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
10593
10861
  }
10594
10862
  var RegularExpressionLiteral$0 = HeregexLiteral;
10595
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L57, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L57, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10863
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10596
10864
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
10597
10865
  });
10598
10866
  var RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
@@ -10605,7 +10873,7 @@ ${input.slice(result.pos)}
10605
10873
  function RegularExpressionClass(ctx, state) {
10606
10874
  return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
10607
10875
  }
10608
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R39, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10876
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R40, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10609
10877
  return { $loc, token: $0 };
10610
10878
  });
10611
10879
  function RegularExpressionClassCharacters(ctx, state) {
@@ -10659,7 +10927,7 @@ ${input.slice(result.pos)}
10659
10927
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
10660
10928
  return { "type": "Substitution", "children": value[0] };
10661
10929
  });
10662
- var HeregexPart$3 = $TR($EXPECT($R40, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10930
+ var HeregexPart$3 = $TR($EXPECT($R41, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10663
10931
  let token = $0;
10664
10932
  switch ($0[1]) {
10665
10933
  case "\n":
@@ -10677,13 +10945,13 @@ ${input.slice(result.pos)}
10677
10945
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
10678
10946
  return { $loc, token: "" };
10679
10947
  });
10680
- var HeregexPart$5 = $TR($EXPECT($R41, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10948
+ var HeregexPart$5 = $TR($EXPECT($R42, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10681
10949
  return { $loc, token: "" };
10682
10950
  });
10683
- var HeregexPart$6 = $TR($EXPECT($R42, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10951
+ var HeregexPart$6 = $TR($EXPECT($R43, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10684
10952
  return { $loc, token: "\\/" };
10685
10953
  });
10686
- var HeregexPart$7 = $TR($EXPECT($R43, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10954
+ var HeregexPart$7 = $TR($EXPECT($R44, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10687
10955
  return { $loc, token: $0 };
10688
10956
  });
10689
10957
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -10696,7 +10964,7 @@ ${input.slice(result.pos)}
10696
10964
  function HeregexComment(ctx, state) {
10697
10965
  return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
10698
10966
  }
10699
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R44, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10967
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R45, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10700
10968
  function RegularExpressionBody(ctx, state) {
10701
10969
  return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
10702
10970
  }
@@ -10706,15 +10974,15 @@ ${input.slice(result.pos)}
10706
10974
  function RegExpPart(ctx, state) {
10707
10975
  return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
10708
10976
  }
10709
- var RegExpCharacter$0 = $R$0($EXPECT($R45, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10977
+ var RegExpCharacter$0 = $R$0($EXPECT($R46, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10710
10978
  function RegExpCharacter(ctx, state) {
10711
10979
  return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
10712
10980
  }
10713
- var RegularExpressionFlags$0 = $R$0($EXPECT($R46, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10981
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R47, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10714
10982
  function RegularExpressionFlags(ctx, state) {
10715
10983
  return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
10716
10984
  }
10717
- var TemplateLiteral$0 = $T($S($EXPECT($R47, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
10985
+ var TemplateLiteral$0 = $T($S($EXPECT($R48, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
10718
10986
  return value[1];
10719
10987
  });
10720
10988
  function TemplateLiteral(ctx, state) {
@@ -10750,28 +11018,28 @@ ${input.slice(result.pos)}
10750
11018
  function TemplateSubstitution(ctx, state) {
10751
11019
  return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
10752
11020
  }
10753
- var TemplateCharacters$0 = $TR($EXPECT($R48, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11021
+ var TemplateCharacters$0 = $TR($EXPECT($R49, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10754
11022
  return { $loc, token: $0 };
10755
11023
  });
10756
11024
  function TemplateCharacters(ctx, state) {
10757
11025
  return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
10758
11026
  }
10759
- var TemplateBlockCharacters$0 = $TR($EXPECT($R49, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11027
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R50, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10760
11028
  return { $loc, token: $0 };
10761
11029
  });
10762
11030
  function TemplateBlockCharacters(ctx, state) {
10763
11031
  return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
10764
11032
  }
10765
- var ReservedWord$0 = $S($R$0($EXPECT($R50, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
10766
- var ReservedWord$1 = $S($R$0($EXPECT($R51, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
10767
- var ReservedWord$2 = $S($R$0($EXPECT($R52, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
10768
- var ReservedWord$3 = $S($R$0($EXPECT($R53, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
10769
- var ReservedWord$4 = $R$0($EXPECT($R54, "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})/"));
11033
+ var ReservedWord$0 = $S($R$0($EXPECT($R51, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
11034
+ var ReservedWord$1 = $S($R$0($EXPECT($R52, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
11035
+ var ReservedWord$2 = $S($R$0($EXPECT($R53, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
11036
+ var ReservedWord$3 = $S($R$0($EXPECT($R54, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
11037
+ var ReservedWord$4 = $R$0($EXPECT($R55, "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})/"));
10770
11038
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
10771
11039
  function ReservedWord(ctx, state) {
10772
11040
  return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
10773
11041
  }
10774
- var Comment$0 = $T($S($EXPECT($R55, "Comment /(?=\\/|#)/"), _Comment), function(value) {
11042
+ var Comment$0 = $T($S($EXPECT($R56, "Comment /(?=\\/|#)/"), _Comment), function(value) {
10775
11043
  return value[1];
10776
11044
  });
10777
11045
  function Comment(ctx, state) {
@@ -10789,7 +11057,7 @@ ${input.slice(result.pos)}
10789
11057
  function SingleLineComment(ctx, state) {
10790
11058
  return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
10791
11059
  }
10792
- var JSSingleLineComment$0 = $TR($EXPECT($R56, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11060
+ var JSSingleLineComment$0 = $TR($EXPECT($R57, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10793
11061
  return { type: "Comment", $loc, token: $0 };
10794
11062
  });
10795
11063
  function JSSingleLineComment(ctx, state) {
@@ -10801,30 +11069,30 @@ ${input.slice(result.pos)}
10801
11069
  function MultiLineComment(ctx, state) {
10802
11070
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
10803
11071
  }
10804
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L111, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L112, 'JSMultiLineComment "*/"')), $EXPECT($R57, "JSMultiLineComment /./"))), $EXPECT($L112, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11072
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L112, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L113, 'JSMultiLineComment "*/"')), $EXPECT($R58, "JSMultiLineComment /./"))), $EXPECT($L113, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
10805
11073
  return { type: "Comment", $loc, token: $1 };
10806
11074
  });
10807
11075
  function JSMultiLineComment(ctx, state) {
10808
11076
  return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
10809
11077
  }
10810
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R58, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11078
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R59, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10811
11079
  return { type: "Comment", $loc, token: `//${$1}` };
10812
11080
  });
10813
11081
  function CoffeeSingleLineComment(ctx, state) {
10814
11082
  return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
10815
11083
  }
10816
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R59, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11084
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R60, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
10817
11085
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
10818
11086
  return { type: "Comment", $loc, token: `/*${$2}*/` };
10819
11087
  });
10820
11088
  function CoffeeMultiLineComment(ctx, state) {
10821
11089
  return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
10822
11090
  }
10823
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R60, "CoffeeHereCommentStart /###(?!#)/"));
11091
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R61, "CoffeeHereCommentStart /###(?!#)/"));
10824
11092
  function CoffeeHereCommentStart(ctx, state) {
10825
11093
  return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
10826
11094
  }
10827
- var InlineComment$0 = $TR($EXPECT($R61, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11095
+ var InlineComment$0 = $TR($EXPECT($R62, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10828
11096
  return { $loc, token: $0 };
10829
11097
  });
10830
11098
  function InlineComment(ctx, state) {
@@ -10838,16 +11106,16 @@ ${input.slice(result.pos)}
10838
11106
  function TrailingComment(ctx, state) {
10839
11107
  return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
10840
11108
  }
10841
- var _$0 = $T($S($EXPECT($R62, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
11109
+ var _$0 = $T($S($EXPECT($R63, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
10842
11110
  return value[1];
10843
11111
  });
10844
11112
  function _(ctx, state) {
10845
11113
  return $EVENT(ctx, state, "_", _$0);
10846
11114
  }
10847
- var NonNewlineWhitespace$0 = $TR($EXPECT($R63, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11115
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R64, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10848
11116
  return { $loc, token: $0 };
10849
11117
  });
10850
- var NonNewlineWhitespace$1 = $T($S($EXPECT($L113, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
11118
+ var NonNewlineWhitespace$1 = $T($S($EXPECT($L114, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
10851
11119
  return " ";
10852
11120
  });
10853
11121
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
@@ -10861,7 +11129,7 @@ ${input.slice(result.pos)}
10861
11129
  function Trimmed_(ctx, state) {
10862
11130
  return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
10863
11131
  }
10864
- var __$0 = $T($S($EXPECT($R64, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
11132
+ var __$0 = $T($S($EXPECT($R65, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
10865
11133
  return value[1];
10866
11134
  });
10867
11135
  var __$1 = $EXPECT($L0, '__ ""');
@@ -10869,7 +11137,7 @@ ${input.slice(result.pos)}
10869
11137
  function __(ctx, state) {
10870
11138
  return $EVENT_C(ctx, state, "__", __$$);
10871
11139
  }
10872
- var Whitespace$0 = $TR($EXPECT($R41, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11140
+ var Whitespace$0 = $TR($EXPECT($R42, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10873
11141
  return { $loc, token: $0 };
10874
11142
  });
10875
11143
  function Whitespace(ctx, state) {
@@ -10893,7 +11161,7 @@ ${input.slice(result.pos)}
10893
11161
  }
10894
11162
  var StatementDelimiter$0 = $Y(EOS);
10895
11163
  var StatementDelimiter$1 = SemicolonDelimiter;
10896
- var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L27, 'StatementDelimiter "}"'), $EXPECT($L114, 'StatementDelimiter ")"'), $EXPECT($L36, 'StatementDelimiter "]"'))));
11164
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L28, 'StatementDelimiter "}"'), $EXPECT($L115, 'StatementDelimiter ")"'), $EXPECT($L37, 'StatementDelimiter "]"'))));
10897
11165
  var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
10898
11166
  function StatementDelimiter(ctx, state) {
10899
11167
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
@@ -10907,7 +11175,7 @@ ${input.slice(result.pos)}
10907
11175
  function SemicolonDelimiter(ctx, state) {
10908
11176
  return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
10909
11177
  }
10910
- var NonIdContinue$0 = $R$0($EXPECT($R65, "NonIdContinue /(?!\\p{ID_Continue})/"));
11178
+ var NonIdContinue$0 = $R$0($EXPECT($R66, "NonIdContinue /(?!\\p{ID_Continue})/"));
10911
11179
  function NonIdContinue(ctx, state) {
10912
11180
  return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
10913
11181
  }
@@ -10917,151 +11185,151 @@ ${input.slice(result.pos)}
10917
11185
  function Loc(ctx, state) {
10918
11186
  return $EVENT(ctx, state, "Loc", Loc$0);
10919
11187
  }
10920
- var Abstract$0 = $TV($TEXT($S($EXPECT($L115, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L13, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11188
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L116, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L14, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10921
11189
  return { $loc, token: $1, ts: true };
10922
11190
  });
10923
11191
  function Abstract(ctx, state) {
10924
11192
  return $EVENT(ctx, state, "Abstract", Abstract$0);
10925
11193
  }
10926
- var Ampersand$0 = $TV($EXPECT($L99, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11194
+ var Ampersand$0 = $TV($EXPECT($L100, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
10927
11195
  return { $loc, token: $1 };
10928
11196
  });
10929
11197
  function Ampersand(ctx, state) {
10930
11198
  return $EVENT(ctx, state, "Ampersand", Ampersand$0);
10931
11199
  }
10932
- var As$0 = $TS($S($EXPECT($L116, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11200
+ var As$0 = $TS($S($EXPECT($L117, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10933
11201
  return { $loc, token: $1 };
10934
11202
  });
10935
11203
  function As(ctx, state) {
10936
11204
  return $EVENT(ctx, state, "As", As$0);
10937
11205
  }
10938
- var At$0 = $TV($EXPECT($L117, 'At "@"'), function($skip, $loc, $0, $1) {
11206
+ var At$0 = $TV($EXPECT($L118, 'At "@"'), function($skip, $loc, $0, $1) {
10939
11207
  return { $loc, token: $1 };
10940
11208
  });
10941
11209
  function At(ctx, state) {
10942
11210
  return $EVENT(ctx, state, "At", At$0);
10943
11211
  }
10944
- var AtAt$0 = $TV($EXPECT($L118, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
11212
+ var AtAt$0 = $TV($EXPECT($L119, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
10945
11213
  return { $loc, token: "@" };
10946
11214
  });
10947
11215
  function AtAt(ctx, state) {
10948
11216
  return $EVENT(ctx, state, "AtAt", AtAt$0);
10949
11217
  }
10950
- var Async$0 = $TS($S($EXPECT($L119, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11218
+ var Async$0 = $TS($S($EXPECT($L120, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10951
11219
  return { $loc, token: $1, type: "Async" };
10952
11220
  });
10953
11221
  function Async(ctx, state) {
10954
11222
  return $EVENT(ctx, state, "Async", Async$0);
10955
11223
  }
10956
- var Await$0 = $TS($S($EXPECT($L120, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11224
+ var Await$0 = $TS($S($EXPECT($L121, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10957
11225
  return { $loc, token: $1, type: "Await" };
10958
11226
  });
10959
11227
  function Await(ctx, state) {
10960
11228
  return $EVENT(ctx, state, "Await", Await$0);
10961
11229
  }
10962
- var Backtick$0 = $TV($EXPECT($L121, 'Backtick "`"'), function($skip, $loc, $0, $1) {
11230
+ var Backtick$0 = $TV($EXPECT($L122, 'Backtick "`"'), function($skip, $loc, $0, $1) {
10963
11231
  return { $loc, token: $1 };
10964
11232
  });
10965
11233
  function Backtick(ctx, state) {
10966
11234
  return $EVENT(ctx, state, "Backtick", Backtick$0);
10967
11235
  }
10968
- var By$0 = $TS($S($EXPECT($L122, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11236
+ var By$0 = $TS($S($EXPECT($L123, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10969
11237
  return { $loc, token: $1 };
10970
11238
  });
10971
11239
  function By(ctx, state) {
10972
11240
  return $EVENT(ctx, state, "By", By$0);
10973
11241
  }
10974
- var Caret$0 = $TV($EXPECT($L19, 'Caret "^"'), function($skip, $loc, $0, $1) {
11242
+ var Caret$0 = $TV($EXPECT($L20, 'Caret "^"'), function($skip, $loc, $0, $1) {
10975
11243
  return { $loc, token: $1 };
10976
11244
  });
10977
11245
  function Caret(ctx, state) {
10978
11246
  return $EVENT(ctx, state, "Caret", Caret$0);
10979
11247
  }
10980
- var Case$0 = $TS($S($EXPECT($L123, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11248
+ var Case$0 = $TS($S($EXPECT($L124, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10981
11249
  return { $loc, token: $1 };
10982
11250
  });
10983
11251
  function Case(ctx, state) {
10984
11252
  return $EVENT(ctx, state, "Case", Case$0);
10985
11253
  }
10986
- var Catch$0 = $TS($S($EXPECT($L124, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11254
+ var Catch$0 = $TS($S($EXPECT($L125, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10987
11255
  return { $loc, token: $1 };
10988
11256
  });
10989
11257
  function Catch(ctx, state) {
10990
11258
  return $EVENT(ctx, state, "Catch", Catch$0);
10991
11259
  }
10992
- var Class$0 = $TS($S($EXPECT($L125, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11260
+ var Class$0 = $TS($S($EXPECT($L126, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10993
11261
  return { $loc, token: $1 };
10994
11262
  });
10995
11263
  function Class(ctx, state) {
10996
11264
  return $EVENT(ctx, state, "Class", Class$0);
10997
11265
  }
10998
- var CloseAngleBracket$0 = $TV($EXPECT($L35, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11266
+ var CloseAngleBracket$0 = $TV($EXPECT($L36, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
10999
11267
  return { $loc, token: $1 };
11000
11268
  });
11001
11269
  function CloseAngleBracket(ctx, state) {
11002
11270
  return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
11003
11271
  }
11004
- var CloseBrace$0 = $TV($EXPECT($L27, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11272
+ var CloseBrace$0 = $TV($EXPECT($L28, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11005
11273
  return { $loc, token: $1 };
11006
11274
  });
11007
11275
  function CloseBrace(ctx, state) {
11008
11276
  return $EVENT(ctx, state, "CloseBrace", CloseBrace$0);
11009
11277
  }
11010
- var CloseBracket$0 = $TV($EXPECT($L36, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11278
+ var CloseBracket$0 = $TV($EXPECT($L37, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11011
11279
  return { $loc, token: $1 };
11012
11280
  });
11013
11281
  function CloseBracket(ctx, state) {
11014
11282
  return $EVENT(ctx, state, "CloseBracket", CloseBracket$0);
11015
11283
  }
11016
- var CloseParen$0 = $TV($EXPECT($L114, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11284
+ var CloseParen$0 = $TV($EXPECT($L115, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11017
11285
  return { $loc, token: $1 };
11018
11286
  });
11019
11287
  function CloseParen(ctx, state) {
11020
11288
  return $EVENT(ctx, state, "CloseParen", CloseParen$0);
11021
11289
  }
11022
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L126, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11290
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L127, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
11023
11291
  return { $loc, token: "${" };
11024
11292
  });
11025
11293
  function CoffeeSubstitutionStart(ctx, state) {
11026
11294
  return $EVENT(ctx, state, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
11027
11295
  }
11028
- var Colon$0 = $TS($S($EXPECT($L12, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
11296
+ var Colon$0 = $TS($S($EXPECT($L13, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
11029
11297
  return { $loc, token: $1 };
11030
11298
  });
11031
11299
  function Colon(ctx, state) {
11032
11300
  return $EVENT(ctx, state, "Colon", Colon$0);
11033
11301
  }
11034
- var Comma$0 = $TV($EXPECT($L23, 'Comma ","'), function($skip, $loc, $0, $1) {
11302
+ var Comma$0 = $TV($EXPECT($L24, 'Comma ","'), function($skip, $loc, $0, $1) {
11035
11303
  return { $loc, token: $1 };
11036
11304
  });
11037
11305
  function Comma(ctx, state) {
11038
11306
  return $EVENT(ctx, state, "Comma", Comma$0);
11039
11307
  }
11040
- var ConstructorShorthand$0 = $TV($EXPECT($L117, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11308
+ var ConstructorShorthand$0 = $TV($EXPECT($L118, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11041
11309
  return { $loc, token: "constructor" };
11042
11310
  });
11043
11311
  function ConstructorShorthand(ctx, state) {
11044
11312
  return $EVENT(ctx, state, "ConstructorShorthand", ConstructorShorthand$0);
11045
11313
  }
11046
- var Declare$0 = $TS($S($EXPECT($L127, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11314
+ var Declare$0 = $TS($S($EXPECT($L128, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11047
11315
  return { $loc, token: $1 };
11048
11316
  });
11049
11317
  function Declare(ctx, state) {
11050
11318
  return $EVENT(ctx, state, "Declare", Declare$0);
11051
11319
  }
11052
- var Default$0 = $TS($S($EXPECT($L128, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11320
+ var Default$0 = $TS($S($EXPECT($L129, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11053
11321
  return { $loc, token: $1 };
11054
11322
  });
11055
11323
  function Default(ctx, state) {
11056
11324
  return $EVENT(ctx, state, "Default", Default$0);
11057
11325
  }
11058
- var Delete$0 = $TS($S($EXPECT($L129, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11326
+ var Delete$0 = $TS($S($EXPECT($L130, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11059
11327
  return { $loc, token: $1 };
11060
11328
  });
11061
11329
  function Delete(ctx, state) {
11062
11330
  return $EVENT(ctx, state, "Delete", Delete$0);
11063
11331
  }
11064
- var Do$0 = $TS($S($EXPECT($L130, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11332
+ var Do$0 = $TS($S($EXPECT($L131, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11065
11333
  return { $loc, token: $1 };
11066
11334
  });
11067
11335
  function Do(ctx, state) {
@@ -11070,7 +11338,7 @@ ${input.slice(result.pos)}
11070
11338
  var Dot$0 = $TV($EXPECT($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
11071
11339
  return { $loc, token: $1 };
11072
11340
  });
11073
- var Dot$1 = $TS($S($EXPECT($R66, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11341
+ var Dot$1 = $TS($S($EXPECT($R67, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11074
11342
  var ws = $2;
11075
11343
  return [
11076
11344
  { $loc, token: "." },
@@ -11081,45 +11349,45 @@ ${input.slice(result.pos)}
11081
11349
  function Dot(ctx, state) {
11082
11350
  return $EVENT_C(ctx, state, "Dot", Dot$$);
11083
11351
  }
11084
- var DotDot$0 = $TS($S($EXPECT($L131, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11352
+ var DotDot$0 = $TS($S($EXPECT($L132, 'DotDot ".."'), $N($EXPECT($L7, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
11085
11353
  return { $loc, token: $1 };
11086
11354
  });
11087
- var DotDot$1 = $TV($EXPECT($L132, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11355
+ var DotDot$1 = $TV($EXPECT($L133, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
11088
11356
  return { $loc, token: ".." };
11089
11357
  });
11090
11358
  var DotDot$$ = [DotDot$0, DotDot$1];
11091
11359
  function DotDot(ctx, state) {
11092
11360
  return $EVENT_C(ctx, state, "DotDot", DotDot$$);
11093
11361
  }
11094
- var DotDotDot$0 = $TV($EXPECT($L133, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11362
+ var DotDotDot$0 = $TV($EXPECT($L134, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
11095
11363
  return { $loc, token: $1 };
11096
11364
  });
11097
- var DotDotDot$1 = $TV($EXPECT($L134, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11365
+ var DotDotDot$1 = $TV($EXPECT($L135, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
11098
11366
  return { $loc, token: "..." };
11099
11367
  });
11100
11368
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
11101
11369
  function DotDotDot(ctx, state) {
11102
11370
  return $EVENT_C(ctx, state, "DotDotDot", DotDotDot$$);
11103
11371
  }
11104
- var DoubleColon$0 = $TV($EXPECT($L135, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
11372
+ var DoubleColon$0 = $TV($EXPECT($L136, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
11105
11373
  return { $loc, token: $1 };
11106
11374
  });
11107
11375
  function DoubleColon(ctx, state) {
11108
11376
  return $EVENT(ctx, state, "DoubleColon", DoubleColon$0);
11109
11377
  }
11110
- var DoubleQuote$0 = $TV($EXPECT($L136, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
11378
+ var DoubleQuote$0 = $TV($EXPECT($L137, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
11111
11379
  return { $loc, token: $1 };
11112
11380
  });
11113
11381
  function DoubleQuote(ctx, state) {
11114
11382
  return $EVENT(ctx, state, "DoubleQuote", DoubleQuote$0);
11115
11383
  }
11116
- var Each$0 = $TS($S($EXPECT($L137, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11384
+ var Each$0 = $TS($S($EXPECT($L138, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11117
11385
  return { $loc, token: $1 };
11118
11386
  });
11119
11387
  function Each(ctx, state) {
11120
11388
  return $EVENT(ctx, state, "Each", Each$0);
11121
11389
  }
11122
- var Else$0 = $TS($S($EXPECT($L138, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11390
+ var Else$0 = $TS($S($EXPECT($L139, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11123
11391
  return { $loc, token: $1 };
11124
11392
  });
11125
11393
  function Else(ctx, state) {
@@ -11131,85 +11399,91 @@ ${input.slice(result.pos)}
11131
11399
  function Equals(ctx, state) {
11132
11400
  return $EVENT(ctx, state, "Equals", Equals$0);
11133
11401
  }
11134
- var Export$0 = $TS($S($EXPECT($L139, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11402
+ var ExclamationPoint$0 = $TV($EXPECT($L19, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
11403
+ return { $loc, token: $1 };
11404
+ });
11405
+ function ExclamationPoint(ctx, state) {
11406
+ return $EVENT(ctx, state, "ExclamationPoint", ExclamationPoint$0);
11407
+ }
11408
+ var Export$0 = $TS($S($EXPECT($L140, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11135
11409
  return { $loc, token: $1 };
11136
11410
  });
11137
11411
  function Export(ctx, state) {
11138
11412
  return $EVENT(ctx, state, "Export", Export$0);
11139
11413
  }
11140
- var Extends$0 = $TS($S($EXPECT($L140, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11414
+ var Extends$0 = $TS($S($EXPECT($L141, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11141
11415
  return { $loc, token: $1 };
11142
11416
  });
11143
11417
  function Extends(ctx, state) {
11144
11418
  return $EVENT(ctx, state, "Extends", Extends$0);
11145
11419
  }
11146
- var Finally$0 = $TS($S($EXPECT($L141, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11420
+ var Finally$0 = $TS($S($EXPECT($L142, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11147
11421
  return { $loc, token: $1 };
11148
11422
  });
11149
11423
  function Finally(ctx, state) {
11150
11424
  return $EVENT(ctx, state, "Finally", Finally$0);
11151
11425
  }
11152
- var For$0 = $TS($S($EXPECT($L142, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11426
+ var For$0 = $TS($S($EXPECT($L143, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11153
11427
  return { $loc, token: $1 };
11154
11428
  });
11155
11429
  function For(ctx, state) {
11156
11430
  return $EVENT(ctx, state, "For", For$0);
11157
11431
  }
11158
- var From$0 = $TS($S($EXPECT($L143, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11432
+ var From$0 = $TS($S($EXPECT($L144, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11159
11433
  return { $loc, token: $1 };
11160
11434
  });
11161
11435
  function From(ctx, state) {
11162
11436
  return $EVENT(ctx, state, "From", From$0);
11163
11437
  }
11164
- var Function$0 = $TS($S($EXPECT($L144, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11438
+ var Function$0 = $TS($S($EXPECT($L145, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11165
11439
  return { $loc, token: $1 };
11166
11440
  });
11167
11441
  function Function(ctx, state) {
11168
11442
  return $EVENT(ctx, state, "Function", Function$0);
11169
11443
  }
11170
- var GetOrSet$0 = $TS($S($C($EXPECT($L145, 'GetOrSet "get"'), $EXPECT($L146, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11444
+ var GetOrSet$0 = $TS($S($C($EXPECT($L146, 'GetOrSet "get"'), $EXPECT($L147, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11171
11445
  return { $loc, token: $1, type: "GetOrSet" };
11172
11446
  });
11173
11447
  function GetOrSet(ctx, state) {
11174
11448
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
11175
11449
  }
11176
- var Hash$0 = $TV($EXPECT($L147, 'Hash "#"'), function($skip, $loc, $0, $1) {
11450
+ var Hash$0 = $TV($EXPECT($L148, 'Hash "#"'), function($skip, $loc, $0, $1) {
11177
11451
  return { $loc, token: $1 };
11178
11452
  });
11179
11453
  function Hash(ctx, state) {
11180
11454
  return $EVENT(ctx, state, "Hash", Hash$0);
11181
11455
  }
11182
- var If$0 = $TV($TEXT($S($EXPECT($L148, 'If "if"'), NonIdContinue, $E($EXPECT($L13, 'If " "')))), function($skip, $loc, $0, $1) {
11456
+ var If$0 = $TV($TEXT($S($EXPECT($L149, 'If "if"'), NonIdContinue, $E($EXPECT($L14, 'If " "')))), function($skip, $loc, $0, $1) {
11183
11457
  return { $loc, token: $1 };
11184
11458
  });
11185
11459
  function If(ctx, state) {
11186
11460
  return $EVENT(ctx, state, "If", If$0);
11187
11461
  }
11188
- var Import$0 = $TS($S($EXPECT($L17, 'Import "import"'), $Y($EXPECT($R67, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11462
+ var Import$0 = $TS($S($EXPECT($L18, 'Import "import"'), $Y($EXPECT($R68, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11189
11463
  return { $loc, token: $1 };
11190
11464
  });
11191
11465
  function Import(ctx, state) {
11192
11466
  return $EVENT(ctx, state, "Import", Import$0);
11193
11467
  }
11194
- var In$0 = $TS($S($EXPECT($L149, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11468
+ var In$0 = $TS($S($EXPECT($L150, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11195
11469
  return { $loc, token: $1 };
11196
11470
  });
11197
11471
  function In(ctx, state) {
11198
11472
  return $EVENT(ctx, state, "In", In$0);
11199
11473
  }
11200
- var LetOrConst$0 = $TS($S($C($EXPECT($L150, 'LetOrConst "let"'), $EXPECT($L151, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11474
+ var LetOrConst$0 = $TS($S($C($EXPECT($L151, 'LetOrConst "let"'), $EXPECT($L152, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11201
11475
  return { $loc, token: $1 };
11202
11476
  });
11203
11477
  function LetOrConst(ctx, state) {
11204
11478
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
11205
11479
  }
11206
- var Const$0 = $TS($S($EXPECT($L151, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11480
+ var Const$0 = $TS($S($EXPECT($L152, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11207
11481
  return { $loc, token: $1 };
11208
11482
  });
11209
11483
  function Const(ctx, state) {
11210
11484
  return $EVENT(ctx, state, "Const", Const$0);
11211
11485
  }
11212
- var Is$0 = $TS($S($EXPECT($L152, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11486
+ var Is$0 = $TS($S($EXPECT($L153, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11213
11487
  return { $loc, token: $1 };
11214
11488
  });
11215
11489
  function Is(ctx, state) {
@@ -11221,31 +11495,31 @@ ${input.slice(result.pos)}
11221
11495
  function LetOrConstOrVar(ctx, state) {
11222
11496
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
11223
11497
  }
11224
- var Loop$0 = $TS($S($EXPECT($L153, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11498
+ var Loop$0 = $TS($S($EXPECT($L154, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11225
11499
  return { $loc, token: "while(true)" };
11226
11500
  });
11227
11501
  function Loop(ctx, state) {
11228
11502
  return $EVENT(ctx, state, "Loop", Loop$0);
11229
11503
  }
11230
- var New$0 = $TS($S($EXPECT($L154, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11504
+ var New$0 = $TS($S($EXPECT($L155, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11231
11505
  return { $loc, token: $1 };
11232
11506
  });
11233
11507
  function New(ctx, state) {
11234
11508
  return $EVENT(ctx, state, "New", New$0);
11235
11509
  }
11236
- var Not$0 = $TS($S($EXPECT($L155, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L12, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11510
+ var Not$0 = $TS($S($EXPECT($L156, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L13, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11237
11511
  return { $loc, token: "!" };
11238
11512
  });
11239
11513
  function Not(ctx, state) {
11240
11514
  return $EVENT(ctx, state, "Not", Not$0);
11241
11515
  }
11242
- var Of$0 = $TS($S($EXPECT($L156, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11516
+ var Of$0 = $TS($S($EXPECT($L157, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11243
11517
  return { $loc, token: $1 };
11244
11518
  });
11245
11519
  function Of(ctx, state) {
11246
11520
  return $EVENT(ctx, state, "Of", Of$0);
11247
11521
  }
11248
- var OpenAngleBracket$0 = $TV($EXPECT($L14, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
11522
+ var OpenAngleBracket$0 = $TV($EXPECT($L15, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
11249
11523
  return { $loc, token: $1 };
11250
11524
  });
11251
11525
  function OpenAngleBracket(ctx, state) {
@@ -11257,7 +11531,7 @@ ${input.slice(result.pos)}
11257
11531
  function OpenBrace(ctx, state) {
11258
11532
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
11259
11533
  }
11260
- var OpenBracket$0 = $TV($EXPECT($L157, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11534
+ var OpenBracket$0 = $TV($EXPECT($L158, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11261
11535
  return { $loc, token: $1 };
11262
11536
  });
11263
11537
  function OpenBracket(ctx, state) {
@@ -11269,43 +11543,43 @@ ${input.slice(result.pos)}
11269
11543
  function OpenParen(ctx, state) {
11270
11544
  return $EVENT(ctx, state, "OpenParen", OpenParen$0);
11271
11545
  }
11272
- var Operator$0 = $TS($S($EXPECT($L158, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11546
+ var Operator$0 = $TS($S($EXPECT($L159, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11273
11547
  return { $loc, token: $1 };
11274
11548
  });
11275
11549
  function Operator(ctx, state) {
11276
11550
  return $EVENT(ctx, state, "Operator", Operator$0);
11277
11551
  }
11278
- var Own$0 = $TS($S($EXPECT($L159, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11552
+ var Own$0 = $TS($S($EXPECT($L160, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11279
11553
  return { $loc, token: $1 };
11280
11554
  });
11281
11555
  function Own(ctx, state) {
11282
11556
  return $EVENT(ctx, state, "Own", Own$0);
11283
11557
  }
11284
- var Public$0 = $TS($S($EXPECT($L160, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11558
+ var Public$0 = $TS($S($EXPECT($L161, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11285
11559
  return { $loc, token: $1 };
11286
11560
  });
11287
11561
  function Public(ctx, state) {
11288
11562
  return $EVENT(ctx, state, "Public", Public$0);
11289
11563
  }
11290
- var Private$0 = $TS($S($EXPECT($L161, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11564
+ var Private$0 = $TS($S($EXPECT($L162, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11291
11565
  return { $loc, token: $1 };
11292
11566
  });
11293
11567
  function Private(ctx, state) {
11294
11568
  return $EVENT(ctx, state, "Private", Private$0);
11295
11569
  }
11296
- var Protected$0 = $TS($S($EXPECT($L162, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11570
+ var Protected$0 = $TS($S($EXPECT($L163, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11297
11571
  return { $loc, token: $1 };
11298
11572
  });
11299
11573
  function Protected(ctx, state) {
11300
11574
  return $EVENT(ctx, state, "Protected", Protected$0);
11301
11575
  }
11302
- var Pipe$0 = $TV($C($EXPECT($L163, 'Pipe "||>"'), $EXPECT($L164, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11576
+ var Pipe$0 = $TV($C($EXPECT($L164, 'Pipe "||>"'), $EXPECT($L165, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11303
11577
  return { $loc, token: "||>" };
11304
11578
  });
11305
- var Pipe$1 = $TV($C($EXPECT($L165, 'Pipe "|>="'), $EXPECT($L166, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11579
+ var Pipe$1 = $TV($C($EXPECT($L166, 'Pipe "|>="'), $EXPECT($L167, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11306
11580
  return { $loc, token: "|>=" };
11307
11581
  });
11308
- var Pipe$2 = $TV($C($EXPECT($L167, 'Pipe "|>"'), $EXPECT($L168, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11582
+ var Pipe$2 = $TV($C($EXPECT($L168, 'Pipe "|>"'), $EXPECT($L169, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11309
11583
  return { $loc, token: "|>" };
11310
11584
  });
11311
11585
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -11318,173 +11592,173 @@ ${input.slice(result.pos)}
11318
11592
  function QuestionMark(ctx, state) {
11319
11593
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
11320
11594
  }
11321
- var Readonly$0 = $TS($S($EXPECT($L169, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11595
+ var Readonly$0 = $TS($S($EXPECT($L170, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11322
11596
  return { $loc, token: $1, ts: true };
11323
11597
  });
11324
11598
  function Readonly(ctx, state) {
11325
11599
  return $EVENT(ctx, state, "Readonly", Readonly$0);
11326
11600
  }
11327
- var Return$0 = $TS($S($EXPECT($L170, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11601
+ var Return$0 = $TS($S($EXPECT($L171, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11328
11602
  return { $loc, token: $1 };
11329
11603
  });
11330
11604
  function Return(ctx, state) {
11331
11605
  return $EVENT(ctx, state, "Return", Return$0);
11332
11606
  }
11333
- var Satisfies$0 = $TS($S($EXPECT($L171, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11607
+ var Satisfies$0 = $TS($S($EXPECT($L172, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11334
11608
  return { $loc, token: $1 };
11335
11609
  });
11336
11610
  function Satisfies(ctx, state) {
11337
11611
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
11338
11612
  }
11339
- var Semicolon$0 = $TV($EXPECT($L101, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11613
+ var Semicolon$0 = $TV($EXPECT($L102, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11340
11614
  return { $loc, token: $1 };
11341
11615
  });
11342
11616
  function Semicolon(ctx, state) {
11343
11617
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
11344
11618
  }
11345
- var SingleQuote$0 = $TV($EXPECT($L172, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11619
+ var SingleQuote$0 = $TV($EXPECT($L173, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11346
11620
  return { $loc, token: $1 };
11347
11621
  });
11348
11622
  function SingleQuote(ctx, state) {
11349
11623
  return $EVENT(ctx, state, "SingleQuote", SingleQuote$0);
11350
11624
  }
11351
- var Star$0 = $TV($EXPECT($L56, 'Star "*"'), function($skip, $loc, $0, $1) {
11625
+ var Star$0 = $TV($EXPECT($L57, 'Star "*"'), function($skip, $loc, $0, $1) {
11352
11626
  return { $loc, token: $1 };
11353
11627
  });
11354
11628
  function Star(ctx, state) {
11355
11629
  return $EVENT(ctx, state, "Star", Star$0);
11356
11630
  }
11357
- var Static$0 = $TS($S($EXPECT($L173, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11631
+ var Static$0 = $TS($S($EXPECT($L174, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11358
11632
  return { $loc, token: $1 };
11359
11633
  });
11360
- var Static$1 = $TS($S($EXPECT($L117, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L117, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
11634
+ var Static$1 = $TS($S($EXPECT($L118, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L118, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
11361
11635
  return { $loc, token: "static " };
11362
11636
  });
11363
11637
  var Static$$ = [Static$0, Static$1];
11364
11638
  function Static(ctx, state) {
11365
11639
  return $EVENT_C(ctx, state, "Static", Static$$);
11366
11640
  }
11367
- var SubstitutionStart$0 = $TV($EXPECT($L174, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11641
+ var SubstitutionStart$0 = $TV($EXPECT($L175, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11368
11642
  return { $loc, token: $1 };
11369
11643
  });
11370
11644
  function SubstitutionStart(ctx, state) {
11371
11645
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
11372
11646
  }
11373
- var Super$0 = $TS($S($EXPECT($L175, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11647
+ var Super$0 = $TS($S($EXPECT($L176, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11374
11648
  return { $loc, token: $1 };
11375
11649
  });
11376
11650
  function Super(ctx, state) {
11377
11651
  return $EVENT(ctx, state, "Super", Super$0);
11378
11652
  }
11379
- var Switch$0 = $TS($S($EXPECT($L176, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11653
+ var Switch$0 = $TS($S($EXPECT($L177, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11380
11654
  return { $loc, token: $1 };
11381
11655
  });
11382
11656
  function Switch(ctx, state) {
11383
11657
  return $EVENT(ctx, state, "Switch", Switch$0);
11384
11658
  }
11385
- var Target$0 = $TS($S($EXPECT($L177, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11659
+ var Target$0 = $TS($S($EXPECT($L178, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11386
11660
  return { $loc, token: $1 };
11387
11661
  });
11388
11662
  function Target(ctx, state) {
11389
11663
  return $EVENT(ctx, state, "Target", Target$0);
11390
11664
  }
11391
- var Then$0 = $TS($S(__, $EXPECT($L178, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11665
+ var Then$0 = $TS($S(__, $EXPECT($L179, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
11392
11666
  return { $loc, token: "" };
11393
11667
  });
11394
11668
  function Then(ctx, state) {
11395
11669
  return $EVENT(ctx, state, "Then", Then$0);
11396
11670
  }
11397
- var This$0 = $TS($S($EXPECT($L179, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11671
+ var This$0 = $TS($S($EXPECT($L180, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11398
11672
  return { $loc, token: $1 };
11399
11673
  });
11400
11674
  function This(ctx, state) {
11401
11675
  return $EVENT(ctx, state, "This", This$0);
11402
11676
  }
11403
- var Throw$0 = $TS($S($EXPECT($L180, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11677
+ var Throw$0 = $TS($S($EXPECT($L181, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11404
11678
  return { $loc, token: $1 };
11405
11679
  });
11406
11680
  function Throw(ctx, state) {
11407
11681
  return $EVENT(ctx, state, "Throw", Throw$0);
11408
11682
  }
11409
- var TripleDoubleQuote$0 = $TV($EXPECT($L181, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
11683
+ var TripleDoubleQuote$0 = $TV($EXPECT($L182, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
11410
11684
  return { $loc, token: "`" };
11411
11685
  });
11412
11686
  function TripleDoubleQuote(ctx, state) {
11413
11687
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
11414
11688
  }
11415
- var TripleSingleQuote$0 = $TV($EXPECT($L182, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
11689
+ var TripleSingleQuote$0 = $TV($EXPECT($L183, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
11416
11690
  return { $loc, token: "`" };
11417
11691
  });
11418
11692
  function TripleSingleQuote(ctx, state) {
11419
11693
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
11420
11694
  }
11421
- var TripleSlash$0 = $TV($EXPECT($L183, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
11695
+ var TripleSlash$0 = $TV($EXPECT($L184, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
11422
11696
  return { $loc, token: "/" };
11423
11697
  });
11424
11698
  function TripleSlash(ctx, state) {
11425
11699
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
11426
11700
  }
11427
- var TripleTick$0 = $TV($EXPECT($L184, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
11701
+ var TripleTick$0 = $TV($EXPECT($L185, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
11428
11702
  return { $loc, token: "`" };
11429
11703
  });
11430
11704
  function TripleTick(ctx, state) {
11431
11705
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
11432
11706
  }
11433
- var Try$0 = $TS($S($EXPECT($L185, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11707
+ var Try$0 = $TS($S($EXPECT($L186, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11434
11708
  return { $loc, token: $1 };
11435
11709
  });
11436
11710
  function Try(ctx, state) {
11437
11711
  return $EVENT(ctx, state, "Try", Try$0);
11438
11712
  }
11439
- var Typeof$0 = $TS($S($EXPECT($L186, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11713
+ var Typeof$0 = $TS($S($EXPECT($L187, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11440
11714
  return { $loc, token: $1 };
11441
11715
  });
11442
11716
  function Typeof(ctx, state) {
11443
11717
  return $EVENT(ctx, state, "Typeof", Typeof$0);
11444
11718
  }
11445
- var Unless$0 = $TS($S($EXPECT($L187, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11446
- return { $loc, token: $1 };
11719
+ var Unless$0 = $TS($S($EXPECT($L188, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11720
+ return { $loc, token: $1, negated: true };
11447
11721
  });
11448
11722
  function Unless(ctx, state) {
11449
11723
  return $EVENT(ctx, state, "Unless", Unless$0);
11450
11724
  }
11451
- var Until$0 = $TS($S($EXPECT($L188, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11725
+ var Until$0 = $TS($S($EXPECT($L189, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11452
11726
  return { $loc, token: $1 };
11453
11727
  });
11454
11728
  function Until(ctx, state) {
11455
11729
  return $EVENT(ctx, state, "Until", Until$0);
11456
11730
  }
11457
- var Using$0 = $TS($S($EXPECT($L189, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11731
+ var Using$0 = $TS($S($EXPECT($L190, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11458
11732
  return { $loc, token: $1 };
11459
11733
  });
11460
11734
  function Using(ctx, state) {
11461
11735
  return $EVENT(ctx, state, "Using", Using$0);
11462
11736
  }
11463
- var Var$0 = $TS($S($EXPECT($L190, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11737
+ var Var$0 = $TS($S($EXPECT($L191, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11464
11738
  return { $loc, token: $1 };
11465
11739
  });
11466
11740
  function Var(ctx, state) {
11467
11741
  return $EVENT(ctx, state, "Var", Var$0);
11468
11742
  }
11469
- var Void$0 = $TS($S($EXPECT($L191, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11743
+ var Void$0 = $TS($S($EXPECT($L192, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11470
11744
  return { $loc, token: $1 };
11471
11745
  });
11472
11746
  function Void(ctx, state) {
11473
11747
  return $EVENT(ctx, state, "Void", Void$0);
11474
11748
  }
11475
- var When$0 = $TS($S($EXPECT($L192, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11749
+ var When$0 = $TS($S($EXPECT($L193, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11476
11750
  return { $loc, token: "case" };
11477
11751
  });
11478
11752
  function When(ctx, state) {
11479
11753
  return $EVENT(ctx, state, "When", When$0);
11480
11754
  }
11481
- var While$0 = $TS($S($EXPECT($L193, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11755
+ var While$0 = $TS($S($EXPECT($L194, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11482
11756
  return { $loc, token: $1 };
11483
11757
  });
11484
11758
  function While(ctx, state) {
11485
11759
  return $EVENT(ctx, state, "While", While$0);
11486
11760
  }
11487
- var Yield$0 = $TS($S($EXPECT($L194, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11761
+ var Yield$0 = $TS($S($EXPECT($L195, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11488
11762
  return { $loc, token: $1, type: "Yield" };
11489
11763
  });
11490
11764
  function Yield(ctx, state) {
@@ -11513,7 +11787,7 @@ ${input.slice(result.pos)}
11513
11787
  function JSXImplicitFragment(ctx, state) {
11514
11788
  return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
11515
11789
  }
11516
- var JSXTag$0 = $T($S($EXPECT($R68, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
11790
+ var JSXTag$0 = $T($S($EXPECT($R69, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
11517
11791
  return value[1];
11518
11792
  });
11519
11793
  function JSXTag(ctx, state) {
@@ -11563,7 +11837,7 @@ ${input.slice(result.pos)}
11563
11837
  function JSXElement(ctx, state) {
11564
11838
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
11565
11839
  }
11566
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L14, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L195, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
11840
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L15, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L196, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
11567
11841
  return { type: "JSXElement", children: $0, tag: $2 };
11568
11842
  });
11569
11843
  function JSXSelfClosingElement(ctx, state) {
@@ -11582,7 +11856,7 @@ ${input.slice(result.pos)}
11582
11856
  function PopJSXStack(ctx, state) {
11583
11857
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
11584
11858
  }
11585
- var JSXOpeningElement$0 = $S($EXPECT($L14, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L35, 'JSXOpeningElement ">"'));
11859
+ var JSXOpeningElement$0 = $S($EXPECT($L15, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L36, 'JSXOpeningElement ">"'));
11586
11860
  function JSXOpeningElement(ctx, state) {
11587
11861
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
11588
11862
  }
@@ -11597,7 +11871,7 @@ ${input.slice(result.pos)}
11597
11871
  function JSXOptionalClosingElement(ctx, state) {
11598
11872
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
11599
11873
  }
11600
- var JSXClosingElement$0 = $S($EXPECT($L196, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L35, 'JSXClosingElement ">"'));
11874
+ var JSXClosingElement$0 = $S($EXPECT($L197, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L36, 'JSXClosingElement ">"'));
11601
11875
  function JSXClosingElement(ctx, state) {
11602
11876
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
11603
11877
  }
@@ -11618,7 +11892,7 @@ ${input.slice(result.pos)}
11618
11892
  ];
11619
11893
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
11620
11894
  });
11621
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L197, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11895
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L198, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
11622
11896
  var children = $3;
11623
11897
  $0 = $0.slice(1);
11624
11898
  return {
@@ -11631,7 +11905,7 @@ ${input.slice(result.pos)}
11631
11905
  function JSXFragment(ctx, state) {
11632
11906
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
11633
11907
  }
11634
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L197, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
11908
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L198, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
11635
11909
  module.JSXTagStack.push("");
11636
11910
  return $1;
11637
11911
  });
@@ -11648,11 +11922,11 @@ ${input.slice(result.pos)}
11648
11922
  function JSXOptionalClosingFragment(ctx, state) {
11649
11923
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
11650
11924
  }
11651
- var JSXClosingFragment$0 = $EXPECT($L198, 'JSXClosingFragment "</>"');
11925
+ var JSXClosingFragment$0 = $EXPECT($L199, 'JSXClosingFragment "</>"');
11652
11926
  function JSXClosingFragment(ctx, state) {
11653
11927
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
11654
11928
  }
11655
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L147, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
11929
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L148, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
11656
11930
  return module.config.defaultElement;
11657
11931
  });
11658
11932
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -11660,7 +11934,7 @@ ${input.slice(result.pos)}
11660
11934
  function JSXElementName(ctx, state) {
11661
11935
  return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
11662
11936
  }
11663
- var JSXIdentifierName$0 = $R$0($EXPECT($R69, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
11937
+ var JSXIdentifierName$0 = $R$0($EXPECT($R70, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
11664
11938
  function JSXIdentifierName(ctx, state) {
11665
11939
  return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
11666
11940
  }
@@ -11824,7 +12098,7 @@ ${input.slice(result.pos)}
11824
12098
  }
11825
12099
  return $skip;
11826
12100
  });
11827
- var JSXAttribute$5 = $TS($S($EXPECT($L147, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12101
+ var JSXAttribute$5 = $TS($S($EXPECT($L148, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
11828
12102
  return [" ", "id=", $2];
11829
12103
  });
11830
12104
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -11833,7 +12107,7 @@ ${input.slice(result.pos)}
11833
12107
  class: $2
11834
12108
  };
11835
12109
  });
11836
- var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R14, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
12110
+ var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R15, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
11837
12111
  var toggle = $1;
11838
12112
  var id = $2;
11839
12113
  const value = toggle === "+" ? "true" : "false";
@@ -11843,11 +12117,11 @@ ${input.slice(result.pos)}
11843
12117
  function JSXAttribute(ctx, state) {
11844
12118
  return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
11845
12119
  }
11846
- var JSXAttributeSpace$0 = $R$0($EXPECT($R70, "JSXAttributeSpace /[\\s>]|\\/>/"));
12120
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R71, "JSXAttributeSpace /[\\s>]|\\/>/"));
11847
12121
  function JSXAttributeSpace(ctx, state) {
11848
12122
  return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
11849
12123
  }
11850
- var JSXShorthandString$0 = $TR($EXPECT($R71, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12124
+ var JSXShorthandString$0 = $TR($EXPECT($R72, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11851
12125
  return quoteString($0);
11852
12126
  });
11853
12127
  var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -11881,7 +12155,7 @@ ${input.slice(result.pos)}
11881
12155
  }
11882
12156
  return [open, value, close];
11883
12157
  });
11884
- var JSXAttributeValue$4 = $R$0($EXPECT($R72, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
12158
+ var JSXAttributeValue$4 = $R$0($EXPECT($R73, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
11885
12159
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
11886
12160
  function JSXAttributeValue(ctx, state) {
11887
12161
  return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
@@ -11894,7 +12168,7 @@ ${input.slice(result.pos)}
11894
12168
  function InlineJSXAttributeValue(ctx, state) {
11895
12169
  return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
11896
12170
  }
11897
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R73, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
12171
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R74, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
11898
12172
  var op = $2;
11899
12173
  var rhs = $3;
11900
12174
  return [[], op, [], rhs];
@@ -11911,7 +12185,7 @@ ${input.slice(result.pos)}
11911
12185
  function InlineJSXUnaryExpression(ctx, state) {
11912
12186
  return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
11913
12187
  }
11914
- var InlineJSXUnaryOp$0 = $TR($EXPECT($R74, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12188
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R75, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11915
12189
  return { $loc, token: $0 };
11916
12190
  });
11917
12191
  function InlineJSXUnaryOp(ctx, state) {
@@ -11943,7 +12217,7 @@ ${input.slice(result.pos)}
11943
12217
  ]
11944
12218
  });
11945
12219
  });
11946
- var InlineJSXCallExpression$1 = $TS($S($EXPECT($L17, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
12220
+ var InlineJSXCallExpression$1 = $TS($S($EXPECT($L18, 'InlineJSXCallExpression "import"'), ExplicitArguments, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
11947
12221
  var args = $2;
11948
12222
  var rest = $3;
11949
12223
  return processCallMemberExpression({
@@ -12062,7 +12336,7 @@ ${input.slice(result.pos)}
12062
12336
  }
12063
12337
  return $skip;
12064
12338
  });
12065
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L27, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12339
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L28, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12066
12340
  return { children: [], jsxChildren: [] };
12067
12341
  });
12068
12342
  var JSXNestedChildren$$ = [JSXNestedChildren$0, JSXNestedChildren$1];
@@ -12117,19 +12391,19 @@ ${input.slice(result.pos)}
12117
12391
  function JSXChild(ctx, state) {
12118
12392
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
12119
12393
  }
12120
- var JSXComment$0 = $TS($S($EXPECT($L199, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L200, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12394
+ var JSXComment$0 = $TS($S($EXPECT($L200, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L201, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12121
12395
  return ["{/*", $2, "*/}"];
12122
12396
  });
12123
12397
  function JSXComment(ctx, state) {
12124
12398
  return $EVENT(ctx, state, "JSXComment", JSXComment$0);
12125
12399
  }
12126
- var JSXCommentContent$0 = $TR($EXPECT($R75, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12400
+ var JSXCommentContent$0 = $TR($EXPECT($R76, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12127
12401
  return { $loc, token: $0.replace(/\*\//g, "* /") };
12128
12402
  });
12129
12403
  function JSXCommentContent(ctx, state) {
12130
12404
  return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
12131
12405
  }
12132
- var JSXText$0 = $TR($EXPECT($R76, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12406
+ var JSXText$0 = $TR($EXPECT($R77, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12133
12407
  return {
12134
12408
  type: "JSXText",
12135
12409
  token: $0,
@@ -12249,37 +12523,37 @@ ${input.slice(result.pos)}
12249
12523
  function InterfaceExtendsTarget(ctx, state) {
12250
12524
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
12251
12525
  }
12252
- var TypeKeyword$0 = $TS($S($EXPECT($L201, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12526
+ var TypeKeyword$0 = $TS($S($EXPECT($L202, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12253
12527
  return { $loc, token: $1 };
12254
12528
  });
12255
12529
  function TypeKeyword(ctx, state) {
12256
12530
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
12257
12531
  }
12258
- var Enum$0 = $TS($S($EXPECT($L202, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12532
+ var Enum$0 = $TS($S($EXPECT($L203, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12259
12533
  return { $loc, token: $1 };
12260
12534
  });
12261
12535
  function Enum(ctx, state) {
12262
12536
  return $EVENT(ctx, state, "Enum", Enum$0);
12263
12537
  }
12264
- var Interface$0 = $TS($S($EXPECT($L203, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12538
+ var Interface$0 = $TS($S($EXPECT($L204, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12265
12539
  return { $loc, token: $1 };
12266
12540
  });
12267
12541
  function Interface(ctx, state) {
12268
12542
  return $EVENT(ctx, state, "Interface", Interface$0);
12269
12543
  }
12270
- var Global$0 = $TS($S($EXPECT($L204, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12544
+ var Global$0 = $TS($S($EXPECT($L205, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12271
12545
  return { $loc, token: $1 };
12272
12546
  });
12273
12547
  function Global(ctx, state) {
12274
12548
  return $EVENT(ctx, state, "Global", Global$0);
12275
12549
  }
12276
- var Module$0 = $TS($S($EXPECT($L205, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12550
+ var Module$0 = $TS($S($EXPECT($L206, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12277
12551
  return { $loc, token: $1 };
12278
12552
  });
12279
12553
  function Module(ctx, state) {
12280
12554
  return $EVENT(ctx, state, "Module", Module$0);
12281
12555
  }
12282
- var Namespace$0 = $TS($S($EXPECT($L206, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12556
+ var Namespace$0 = $TS($S($EXPECT($L207, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12283
12557
  return { $loc, token: $1 };
12284
12558
  });
12285
12559
  function Namespace(ctx, state) {
@@ -12494,7 +12768,7 @@ ${input.slice(result.pos)}
12494
12768
  function TypeProperty(ctx, state) {
12495
12769
  return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
12496
12770
  }
12497
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R77, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R78, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
12771
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R78, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R79, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
12498
12772
  function TypeIndexSignature(ctx, state) {
12499
12773
  return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
12500
12774
  }
@@ -12504,27 +12778,53 @@ ${input.slice(result.pos)}
12504
12778
  function TypeIndex(ctx, state) {
12505
12779
  return $EVENT_C(ctx, state, "TypeIndex", TypeIndex$$);
12506
12780
  }
12507
- var TypeSuffix$0 = $T($S($E(QuestionMark), $E(_), Colon, Type), function(value) {
12508
- return { "type": "TypeSuffix", "ts": true, "children": value };
12781
+ var TypeSuffix$0 = $T($S($E(_), $E(QuestionMark), $E(_), Colon, MaybeIndentedType), function(value) {
12782
+ var optional = value[1];
12783
+ var t = value[4];
12784
+ return { "type": "TypeSuffix", "ts": true, "optional": optional, "t": t, "children": value };
12509
12785
  });
12510
- var TypeSuffix$1 = $T($S(QuestionMark, $E(_)), function(value) {
12511
- return { "type": "TypeSuffix", "ts": true, "children": value };
12786
+ var TypeSuffix$1 = $T($S($E(_), QuestionMark, $E(_)), function(value) {
12787
+ var optional = value[1];
12788
+ return { "type": "TypeSuffix", "ts": true, "optional": optional, "children": value };
12512
12789
  });
12513
- var TypeSuffix$2 = $T($S(NonNullAssertion, $E(_), $E($S(Colon, Type))), function(value) {
12514
- return { "type": "TypeSuffix", "ts": true, "children": value };
12790
+ var TypeSuffix$2 = $TS($S(NonNullAssertion, $E(_), $E($S(Colon, MaybeIndentedType))), function($skip, $loc, $0, $1, $2, $3) {
12791
+ var ct = $3;
12792
+ const [colon, t] = ct ?? [];
12793
+ return {
12794
+ type: "TypeSuffix",
12795
+ ts: true,
12796
+ t,
12797
+ children: [$1, $2, colon, t]
12798
+ };
12515
12799
  });
12516
12800
  var TypeSuffix$$ = [TypeSuffix$0, TypeSuffix$1, TypeSuffix$2];
12517
12801
  function TypeSuffix(ctx, state) {
12518
12802
  return $EVENT_C(ctx, state, "TypeSuffix", TypeSuffix$$);
12519
12803
  }
12520
- var ReturnTypeSuffix$0 = $TS($S($E(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3) {
12521
- var t = $3;
12522
- return { ...t, children: [$1, $2, ...t.children] };
12804
+ var MaybeIndentedType$0 = InterfaceBlock;
12805
+ var MaybeIndentedType$1 = $TS($S(PushIndent, $E($S(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
12806
+ if (!$2)
12807
+ return $skip;
12808
+ return $2;
12809
+ });
12810
+ var MaybeIndentedType$2 = Type;
12811
+ var MaybeIndentedType$$ = [MaybeIndentedType$0, MaybeIndentedType$1, MaybeIndentedType$2];
12812
+ function MaybeIndentedType(ctx, state) {
12813
+ return $EVENT_C(ctx, state, "MaybeIndentedType", MaybeIndentedType$$);
12814
+ }
12815
+ var ReturnTypeSuffix$0 = $TS($S($E(_), $E(QuestionMark), $E(_), Colon, ReturnType), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12816
+ var optional = $2;
12817
+ var t = $5;
12818
+ return {
12819
+ ...t,
12820
+ optional,
12821
+ children: [$1, optional, $3, $4, ...t.children]
12822
+ };
12523
12823
  });
12524
12824
  function ReturnTypeSuffix(ctx, state) {
12525
12825
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
12526
12826
  }
12527
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L207, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
12827
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L208, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
12528
12828
  var asserts = $1;
12529
12829
  var t = $2;
12530
12830
  if (asserts) {
@@ -12545,7 +12845,7 @@ ${input.slice(result.pos)}
12545
12845
  function ReturnType(ctx, state) {
12546
12846
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
12547
12847
  }
12548
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L152, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
12848
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L153, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
12549
12849
  var lhs = $1;
12550
12850
  var rhs = $2;
12551
12851
  if (!rhs)
@@ -12580,9 +12880,19 @@ ${input.slice(result.pos)}
12580
12880
  return $EVENT(ctx, state, "TypeBinary", TypeBinary$0);
12581
12881
  }
12582
12882
  var TypeUnary$0 = $TS($S($Q($S(__, TypeUnaryOp, NonIdContinue)), TypePrimary, $Q(TypeUnarySuffix)), function($skip, $loc, $0, $1, $2, $3) {
12583
- if (!$1.length && !$3.length)
12584
- return $2;
12585
- return [...$1, $2, ...$3];
12883
+ var prefix = $1;
12884
+ var t = $2;
12885
+ var suffix = $3;
12886
+ if (!prefix.length && !suffix.length)
12887
+ return t;
12888
+ return {
12889
+ type: "UnaryType",
12890
+ prefix,
12891
+ suffix,
12892
+ t,
12893
+ // omit empty prefix for trimming space
12894
+ children: prefix.length ? $0 : [t, suffix]
12895
+ };
12586
12896
  });
12587
12897
  function TypeUnary(ctx, state) {
12588
12898
  return $EVENT(ctx, state, "TypeUnary", TypeUnary$0);
@@ -12593,10 +12903,10 @@ ${input.slice(result.pos)}
12593
12903
  function TypeUnarySuffix(ctx, state) {
12594
12904
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
12595
12905
  }
12596
- var TypeUnaryOp$0 = $S($EXPECT($L208, 'TypeUnaryOp "keyof"'), NonIdContinue);
12597
- var TypeUnaryOp$1 = $S($EXPECT($L186, 'TypeUnaryOp "typeof"'), NonIdContinue);
12598
- var TypeUnaryOp$2 = $S($EXPECT($L209, 'TypeUnaryOp "infer"'), NonIdContinue);
12599
- var TypeUnaryOp$3 = $S($EXPECT($L169, 'TypeUnaryOp "readonly"'), NonIdContinue);
12906
+ var TypeUnaryOp$0 = $S($EXPECT($L209, 'TypeUnaryOp "keyof"'), NonIdContinue);
12907
+ var TypeUnaryOp$1 = $S($EXPECT($L187, 'TypeUnaryOp "typeof"'), NonIdContinue);
12908
+ var TypeUnaryOp$2 = $S($EXPECT($L210, 'TypeUnaryOp "infer"'), NonIdContinue);
12909
+ var TypeUnaryOp$3 = $S($EXPECT($L170, 'TypeUnaryOp "readonly"'), NonIdContinue);
12600
12910
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1, TypeUnaryOp$2, TypeUnaryOp$3];
12601
12911
  function TypeUnaryOp(ctx, state) {
12602
12912
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -12605,17 +12915,26 @@ ${input.slice(result.pos)}
12605
12915
  function TypeIndexedAccess(ctx, state) {
12606
12916
  return $EVENT(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$0);
12607
12917
  }
12608
- var UnknownAlias$0 = $TV($EXPECT($L210, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
12918
+ var UnknownAlias$0 = $TV($EXPECT($L211, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
12609
12919
  return { $loc, token: "unknown" };
12610
12920
  });
12611
12921
  function UnknownAlias(ctx, state) {
12612
12922
  return $EVENT(ctx, state, "UnknownAlias", UnknownAlias$0);
12613
12923
  }
12614
- var TypePrimary$0 = $S($E(_), TypeTuple);
12924
+ var TypePrimary$0 = $TS($S($E(_), TypeTuple), function($skip, $loc, $0, $1, $2) {
12925
+ return { ...$2, children: [$1, ...$2.children] };
12926
+ });
12615
12927
  var TypePrimary$1 = InterfaceBlock;
12616
12928
  var TypePrimary$2 = $S($E(_), FunctionType);
12617
12929
  var TypePrimary$3 = $S($E(_), InlineInterfaceLiteral);
12618
- var TypePrimary$4 = $S($E(_), ImportType);
12930
+ var TypePrimary$4 = $TS($S($E(_), ImportType), function($skip, $loc, $0, $1, $2) {
12931
+ var t = $2;
12932
+ return {
12933
+ type: "ImportType",
12934
+ t,
12935
+ children: $0
12936
+ };
12937
+ });
12619
12938
  var TypePrimary$5 = $TS($S($E(_), TypeLiteral), function($skip, $loc, $0, $1, $2) {
12620
12939
  var t = $2;
12621
12940
  return {
@@ -12641,22 +12960,30 @@ ${input.slice(result.pos)}
12641
12960
  args
12642
12961
  };
12643
12962
  });
12644
- var TypePrimary$8 = $S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12963
+ var TypePrimary$8 = $TS($S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12964
+ return {
12965
+ type: "ParenthesizedType",
12966
+ children: $0
12967
+ };
12968
+ });
12645
12969
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8];
12646
12970
  function TypePrimary(ctx, state) {
12647
12971
  return $EVENT_C(ctx, state, "TypePrimary", TypePrimary$$);
12648
12972
  }
12649
- var ImportType$0 = $S($EXPECT($L17, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
12650
- var ImportType$1 = $S($EXPECT($L17, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
12973
+ var ImportType$0 = $S($EXPECT($L18, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
12974
+ var ImportType$1 = $S($EXPECT($L18, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
12651
12975
  var ImportType$$ = [ImportType$0, ImportType$1];
12652
12976
  function ImportType(ctx, state) {
12653
12977
  return $EVENT_C(ctx, state, "ImportType", ImportType$$);
12654
12978
  }
12655
- var TypeTuple$0 = $S(OpenBracket, NestedTypeList, __, CloseBracket);
12656
- var TypeTuple$1 = $S(OpenBracket, $E(TypeList), __, CloseBracket);
12657
- var TypeTuple$$ = [TypeTuple$0, TypeTuple$1];
12979
+ var TypeTuple$0 = $TS($S(OpenBracket, $C(NestedTypeList, $E(TypeList)), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
12980
+ return {
12981
+ type: "TypeTuple",
12982
+ children: $0
12983
+ };
12984
+ });
12658
12985
  function TypeTuple(ctx, state) {
12659
- return $EVENT_C(ctx, state, "TypeTuple", TypeTuple$$);
12986
+ return $EVENT(ctx, state, "TypeTuple", TypeTuple$0);
12660
12987
  }
12661
12988
  var TypeList$0 = $S(TypeElement, $Q($S(__, Comma, TypeElement)));
12662
12989
  function TypeList(ctx, state) {
@@ -12707,13 +13034,59 @@ ${input.slice(result.pos)}
12707
13034
  function NestedType(ctx, state) {
12708
13035
  return $EVENT(ctx, state, "NestedType", NestedType$0);
12709
13036
  }
12710
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L140, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
12711
- if ($2)
12712
- return $0;
12713
- return $1;
13037
+ var TypeConditional$0 = $TS($S($E(_), $EXPECT($R80, "TypeConditional /(?=if|unless)/"), TypeIfThenElse), function($skip, $loc, $0, $1, $2, $3) {
13038
+ return [$1, expressionizeTypeIf($3)];
13039
+ });
13040
+ var TypeConditional$1 = $TS($S(TypeCondition, NotDedented, QuestionMark, Type, __, Colon, Type), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
13041
+ if ($1.negated)
13042
+ return [$1, $2, $3, $7, $5, $6, $4];
13043
+ return $0;
13044
+ });
13045
+ var TypeConditional$2 = $TS($S(TypeBinary, $E($S($E(IndentedFurther), ExtendsToken, Type))), function($skip, $loc, $0, $1, $2) {
13046
+ if (!$2)
13047
+ return $1;
13048
+ return $0;
12714
13049
  });
13050
+ var TypeConditional$$ = [TypeConditional$0, TypeConditional$1, TypeConditional$2];
12715
13051
  function TypeConditional(ctx, state) {
12716
- return $EVENT(ctx, state, "TypeConditional", TypeConditional$0);
13052
+ return $EVENT_C(ctx, state, "TypeConditional", TypeConditional$$);
13053
+ }
13054
+ var TypeCondition$0 = $TS($S(TypeBinary, $E(IndentedFurther), $C(ExtendsToken, NotExtendsToken), Type), function($skip, $loc, $0, $1, $2, $3, $4) {
13055
+ return {
13056
+ type: "TypeCondition",
13057
+ negated: $3.negated,
13058
+ children: $0
13059
+ };
13060
+ });
13061
+ function TypeCondition(ctx, state) {
13062
+ return $EVENT(ctx, state, "TypeCondition", TypeCondition$0);
13063
+ }
13064
+ var TypeIfThenElse$0 = $TS($S($E(_), $C(If, Unless), $S(OpenParen, TypeCondition, CloseParen), TypeBlock, $E(TypeElse)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13065
+ return [$1, $2, $3[1], $4, $5];
13066
+ });
13067
+ var TypeIfThenElse$1 = $S($E(_), $C(If, Unless), TypeCondition, TypeBlock, $E(TypeElse));
13068
+ var TypeIfThenElse$$ = [TypeIfThenElse$0, TypeIfThenElse$1];
13069
+ function TypeIfThenElse(ctx, state) {
13070
+ return $EVENT_C(ctx, state, "TypeIfThenElse", TypeIfThenElse$$);
13071
+ }
13072
+ var TypeElse$0 = $S(NotDedented, Else, TypeBlock);
13073
+ function TypeElse(ctx, state) {
13074
+ return $EVENT(ctx, state, "TypeElse", TypeElse$0);
13075
+ }
13076
+ var TypeBlock$0 = $T($S(Then, Type), function(value) {
13077
+ return value[1];
13078
+ });
13079
+ var TypeBlock$1 = $T($S($N(EOS), Type), function(value) {
13080
+ return value[1];
13081
+ });
13082
+ var TypeBlock$2 = $TS($S(PushIndent, $E($S(Nested, Type)), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13083
+ if (!$2)
13084
+ return $skip;
13085
+ return $2;
13086
+ });
13087
+ var TypeBlock$$ = [TypeBlock$0, TypeBlock$1, TypeBlock$2];
13088
+ function TypeBlock(ctx, state) {
13089
+ return $EVENT_C(ctx, state, "TypeBlock", TypeBlock$$);
12717
13090
  }
12718
13091
  var TypeTemplateSubstitution$0 = $S(SubstitutionStart, Type, __, CloseBrace);
12719
13092
  function TypeTemplateSubstitution(ctx, state) {
@@ -12745,10 +13118,10 @@ ${input.slice(result.pos)}
12745
13118
  }
12746
13119
  var TypeLiteral$0 = TypeTemplateLiteral;
12747
13120
  var TypeLiteral$1 = Literal;
12748
- var TypeLiteral$2 = $TS($S($EXPECT($L191, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13121
+ var TypeLiteral$2 = $TS($S($EXPECT($L192, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12749
13122
  return { type: "VoidType", $loc, token: $1 };
12750
13123
  });
12751
- var TypeLiteral$3 = $TV($EXPECT($L211, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13124
+ var TypeLiteral$3 = $TV($EXPECT($L212, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
12752
13125
  return { $loc, token: "[]" };
12753
13126
  });
12754
13127
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3];
@@ -12767,16 +13140,16 @@ ${input.slice(result.pos)}
12767
13140
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
12768
13141
  return value[1];
12769
13142
  });
12770
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L12, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L114, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L36, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L27, 'InlineInterfacePropertyDelimiter "}"'))));
13143
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L13, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L115, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L37, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L28, 'InlineInterfacePropertyDelimiter "}"'))));
12771
13144
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
12772
13145
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
12773
13146
  function InlineInterfacePropertyDelimiter(ctx, state) {
12774
13147
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
12775
13148
  }
12776
- var TypeBinaryOp$0 = $TV($EXPECT($L100, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13149
+ var TypeBinaryOp$0 = $TV($EXPECT($L101, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
12777
13150
  return { $loc, token: "|" };
12778
13151
  });
12779
- var TypeBinaryOp$1 = $TV($EXPECT($L99, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13152
+ var TypeBinaryOp$1 = $TV($EXPECT($L100, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
12780
13153
  return { $loc, token: "&" };
12781
13154
  });
12782
13155
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
@@ -12793,7 +13166,7 @@ ${input.slice(result.pos)}
12793
13166
  function FunctionType(ctx, state) {
12794
13167
  return $EVENT(ctx, state, "FunctionType", FunctionType$0);
12795
13168
  }
12796
- var TypeArrowFunction$0 = $TV($C($EXPECT($L10, 'TypeArrowFunction "=>"'), $EXPECT($L11, 'TypeArrowFunction "\u21D2"'), $EXPECT($L25, 'TypeArrowFunction "->"'), $EXPECT($L26, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13169
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L11, 'TypeArrowFunction "=>"'), $EXPECT($L12, 'TypeArrowFunction "\u21D2"'), $EXPECT($L26, 'TypeArrowFunction "->"'), $EXPECT($L27, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
12797
13170
  return { $loc, token: "=>" };
12798
13171
  });
12799
13172
  function TypeArrowFunction(ctx, state) {
@@ -12831,11 +13204,11 @@ ${input.slice(result.pos)}
12831
13204
  function TypeParameters(ctx, state) {
12832
13205
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
12833
13206
  }
12834
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L151, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13207
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L152, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
12835
13208
  function TypeParameter(ctx, state) {
12836
13209
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
12837
13210
  }
12838
- var TypeConstraint$0 = $S(__, $EXPECT($L140, 'TypeConstraint "extends"'), NonIdContinue, Type);
13211
+ var TypeConstraint$0 = $S(__, $EXPECT($L141, 'TypeConstraint "extends"'), NonIdContinue, Type);
12839
13212
  function TypeConstraint(ctx, state) {
12840
13213
  return $EVENT(ctx, state, "TypeConstraint", TypeConstraint$0);
12841
13214
  }
@@ -12844,7 +13217,7 @@ ${input.slice(result.pos)}
12844
13217
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
12845
13218
  }
12846
13219
  var TypeParameterDelimiter$0 = $S($E(_), Comma);
12847
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L35, 'TypeParameterDelimiter ">"')));
13220
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L36, 'TypeParameterDelimiter ">"')));
12848
13221
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
12849
13222
  return value[1];
12850
13223
  });
@@ -12858,15 +13231,15 @@ ${input.slice(result.pos)}
12858
13231
  function ThisType(ctx, state) {
12859
13232
  return $EVENT(ctx, state, "ThisType", ThisType$0);
12860
13233
  }
12861
- var Shebang$0 = $S($R$0($EXPECT($R79, "Shebang /#![^\\r\\n]*/")), EOL);
13234
+ var Shebang$0 = $S($R$0($EXPECT($R81, "Shebang /#![^\\r\\n]*/")), EOL);
12862
13235
  function Shebang(ctx, state) {
12863
13236
  return $EVENT(ctx, state, "Shebang", Shebang$0);
12864
13237
  }
12865
- var CivetPrologue$0 = $T($S($EXPECT($R80, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R81, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
13238
+ var CivetPrologue$0 = $T($S($EXPECT($R82, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $EXPECT($R83, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
12866
13239
  var content = value[2];
12867
13240
  return content;
12868
13241
  });
12869
- var CivetPrologue$1 = $T($S($EXPECT($R80, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R81, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
13242
+ var CivetPrologue$1 = $T($S($EXPECT($R82, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $EXPECT($R83, "CivetPrologue /[ \\t]*/"), $C(EOL, $Y(RestOfLine))), function(value) {
12870
13243
  var content = value[2];
12871
13244
  return content;
12872
13245
  });
@@ -12874,7 +13247,7 @@ ${input.slice(result.pos)}
12874
13247
  function CivetPrologue(ctx, state) {
12875
13248
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
12876
13249
  }
12877
- var CivetPrologueContent$0 = $TS($S($EXPECT($L212, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R82, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13250
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L213, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R84, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
12878
13251
  var options = $3;
12879
13252
  return {
12880
13253
  type: "CivetPrologue",
@@ -12885,7 +13258,7 @@ ${input.slice(result.pos)}
12885
13258
  function CivetPrologueContent(ctx, state) {
12886
13259
  return $EVENT(ctx, state, "CivetPrologueContent", CivetPrologueContent$0);
12887
13260
  }
12888
- var CivetOption$0 = $TR($EXPECT($R83, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13261
+ var CivetOption$0 = $TR($EXPECT($R85, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12889
13262
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
12890
13263
  if (l)
12891
13264
  return l.toUpperCase();
@@ -12902,11 +13275,11 @@ ${input.slice(result.pos)}
12902
13275
  function CivetOption(ctx, state) {
12903
13276
  return $EVENT(ctx, state, "CivetOption", CivetOption$0);
12904
13277
  }
12905
- var UnknownPrologue$0 = $S($R$0($EXPECT($R80, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
13278
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R82, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
12906
13279
  function UnknownPrologue(ctx, state) {
12907
13280
  return $EVENT(ctx, state, "UnknownPrologue", UnknownPrologue$0);
12908
13281
  }
12909
- var TripleSlashDirective$0 = $S($R$0($EXPECT($R84, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
13282
+ var TripleSlashDirective$0 = $S($R$0($EXPECT($R86, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
12910
13283
  function TripleSlashDirective(ctx, state) {
12911
13284
  return $EVENT(ctx, state, "TripleSlashDirective", TripleSlashDirective$0);
12912
13285
  }
@@ -12920,13 +13293,13 @@ ${input.slice(result.pos)}
12920
13293
  function PrologueString(ctx, state) {
12921
13294
  return $EVENT_C(ctx, state, "PrologueString", PrologueString$$);
12922
13295
  }
12923
- var EOS$0 = $T($S($EXPECT($R85, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
13296
+ var EOS$0 = $T($S($EXPECT($R87, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
12924
13297
  return value[1];
12925
13298
  });
12926
13299
  function EOS(ctx, state) {
12927
13300
  return $EVENT(ctx, state, "EOS", EOS$0);
12928
13301
  }
12929
- var EOL$0 = $TR($EXPECT($R86, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13302
+ var EOL$0 = $TR($EXPECT($R88, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12930
13303
  return { $loc, token: $0 };
12931
13304
  });
12932
13305
  function EOL(ctx, state) {
@@ -13345,6 +13718,30 @@ ${input.slice(result.pos)}
13345
13718
  ]
13346
13719
  });
13347
13720
  },
13721
+ concatAssign(ref) {
13722
+ const typeSuffix = {
13723
+ ts: true,
13724
+ children: [
13725
+ ": <B, A extends {push: (this: A, b: B) => void} | (B extends unknown[] ? {push: (this: A, ...b: B) => void} : never)>(lhs: A, rhs: B) => A"
13726
+ ]
13727
+ };
13728
+ module.prelude.push({
13729
+ children: [
13730
+ preludeVar,
13731
+ ref,
13732
+ typeSuffix,
13733
+ " = (lhs, rhs) => ((rhs",
13734
+ asAny,
13735
+ ")?.[Symbol.isConcatSpreadable] ? (lhs",
13736
+ asAny,
13737
+ ").push.apply(lhs, rhs",
13738
+ asAny,
13739
+ ") : (lhs",
13740
+ asAny,
13741
+ ").push(rhs), lhs);\n"
13742
+ ]
13743
+ });
13744
+ },
13348
13745
  JSX(jsxRef) {
13349
13746
  module.prelude.push({
13350
13747
  ts: true,
@@ -13446,7 +13843,7 @@ ${input.slice(result.pos)}
13446
13843
  function Init(ctx, state) {
13447
13844
  return $EVENT(ctx, state, "Init", Init$0);
13448
13845
  }
13449
- var Indent$0 = $TR($EXPECT($R81, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13846
+ var Indent$0 = $TR($EXPECT($R83, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
13450
13847
  const level = getIndentLevel($0, module.config.tab);
13451
13848
  return {
13452
13849
  $loc,
@@ -13600,6 +13997,7 @@ ${input.slice(result.pos)}
13600
13997
  exports.UnaryBody = UnaryBody;
13601
13998
  exports.UnaryWithoutParenthesizedAssignmentBody = UnaryWithoutParenthesizedAssignmentBody;
13602
13999
  exports.UnaryPostfix = UnaryPostfix;
14000
+ exports.TypePostfix = TypePostfix;
13603
14001
  exports.UpdateExpression = UpdateExpression;
13604
14002
  exports.UpdateExpressionSymbol = UpdateExpressionSymbol;
13605
14003
  exports.AssignmentExpression = AssignmentExpression;
@@ -13629,6 +14027,8 @@ ${input.slice(result.pos)}
13629
14027
  exports.ExtendsClause = ExtendsClause;
13630
14028
  exports.ExtendsToken = ExtendsToken;
13631
14029
  exports.ExtendsShorthand = ExtendsShorthand;
14030
+ exports.NotExtendsToken = NotExtendsToken;
14031
+ exports.OmittedNegation = OmittedNegation;
13632
14032
  exports.ExtendsTarget = ExtendsTarget;
13633
14033
  exports.ImplementsClause = ImplementsClause;
13634
14034
  exports.ImplementsToken = ImplementsToken;
@@ -14027,6 +14427,7 @@ ${input.slice(result.pos)}
14027
14427
  exports.Each = Each;
14028
14428
  exports.Else = Else;
14029
14429
  exports.Equals = Equals;
14430
+ exports.ExclamationPoint = ExclamationPoint;
14030
14431
  exports.Export = Export;
14031
14432
  exports.Extends = Extends;
14032
14433
  exports.Finally = Finally;
@@ -14169,6 +14570,7 @@ ${input.slice(result.pos)}
14169
14570
  exports.TypeIndexSignature = TypeIndexSignature;
14170
14571
  exports.TypeIndex = TypeIndex;
14171
14572
  exports.TypeSuffix = TypeSuffix;
14573
+ exports.MaybeIndentedType = MaybeIndentedType;
14172
14574
  exports.ReturnTypeSuffix = ReturnTypeSuffix;
14173
14575
  exports.ReturnType = ReturnType;
14174
14576
  exports.TypePredicate = TypePredicate;
@@ -14187,6 +14589,10 @@ ${input.slice(result.pos)}
14187
14589
  exports.NestedTypeList = NestedTypeList;
14188
14590
  exports.NestedType = NestedType;
14189
14591
  exports.TypeConditional = TypeConditional;
14592
+ exports.TypeCondition = TypeCondition;
14593
+ exports.TypeIfThenElse = TypeIfThenElse;
14594
+ exports.TypeElse = TypeElse;
14595
+ exports.TypeBlock = TypeBlock;
14190
14596
  exports.TypeTemplateSubstitution = TypeTemplateSubstitution;
14191
14597
  exports.TypeTemplateLiteral = TypeTemplateLiteral;
14192
14598
  exports.CoffeeStringTypeSubstitution = CoffeeStringTypeSubstitution;
@@ -14273,6 +14679,7 @@ ${input.slice(result.pos)}
14273
14679
  dedentBlockString,
14274
14680
  dedentBlockSubstitutions,
14275
14681
  expressionizeIfClause,
14682
+ expressionizeTypeIf,
14276
14683
  forRange,
14277
14684
  gatherBindingCode,
14278
14685
  getIndentLevel,