@danielx/civet 0.6.42 → 0.6.44

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
@@ -902,18 +902,18 @@ ${input.slice(result.pos)}
902
902
  }
903
903
  if (subtype === "DoStatement") {
904
904
  insertReturn(block);
905
- children.splice(i, 1, ...wrapIIFE(statement, async));
905
+ children.splice(i, 1, ...wrapIIFE(["", statement, void 0], async));
906
906
  return;
907
907
  }
908
908
  const resultsRef = makeRef("results");
909
909
  insertPush(block, resultsRef);
910
+ braceBlock(block);
910
911
  children.splice(
911
912
  i,
912
913
  1,
913
914
  ...wrapIIFE([
914
915
  ["", ["const ", resultsRef, "=[]"], ";"],
915
- ...children,
916
- ["", "; "],
916
+ ...children.map((c) => ["", c, void 0]),
917
917
  ["", wrapWithReturn(resultsRef)]
918
918
  ], async)
919
919
  );
@@ -1317,6 +1317,7 @@ ${input.slice(result.pos)}
1317
1317
  };
1318
1318
  const prefix = splices.map((s) => ["let ", s]).concat(thisAssignments).map(
1319
1319
  (s) => s.type ? {
1320
+ // TODO: figure out how to get JS only statement tuples
1320
1321
  ...s,
1321
1322
  children: [indent, ...s.children, delimiter]
1322
1323
  } : [indent, s, delimiter]
@@ -1715,6 +1716,31 @@ ${input.slice(result.pos)}
1715
1716
  return target.token.match(/^ ?/)[0];
1716
1717
  return;
1717
1718
  }
1719
+ function startsWith(target, value) {
1720
+ if (!target)
1721
+ return;
1722
+ if (Array.isArray(target)) {
1723
+ let i = 0;
1724
+ let l = target.length;
1725
+ while (i < l) {
1726
+ const t = target[i];
1727
+ if (t && (t.length || t.token || t.children)) {
1728
+ break;
1729
+ }
1730
+ i++;
1731
+ }
1732
+ if (i < l) {
1733
+ return startsWith(target[i], value);
1734
+ }
1735
+ }
1736
+ if (target.children)
1737
+ return startsWith(target.children, value);
1738
+ if (target.token)
1739
+ return value.test(target.token);
1740
+ if (typeof target === "string")
1741
+ return value.test(target);
1742
+ return;
1743
+ }
1718
1744
  function processForInOf($0, getRef) {
1719
1745
  let [awaits, eachOwn, open, declaration, declaration2, ws, inOf, exp, step, close] = $0;
1720
1746
  if (exp.type === "RangeExpression" && inOf.token === "of" && !declaration2) {
@@ -1827,7 +1853,7 @@ ${input.slice(result.pos)}
1827
1853
  }
1828
1854
  if (own) {
1829
1855
  const hasPropRef = getRef("hasProp");
1830
- blockPrefix.push(["", "if (!", hasPropRef, "(", insertTrimmingSpace(expRef2, ""), ", ", insertTrimmingSpace(binding, ""), ")) continue", ";"]);
1856
+ blockPrefix.push(["", ["if (!", hasPropRef, "(", insertTrimmingSpace(expRef2, ""), ", ", insertTrimmingSpace(binding, ""), ")) continue"], ";"]);
1831
1857
  }
1832
1858
  if (decl2) {
1833
1859
  blockPrefix.push(["", {
@@ -1986,6 +2012,15 @@ ${input.slice(result.pos)}
1986
2012
  empty: true
1987
2013
  };
1988
2014
  }
2015
+ function braceBlock(block) {
2016
+ if (block.bare) {
2017
+ block.children.unshift(" {");
2018
+ block.children.push("}");
2019
+ return block.bare = false;
2020
+ }
2021
+ ;
2022
+ return;
2023
+ }
1989
2024
  function makeLeftHandSideExpression(expression) {
1990
2025
  switch (expression.type) {
1991
2026
  case "Ref":
@@ -2514,6 +2549,68 @@ ${input.slice(result.pos)}
2514
2549
  return exp.children.splice(index + 1, 0, ...tail);
2515
2550
  });
2516
2551
  }
2552
+ function processBlocks(statements) {
2553
+ insertSemicolon(statements);
2554
+ gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(function({ expressions }) {
2555
+ return processBlocks(expressions);
2556
+ });
2557
+ }
2558
+ function insertSemicolon(statements) {
2559
+ const l = statements.length;
2560
+ statements.forEach(function(s, i) {
2561
+ if (i < l - 1) {
2562
+ if (needsPrecedingSemicolon(statements[i + 1])) {
2563
+ const delim = s[2];
2564
+ if (!delim) {
2565
+ return s[2] = ";";
2566
+ } else if (typeof delim === "string" && !delim.match(/;/)) {
2567
+ return s[2] = `;${delim}`;
2568
+ }
2569
+ ;
2570
+ return;
2571
+ }
2572
+ ;
2573
+ return;
2574
+ }
2575
+ ;
2576
+ return;
2577
+ });
2578
+ }
2579
+ function needsPrecedingSemicolon(exp) {
2580
+ let following;
2581
+ if (Array.isArray(exp)) {
2582
+ [, following] = exp;
2583
+ } else {
2584
+ following = exp;
2585
+ }
2586
+ if (!following) {
2587
+ return false;
2588
+ }
2589
+ if (Array.isArray(following)) {
2590
+ return needsPrecedingSemicolon(following[0]);
2591
+ }
2592
+ switch (following.type) {
2593
+ case "ParenthesizedExpression":
2594
+ case "ArrowFunction":
2595
+ case "TemplateLiteral":
2596
+ case "RegularExpressionLiteral": {
2597
+ return true;
2598
+ }
2599
+ case "AssignmentExpression": {
2600
+ return startsWith(following, /^(\[|\()/);
2601
+ }
2602
+ case "Literal": {
2603
+ return following.raw?.startsWith("-") || following.raw?.startsWith("+");
2604
+ }
2605
+ default: {
2606
+ if (following.children) {
2607
+ return needsPrecedingSemicolon(following.children[0]);
2608
+ }
2609
+ ;
2610
+ return;
2611
+ }
2612
+ }
2613
+ }
2517
2614
  function attachPostfixStatementAsExpression(exp, post) {
2518
2615
  switch (post[1].type) {
2519
2616
  case "ForStatement":
@@ -2855,11 +2952,7 @@ ${input.slice(result.pos)}
2855
2952
  }
2856
2953
  block.expressions.unshift(...prefix);
2857
2954
  const next = [];
2858
- if (block.bare) {
2859
- block.children.unshift(" {");
2860
- block.children.push("}");
2861
- block.bare = false;
2862
- }
2955
+ braceBlock(block);
2863
2956
  if (i < l - 1)
2864
2957
  next.push("\n", "else ");
2865
2958
  prev.push(["", {
@@ -3030,6 +3123,7 @@ ${input.slice(result.pos)}
3030
3123
  } else if (config.autoVar) {
3031
3124
  createVarDecs(statements, []);
3032
3125
  }
3126
+ processBlocks(statements);
3033
3127
  populateRefs(statements);
3034
3128
  adjustAtBindings(statements);
3035
3129
  }
@@ -3111,7 +3205,10 @@ ${input.slice(result.pos)}
3111
3205
  if (statements[0][1]?.parent?.root) {
3112
3206
  delimiter = ";\n";
3113
3207
  }
3114
- statements.unshift([indent, "var ", varIds.join(", "), delimiter]);
3208
+ statements.unshift([indent, {
3209
+ type: "Declaration",
3210
+ children: ["var ", varIds.join(", ")]
3211
+ }, delimiter]);
3115
3212
  }
3116
3213
  return scopes.pop();
3117
3214
  }
@@ -3181,13 +3278,17 @@ ${input.slice(result.pos)}
3181
3278
  if (gatherNodes(indent, (node) => node.token && node.token.endsWith("\n")).length > 0) {
3182
3279
  tail = void 0;
3183
3280
  }
3184
- targetStatements.push([indent, `let `, undeclaredIdentifiers.join(", "), tail]);
3281
+ targetStatements.push([indent, {
3282
+ type: "Declaration",
3283
+ children: ["let ", ...undeclaredIdentifiers.join(", ")],
3284
+ names: undeclaredIdentifiers
3285
+ }, tail]);
3185
3286
  }
3186
3287
  }
3187
3288
  targetStatements.push(statement);
3188
3289
  }
3189
3290
  scopes.pop();
3190
- statements.splice(0, statements.length, targetStatements);
3291
+ statements.splice(0, statements.length, ...targetStatements);
3191
3292
  }
3192
3293
  function processReturnValue(func) {
3193
3294
  const { block } = func;
@@ -3195,31 +3296,39 @@ ${input.slice(result.pos)}
3195
3296
  block,
3196
3297
  ({ type }) => type === "ReturnValue"
3197
3298
  );
3198
- if (!values.length)
3299
+ if (!values.length) {
3199
3300
  return false;
3301
+ }
3200
3302
  const ref = makeRef("ret");
3201
- let declared;
3303
+ let declaration;
3202
3304
  values.forEach((value) => {
3203
3305
  value.children = [ref];
3204
- const { ancestor } = findAncestor(
3306
+ const { ancestor, child } = findAncestor(
3205
3307
  value,
3206
3308
  ({ type }) => type === "Declaration",
3207
3309
  isFunction
3208
3310
  );
3209
- if (ancestor)
3210
- return declared = true;
3311
+ if (ancestor) {
3312
+ return declaration ?? (declaration = child);
3313
+ }
3314
+ ;
3211
3315
  return;
3212
3316
  });
3213
- if (!declared) {
3214
- let returnType = func.returnType ?? func.signature?.returnType;
3215
- if (returnType) {
3216
- const { t } = returnType;
3217
- if (t.type === "TypePredicate") {
3218
- returnType = ": boolean";
3219
- } else if (t.type === "AssertsType") {
3220
- returnType = void 0;
3221
- }
3317
+ let returnType = func.returnType ?? func.signature?.returnType;
3318
+ if (returnType) {
3319
+ const { t } = returnType;
3320
+ let m1;
3321
+ if (m1 = t.type, m1 === "TypePredicate") {
3322
+ returnType = ": boolean";
3323
+ } else if (m1 === "AssertsType") {
3324
+ returnType = void 0;
3222
3325
  }
3326
+ }
3327
+ if (declaration) {
3328
+ if (!(declaration.suffix != null)) {
3329
+ declaration.children[1] = declaration.suffix = returnType;
3330
+ }
3331
+ } else {
3223
3332
  block.expressions.unshift([
3224
3333
  getIndent(block.expressions[0]),
3225
3334
  {
@@ -3237,7 +3346,7 @@ ${input.slice(result.pos)}
3237
3346
  r.expression = ref;
3238
3347
  return r.children.splice(-1, 1, " ", ref);
3239
3348
  });
3240
- if (block.children.at(-2)?.type !== "ReturnStatement") {
3349
+ if (!(block.children.at(-2)?.type === "ReturnStatement")) {
3241
3350
  block.expressions.push([
3242
3351
  [getIndent(block.expressions.at(-1))],
3243
3352
  {
@@ -3282,15 +3391,18 @@ ${input.slice(result.pos)}
3282
3391
  return exp;
3283
3392
  }
3284
3393
  if (exp.type === "Literal") {
3285
- if (pre.length === 1 && pre[0].token === "-") {
3286
- const children = [pre[0], ...exp.children];
3287
- if (post)
3288
- exp.children.push(post);
3289
- return {
3290
- type: "Literal",
3291
- children,
3292
- raw: `-${exp.raw}`
3293
- };
3394
+ if (pre.length === 1) {
3395
+ const { token } = pre[0];
3396
+ if (token === "-" || token === "+") {
3397
+ const children = [pre[0], ...exp.children];
3398
+ if (post)
3399
+ exp.children.push(post);
3400
+ return {
3401
+ type: "Literal",
3402
+ children,
3403
+ raw: `${token}${exp.raw}`
3404
+ };
3405
+ }
3294
3406
  }
3295
3407
  }
3296
3408
  const l = pre.length;
@@ -3542,7 +3654,6 @@ ${input.slice(result.pos)}
3542
3654
  dedentBlockSubstitutions,
3543
3655
  deepCopy,
3544
3656
  expressionizeIfClause,
3545
- expressionizeIteration,
3546
3657
  findAncestor,
3547
3658
  forRange,
3548
3659
  gatherBindingCode,
@@ -3637,6 +3748,7 @@ ${input.slice(result.pos)}
3637
3748
  NestedNonAssignmentExtendedExpression,
3638
3749
  ExpressionizedStatementWithTrailingCallExpressions,
3639
3750
  ExpressionizedStatement,
3751
+ _ExpressionizedStatement,
3640
3752
  Expression,
3641
3753
  Arguments,
3642
3754
  ImplicitArguments,
@@ -3728,6 +3840,7 @@ ${input.slice(result.pos)}
3728
3840
  MemberBracketContent,
3729
3841
  SliceParameters,
3730
3842
  AccessStart,
3843
+ PropertyAccessModifier,
3731
3844
  PropertyAccess,
3732
3845
  PropertyGlob,
3733
3846
  PropertyBind,
@@ -3798,12 +3911,14 @@ ${input.slice(result.pos)}
3798
3911
  LiteralContent,
3799
3912
  NullLiteral,
3800
3913
  BooleanLiteral,
3914
+ _BooleanLiteral,
3801
3915
  CoffeeScriptBooleanLiteral,
3802
3916
  Identifier,
3803
3917
  IdentifierName,
3804
3918
  IdentifierReference,
3805
3919
  UpcomingAssignment,
3806
3920
  ArrayLiteral,
3921
+ _ArrayLiteral,
3807
3922
  RangeExpression,
3808
3923
  ArrayLiteralContent,
3809
3924
  NestedElementList,
@@ -3844,7 +3959,10 @@ ${input.slice(result.pos)}
3844
3959
  NotDedentedBinaryOp,
3845
3960
  IdentifierBinaryOp,
3846
3961
  BinaryOp,
3962
+ _BinaryOp,
3847
3963
  BinaryOpSymbol,
3964
+ CoffeeOfOp,
3965
+ NotOp,
3848
3966
  Xor,
3849
3967
  Xnor,
3850
3968
  UnaryOp,
@@ -3855,6 +3973,7 @@ ${input.slice(result.pos)}
3855
3973
  PostfixedExpression,
3856
3974
  NonPipelinePostfixedExpression,
3857
3975
  PostfixStatement,
3976
+ _PostfixStatement,
3858
3977
  Statement,
3859
3978
  EmptyStatement,
3860
3979
  BlockStatement,
@@ -3874,6 +3993,7 @@ ${input.slice(result.pos)}
3874
3993
  NestedBlockExpression,
3875
3994
  BlockExpressionPart,
3876
3995
  IterationStatement,
3996
+ _IterationStatement,
3877
3997
  IterationExpression,
3878
3998
  LoopStatement,
3879
3999
  LoopClause,
@@ -4010,6 +4130,7 @@ ${input.slice(result.pos)}
4010
4130
  RegExpCharacter,
4011
4131
  RegularExpressionFlags,
4012
4132
  TemplateLiteral,
4133
+ _TemplateLiteral,
4013
4134
  TemplateSubstitution,
4014
4135
  TemplateCharacters,
4015
4136
  TemplateBlockCharacters,
@@ -4128,6 +4249,7 @@ ${input.slice(result.pos)}
4128
4249
  Yield,
4129
4250
  JSXImplicitFragment,
4130
4251
  JSXTag,
4252
+ _JSXTag,
4131
4253
  JSXElement,
4132
4254
  JSXSelfClosingElement,
4133
4255
  PushJSXOpeningElement,
@@ -4315,8 +4437,8 @@ ${input.slice(result.pos)}
4315
4437
  var $L8 = $L("--");
4316
4438
  var $L9 = $L("=>");
4317
4439
  var $L10 = $L("\u21D2");
4318
- var $L11 = $L(" ");
4319
- var $L12 = $L(":");
4440
+ var $L11 = $L(":");
4441
+ var $L12 = $L(" ");
4320
4442
  var $L13 = $L("implements");
4321
4443
  var $L14 = $L("<:");
4322
4444
  var $L15 = $L("import");
@@ -4388,78 +4510,78 @@ ${input.slice(result.pos)}
4388
4510
  var $L81 = $L("\u2A75");
4389
4511
  var $L82 = $L("and");
4390
4512
  var $L83 = $L("&&");
4391
- var $L84 = $L("of");
4392
- var $L85 = $L("or");
4393
- var $L86 = $L("||");
4394
- var $L87 = $L("\u2016");
4395
- var $L88 = $L("^^");
4396
- var $L89 = $L("xor");
4397
- var $L90 = $L("xnor");
4398
- var $L91 = $L("??");
4399
- var $L92 = $L("\u2047");
4400
- var $L93 = $L("instanceof");
4401
- var $L94 = $L("\u2208");
4402
- var $L95 = $L("\u220B");
4403
- var $L96 = $L("\u220C");
4404
- var $L97 = $L("\u2209");
4405
- var $L98 = $L("&");
4406
- var $L99 = $L("|");
4407
- var $L100 = $L(";");
4408
- var $L101 = $L("$:");
4409
- var $L102 = $L("break");
4410
- var $L103 = $L("continue");
4411
- var $L104 = $L("debugger");
4412
- var $L105 = $L("assert");
4413
- var $L106 = $L(":=");
4414
- var $L107 = $L("\u2254");
4415
- var $L108 = $L(".=");
4416
- var $L109 = $L("/*");
4417
- var $L110 = $L("*/");
4418
- var $L111 = $L("\\");
4419
- var $L112 = $L("[");
4420
- var $L113 = $L("`");
4421
- var $L114 = $L(")");
4422
- var $L115 = $L("abstract");
4423
- var $L116 = $L("as");
4424
- var $L117 = $L("@");
4425
- var $L118 = $L("@@");
4426
- var $L119 = $L("async");
4427
- var $L120 = $L("await");
4428
- var $L121 = $L("by");
4429
- var $L122 = $L("case");
4430
- var $L123 = $L("catch");
4431
- var $L124 = $L("class");
4432
- var $L125 = $L("#{");
4433
- var $L126 = $L("declare");
4434
- var $L127 = $L("default");
4435
- var $L128 = $L("delete");
4436
- var $L129 = $L("do");
4437
- var $L130 = $L("..");
4438
- var $L131 = $L("\u2025");
4439
- var $L132 = $L("...");
4440
- var $L133 = $L("\u2026");
4441
- var $L134 = $L("::");
4442
- var $L135 = $L('"');
4443
- var $L136 = $L("each");
4444
- var $L137 = $L("else");
4445
- var $L138 = $L("export");
4446
- var $L139 = $L("extends");
4447
- var $L140 = $L("finally");
4448
- var $L141 = $L("for");
4449
- var $L142 = $L("from");
4450
- var $L143 = $L("function");
4451
- var $L144 = $L("get");
4452
- var $L145 = $L("set");
4453
- var $L146 = $L("#");
4454
- var $L147 = $L("if");
4455
- var $L148 = $L("in");
4456
- var $L149 = $L("let");
4457
- var $L150 = $L("const");
4458
- var $L151 = $L("is");
4459
- var $L152 = $L("loop");
4460
- var $L153 = $L("new");
4461
- var $L154 = $L("not");
4462
- var $L155 = $L("<");
4513
+ var $L84 = $L("or");
4514
+ var $L85 = $L("||");
4515
+ var $L86 = $L("\u2016");
4516
+ var $L87 = $L("^^");
4517
+ var $L88 = $L("xor");
4518
+ var $L89 = $L("xnor");
4519
+ var $L90 = $L("??");
4520
+ var $L91 = $L("\u2047");
4521
+ var $L92 = $L("instanceof");
4522
+ var $L93 = $L("\u2208");
4523
+ var $L94 = $L("\u220B");
4524
+ var $L95 = $L("\u220C");
4525
+ var $L96 = $L("\u2209");
4526
+ var $L97 = $L("&");
4527
+ var $L98 = $L("|");
4528
+ var $L99 = $L(";");
4529
+ var $L100 = $L("$:");
4530
+ var $L101 = $L("break");
4531
+ var $L102 = $L("continue");
4532
+ var $L103 = $L("debugger");
4533
+ var $L104 = $L("assert");
4534
+ var $L105 = $L(":=");
4535
+ var $L106 = $L("\u2254");
4536
+ var $L107 = $L(".=");
4537
+ var $L108 = $L("/*");
4538
+ var $L109 = $L("*/");
4539
+ var $L110 = $L("\\");
4540
+ var $L111 = $L(")");
4541
+ var $L112 = $L("abstract");
4542
+ var $L113 = $L("as");
4543
+ var $L114 = $L("@");
4544
+ var $L115 = $L("@@");
4545
+ var $L116 = $L("async");
4546
+ var $L117 = $L("await");
4547
+ var $L118 = $L("`");
4548
+ var $L119 = $L("by");
4549
+ var $L120 = $L("case");
4550
+ var $L121 = $L("catch");
4551
+ var $L122 = $L("class");
4552
+ var $L123 = $L("#{");
4553
+ var $L124 = $L("declare");
4554
+ var $L125 = $L("default");
4555
+ var $L126 = $L("delete");
4556
+ var $L127 = $L("do");
4557
+ var $L128 = $L("..");
4558
+ var $L129 = $L("\u2025");
4559
+ var $L130 = $L("...");
4560
+ var $L131 = $L("\u2026");
4561
+ var $L132 = $L("::");
4562
+ var $L133 = $L('"');
4563
+ var $L134 = $L("each");
4564
+ var $L135 = $L("else");
4565
+ var $L136 = $L("export");
4566
+ var $L137 = $L("extends");
4567
+ var $L138 = $L("finally");
4568
+ var $L139 = $L("for");
4569
+ var $L140 = $L("from");
4570
+ var $L141 = $L("function");
4571
+ var $L142 = $L("get");
4572
+ var $L143 = $L("set");
4573
+ var $L144 = $L("#");
4574
+ var $L145 = $L("if");
4575
+ var $L146 = $L("in");
4576
+ var $L147 = $L("let");
4577
+ var $L148 = $L("const");
4578
+ var $L149 = $L("is");
4579
+ var $L150 = $L("loop");
4580
+ var $L151 = $L("new");
4581
+ var $L152 = $L("not");
4582
+ var $L153 = $L("of");
4583
+ var $L154 = $L("<");
4584
+ var $L155 = $L("[");
4463
4585
  var $L156 = $L("operator");
4464
4586
  var $L157 = $L("own");
4465
4587
  var $L158 = $L("public");
@@ -4515,77 +4637,94 @@ ${input.slice(result.pos)}
4515
4637
  var $L208 = $L("???");
4516
4638
  var $L209 = $L("[]");
4517
4639
  var $L210 = $L("civet");
4518
- var $R0 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4519
- var $R1 = $R(new RegExp("[0-9]", "suy"));
4520
- var $R2 = $R(new RegExp("[)}]", "suy"));
4521
- var $R3 = $R(new RegExp("[&]", "suy"));
4522
- var $R4 = $R(new RegExp("[!~+-]+", "suy"));
4523
- var $R5 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4524
- var $R6 = $R(new RegExp("[!+-]", "suy"));
4525
- var $R7 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
4526
- var $R8 = $R(new RegExp("!\\^\\^?", "suy"));
4527
- var $R9 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])", "suy"));
4528
- var $R10 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4529
- var $R11 = $R(new RegExp('[^;"\\s]+', "suy"));
4530
- var $R12 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4531
- var $R13 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4532
- var $R14 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4533
- var $R15 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4534
- var $R16 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4535
- var $R17 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4536
- var $R18 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4537
- var $R19 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4538
- var $R20 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4539
- var $R21 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4540
- var $R22 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4541
- var $R23 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4542
- var $R24 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4543
- var $R25 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4544
- var $R26 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4545
- var $R27 = $R(new RegExp("(?:\\\\.)", "suy"));
4546
- var $R28 = $R(new RegExp("[\\s]+", "suy"));
4547
- var $R29 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4548
- var $R30 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4549
- var $R31 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4550
- var $R32 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4551
- var $R33 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4552
- var $R34 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4553
- var $R35 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
4554
- var $R36 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
4555
- var $R37 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
4556
- var $R38 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
4557
- var $R39 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
4558
- var $R40 = $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"));
4559
- var $R41 = $R(new RegExp("(?=\\/|#)", "suy"));
4560
- var $R42 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
4561
- var $R43 = $R(new RegExp(".", "suy"));
4562
- var $R44 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
4563
- var $R45 = $R(new RegExp("[^]*?###", "suy"));
4564
- var $R46 = $R(new RegExp("###(?!#)", "suy"));
4565
- var $R47 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
4566
- var $R48 = $R(new RegExp("(?=[ \\t\\/])", "suy"));
4567
- var $R49 = $R(new RegExp("[ \\t]+", "suy"));
4568
- var $R50 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
4569
- var $R51 = $R(new RegExp("['\u2019]s", "suy"));
4570
- var $R52 = $R(new RegExp("\\s", "suy"));
4571
- var $R53 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
4572
- var $R54 = $R(new RegExp("[\\s>]|\\/>", "suy"));
4573
- var $R55 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
4574
- var $R56 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
4575
- var $R57 = $R(new RegExp("[<>]", "suy"));
4576
- var $R58 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
4577
- var $R59 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
4578
- var $R60 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
4579
- var $R61 = $R(new RegExp("[+-]?", "suy"));
4580
- var $R62 = $R(new RegExp("[+-]", "suy"));
4581
- var $R63 = $R(new RegExp("#![^\\r\\n]*", "suy"));
4582
- var $R64 = $R(new RegExp("[\\t ]*", "suy"));
4583
- var $R65 = $R(new RegExp("[\\s]*", "suy"));
4584
- var $R66 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
4585
- var $R67 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
4586
- var $R68 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
4587
- var $R69 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4588
- var $R70 = $R(new RegExp("[ \\t]*", "suy"));
4640
+ var $R0 = $R(new RegExp("(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
4641
+ var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4642
+ var $R2 = $R(new RegExp("[0-9]", "suy"));
4643
+ var $R3 = $R(new RegExp("[ \\t]", "suy"));
4644
+ var $R4 = $R(new RegExp("(?=['\"`])", "suy"));
4645
+ var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4646
+ var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4647
+ var $R7 = $R(new RegExp("[)}]", "suy"));
4648
+ var $R8 = $R(new RegExp("[&]", "suy"));
4649
+ var $R9 = $R(new RegExp("[!~+-]+", "suy"));
4650
+ var $R10 = $R(new RegExp(`(?=[0-9.'"tfyno])`, "suy"));
4651
+ var $R11 = $R(new RegExp("(?=true|false|yes|no|on|off)", "suy"));
4652
+ var $R12 = $R(new RegExp("(?=\\p{ID_Start}|[_$])", "suy"));
4653
+ var $R13 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4654
+ var $R14 = $R(new RegExp("(?=\\[)", "suy"));
4655
+ var $R15 = $R(new RegExp("[!+-]", "suy"));
4656
+ var $R16 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>+-])", "suy"));
4657
+ var $R17 = $R(new RegExp("<(?!\\p{ID_Start}|[_$])", "suy"));
4658
+ var $R18 = $R(new RegExp("!\\^\\^?", "suy"));
4659
+ var $R19 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])", "suy"));
4660
+ var $R20 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
4661
+ var $R21 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
4662
+ var $R22 = $R(new RegExp("(?=[\\s\\),])", "suy"));
4663
+ var $R23 = $R(new RegExp('[^;"\\s]+', "suy"));
4664
+ var $R24 = $R(new RegExp("(?=[0-9.])", "suy"));
4665
+ var $R25 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
4666
+ var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
4667
+ var $R27 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
4668
+ var $R28 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
4669
+ var $R29 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
4670
+ var $R30 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
4671
+ var $R31 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
4672
+ var $R32 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
4673
+ var $R33 = $R(new RegExp("(?=[0-9])", "suy"));
4674
+ var $R34 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
4675
+ var $R35 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
4676
+ var $R36 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
4677
+ var $R37 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
4678
+ var $R38 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
4679
+ var $R39 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
4680
+ var $R40 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
4681
+ var $R41 = $R(new RegExp("(?:\\\\.)", "suy"));
4682
+ var $R42 = $R(new RegExp("[\\s]+", "suy"));
4683
+ var $R43 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
4684
+ var $R44 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
4685
+ var $R45 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
4686
+ var $R46 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
4687
+ var $R47 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
4688
+ var $R48 = $R(new RegExp("(?=[`'\"])", "suy"));
4689
+ var $R49 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
4690
+ var $R50 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
4691
+ var $R51 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
4692
+ var $R52 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
4693
+ var $R53 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
4694
+ var $R54 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
4695
+ 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"));
4696
+ var $R56 = $R(new RegExp("(?=\\/|#)", "suy"));
4697
+ var $R57 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
4698
+ var $R58 = $R(new RegExp(".", "suy"));
4699
+ var $R59 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
4700
+ var $R60 = $R(new RegExp("[^]*?###", "suy"));
4701
+ var $R61 = $R(new RegExp("###(?!#)", "suy"));
4702
+ var $R62 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
4703
+ var $R63 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
4704
+ var $R64 = $R(new RegExp("[ \\t]+", "suy"));
4705
+ var $R65 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
4706
+ var $R66 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
4707
+ var $R67 = $R(new RegExp("['\u2019]s", "suy"));
4708
+ var $R68 = $R(new RegExp("\\s", "suy"));
4709
+ var $R69 = $R(new RegExp("(?=[<])", "suy"));
4710
+ var $R70 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
4711
+ var $R71 = $R(new RegExp("[\\s>]|\\/>", "suy"));
4712
+ var $R72 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
4713
+ var $R73 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
4714
+ var $R74 = $R(new RegExp("[<>]", "suy"));
4715
+ var $R75 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
4716
+ var $R76 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
4717
+ var $R77 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
4718
+ var $R78 = $R(new RegExp("[+-]?", "suy"));
4719
+ var $R79 = $R(new RegExp("[+-]", "suy"));
4720
+ var $R80 = $R(new RegExp("#![^\\r\\n]*", "suy"));
4721
+ var $R81 = $R(new RegExp("[\\t ]*", "suy"));
4722
+ var $R82 = $R(new RegExp("[\\s]*", "suy"));
4723
+ var $R83 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
4724
+ var $R84 = $R(new RegExp("\\/\\/\\/[^\\r\\n]*", "suy"));
4725
+ var $R85 = $R(new RegExp("(?=[ \\t\\r\\n\\/#]|$)", "suy"));
4726
+ var $R86 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
4727
+ var $R87 = $R(new RegExp("[ \\t]*", "suy"));
4589
4728
  var Program$0 = $TS($S(Reset, Init, $E(EOS), TopLevelStatements, __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4590
4729
  var statements = $4;
4591
4730
  processProgram({
@@ -4716,16 +4855,22 @@ ${input.slice(result.pos)}
4716
4855
  function ExpressionizedStatementWithTrailingCallExpressions(ctx, state) {
4717
4856
  return $EVENT(ctx, state, "ExpressionizedStatementWithTrailingCallExpressions", ExpressionizedStatementWithTrailingCallExpressions$0);
4718
4857
  }
4719
- var ExpressionizedStatement$0 = DebuggerExpression;
4720
- var ExpressionizedStatement$1 = IfExpression;
4721
- var ExpressionizedStatement$2 = UnlessExpression;
4722
- var ExpressionizedStatement$3 = IterationExpression;
4723
- var ExpressionizedStatement$4 = SwitchExpression;
4724
- var ExpressionizedStatement$5 = ThrowExpression;
4725
- var ExpressionizedStatement$6 = TryExpression;
4726
- var ExpressionizedStatement$$ = [ExpressionizedStatement$0, ExpressionizedStatement$1, ExpressionizedStatement$2, ExpressionizedStatement$3, ExpressionizedStatement$4, ExpressionizedStatement$5, ExpressionizedStatement$6];
4858
+ var ExpressionizedStatement$0 = $T($S($EXPECT($R0, "ExpressionizedStatement /(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)/"), _ExpressionizedStatement), function(value) {
4859
+ return value[1];
4860
+ });
4727
4861
  function ExpressionizedStatement(ctx, state) {
4728
- return $EVENT_C(ctx, state, "ExpressionizedStatement", ExpressionizedStatement$$);
4862
+ return $EVENT(ctx, state, "ExpressionizedStatement", ExpressionizedStatement$0);
4863
+ }
4864
+ var _ExpressionizedStatement$0 = DebuggerExpression;
4865
+ var _ExpressionizedStatement$1 = IfExpression;
4866
+ var _ExpressionizedStatement$2 = UnlessExpression;
4867
+ var _ExpressionizedStatement$3 = IterationExpression;
4868
+ var _ExpressionizedStatement$4 = SwitchExpression;
4869
+ var _ExpressionizedStatement$5 = ThrowExpression;
4870
+ var _ExpressionizedStatement$6 = TryExpression;
4871
+ var _ExpressionizedStatement$$ = [_ExpressionizedStatement$0, _ExpressionizedStatement$1, _ExpressionizedStatement$2, _ExpressionizedStatement$3, _ExpressionizedStatement$4, _ExpressionizedStatement$5, _ExpressionizedStatement$6];
4872
+ function _ExpressionizedStatement(ctx, state) {
4873
+ return $EVENT_C(ctx, state, "_ExpressionizedStatement", _ExpressionizedStatement$$);
4729
4874
  }
4730
4875
  var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
4731
4876
  if ($2.length == 0)
@@ -4746,7 +4891,7 @@ ${input.slice(result.pos)}
4746
4891
  function Arguments(ctx, state) {
4747
4892
  return $EVENT_C(ctx, state, "Arguments", Arguments$$);
4748
4893
  }
4749
- var ImplicitArguments$0 = $TS($S($E($S(TypeArguments, $N(ImplementsToken))), ApplicationStart, InsertOpenParen, $Q(_), NonPipelineArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4894
+ var ImplicitArguments$0 = $TS($S($E($S(TypeArguments, $N(ImplementsToken))), ApplicationStart, InsertOpenParen, $E(_), NonPipelineArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4750
4895
  var ta = $1;
4751
4896
  var open = $3;
4752
4897
  var ws = $4;
@@ -4770,7 +4915,7 @@ ${input.slice(result.pos)}
4770
4915
  function ApplicationStart(ctx, state) {
4771
4916
  return $EVENT_C(ctx, state, "ApplicationStart", ApplicationStart$$);
4772
4917
  }
4773
- var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R0, "ForbiddenImplicitCalls /(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
4918
+ var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R1, "ForbiddenImplicitCalls /(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
4774
4919
  var ForbiddenImplicitCalls$1 = $EXPECT($L2, 'ForbiddenImplicitCalls "/ "');
4775
4920
  var ForbiddenImplicitCalls$2 = $S(ClassImplicitCallForbidden, $C(Class, AtAt));
4776
4921
  var ForbiddenImplicitCalls$3 = $S(Identifier, $EXPECT($L3, 'ForbiddenImplicitCalls "="'), Whitespace);
@@ -4802,7 +4947,7 @@ ${input.slice(result.pos)}
4802
4947
  function ArgumentsWithTrailingMemberExpressions(ctx, state) {
4803
4948
  return $EVENT(ctx, state, "ArgumentsWithTrailingMemberExpressions", ArgumentsWithTrailingMemberExpressions$0);
4804
4949
  }
4805
- var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, 'TrailingMemberExpressions "?"')), $EXPECT($L6, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
4950
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, 'TrailingMemberExpressions "?"')), $EXPECT($L6, 'TrailingMemberExpressions "."'), $N($EXPECT($R2, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
4806
4951
  return $1.concat($2);
4807
4952
  });
4808
4953
  function TrailingMemberExpressions(ctx, state) {
@@ -4816,7 +4961,7 @@ ${input.slice(result.pos)}
4816
4961
  function AllowedTrailingMemberExpressions(ctx, state) {
4817
4962
  return $EVENT_C(ctx, state, "AllowedTrailingMemberExpressions", AllowedTrailingMemberExpressions$$);
4818
4963
  }
4819
- var TrailingCallExpressions$0 = $P($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, 'TrailingCallExpressions "?"')), $EXPECT($L6, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R1, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
4964
+ var TrailingCallExpressions$0 = $P($S(IndentedAtLeast, $Y($S($E($EXPECT($L5, 'TrailingCallExpressions "?"')), $EXPECT($L6, 'TrailingCallExpressions "."'), $N($R$0($EXPECT($R2, "TrailingCallExpressions /[0-9]/"))))), $P(CallExpressionRest)));
4820
4965
  function TrailingCallExpressions(ctx, state) {
4821
4966
  return $EVENT(ctx, state, "TrailingCallExpressions", TrailingCallExpressions$0);
4822
4967
  }
@@ -5134,7 +5279,7 @@ ${input.slice(result.pos)}
5134
5279
  function FatArrow(ctx, state) {
5135
5280
  return $EVENT(ctx, state, "FatArrow", FatArrow$0);
5136
5281
  }
5137
- var TrailingDeclaration$0 = $S($Q(_), $C(ConstAssignment, LetAssignment));
5282
+ var TrailingDeclaration$0 = $S($E(_), $C(ConstAssignment, LetAssignment));
5138
5283
  function TrailingDeclaration(ctx, state) {
5139
5284
  return $EVENT(ctx, state, "TrailingDeclaration", TrailingDeclaration$0);
5140
5285
  }
@@ -5157,7 +5302,7 @@ ${input.slice(result.pos)}
5157
5302
  return $EVENT(ctx, state, "ConditionalExpression", ConditionalExpression$0);
5158
5303
  }
5159
5304
  var TernaryRest$0 = NestedTernaryRest;
5160
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L11, 'TernaryRest " "')), $E(_), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5305
+ 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) {
5161
5306
  return $0.slice(2);
5162
5307
  });
5163
5308
  var TernaryRest$$ = [TernaryRest$0, TernaryRest$1];
@@ -5186,6 +5331,18 @@ ${input.slice(result.pos)}
5186
5331
  type: "PipelineExpression",
5187
5332
  children: [ws, ref, body]
5188
5333
  };
5334
+ const parameters = {
5335
+ type: "Parameters",
5336
+ children: [ref],
5337
+ names: []
5338
+ };
5339
+ const expressions = [arrowBody];
5340
+ const block = {
5341
+ bare: true,
5342
+ expressions,
5343
+ children: [expressions]
5344
+ };
5345
+ const children = [parameters, " => ", block];
5189
5346
  return {
5190
5347
  type: "ArrowFunction",
5191
5348
  signature: {
@@ -5193,10 +5350,12 @@ ${input.slice(result.pos)}
5193
5350
  children: []
5194
5351
  }
5195
5352
  },
5196
- children: [ref, " => ", arrowBody],
5353
+ children,
5197
5354
  ref,
5198
5355
  body: [arrowBody],
5199
- ampersandBlock: true
5356
+ ampersandBlock: true,
5357
+ parameters,
5358
+ block
5200
5359
  };
5201
5360
  }
5202
5361
  return {
@@ -5271,7 +5430,7 @@ ${input.slice(result.pos)}
5271
5430
  function ClassDeclaration(ctx, state) {
5272
5431
  return $EVENT(ctx, state, "ClassDeclaration", ClassDeclaration$0);
5273
5432
  }
5274
- var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L12, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5433
+ var ClassExpression$0 = $S($E(Decorators), $E($S(Abstract, __)), Class, $N($EXPECT($L11, 'ClassExpression ":"')), $E(ClassBinding), $E(ClassHeritage), ClassBody);
5275
5434
  function ClassExpression(ctx, state) {
5276
5435
  return $EVENT(ctx, state, "ClassExpression", ClassExpression$0);
5277
5436
  }
@@ -5291,7 +5450,7 @@ ${input.slice(result.pos)}
5291
5450
  function ExtendsClause(ctx, state) {
5292
5451
  return $EVENT(ctx, state, "ExtendsClause", ExtendsClause$0);
5293
5452
  }
5294
- var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L11, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5453
+ var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L12, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5295
5454
  var l = $1;
5296
5455
  var ws = $2;
5297
5456
  var lt = $3;
@@ -5329,7 +5488,7 @@ ${input.slice(result.pos)}
5329
5488
  function ImplementsClause(ctx, state) {
5330
5489
  return $EVENT(ctx, state, "ImplementsClause", ImplementsClause$0);
5331
5490
  }
5332
- var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L11, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5491
+ var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L12, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
5333
5492
  var l = $1;
5334
5493
  var ws = $2;
5335
5494
  var token = $3;
@@ -5559,7 +5718,7 @@ ${input.slice(result.pos)}
5559
5718
  function AtThis(ctx, state) {
5560
5719
  return $EVENT(ctx, state, "AtThis", AtThis$0);
5561
5720
  }
5562
- var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L6, 'LeftHandSideExpression "."'), $EXPECT($L12, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
5721
+ var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L6, 'LeftHandSideExpression "."'), $EXPECT($L11, 'LeftHandSideExpression ":"'))), __)), CallExpression, $E(TypeArguments));
5563
5722
  var LeftHandSideExpression$1 = CallExpression;
5564
5723
  var LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1];
5565
5724
  function LeftHandSideExpression(ctx, state) {
@@ -5597,13 +5756,14 @@ ${input.slice(result.pos)}
5597
5756
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5598
5757
  }
5599
5758
  var CallExpressionRest$0 = MemberExpressionRest;
5600
- var CallExpressionRest$1 = $TV($C(TemplateLiteral, StringLiteral), function($skip, $loc, $0, $1) {
5601
- if ($1.type === "StringLiteral") {
5602
- return "`" + $1.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5759
+ var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
5760
+ var literal = $2;
5761
+ if (literal.type === "StringLiteral") {
5762
+ return "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5603
5763
  }
5604
- return $1;
5764
+ return literal;
5605
5765
  });
5606
- var CallExpressionRest$2 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
5766
+ var CallExpressionRest$2 = $TS($S($E(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
5607
5767
  if (!$1)
5608
5768
  return $2;
5609
5769
  return [$1, ...$2];
@@ -5612,17 +5772,19 @@ ${input.slice(result.pos)}
5612
5772
  function CallExpressionRest(ctx, state) {
5613
5773
  return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
5614
5774
  }
5615
- var OptionalShorthand$0 = $TS($S($Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3) {
5775
+ var OptionalShorthand$0 = $TS($S($EXPECT($R5, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
5616
5776
  return {
5617
5777
  type: "Optional",
5618
5778
  children: $0
5619
5779
  };
5620
5780
  });
5781
+ var OptionalShorthand$1 = NonNullAssertion;
5782
+ var OptionalShorthand$$ = [OptionalShorthand$0, OptionalShorthand$1];
5621
5783
  function OptionalShorthand(ctx, state) {
5622
- return $EVENT(ctx, state, "OptionalShorthand", OptionalShorthand$0);
5784
+ return $EVENT_C(ctx, state, "OptionalShorthand", OptionalShorthand$$);
5623
5785
  }
5624
5786
  var OptionalDot$0 = $S($Q(InlineComment), Dot);
5625
- var OptionalDot$1 = $S(InsertDot, $Q(InlineComment));
5787
+ var OptionalDot$1 = InsertDot;
5626
5788
  var OptionalDot$$ = [OptionalDot$0, OptionalDot$1];
5627
5789
  function OptionalDot(ctx, state) {
5628
5790
  return $EVENT_C(ctx, state, "OptionalDot", OptionalDot$$);
@@ -5653,9 +5815,9 @@ ${input.slice(result.pos)}
5653
5815
  function MemberBase(ctx, state) {
5654
5816
  return $EVENT_C(ctx, state, "MemberBase", MemberBase$$);
5655
5817
  }
5656
- var MemberExpressionRest$0 = $TS($S($Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2) {
5657
- var comments = $1;
5658
- var body = $2;
5818
+ var MemberExpressionRest$0 = $TS($S($EXPECT($R6, "MemberExpressionRest /(?=[\\/\\[{?.!@'\u2019:])/"), $Q(InlineComment), MemberExpressionRestBody), function($skip, $loc, $0, $1, $2, $3) {
5819
+ var comments = $2;
5820
+ var body = $3;
5659
5821
  if (Array.isArray(body))
5660
5822
  return [...comments, ...body];
5661
5823
  return {
@@ -5666,7 +5828,7 @@ ${input.slice(result.pos)}
5666
5828
  function MemberExpressionRest(ctx, state) {
5667
5829
  return $EVENT(ctx, state, "MemberExpressionRest", MemberExpressionRest$0);
5668
5830
  }
5669
- var MemberExpressionRestBody$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), $Q(InlineComment), MemberBracketContent), function($skip, $loc, $0, $1, $2, $3) {
5831
+ var MemberExpressionRestBody$0 = $TS($S($E(OptionalShorthand), $Q(InlineComment), MemberBracketContent), function($skip, $loc, $0, $1, $2, $3) {
5670
5832
  var dot = $1;
5671
5833
  var comments = $2;
5672
5834
  var content = $3;
@@ -5710,35 +5872,21 @@ ${input.slice(result.pos)}
5710
5872
  expression
5711
5873
  };
5712
5874
  });
5713
- var MemberBracketContent$1 = $TS($S(Dot, $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
5714
- var dot = $1;
5715
- var str = $2;
5716
- if (Array.isArray(dot))
5717
- dot = dot[0];
5718
- return {
5719
- type: "Index",
5720
- children: [
5721
- { token: "[", $loc: dot.$loc },
5722
- str,
5723
- "]"
5724
- ]
5725
- };
5726
- });
5727
- var MemberBracketContent$2 = $TS($S(Dot, IntegerLiteral), function($skip, $loc, $0, $1, $2) {
5875
+ var MemberBracketContent$1 = $TS($S(Dot, $C(TemplateLiteral, StringLiteral, IntegerLiteral)), function($skip, $loc, $0, $1, $2) {
5728
5876
  var dot = $1;
5729
- var num = $2;
5877
+ var literal = $2;
5730
5878
  if (Array.isArray(dot))
5731
5879
  dot = dot[0];
5732
5880
  return {
5733
5881
  type: "Index",
5734
5882
  children: [
5735
5883
  { token: "[", $loc: dot.$loc },
5736
- num,
5884
+ literal,
5737
5885
  "]"
5738
5886
  ]
5739
5887
  };
5740
5888
  });
5741
- var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L18, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
5889
+ var MemberBracketContent$2 = $TS($S(Dot, $EXPECT($L18, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
5742
5890
  var dot = $1;
5743
5891
  var neg = $2;
5744
5892
  var num = $3;
@@ -5748,7 +5896,7 @@ ${input.slice(result.pos)}
5748
5896
  { type: "Call", children: ["(", neg, num, ")"] }
5749
5897
  ];
5750
5898
  });
5751
- var MemberBracketContent$$ = [MemberBracketContent$0, MemberBracketContent$1, MemberBracketContent$2, MemberBracketContent$3];
5899
+ var MemberBracketContent$$ = [MemberBracketContent$0, MemberBracketContent$1, MemberBracketContent$2];
5752
5900
  function MemberBracketContent(ctx, state) {
5753
5901
  return $EVENT_C(ctx, state, "MemberBracketContent", MemberBracketContent$$);
5754
5902
  }
@@ -5816,7 +5964,7 @@ ${input.slice(result.pos)}
5816
5964
  function SliceParameters(ctx, state) {
5817
5965
  return $EVENT_C(ctx, state, "SliceParameters", SliceParameters$$);
5818
5966
  }
5819
- var AccessStart$0 = $TS($S($E($C(QuestionMark, NonNullAssertion)), Dot, $N(Dot)), function($skip, $loc, $0, $1, $2, $3) {
5967
+ var AccessStart$0 = $TS($S($E(PropertyAccessModifier), Dot, $N(Dot)), function($skip, $loc, $0, $1, $2, $3) {
5820
5968
  if ($1)
5821
5969
  return [$1, $2];
5822
5970
  return $2;
@@ -5824,6 +5972,12 @@ ${input.slice(result.pos)}
5824
5972
  function AccessStart(ctx, state) {
5825
5973
  return $EVENT(ctx, state, "AccessStart", AccessStart$0);
5826
5974
  }
5975
+ var PropertyAccessModifier$0 = QuestionMark;
5976
+ var PropertyAccessModifier$1 = NonNullAssertion;
5977
+ var PropertyAccessModifier$$ = [PropertyAccessModifier$0, PropertyAccessModifier$1];
5978
+ function PropertyAccessModifier(ctx, state) {
5979
+ return $EVENT_C(ctx, state, "PropertyAccessModifier", PropertyAccessModifier$$);
5980
+ }
5827
5981
  var PropertyAccess$0 = $TS($S(AccessStart, $Q(InlineComment), $C(IdentifierName, PrivateIdentifier)), function($skip, $loc, $0, $1, $2, $3) {
5828
5982
  var access = $1;
5829
5983
  var comments = $2;
@@ -5856,7 +6010,7 @@ ${input.slice(result.pos)}
5856
6010
  function PropertyAccess(ctx, state) {
5857
6011
  return $EVENT_C(ctx, state, "PropertyAccess", PropertyAccess$$);
5858
6012
  }
5859
- var PropertyGlob$0 = $TS($S($S($E($C(QuestionMark, NonNullAssertion)), OptionalDot), $Q(InlineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
6013
+ var PropertyGlob$0 = $TS($S($S($E(PropertyAccessModifier), OptionalDot), $Q(InlineComment), BracedObjectLiteral), function($skip, $loc, $0, $1, $2, $3) {
5860
6014
  var dot = $1;
5861
6015
  var object = $3;
5862
6016
  return {
@@ -5869,7 +6023,7 @@ ${input.slice(result.pos)}
5869
6023
  function PropertyGlob(ctx, state) {
5870
6024
  return $EVENT(ctx, state, "PropertyGlob", PropertyGlob$0);
5871
6025
  }
5872
- var PropertyBind$0 = $TS($S($E($C(QuestionMark, NonNullAssertion)), At, OptionalDot, $C(IdentifierName, PrivateIdentifier)), function($skip, $loc, $0, $1, $2, $3, $4) {
6026
+ var PropertyBind$0 = $TS($S($E(PropertyAccessModifier), At, OptionalDot, $C(IdentifierName, PrivateIdentifier)), function($skip, $loc, $0, $1, $2, $3, $4) {
5873
6027
  var modifier = $1;
5874
6028
  var dot = $3;
5875
6029
  var id = $4;
@@ -5884,7 +6038,7 @@ ${input.slice(result.pos)}
5884
6038
  return $EVENT(ctx, state, "PropertyBind", PropertyBind$0);
5885
6039
  }
5886
6040
  var SuperProperty$0 = $S(Super, MemberBracketContent);
5887
- var SuperProperty$1 = $S(Super, $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
6041
+ var SuperProperty$1 = $S(Super, $N(PropertyAccessModifier), PropertyAccess);
5888
6042
  var SuperProperty$$ = [SuperProperty$0, SuperProperty$1];
5889
6043
  function SuperProperty(ctx, state) {
5890
6044
  return $EVENT_C(ctx, state, "SuperProperty", SuperProperty$$);
@@ -6015,8 +6169,8 @@ ${input.slice(result.pos)}
6015
6169
  function ParameterElement(ctx, state) {
6016
6170
  return $EVENT(ctx, state, "ParameterElement", ParameterElement$0);
6017
6171
  }
6018
- var ParameterElementDelimiter$0 = $S($Q(_), Comma);
6019
- var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R2, "ParameterElementDelimiter /[)}]/"))));
6172
+ var ParameterElementDelimiter$0 = $S($E(_), Comma);
6173
+ var ParameterElementDelimiter$1 = $Y($S(__, $R$0($EXPECT($R7, "ParameterElementDelimiter /[)}]/"))));
6020
6174
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
6021
6175
  return value[1];
6022
6176
  });
@@ -6090,10 +6244,14 @@ ${input.slice(result.pos)}
6090
6244
  return $EVENT_C(ctx, state, "BindingPattern", BindingPattern$$);
6091
6245
  }
6092
6246
  var ObjectBindingPattern$0 = $TS($S($E(_), OpenBrace, ObjectBindingPatternContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6247
+ var ws1 = $1;
6248
+ var open = $2;
6093
6249
  var c = $3;
6250
+ var ws2 = $4;
6251
+ var close = $5;
6094
6252
  return {
6095
6253
  type: "ObjectBindingPattern",
6096
- children: [$1, $2, c.children, $4, $5],
6254
+ children: [ws1, open, c.children, ws2, close],
6097
6255
  names: c.names,
6098
6256
  properties: c.children
6099
6257
  };
@@ -6126,13 +6284,17 @@ ${input.slice(result.pos)}
6126
6284
  return $EVENT(ctx, state, "BindingPropertyList", BindingPropertyList$0);
6127
6285
  }
6128
6286
  var ArrayBindingPattern$0 = $TS($S($E(_), OpenBracket, ArrayBindingPatternContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6287
+ var ws1 = $1;
6288
+ var open = $2;
6129
6289
  var c = $3;
6290
+ var ws2 = $4;
6291
+ var close = $5;
6130
6292
  return {
6131
6293
  ...c,
6132
6294
  // names, blockPrefix, length
6133
6295
  type: "ArrayBindingPattern",
6134
6296
  elements: c.children,
6135
- children: [$1, $2, c.children, $4, $5]
6297
+ children: [ws1, open, c.children, ws2, close]
6136
6298
  };
6137
6299
  });
6138
6300
  function ArrayBindingPattern(ctx, state) {
@@ -6434,6 +6596,14 @@ ${input.slice(result.pos)}
6434
6596
  });
6435
6597
  var FunctionExpression$1 = $TV($EXPECT($L22, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
6436
6598
  const ref = makeRef("$"), body = [ref];
6599
+ const parameters = {
6600
+ type: "Parameters",
6601
+ children: [ref],
6602
+ names: []
6603
+ };
6604
+ const block = {
6605
+ expressions: [ref]
6606
+ };
6437
6607
  return {
6438
6608
  type: "ArrowFunction",
6439
6609
  signature: {
@@ -6442,7 +6612,9 @@ ${input.slice(result.pos)}
6442
6612
  children: [ref, " => ", body],
6443
6613
  ref,
6444
6614
  body,
6445
- ampersandBlock: true
6615
+ ampersandBlock: true,
6616
+ block,
6617
+ parameters
6446
6618
  };
6447
6619
  });
6448
6620
  var FunctionExpression$2 = AmpersandFunctionExpression;
@@ -6485,7 +6657,18 @@ ${input.slice(result.pos)}
6485
6657
  children: [prefix, body, void 0]
6486
6658
  };
6487
6659
  }
6488
- const children = [ref, " => ", body];
6660
+ const parameters = {
6661
+ type: "Parameters",
6662
+ children: [ref],
6663
+ names: []
6664
+ };
6665
+ const expressions = [body];
6666
+ const block = {
6667
+ bare: true,
6668
+ expressions,
6669
+ children: [expressions]
6670
+ };
6671
+ const children = [parameters, " => ", block];
6489
6672
  const async = hasAwait(body);
6490
6673
  if (async) {
6491
6674
  children.unshift("async ");
@@ -6500,7 +6683,9 @@ ${input.slice(result.pos)}
6500
6683
  children,
6501
6684
  ref,
6502
6685
  body,
6503
- ampersandBlock: true
6686
+ ampersandBlock: true,
6687
+ block,
6688
+ parameters
6504
6689
  };
6505
6690
  });
6506
6691
  function AmpersandFunctionExpression(ctx, state) {
@@ -6574,7 +6759,7 @@ ${input.slice(result.pos)}
6574
6759
  function AmpersandBlockRHS(ctx, state) {
6575
6760
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
6576
6761
  }
6577
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S($N($EXPECT($R3, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3) {
6762
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3) {
6578
6763
  var callExpRest = $1;
6579
6764
  var unaryPostfix = $2;
6580
6765
  var binopRHS = $3;
@@ -6604,7 +6789,7 @@ ${input.slice(result.pos)}
6604
6789
  function AmpersandBlockRHSBody(ctx, state) {
6605
6790
  return $EVENT(ctx, state, "AmpersandBlockRHSBody", AmpersandBlockRHSBody$0);
6606
6791
  }
6607
- var AmpersandUnaryPrefix$0 = $R$0($EXPECT($R4, "AmpersandUnaryPrefix /[!~+-]+/"));
6792
+ var AmpersandUnaryPrefix$0 = $R$0($EXPECT($R9, "AmpersandUnaryPrefix /[!~+-]+/"));
6608
6793
  function AmpersandUnaryPrefix(ctx, state) {
6609
6794
  return $EVENT(ctx, state, "AmpersandUnaryPrefix", AmpersandUnaryPrefix$0);
6610
6795
  }
@@ -6938,12 +7123,13 @@ ${input.slice(result.pos)}
6938
7123
  function BlockStatementPart(ctx, state) {
6939
7124
  return $EVENT(ctx, state, "BlockStatementPart", BlockStatementPart$0);
6940
7125
  }
6941
- var Literal$0 = $TS($S(LiteralContent), function($skip, $loc, $0, $1) {
7126
+ var Literal$0 = $TS($S($EXPECT($R10, `Literal /(?=[0-9.'"tfyno])/`), LiteralContent), function($skip, $loc, $0, $1, $2) {
7127
+ var literal = $2;
6942
7128
  return {
6943
7129
  type: "Literal",
6944
- subtype: $1.type,
6945
- children: $0,
6946
- raw: $1.token
7130
+ subtype: literal.type,
7131
+ children: [literal],
7132
+ raw: literal.token
6947
7133
  };
6948
7134
  });
6949
7135
  function Literal(ctx, state) {
@@ -6963,15 +7149,21 @@ ${input.slice(result.pos)}
6963
7149
  function NullLiteral(ctx, state) {
6964
7150
  return $EVENT(ctx, state, "NullLiteral", NullLiteral$0);
6965
7151
  }
6966
- var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
7152
+ var BooleanLiteral$0 = $T($S($EXPECT($R11, "BooleanLiteral /(?=true|false|yes|no|on|off)/"), _BooleanLiteral), function(value) {
7153
+ return value[1];
7154
+ });
7155
+ function BooleanLiteral(ctx, state) {
7156
+ return $EVENT(ctx, state, "BooleanLiteral", BooleanLiteral$0);
7157
+ }
7158
+ var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
6967
7159
  return value[1];
6968
7160
  });
6969
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L27, 'BooleanLiteral "true"'), $EXPECT($L28, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7161
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L27, '_BooleanLiteral "true"'), $EXPECT($L28, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6970
7162
  return { $loc, token: $1 };
6971
7163
  });
6972
- var BooleanLiteral$$ = [BooleanLiteral$0, BooleanLiteral$1];
6973
- function BooleanLiteral(ctx, state) {
6974
- return $EVENT_C(ctx, state, "BooleanLiteral", BooleanLiteral$$);
7164
+ var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
7165
+ function _BooleanLiteral(ctx, state) {
7166
+ return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
6975
7167
  }
6976
7168
  var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L29, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L30, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6977
7169
  return { $loc, token: "true" };
@@ -6983,13 +7175,14 @@ ${input.slice(result.pos)}
6983
7175
  function CoffeeScriptBooleanLiteral(ctx, state) {
6984
7176
  return $EVENT_C(ctx, state, "CoffeeScriptBooleanLiteral", CoffeeScriptBooleanLiteral$$);
6985
7177
  }
6986
- var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
6987
- return value[1];
7178
+ var Identifier$0 = $T($S($EXPECT($R12, "Identifier /(?=\\p{ID_Start}|[_$])/"), $N(ReservedWord), IdentifierName), function(value) {
7179
+ var id = value[2];
7180
+ return id;
6988
7181
  });
6989
7182
  function Identifier(ctx, state) {
6990
7183
  return $EVENT(ctx, state, "Identifier", Identifier$0);
6991
7184
  }
6992
- var IdentifierName$0 = $TR($EXPECT($R5, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7185
+ 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) {
6993
7186
  return {
6994
7187
  type: "Identifier",
6995
7188
  name: $0,
@@ -7011,10 +7204,16 @@ ${input.slice(result.pos)}
7011
7204
  function UpcomingAssignment(ctx, state) {
7012
7205
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
7013
7206
  }
7014
- var ArrayLiteral$0 = $T($S(ArrayBindingPattern, UpcomingAssignment), function(value) {
7207
+ var ArrayLiteral$0 = $T($S($EXPECT($R14, "ArrayLiteral /(?=\\[)/"), _ArrayLiteral), function(value) {
7208
+ return value[1];
7209
+ });
7210
+ function ArrayLiteral(ctx, state) {
7211
+ return $EVENT(ctx, state, "ArrayLiteral", ArrayLiteral$0);
7212
+ }
7213
+ var _ArrayLiteral$0 = $T($S(ArrayBindingPattern, UpcomingAssignment), function(value) {
7015
7214
  return value[0];
7016
7215
  });
7017
- var ArrayLiteral$1 = $TS($S(OpenBracket, AllowAll, $E($S(ArrayLiteralContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
7216
+ var _ArrayLiteral$1 = $TS($S(OpenBracket, AllowAll, $E($S(ArrayLiteralContent, __, CloseBracket)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
7018
7217
  var open = $1;
7019
7218
  if (!$3)
7020
7219
  return $skip;
@@ -7038,9 +7237,9 @@ ${input.slice(result.pos)}
7038
7237
  names
7039
7238
  };
7040
7239
  });
7041
- var ArrayLiteral$$ = [ArrayLiteral$0, ArrayLiteral$1];
7042
- function ArrayLiteral(ctx, state) {
7043
- return $EVENT_C(ctx, state, "ArrayLiteral", ArrayLiteral$$);
7240
+ var _ArrayLiteral$$ = [_ArrayLiteral$0, _ArrayLiteral$1];
7241
+ function _ArrayLiteral(ctx, state) {
7242
+ return $EVENT_C(ctx, state, "_ArrayLiteral", _ArrayLiteral$$);
7044
7243
  }
7045
7244
  var RangeExpression$0 = $TS($S(ExtendedExpression, __, $C(DotDotDot, DotDot), ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
7046
7245
  var s = $1;
@@ -7405,7 +7604,7 @@ ${input.slice(result.pos)}
7405
7604
  children: [ws, ...prop.children]
7406
7605
  };
7407
7606
  });
7408
- var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R6, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
7607
+ var PropertyDefinition$1 = $TS($S($E(_), $TEXT($EXPECT($R15, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
7409
7608
  var ws = $1;
7410
7609
  var toggle = $2;
7411
7610
  var id = $3;
@@ -7928,12 +8127,19 @@ ${input.slice(result.pos)}
7928
8127
  function IdentifierBinaryOp(ctx, state) {
7929
8128
  return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
7930
8129
  }
7931
- var BinaryOp$0 = $TS($S(BinaryOpSymbol), function($skip, $loc, $0, $1) {
8130
+ 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&|*\\/!?%<>+-])/"), _BinaryOp), function(value) {
8131
+ var op = value[1];
8132
+ return op;
8133
+ });
8134
+ function BinaryOp(ctx, state) {
8135
+ return $EVENT(ctx, state, "BinaryOp", BinaryOp$0);
8136
+ }
8137
+ var _BinaryOp$0 = $TS($S(BinaryOpSymbol), function($skip, $loc, $0, $1) {
7932
8138
  if (typeof $1 === "string")
7933
8139
  return { $loc, token: $1 };
7934
8140
  return $1;
7935
8141
  });
7936
- var BinaryOp$1 = $TV(Identifier, function($skip, $loc, $0, $1) {
8142
+ var _BinaryOp$1 = $TV(Identifier, function($skip, $loc, $0, $1) {
7937
8143
  var id = $0;
7938
8144
  if (!module.operators.has(id.name))
7939
8145
  return $skip;
@@ -7942,7 +8148,7 @@ ${input.slice(result.pos)}
7942
8148
  special: true
7943
8149
  };
7944
8150
  });
7945
- var BinaryOp$2 = $TS($S(Not, __, Identifier), function($skip, $loc, $0, $1, $2, $3) {
8151
+ var _BinaryOp$2 = $TS($S(Not, __, Identifier), function($skip, $loc, $0, $1, $2, $3) {
7946
8152
  var id = $3;
7947
8153
  if (!module.operators.has(id.name))
7948
8154
  return $skip;
@@ -7952,9 +8158,9 @@ ${input.slice(result.pos)}
7952
8158
  negated: true
7953
8159
  };
7954
8160
  });
7955
- var BinaryOp$$ = [BinaryOp$0, BinaryOp$1, BinaryOp$2];
7956
- function BinaryOp(ctx, state) {
7957
- return $EVENT_C(ctx, state, "BinaryOp", BinaryOp$$);
8161
+ var _BinaryOp$$ = [_BinaryOp$0, _BinaryOp$1, _BinaryOp$2];
8162
+ function _BinaryOp(ctx, state) {
8163
+ return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
7958
8164
  }
7959
8165
  var BinaryOpSymbol$0 = $EXPECT($L53, 'BinaryOpSymbol "**"');
7960
8166
  var BinaryOpSymbol$1 = $EXPECT($L54, 'BinaryOpSymbol "*"');
@@ -7997,7 +8203,7 @@ ${input.slice(result.pos)}
7997
8203
  var BinaryOpSymbol$14 = $T($EXPECT($L66, 'BinaryOpSymbol "\xAB"'), function(value) {
7998
8204
  return "<<";
7999
8205
  });
8000
- var BinaryOpSymbol$15 = $TR($EXPECT($R7, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8206
+ var BinaryOpSymbol$15 = $TR($EXPECT($R17, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8001
8207
  return "<";
8002
8208
  });
8003
8209
  var BinaryOpSymbol$16 = $EXPECT($L67, 'BinaryOpSymbol ">>>"');
@@ -8036,36 +8242,33 @@ ${input.slice(result.pos)}
8036
8242
  return "&&";
8037
8243
  });
8038
8244
  var BinaryOpSymbol$29 = $EXPECT($L83, 'BinaryOpSymbol "&&"');
8039
- var BinaryOpSymbol$30 = $T($S(CoffeeOfEnabled, $EXPECT($L84, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
8040
- return "in";
8041
- });
8042
- var BinaryOpSymbol$31 = $T($S($EXPECT($L85, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8245
+ var BinaryOpSymbol$30 = $T($S($EXPECT($L84, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
8043
8246
  return "||";
8044
8247
  });
8045
- var BinaryOpSymbol$32 = $EXPECT($L86, 'BinaryOpSymbol "||"');
8046
- var BinaryOpSymbol$33 = $T($EXPECT($L87, 'BinaryOpSymbol "\u2016"'), function(value) {
8248
+ var BinaryOpSymbol$31 = $EXPECT($L85, 'BinaryOpSymbol "||"');
8249
+ var BinaryOpSymbol$32 = $T($EXPECT($L86, 'BinaryOpSymbol "\u2016"'), function(value) {
8047
8250
  return "||";
8048
8251
  });
8049
- var BinaryOpSymbol$34 = $TV($C($EXPECT($L88, 'BinaryOpSymbol "^^"'), $S($EXPECT($L89, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8252
+ var BinaryOpSymbol$33 = $TV($C($EXPECT($L87, 'BinaryOpSymbol "^^"'), $S($EXPECT($L88, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8050
8253
  return {
8051
8254
  call: module.getRef("xor"),
8052
8255
  special: true
8053
8256
  };
8054
8257
  });
8055
- var BinaryOpSymbol$35 = $TV($C($EXPECT($R8, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L90, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8258
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($R18, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L89, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8056
8259
  return {
8057
8260
  call: module.getRef("xnor"),
8058
8261
  special: true
8059
8262
  };
8060
8263
  });
8061
- var BinaryOpSymbol$36 = $EXPECT($L91, 'BinaryOpSymbol "??"');
8062
- var BinaryOpSymbol$37 = $T($EXPECT($L92, 'BinaryOpSymbol "\u2047"'), function(value) {
8264
+ var BinaryOpSymbol$35 = $EXPECT($L90, 'BinaryOpSymbol "??"');
8265
+ var BinaryOpSymbol$36 = $T($EXPECT($L91, 'BinaryOpSymbol "\u2047"'), function(value) {
8063
8266
  return "??";
8064
8267
  });
8065
- var BinaryOpSymbol$38 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L5, 'BinaryOpSymbol "?"')), function(value) {
8268
+ var BinaryOpSymbol$37 = $T($S($EXPECT($L5, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
8066
8269
  return "??";
8067
8270
  });
8068
- var BinaryOpSymbol$39 = $TS($S($EXPECT($L93, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8271
+ var BinaryOpSymbol$38 = $TS($S($EXPECT($L92, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8069
8272
  return {
8070
8273
  $loc,
8071
8274
  token: $1,
@@ -8074,24 +8277,15 @@ ${input.slice(result.pos)}
8074
8277
  // for typeof shorthand
8075
8278
  };
8076
8279
  });
8077
- var BinaryOpSymbol$40 = $TS($S(Not, __, $EXPECT($L93, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
8078
- return {
8079
- $loc,
8080
- token: "instanceof",
8081
- relational: true,
8082
- special: true,
8083
- negated: true
8084
- };
8280
+ var BinaryOpSymbol$39 = $T($S(CoffeeOfEnabled, CoffeeOfOp), function(value) {
8281
+ var op = value[1];
8282
+ return op;
8085
8283
  });
8086
- var BinaryOpSymbol$41 = $TV($C($S($N(CoffeeOfEnabled), Not, __, In), $S(CoffeeOfEnabled, Not, __, $EXPECT($L84, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
8087
- return {
8088
- $loc,
8089
- token: "in",
8090
- special: true,
8091
- negated: true
8092
- };
8284
+ var BinaryOpSymbol$40 = $TS($S(Not, __, NotOp), function($skip, $loc, $0, $1, $2, $3) {
8285
+ var op = $3;
8286
+ return { ...op, $loc };
8093
8287
  });
8094
- var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L94, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8288
+ var BinaryOpSymbol$41 = $TV($C($S(Is, __, In), $EXPECT($L93, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
8095
8289
  return {
8096
8290
  method: "includes",
8097
8291
  relational: true,
@@ -8099,14 +8293,14 @@ ${input.slice(result.pos)}
8099
8293
  special: true
8100
8294
  };
8101
8295
  });
8102
- var BinaryOpSymbol$43 = $TV($EXPECT($L95, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8296
+ var BinaryOpSymbol$42 = $TV($EXPECT($L94, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
8103
8297
  return {
8104
8298
  method: "includes",
8105
8299
  relational: true,
8106
8300
  special: true
8107
8301
  };
8108
8302
  });
8109
- var BinaryOpSymbol$44 = $TV($EXPECT($L96, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8303
+ var BinaryOpSymbol$43 = $TV($EXPECT($L95, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
8110
8304
  return {
8111
8305
  method: "includes",
8112
8306
  relational: true,
@@ -8114,16 +8308,7 @@ ${input.slice(result.pos)}
8114
8308
  negated: true
8115
8309
  };
8116
8310
  });
8117
- var BinaryOpSymbol$45 = $TS($S(CoffeeOfEnabled, In), function($skip, $loc, $0, $1, $2) {
8118
- return {
8119
- call: [module.getRef("indexOf"), ".call"],
8120
- relational: true,
8121
- reversed: true,
8122
- suffix: " >= 0",
8123
- special: true
8124
- };
8125
- });
8126
- var BinaryOpSymbol$46 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L97, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8311
+ var BinaryOpSymbol$44 = $TV($C($S(Is, __, Not, __, In), $EXPECT($L96, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
8127
8312
  return {
8128
8313
  method: "includes",
8129
8314
  relational: true,
@@ -8132,16 +8317,7 @@ ${input.slice(result.pos)}
8132
8317
  negated: true
8133
8318
  };
8134
8319
  });
8135
- var BinaryOpSymbol$47 = $TS($S(CoffeeOfEnabled, Not, __, In), function($skip, $loc, $0, $1, $2, $3, $4) {
8136
- return {
8137
- call: [module.getRef("indexOf"), ".call"],
8138
- relational: true,
8139
- reversed: true,
8140
- suffix: " < 0",
8141
- special: true
8142
- };
8143
- });
8144
- var BinaryOpSymbol$48 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8320
+ var BinaryOpSymbol$45 = $TS($S($N(CoffeeNotEnabled), Is, __, Not), function($skip, $loc, $0, $1, $2, $3, $4) {
8145
8321
  if (module.config.objectIs) {
8146
8322
  return {
8147
8323
  call: module.getRef("is"),
@@ -8153,7 +8329,7 @@ ${input.slice(result.pos)}
8153
8329
  }
8154
8330
  return "!==";
8155
8331
  });
8156
- var BinaryOpSymbol$49 = $TS($S(Is), function($skip, $loc, $0, $1) {
8332
+ var BinaryOpSymbol$46 = $TS($S(Is), function($skip, $loc, $0, $1) {
8157
8333
  if (module.config.objectIs) {
8158
8334
  return {
8159
8335
  call: module.getRef("is"),
@@ -8164,34 +8340,86 @@ ${input.slice(result.pos)}
8164
8340
  }
8165
8341
  return "===";
8166
8342
  });
8167
- var BinaryOpSymbol$50 = $TS($S(In), function($skip, $loc, $0, $1) {
8168
- return "in";
8169
- });
8170
- var BinaryOpSymbol$51 = $EXPECT($L98, 'BinaryOpSymbol "&"');
8171
- var BinaryOpSymbol$52 = $EXPECT($L17, 'BinaryOpSymbol "^"');
8172
- var BinaryOpSymbol$53 = $EXPECT($L99, 'BinaryOpSymbol "|"');
8173
- 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, BinaryOpSymbol$52, BinaryOpSymbol$53];
8343
+ var BinaryOpSymbol$47 = In;
8344
+ var BinaryOpSymbol$48 = $EXPECT($L97, 'BinaryOpSymbol "&"');
8345
+ var BinaryOpSymbol$49 = $EXPECT($L17, 'BinaryOpSymbol "^"');
8346
+ var BinaryOpSymbol$50 = $EXPECT($L98, 'BinaryOpSymbol "|"');
8347
+ 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];
8174
8348
  function BinaryOpSymbol(ctx, state) {
8175
8349
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
8176
8350
  }
8177
- var Xor$0 = $EXPECT($L88, 'Xor "^^"');
8178
- var Xor$1 = $S($EXPECT($L89, 'Xor "xor"'), NonIdContinue);
8351
+ var CoffeeOfOp$0 = $T($S(Of), function(value) {
8352
+ return "in";
8353
+ });
8354
+ var CoffeeOfOp$1 = $TS($S(In), function($skip, $loc, $0, $1) {
8355
+ return {
8356
+ call: [module.getRef("indexOf"), ".call"],
8357
+ relational: true,
8358
+ reversed: true,
8359
+ suffix: " >= 0",
8360
+ special: true
8361
+ };
8362
+ });
8363
+ var CoffeeOfOp$2 = $TS($S(Not, __, Of, NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4) {
8364
+ return {
8365
+ $loc,
8366
+ token: "in",
8367
+ special: true,
8368
+ negated: true
8369
+ };
8370
+ });
8371
+ var CoffeeOfOp$3 = $TS($S(Not, __, In), function($skip, $loc, $0, $1, $2, $3) {
8372
+ return {
8373
+ call: [module.getRef("indexOf"), ".call"],
8374
+ relational: true,
8375
+ reversed: true,
8376
+ suffix: " < 0",
8377
+ special: true
8378
+ };
8379
+ });
8380
+ var CoffeeOfOp$$ = [CoffeeOfOp$0, CoffeeOfOp$1, CoffeeOfOp$2, CoffeeOfOp$3];
8381
+ function CoffeeOfOp(ctx, state) {
8382
+ return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
8383
+ }
8384
+ var NotOp$0 = $TS($S($EXPECT($L92, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8385
+ return {
8386
+ $loc,
8387
+ token: "instanceof",
8388
+ relational: true,
8389
+ special: true,
8390
+ negated: true
8391
+ };
8392
+ });
8393
+ var NotOp$1 = $TS($S(In), function($skip, $loc, $0, $1) {
8394
+ return {
8395
+ $loc,
8396
+ token: "in",
8397
+ special: true,
8398
+ negated: true
8399
+ };
8400
+ });
8401
+ var NotOp$$ = [NotOp$0, NotOp$1];
8402
+ function NotOp(ctx, state) {
8403
+ return $EVENT_C(ctx, state, "NotOp", NotOp$$);
8404
+ }
8405
+ var Xor$0 = $EXPECT($L87, 'Xor "^^"');
8406
+ var Xor$1 = $S($EXPECT($L88, 'Xor "xor"'), NonIdContinue);
8179
8407
  var Xor$$ = [Xor$0, Xor$1];
8180
8408
  function Xor(ctx, state) {
8181
8409
  return $EVENT_C(ctx, state, "Xor", Xor$$);
8182
8410
  }
8183
- var Xnor$0 = $R$0($EXPECT($R8, "Xnor /!\\^\\^?/"));
8184
- var Xnor$1 = $EXPECT($L90, 'Xnor "xnor"');
8411
+ var Xnor$0 = $R$0($EXPECT($R18, "Xnor /!\\^\\^?/"));
8412
+ var Xnor$1 = $EXPECT($L89, 'Xnor "xnor"');
8185
8413
  var Xnor$$ = [Xnor$0, Xnor$1];
8186
8414
  function Xnor(ctx, state) {
8187
8415
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
8188
8416
  }
8189
- var UnaryOp$0 = $TR($EXPECT($R9, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8417
+ var UnaryOp$0 = $TR($EXPECT($R19, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s|[!~+-]*[&.])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8190
8418
  return { $loc, token: $0 };
8191
8419
  });
8192
8420
  var UnaryOp$1 = AwaitOp;
8193
- var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($EXPECT($L12, 'UnaryOp ":"')), $E(_));
8194
- var UnaryOp$3 = $T($S(Not, $E($EXPECT($L11, 'UnaryOp " "')), $E(_)), function(value) {
8421
+ var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($EXPECT($L11, 'UnaryOp ":"')), $E(_));
8422
+ var UnaryOp$3 = $T($S(Not, $E($EXPECT($L12, 'UnaryOp " "')), $E(_)), function(value) {
8195
8423
  return [value[0], value[2]];
8196
8424
  });
8197
8425
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -8257,14 +8485,20 @@ ${input.slice(result.pos)}
8257
8485
  function NonPipelinePostfixedExpression(ctx, state) {
8258
8486
  return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
8259
8487
  }
8260
- var PostfixStatement$0 = ForClause;
8261
- var PostfixStatement$1 = IfClause;
8262
- var PostfixStatement$2 = LoopClause;
8263
- var PostfixStatement$3 = UnlessClause;
8264
- var PostfixStatement$4 = WhileClause;
8265
- var PostfixStatement$$ = [PostfixStatement$0, PostfixStatement$1, PostfixStatement$2, PostfixStatement$3, PostfixStatement$4];
8488
+ var PostfixStatement$0 = $T($S($EXPECT($R20, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
8489
+ return value[1];
8490
+ });
8266
8491
  function PostfixStatement(ctx, state) {
8267
- return $EVENT_C(ctx, state, "PostfixStatement", PostfixStatement$$);
8492
+ return $EVENT(ctx, state, "PostfixStatement", PostfixStatement$0);
8493
+ }
8494
+ var _PostfixStatement$0 = ForClause;
8495
+ var _PostfixStatement$1 = IfClause;
8496
+ var _PostfixStatement$2 = LoopClause;
8497
+ var _PostfixStatement$3 = UnlessClause;
8498
+ var _PostfixStatement$4 = WhileClause;
8499
+ var _PostfixStatement$$ = [_PostfixStatement$0, _PostfixStatement$1, _PostfixStatement$2, _PostfixStatement$3, _PostfixStatement$4];
8500
+ function _PostfixStatement(ctx, state) {
8501
+ return $EVENT_C(ctx, state, "_PostfixStatement", _PostfixStatement$$);
8268
8502
  }
8269
8503
  var Statement$0 = KeywordStatement;
8270
8504
  var Statement$1 = VariableStatement;
@@ -8285,7 +8519,7 @@ ${input.slice(result.pos)}
8285
8519
  function Statement(ctx, state) {
8286
8520
  return $EVENT_C(ctx, state, "Statement", Statement$$);
8287
8521
  }
8288
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L100, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8522
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L99, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8289
8523
  return { type: "EmptyStatement", children: $1 || [] };
8290
8524
  });
8291
8525
  function EmptyStatement(ctx, state) {
@@ -8307,7 +8541,7 @@ ${input.slice(result.pos)}
8307
8541
  var w = $3;
8308
8542
  return [id, colon, w];
8309
8543
  });
8310
- var Label$1 = $S($EXPECT($L101, 'Label "$:"'), Whitespace);
8544
+ var Label$1 = $S($EXPECT($L100, 'Label "$:"'), Whitespace);
8311
8545
  var Label$$ = [Label$0, Label$1];
8312
8546
  function Label(ctx, state) {
8313
8547
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -8480,18 +8714,24 @@ ${input.slice(result.pos)}
8480
8714
  function BlockExpressionPart(ctx, state) {
8481
8715
  return $EVENT(ctx, state, "BlockExpressionPart", BlockExpressionPart$0);
8482
8716
  }
8483
- var IterationStatement$0 = LoopStatement;
8484
- var IterationStatement$1 = $T($S($N(CoffeeDoEnabled), DoWhileStatement), function(value) {
8717
+ var IterationStatement$0 = $T($S($EXPECT($R21, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
8485
8718
  return value[1];
8486
8719
  });
8487
- var IterationStatement$2 = $T($S($N(CoffeeDoEnabled), DoStatement), function(value) {
8720
+ function IterationStatement(ctx, state) {
8721
+ return $EVENT(ctx, state, "IterationStatement", IterationStatement$0);
8722
+ }
8723
+ var _IterationStatement$0 = LoopStatement;
8724
+ var _IterationStatement$1 = $T($S($N(CoffeeDoEnabled), DoWhileStatement), function(value) {
8488
8725
  return value[1];
8489
8726
  });
8490
- var IterationStatement$3 = WhileStatement;
8491
- var IterationStatement$4 = ForStatement;
8492
- var IterationStatement$$ = [IterationStatement$0, IterationStatement$1, IterationStatement$2, IterationStatement$3, IterationStatement$4];
8493
- function IterationStatement(ctx, state) {
8494
- return $EVENT_C(ctx, state, "IterationStatement", IterationStatement$$);
8727
+ var _IterationStatement$2 = $T($S($N(CoffeeDoEnabled), DoStatement), function(value) {
8728
+ return value[1];
8729
+ });
8730
+ var _IterationStatement$3 = WhileStatement;
8731
+ var _IterationStatement$4 = ForStatement;
8732
+ var _IterationStatement$$ = [_IterationStatement$0, _IterationStatement$1, _IterationStatement$2, _IterationStatement$3, _IterationStatement$4];
8733
+ function _IterationStatement(ctx, state) {
8734
+ return $EVENT_C(ctx, state, "_IterationStatement", _IterationStatement$$);
8495
8735
  }
8496
8736
  var IterationExpression$0 = $TS($S($E($S(Async, __)), IterationStatement), function($skip, $loc, $0, $1, $2) {
8497
8737
  var async = $1;
@@ -8606,8 +8846,9 @@ ${input.slice(result.pos)}
8606
8846
  return value[1];
8607
8847
  });
8608
8848
  var ForStatementControl$1 = $TS($S(CoffeeForLoopsEnabled, CoffeeForStatementParameters, $E(WhenCondition)), function($skip, $loc, $0, $1, $2, $3) {
8609
- if ($3) {
8610
- const block = "continue;";
8849
+ var condition = $3;
8850
+ if (condition) {
8851
+ const block = "continue";
8611
8852
  $2 = {
8612
8853
  ...$2,
8613
8854
  blockPrefix: [
@@ -8615,8 +8856,8 @@ ${input.slice(result.pos)}
8615
8856
  ["", {
8616
8857
  type: "IfStatement",
8617
8858
  then: block,
8618
- children: ["if (!(", insertTrimmingSpace($3, ""), ")) ", block]
8619
- }]
8859
+ children: ["if (!(", insertTrimmingSpace(condition, ""), ")) ", block]
8860
+ }, ";"]
8620
8861
  ]
8621
8862
  };
8622
8863
  }
@@ -8655,7 +8896,7 @@ ${input.slice(result.pos)}
8655
8896
  }
8656
8897
  if (declaration.own) {
8657
8898
  const hasPropRef = module.getRef("hasProp");
8658
- blockPrefix.push(["", "if (!", hasPropRef, "(", exp, ", ", declaration, ")) continue", ";"]);
8899
+ blockPrefix.push(["", ["if (!", hasPropRef, "(", exp, ", ", declaration, ")) continue"], ";"]);
8659
8900
  }
8660
8901
  if (index) {
8661
8902
  blockPrefix.push(["", {
@@ -8826,7 +9067,7 @@ ${input.slice(result.pos)}
8826
9067
  names: binding.names
8827
9068
  };
8828
9069
  });
8829
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R10, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
9070
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R22, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
8830
9071
  var c = $1;
8831
9072
  var binding = $2;
8832
9073
  return {
@@ -9052,7 +9293,7 @@ ${input.slice(result.pos)}
9052
9293
  function IgnoreColon(ctx, state) {
9053
9294
  return $EVENT(ctx, state, "IgnoreColon", IgnoreColon$0);
9054
9295
  }
9055
- var TryStatement$0 = $TS($S(Try, $N($EXPECT($L12, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9296
+ var TryStatement$0 = $TS($S(Try, $N($EXPECT($L11, 'TryStatement ":"')), NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
9056
9297
  var t = $1;
9057
9298
  var b = $3;
9058
9299
  var c = $4;
@@ -9360,7 +9601,7 @@ ${input.slice(result.pos)}
9360
9601
  };
9361
9602
  });
9362
9603
  var KeywordStatement$2 = DebuggerStatement;
9363
- var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L12, 'KeywordStatement ":"'), $EXPECT($L6, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
9604
+ var KeywordStatement$3 = $T($S(Return, $N($C($EXPECT($L11, 'KeywordStatement ":"'), $EXPECT($L6, 'KeywordStatement "."'), AfterReturnShorthand)), $E(MaybeNestedExpression)), function(value) {
9364
9605
  var expression = value[2];
9365
9606
  return { "type": "ReturnStatement", "expression": expression, "children": value };
9366
9607
  });
@@ -9381,19 +9622,19 @@ ${input.slice(result.pos)}
9381
9622
  function ThrowStatement(ctx, state) {
9382
9623
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
9383
9624
  }
9384
- var Break$0 = $TS($S($EXPECT($L102, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9625
+ var Break$0 = $TS($S($EXPECT($L101, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9385
9626
  return { $loc, token: $1 };
9386
9627
  });
9387
9628
  function Break(ctx, state) {
9388
9629
  return $EVENT(ctx, state, "Break", Break$0);
9389
9630
  }
9390
- var Continue$0 = $TS($S($EXPECT($L103, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9631
+ var Continue$0 = $TS($S($EXPECT($L102, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9391
9632
  return { $loc, token: $1 };
9392
9633
  });
9393
9634
  function Continue(ctx, state) {
9394
9635
  return $EVENT(ctx, state, "Continue", Continue$0);
9395
9636
  }
9396
- var Debugger$0 = $TS($S($EXPECT($L104, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9637
+ var Debugger$0 = $TS($S($EXPECT($L103, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9397
9638
  return { $loc, token: $1 };
9398
9639
  });
9399
9640
  function Debugger(ctx, state) {
@@ -9514,7 +9755,7 @@ ${input.slice(result.pos)}
9514
9755
  function FromClause(ctx, state) {
9515
9756
  return $EVENT(ctx, state, "FromClause", FromClause$0);
9516
9757
  }
9517
- var ImportAssertion$0 = $S($E(_), $EXPECT($L105, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9758
+ var ImportAssertion$0 = $S($E(_), $EXPECT($L104, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9518
9759
  function ImportAssertion(ctx, state) {
9519
9760
  return $EVENT(ctx, state, "ImportAssertion", ImportAssertion$0);
9520
9761
  }
@@ -9562,7 +9803,7 @@ ${input.slice(result.pos)}
9562
9803
  return $EVENT_C(ctx, state, "ImportSpecifier", ImportSpecifier$$);
9563
9804
  }
9564
9805
  var ImportAsToken$0 = $S(__, As);
9565
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L11, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9806
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L12, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9566
9807
  var l = $1;
9567
9808
  var ws = $2;
9568
9809
  var c = $3;
@@ -9602,7 +9843,7 @@ ${input.slice(result.pos)}
9602
9843
  function UnprocessedModuleSpecifier(ctx, state) {
9603
9844
  return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
9604
9845
  }
9605
- var UnquotedSpecifier$0 = $TV($EXPECT($R11, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
9846
+ var UnquotedSpecifier$0 = $TV($EXPECT($R23, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
9606
9847
  var spec = $0;
9607
9848
  return { $loc, token: `"${spec}"` };
9608
9849
  });
@@ -9734,13 +9975,13 @@ ${input.slice(result.pos)}
9734
9975
  function LexicalDeclaration(ctx, state) {
9735
9976
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
9736
9977
  }
9737
- var ConstAssignment$0 = $TV($C($EXPECT($L106, 'ConstAssignment ":="'), $EXPECT($L107, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
9978
+ var ConstAssignment$0 = $TV($C($EXPECT($L105, 'ConstAssignment ":="'), $EXPECT($L106, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
9738
9979
  return { $loc, token: "=" };
9739
9980
  });
9740
9981
  function ConstAssignment(ctx, state) {
9741
9982
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
9742
9983
  }
9743
- var LetAssignment$0 = $TV($EXPECT($L108, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
9984
+ var LetAssignment$0 = $TV($EXPECT($L107, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
9744
9985
  return { $loc, token: "=" };
9745
9986
  });
9746
9987
  function LetAssignment(ctx, state) {
@@ -9808,8 +10049,9 @@ ${input.slice(result.pos)}
9808
10049
  function VariableDeclarationList(ctx, state) {
9809
10050
  return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
9810
10051
  }
9811
- var NumericLiteral$0 = $TS($S(NumericLiteralKind), function($skip, $loc, $0, $1) {
9812
- return { type: "NumericLiteral", $loc, token: $1 };
10052
+ var NumericLiteral$0 = $TS($S($EXPECT($R24, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
10053
+ var token = $2;
10054
+ return { type: "NumericLiteral", $loc, token };
9813
10055
  });
9814
10056
  function NumericLiteral(ctx, state) {
9815
10057
  return $EVENT(ctx, state, "NumericLiteral", NumericLiteral$0);
@@ -9823,37 +10065,38 @@ ${input.slice(result.pos)}
9823
10065
  function NumericLiteralKind(ctx, state) {
9824
10066
  return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
9825
10067
  }
9826
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R12, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
10068
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R25, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
9827
10069
  function DecimalBigIntegerLiteral(ctx, state) {
9828
10070
  return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
9829
10071
  }
9830
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R13, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
10072
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R26, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
9831
10073
  return $1 + ".";
9832
10074
  });
9833
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R14, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
9834
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R15, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
10075
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R27, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
10076
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R28, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
9835
10077
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
9836
10078
  function DecimalLiteral(ctx, state) {
9837
10079
  return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
9838
10080
  }
9839
- var ExponentPart$0 = $R$0($EXPECT($R16, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
10081
+ var ExponentPart$0 = $R$0($EXPECT($R29, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
9840
10082
  function ExponentPart(ctx, state) {
9841
10083
  return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
9842
10084
  }
9843
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R17, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
10085
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R30, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
9844
10086
  function BinaryIntegerLiteral(ctx, state) {
9845
10087
  return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
9846
10088
  }
9847
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R18, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
10089
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R31, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
9848
10090
  function OctalIntegerLiteral(ctx, state) {
9849
10091
  return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
9850
10092
  }
9851
- var HexIntegerLiteral$0 = $R$0($EXPECT($R19, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
10093
+ var HexIntegerLiteral$0 = $R$0($EXPECT($R32, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
9852
10094
  function HexIntegerLiteral(ctx, state) {
9853
10095
  return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
9854
10096
  }
9855
- var IntegerLiteral$0 = $TS($S(IntegerLiteralKind), function($skip, $loc, $0, $1) {
9856
- return { $loc, token: $1 };
10097
+ var IntegerLiteral$0 = $TS($S($EXPECT($R33, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
10098
+ var token = $2;
10099
+ return { $loc, token };
9857
10100
  });
9858
10101
  function IntegerLiteral(ctx, state) {
9859
10102
  return $EVENT(ctx, state, "IntegerLiteral", IntegerLiteral$0);
@@ -9867,7 +10110,7 @@ ${input.slice(result.pos)}
9867
10110
  function IntegerLiteralKind(ctx, state) {
9868
10111
  return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
9869
10112
  }
9870
- var DecimalIntegerLiteral$0 = $R$0($EXPECT($R20, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
10113
+ var DecimalIntegerLiteral$0 = $R$0($EXPECT($R34, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
9871
10114
  function DecimalIntegerLiteral(ctx, state) {
9872
10115
  return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
9873
10116
  }
@@ -9891,25 +10134,25 @@ ${input.slice(result.pos)}
9891
10134
  function StringLiteral(ctx, state) {
9892
10135
  return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
9893
10136
  }
9894
- var DoubleStringCharacters$0 = $TR($EXPECT($R21, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10137
+ var DoubleStringCharacters$0 = $TR($EXPECT($R35, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9895
10138
  return { $loc, token: $0 };
9896
10139
  });
9897
10140
  function DoubleStringCharacters(ctx, state) {
9898
10141
  return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
9899
10142
  }
9900
- var SingleStringCharacters$0 = $TR($EXPECT($R22, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10143
+ var SingleStringCharacters$0 = $TR($EXPECT($R36, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9901
10144
  return { $loc, token: $0 };
9902
10145
  });
9903
10146
  function SingleStringCharacters(ctx, state) {
9904
10147
  return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
9905
10148
  }
9906
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R23, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10149
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R37, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9907
10150
  return { $loc, token: $0 };
9908
10151
  });
9909
10152
  function TripleDoubleStringCharacters(ctx, state) {
9910
10153
  return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
9911
10154
  }
9912
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R24, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10155
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R38, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9913
10156
  return { $loc, token: $0 };
9914
10157
  });
9915
10158
  function TripleSingleStringCharacters(ctx, state) {
@@ -9928,7 +10171,7 @@ ${input.slice(result.pos)}
9928
10171
  function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
9929
10172
  return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
9930
10173
  }
9931
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R25, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10174
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R39, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9932
10175
  return { $loc, token: $0 };
9933
10176
  });
9934
10177
  function CoffeeDoubleQuotedStringCharacters(ctx, state) {
@@ -9948,7 +10191,7 @@ ${input.slice(result.pos)}
9948
10191
  function RegularExpressionClass(ctx, state) {
9949
10192
  return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
9950
10193
  }
9951
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R26, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10194
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R40, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9952
10195
  return { $loc, token: $0 };
9953
10196
  });
9954
10197
  function RegularExpressionClassCharacters(ctx, state) {
@@ -10002,7 +10245,7 @@ ${input.slice(result.pos)}
10002
10245
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
10003
10246
  return { "type": "Substitution", "children": value[0] };
10004
10247
  });
10005
- var HeregexPart$3 = $TR($EXPECT($R27, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10248
+ var HeregexPart$3 = $TR($EXPECT($R41, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10006
10249
  let token = $0;
10007
10250
  switch ($0[1]) {
10008
10251
  case "\n":
@@ -10020,13 +10263,13 @@ ${input.slice(result.pos)}
10020
10263
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
10021
10264
  return { $loc, token: "" };
10022
10265
  });
10023
- var HeregexPart$5 = $TR($EXPECT($R28, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10266
+ var HeregexPart$5 = $TR($EXPECT($R42, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10024
10267
  return { $loc, token: "" };
10025
10268
  });
10026
- var HeregexPart$6 = $TR($EXPECT($R29, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10269
+ var HeregexPart$6 = $TR($EXPECT($R43, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10027
10270
  return { $loc, token: "\\/" };
10028
10271
  });
10029
- var HeregexPart$7 = $TR($EXPECT($R30, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10272
+ var HeregexPart$7 = $TR($EXPECT($R44, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10030
10273
  return { $loc, token: $0 };
10031
10274
  });
10032
10275
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -10039,7 +10282,7 @@ ${input.slice(result.pos)}
10039
10282
  function HeregexComment(ctx, state) {
10040
10283
  return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
10041
10284
  }
10042
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R31, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10285
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R45, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
10043
10286
  function RegularExpressionBody(ctx, state) {
10044
10287
  return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
10045
10288
  }
@@ -10049,27 +10292,33 @@ ${input.slice(result.pos)}
10049
10292
  function RegExpPart(ctx, state) {
10050
10293
  return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
10051
10294
  }
10052
- var RegExpCharacter$0 = $R$0($EXPECT($R32, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10295
+ var RegExpCharacter$0 = $R$0($EXPECT($R46, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
10053
10296
  function RegExpCharacter(ctx, state) {
10054
10297
  return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
10055
10298
  }
10056
- var RegularExpressionFlags$0 = $R$0($EXPECT($R33, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10299
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R47, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
10057
10300
  function RegularExpressionFlags(ctx, state) {
10058
10301
  return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
10059
10302
  }
10060
- var TemplateLiteral$0 = $TS($S(TripleTick, $Q($C(TemplateBlockCharacters, TemplateSubstitution)), TripleTick), function($skip, $loc, $0, $1, $2, $3) {
10303
+ var TemplateLiteral$0 = $T($S($EXPECT($R48, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
10304
+ return value[1];
10305
+ });
10306
+ function TemplateLiteral(ctx, state) {
10307
+ return $EVENT(ctx, state, "TemplateLiteral", TemplateLiteral$0);
10308
+ }
10309
+ var _TemplateLiteral$0 = $TS($S(TripleTick, $Q($C(TemplateBlockCharacters, TemplateSubstitution)), TripleTick), function($skip, $loc, $0, $1, $2, $3) {
10061
10310
  return dedentBlockSubstitutions($0, module.config.tab);
10062
10311
  });
10063
- var TemplateLiteral$1 = $TS($S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick), function($skip, $loc, $0, $1, $2, $3) {
10312
+ var _TemplateLiteral$1 = $TS($S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick), function($skip, $loc, $0, $1, $2, $3) {
10064
10313
  return {
10065
10314
  type: "TemplateLiteral",
10066
10315
  children: $0
10067
10316
  };
10068
10317
  });
10069
- var TemplateLiteral$2 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10318
+ var _TemplateLiteral$2 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10070
10319
  return dedentBlockSubstitutions($0, module.config.tab);
10071
10320
  });
10072
- var TemplateLiteral$3 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10321
+ var _TemplateLiteral$3 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10073
10322
  var s = $1;
10074
10323
  var str = $2;
10075
10324
  var e = $3;
@@ -10078,37 +10327,37 @@ ${input.slice(result.pos)}
10078
10327
  children: [s, dedentBlockString(str, module.config.tab), e]
10079
10328
  };
10080
10329
  });
10081
- var TemplateLiteral$4 = CoffeeInterpolatedDoubleQuotedString;
10082
- var TemplateLiteral$$ = [TemplateLiteral$0, TemplateLiteral$1, TemplateLiteral$2, TemplateLiteral$3, TemplateLiteral$4];
10083
- function TemplateLiteral(ctx, state) {
10084
- return $EVENT_C(ctx, state, "TemplateLiteral", TemplateLiteral$$);
10330
+ var _TemplateLiteral$4 = CoffeeInterpolatedDoubleQuotedString;
10331
+ var _TemplateLiteral$$ = [_TemplateLiteral$0, _TemplateLiteral$1, _TemplateLiteral$2, _TemplateLiteral$3, _TemplateLiteral$4];
10332
+ function _TemplateLiteral(ctx, state) {
10333
+ return $EVENT_C(ctx, state, "_TemplateLiteral", _TemplateLiteral$$);
10085
10334
  }
10086
10335
  var TemplateSubstitution$0 = $S(SubstitutionStart, PostfixedExpression, __, CloseBrace);
10087
10336
  function TemplateSubstitution(ctx, state) {
10088
10337
  return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
10089
10338
  }
10090
- var TemplateCharacters$0 = $TR($EXPECT($R34, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10339
+ var TemplateCharacters$0 = $TR($EXPECT($R49, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10091
10340
  return { $loc, token: $0 };
10092
10341
  });
10093
10342
  function TemplateCharacters(ctx, state) {
10094
10343
  return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
10095
10344
  }
10096
- var TemplateBlockCharacters$0 = $TR($EXPECT($R35, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10345
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R50, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10097
10346
  return { $loc, token: $0 };
10098
10347
  });
10099
10348
  function TemplateBlockCharacters(ctx, state) {
10100
10349
  return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
10101
10350
  }
10102
- var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R36, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
10103
- var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R37, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
10104
- var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R38, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
10105
- var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R39, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
10106
- var ReservedWord$4 = $R$0($EXPECT($R40, "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})/"));
10351
+ var ReservedWord$0 = $S($R$0($EXPECT($R51, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
10352
+ var ReservedWord$1 = $S($R$0($EXPECT($R52, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
10353
+ var ReservedWord$2 = $S($R$0($EXPECT($R53, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
10354
+ var ReservedWord$3 = $S($R$0($EXPECT($R54, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
10355
+ 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})/"));
10107
10356
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
10108
10357
  function ReservedWord(ctx, state) {
10109
10358
  return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
10110
10359
  }
10111
- var Comment$0 = $T($S($EXPECT($R41, "Comment /(?=\\/|#)/"), _Comment), function(value) {
10360
+ var Comment$0 = $T($S($EXPECT($R56, "Comment /(?=\\/|#)/"), _Comment), function(value) {
10112
10361
  return value[1];
10113
10362
  });
10114
10363
  function Comment(ctx, state) {
@@ -10126,7 +10375,7 @@ ${input.slice(result.pos)}
10126
10375
  function SingleLineComment(ctx, state) {
10127
10376
  return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
10128
10377
  }
10129
- var JSSingleLineComment$0 = $TR($EXPECT($R42, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10378
+ var JSSingleLineComment$0 = $TR($EXPECT($R57, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10130
10379
  return { type: "Comment", $loc, token: $0 };
10131
10380
  });
10132
10381
  function JSSingleLineComment(ctx, state) {
@@ -10138,30 +10387,30 @@ ${input.slice(result.pos)}
10138
10387
  function MultiLineComment(ctx, state) {
10139
10388
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
10140
10389
  }
10141
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L109, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L110, 'JSMultiLineComment "*/"')), $EXPECT($R43, "JSMultiLineComment /./"))), $EXPECT($L110, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
10390
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L108, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L109, 'JSMultiLineComment "*/"')), $EXPECT($R58, "JSMultiLineComment /./"))), $EXPECT($L109, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
10142
10391
  return { type: "Comment", $loc, token: $1 };
10143
10392
  });
10144
10393
  function JSMultiLineComment(ctx, state) {
10145
10394
  return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
10146
10395
  }
10147
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R44, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10396
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R59, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10148
10397
  return { type: "Comment", $loc, token: `//${$1}` };
10149
10398
  });
10150
10399
  function CoffeeSingleLineComment(ctx, state) {
10151
10400
  return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
10152
10401
  }
10153
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R45, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
10402
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R60, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
10154
10403
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
10155
10404
  return { type: "Comment", $loc, token: `/*${$2}*/` };
10156
10405
  });
10157
10406
  function CoffeeMultiLineComment(ctx, state) {
10158
10407
  return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
10159
10408
  }
10160
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R46, "CoffeeHereCommentStart /###(?!#)/"));
10409
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R61, "CoffeeHereCommentStart /###(?!#)/"));
10161
10410
  function CoffeeHereCommentStart(ctx, state) {
10162
10411
  return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
10163
10412
  }
10164
- var InlineComment$0 = $TR($EXPECT($R47, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10413
+ var InlineComment$0 = $TR($EXPECT($R62, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10165
10414
  return { $loc, token: $0 };
10166
10415
  });
10167
10416
  function InlineComment(ctx, state) {
@@ -10175,34 +10424,38 @@ ${input.slice(result.pos)}
10175
10424
  function TrailingComment(ctx, state) {
10176
10425
  return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
10177
10426
  }
10178
- var _$0 = $T($S($EXPECT($R48, "_ /(?=[ \\t\\/])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
10427
+ var _$0 = $T($S($EXPECT($R63, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
10179
10428
  return value[1];
10180
10429
  });
10181
10430
  function _(ctx, state) {
10182
10431
  return $EVENT(ctx, state, "_", _$0);
10183
10432
  }
10184
- var NonNewlineWhitespace$0 = $TR($EXPECT($R49, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10433
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R64, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10185
10434
  return { $loc, token: $0 };
10186
10435
  });
10187
- var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L111, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
10188
- return "";
10436
+ var NonNewlineWhitespace$1 = $T($S($EXPECT($L110, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
10437
+ return " ";
10189
10438
  });
10190
10439
  var NonNewlineWhitespace$$ = [NonNewlineWhitespace$0, NonNewlineWhitespace$1];
10191
10440
  function NonNewlineWhitespace(ctx, state) {
10192
10441
  return $EVENT_C(ctx, state, "NonNewlineWhitespace", NonNewlineWhitespace$$);
10193
10442
  }
10194
- var Trimmed_$0 = $TV($Q(_), function($skip, $loc, $0, $1) {
10443
+ var Trimmed_$0 = $TV($E(_), function($skip, $loc, $0, $1) {
10195
10444
  var ws = $0;
10196
10445
  return insertTrimmingSpace(ws, "");
10197
10446
  });
10198
10447
  function Trimmed_(ctx, state) {
10199
10448
  return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
10200
10449
  }
10201
- var __$0 = $Q($C(Whitespace, Comment));
10450
+ var __$0 = $T($S($EXPECT($R65, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
10451
+ return value[1];
10452
+ });
10453
+ var __$1 = $EXPECT($L0, '__ ""');
10454
+ var __$$ = [__$0, __$1];
10202
10455
  function __(ctx, state) {
10203
- return $EVENT(ctx, state, "__", __$0);
10456
+ return $EVENT_C(ctx, state, "__", __$$);
10204
10457
  }
10205
- var Whitespace$0 = $TR($EXPECT($R28, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10458
+ var Whitespace$0 = $TR($EXPECT($R42, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10206
10459
  return { $loc, token: $0 };
10207
10460
  });
10208
10461
  function Whitespace(ctx, state) {
@@ -10218,17 +10471,16 @@ ${input.slice(result.pos)}
10218
10471
  function ExpressionDelimiter(ctx, state) {
10219
10472
  return $EVENT_C(ctx, state, "ExpressionDelimiter", ExpressionDelimiter$$);
10220
10473
  }
10221
- var SimpleStatementDelimiter$0 = SemicolonDelimiter;
10222
- var SimpleStatementDelimiter$1 = $Y(EOS);
10474
+ var SimpleStatementDelimiter$0 = $Y(EOS);
10475
+ var SimpleStatementDelimiter$1 = SemicolonDelimiter;
10223
10476
  var SimpleStatementDelimiter$$ = [SimpleStatementDelimiter$0, SimpleStatementDelimiter$1];
10224
10477
  function SimpleStatementDelimiter(ctx, state) {
10225
10478
  return $EVENT_C(ctx, state, "SimpleStatementDelimiter", SimpleStatementDelimiter$$);
10226
10479
  }
10227
- var StatementDelimiter$0 = SemicolonDelimiter;
10228
- var StatementDelimiter$1 = $S($Y($S(Nested, $C($EXPECT($L4, 'StatementDelimiter "("'), $EXPECT($L112, 'StatementDelimiter "["'), $EXPECT($L113, 'StatementDelimiter "`"'), $EXPECT($L58, 'StatementDelimiter "+"'), $EXPECT($L18, 'StatementDelimiter "-"'), $EXPECT($L54, 'StatementDelimiter "*"'), $EXPECT($L55, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, FatArrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L4, 'StatementDelimiter "("'))))), InsertSemicolon);
10229
- var StatementDelimiter$2 = $Y(EOS);
10230
- var StatementDelimiter$3 = $Y($S($Q(_), $C($EXPECT($L25, 'StatementDelimiter "}"'), $EXPECT($L114, 'StatementDelimiter ")"'), $EXPECT($L34, 'StatementDelimiter "]"'))));
10231
- var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2, StatementDelimiter$3];
10480
+ var StatementDelimiter$0 = $Y(EOS);
10481
+ var StatementDelimiter$1 = SemicolonDelimiter;
10482
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L25, 'StatementDelimiter "}"'), $EXPECT($L111, 'StatementDelimiter ")"'), $EXPECT($L34, 'StatementDelimiter "]"'))));
10483
+ var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
10232
10484
  function StatementDelimiter(ctx, state) {
10233
10485
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
10234
10486
  }
@@ -10241,7 +10493,7 @@ ${input.slice(result.pos)}
10241
10493
  function SemicolonDelimiter(ctx, state) {
10242
10494
  return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
10243
10495
  }
10244
- var NonIdContinue$0 = $R$0($EXPECT($R50, "NonIdContinue /(?!\\p{ID_Continue})/"));
10496
+ var NonIdContinue$0 = $R$0($EXPECT($R66, "NonIdContinue /(?!\\p{ID_Continue})/"));
10245
10497
  function NonIdContinue(ctx, state) {
10246
10498
  return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
10247
10499
  }
@@ -10251,73 +10503,73 @@ ${input.slice(result.pos)}
10251
10503
  function Loc(ctx, state) {
10252
10504
  return $EVENT(ctx, state, "Loc", Loc$0);
10253
10505
  }
10254
- var Abstract$0 = $TV($TEXT($S($EXPECT($L115, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L11, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10506
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L112, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L12, 'Abstract " "')))), function($skip, $loc, $0, $1) {
10255
10507
  return { $loc, token: $1, ts: true };
10256
10508
  });
10257
10509
  function Abstract(ctx, state) {
10258
10510
  return $EVENT(ctx, state, "Abstract", Abstract$0);
10259
10511
  }
10260
- var Ampersand$0 = $TV($EXPECT($L98, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
10512
+ var Ampersand$0 = $TV($EXPECT($L97, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
10261
10513
  return { $loc, token: $1 };
10262
10514
  });
10263
10515
  function Ampersand(ctx, state) {
10264
10516
  return $EVENT(ctx, state, "Ampersand", Ampersand$0);
10265
10517
  }
10266
- var As$0 = $TS($S($EXPECT($L116, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10518
+ var As$0 = $TS($S($EXPECT($L113, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10267
10519
  return { $loc, token: $1 };
10268
10520
  });
10269
10521
  function As(ctx, state) {
10270
10522
  return $EVENT(ctx, state, "As", As$0);
10271
10523
  }
10272
- var At$0 = $TV($EXPECT($L117, 'At "@"'), function($skip, $loc, $0, $1) {
10524
+ var At$0 = $TV($EXPECT($L114, 'At "@"'), function($skip, $loc, $0, $1) {
10273
10525
  return { $loc, token: $1 };
10274
10526
  });
10275
10527
  function At(ctx, state) {
10276
10528
  return $EVENT(ctx, state, "At", At$0);
10277
10529
  }
10278
- var AtAt$0 = $TV($EXPECT($L118, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
10530
+ var AtAt$0 = $TV($EXPECT($L115, 'AtAt "@@"'), function($skip, $loc, $0, $1) {
10279
10531
  return { $loc, token: "@" };
10280
10532
  });
10281
10533
  function AtAt(ctx, state) {
10282
10534
  return $EVENT(ctx, state, "AtAt", AtAt$0);
10283
10535
  }
10284
- var Async$0 = $TS($S($EXPECT($L119, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10536
+ var Async$0 = $TS($S($EXPECT($L116, 'Async "async"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10285
10537
  return { $loc, token: $1, type: "Async" };
10286
10538
  });
10287
10539
  function Async(ctx, state) {
10288
10540
  return $EVENT(ctx, state, "Async", Async$0);
10289
10541
  }
10290
- var Await$0 = $TS($S($EXPECT($L120, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10542
+ var Await$0 = $TS($S($EXPECT($L117, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10291
10543
  return { $loc, token: $1, type: "Await" };
10292
10544
  });
10293
10545
  function Await(ctx, state) {
10294
10546
  return $EVENT(ctx, state, "Await", Await$0);
10295
10547
  }
10296
- var Backtick$0 = $TV($EXPECT($L113, 'Backtick "`"'), function($skip, $loc, $0, $1) {
10548
+ var Backtick$0 = $TV($EXPECT($L118, 'Backtick "`"'), function($skip, $loc, $0, $1) {
10297
10549
  return { $loc, token: $1 };
10298
10550
  });
10299
10551
  function Backtick(ctx, state) {
10300
10552
  return $EVENT(ctx, state, "Backtick", Backtick$0);
10301
10553
  }
10302
- var By$0 = $TS($S($EXPECT($L121, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10554
+ var By$0 = $TS($S($EXPECT($L119, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10303
10555
  return { $loc, token: $1 };
10304
10556
  });
10305
10557
  function By(ctx, state) {
10306
10558
  return $EVENT(ctx, state, "By", By$0);
10307
10559
  }
10308
- var Case$0 = $TS($S($EXPECT($L122, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10560
+ var Case$0 = $TS($S($EXPECT($L120, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10309
10561
  return { $loc, token: $1 };
10310
10562
  });
10311
10563
  function Case(ctx, state) {
10312
10564
  return $EVENT(ctx, state, "Case", Case$0);
10313
10565
  }
10314
- var Catch$0 = $TS($S($EXPECT($L123, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10566
+ var Catch$0 = $TS($S($EXPECT($L121, 'Catch "catch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10315
10567
  return { $loc, token: $1 };
10316
10568
  });
10317
10569
  function Catch(ctx, state) {
10318
10570
  return $EVENT(ctx, state, "Catch", Catch$0);
10319
10571
  }
10320
- var Class$0 = $TS($S($EXPECT($L124, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10572
+ var Class$0 = $TS($S($EXPECT($L122, 'Class "class"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10321
10573
  return { $loc, token: $1 };
10322
10574
  });
10323
10575
  function Class(ctx, state) {
@@ -10335,19 +10587,19 @@ ${input.slice(result.pos)}
10335
10587
  function CloseBracket(ctx, state) {
10336
10588
  return $EVENT(ctx, state, "CloseBracket", CloseBracket$0);
10337
10589
  }
10338
- var CloseParen$0 = $TV($EXPECT($L114, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
10590
+ var CloseParen$0 = $TV($EXPECT($L111, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
10339
10591
  return { $loc, token: $1 };
10340
10592
  });
10341
10593
  function CloseParen(ctx, state) {
10342
10594
  return $EVENT(ctx, state, "CloseParen", CloseParen$0);
10343
10595
  }
10344
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L125, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
10596
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L123, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
10345
10597
  return { $loc, token: "${" };
10346
10598
  });
10347
10599
  function CoffeeSubstitutionStart(ctx, state) {
10348
10600
  return $EVENT(ctx, state, "CoffeeSubstitutionStart", CoffeeSubstitutionStart$0);
10349
10601
  }
10350
- var Colon$0 = $TS($S($EXPECT($L12, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
10602
+ var Colon$0 = $TS($S($EXPECT($L11, 'Colon ":"'), $N($EXPECT($L3, 'Colon "="'))), function($skip, $loc, $0, $1, $2) {
10351
10603
  return { $loc, token: $1 };
10352
10604
  });
10353
10605
  function Colon(ctx, state) {
@@ -10359,31 +10611,31 @@ ${input.slice(result.pos)}
10359
10611
  function Comma(ctx, state) {
10360
10612
  return $EVENT(ctx, state, "Comma", Comma$0);
10361
10613
  }
10362
- var ConstructorShorthand$0 = $TV($EXPECT($L117, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
10614
+ var ConstructorShorthand$0 = $TV($EXPECT($L114, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
10363
10615
  return { $loc, token: "constructor" };
10364
10616
  });
10365
10617
  function ConstructorShorthand(ctx, state) {
10366
10618
  return $EVENT(ctx, state, "ConstructorShorthand", ConstructorShorthand$0);
10367
10619
  }
10368
- var Declare$0 = $TS($S($EXPECT($L126, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10620
+ var Declare$0 = $TS($S($EXPECT($L124, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10369
10621
  return { $loc, token: $1 };
10370
10622
  });
10371
10623
  function Declare(ctx, state) {
10372
10624
  return $EVENT(ctx, state, "Declare", Declare$0);
10373
10625
  }
10374
- var Default$0 = $TS($S($EXPECT($L127, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10626
+ var Default$0 = $TS($S($EXPECT($L125, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10375
10627
  return { $loc, token: $1 };
10376
10628
  });
10377
10629
  function Default(ctx, state) {
10378
10630
  return $EVENT(ctx, state, "Default", Default$0);
10379
10631
  }
10380
- var Delete$0 = $TS($S($EXPECT($L128, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10632
+ var Delete$0 = $TS($S($EXPECT($L126, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10381
10633
  return { $loc, token: $1 };
10382
10634
  });
10383
10635
  function Delete(ctx, state) {
10384
10636
  return $EVENT(ctx, state, "Delete", Delete$0);
10385
10637
  }
10386
- var Do$0 = $TS($S($EXPECT($L129, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10638
+ var Do$0 = $TS($S($EXPECT($L127, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10387
10639
  return { $loc, token: $1 };
10388
10640
  });
10389
10641
  function Do(ctx, state) {
@@ -10392,7 +10644,7 @@ ${input.slice(result.pos)}
10392
10644
  var Dot$0 = $TV($EXPECT($L6, 'Dot "."'), function($skip, $loc, $0, $1) {
10393
10645
  return { $loc, token: $1 };
10394
10646
  });
10395
- var Dot$1 = $TS($S($EXPECT($R51, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
10647
+ var Dot$1 = $TS($S($EXPECT($R67, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
10396
10648
  var ws = $2;
10397
10649
  return [
10398
10650
  { $loc, token: "." },
@@ -10403,45 +10655,45 @@ ${input.slice(result.pos)}
10403
10655
  function Dot(ctx, state) {
10404
10656
  return $EVENT_C(ctx, state, "Dot", Dot$$);
10405
10657
  }
10406
- var DotDot$0 = $TS($S($EXPECT($L130, 'DotDot ".."'), $N($EXPECT($L6, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
10658
+ var DotDot$0 = $TS($S($EXPECT($L128, 'DotDot ".."'), $N($EXPECT($L6, 'DotDot "."'))), function($skip, $loc, $0, $1, $2) {
10407
10659
  return { $loc, token: $1 };
10408
10660
  });
10409
- var DotDot$1 = $TV($EXPECT($L131, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
10661
+ var DotDot$1 = $TV($EXPECT($L129, 'DotDot "\u2025"'), function($skip, $loc, $0, $1) {
10410
10662
  return { $loc, token: ".." };
10411
10663
  });
10412
10664
  var DotDot$$ = [DotDot$0, DotDot$1];
10413
10665
  function DotDot(ctx, state) {
10414
10666
  return $EVENT_C(ctx, state, "DotDot", DotDot$$);
10415
10667
  }
10416
- var DotDotDot$0 = $TV($EXPECT($L132, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
10668
+ var DotDotDot$0 = $TV($EXPECT($L130, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
10417
10669
  return { $loc, token: $1 };
10418
10670
  });
10419
- var DotDotDot$1 = $TV($EXPECT($L133, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
10671
+ var DotDotDot$1 = $TV($EXPECT($L131, 'DotDotDot "\u2026"'), function($skip, $loc, $0, $1) {
10420
10672
  return { $loc, token: "..." };
10421
10673
  });
10422
10674
  var DotDotDot$$ = [DotDotDot$0, DotDotDot$1];
10423
10675
  function DotDotDot(ctx, state) {
10424
10676
  return $EVENT_C(ctx, state, "DotDotDot", DotDotDot$$);
10425
10677
  }
10426
- var DoubleColon$0 = $TV($EXPECT($L134, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
10678
+ var DoubleColon$0 = $TV($EXPECT($L132, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
10427
10679
  return { $loc, token: $1 };
10428
10680
  });
10429
10681
  function DoubleColon(ctx, state) {
10430
10682
  return $EVENT(ctx, state, "DoubleColon", DoubleColon$0);
10431
10683
  }
10432
- var DoubleQuote$0 = $TV($EXPECT($L135, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
10684
+ var DoubleQuote$0 = $TV($EXPECT($L133, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
10433
10685
  return { $loc, token: $1 };
10434
10686
  });
10435
10687
  function DoubleQuote(ctx, state) {
10436
10688
  return $EVENT(ctx, state, "DoubleQuote", DoubleQuote$0);
10437
10689
  }
10438
- var Each$0 = $TS($S($EXPECT($L136, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10690
+ var Each$0 = $TS($S($EXPECT($L134, 'Each "each"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10439
10691
  return { $loc, token: $1 };
10440
10692
  });
10441
10693
  function Each(ctx, state) {
10442
10694
  return $EVENT(ctx, state, "Each", Each$0);
10443
10695
  }
10444
- var Else$0 = $TS($S($EXPECT($L137, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10696
+ var Else$0 = $TS($S($EXPECT($L135, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10445
10697
  return { $loc, token: $1 };
10446
10698
  });
10447
10699
  function Else(ctx, state) {
@@ -10453,85 +10705,85 @@ ${input.slice(result.pos)}
10453
10705
  function Equals(ctx, state) {
10454
10706
  return $EVENT(ctx, state, "Equals", Equals$0);
10455
10707
  }
10456
- var Export$0 = $TS($S($EXPECT($L138, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10708
+ var Export$0 = $TS($S($EXPECT($L136, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10457
10709
  return { $loc, token: $1 };
10458
10710
  });
10459
10711
  function Export(ctx, state) {
10460
10712
  return $EVENT(ctx, state, "Export", Export$0);
10461
10713
  }
10462
- var Extends$0 = $TS($S($EXPECT($L139, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10714
+ var Extends$0 = $TS($S($EXPECT($L137, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10463
10715
  return { $loc, token: $1 };
10464
10716
  });
10465
10717
  function Extends(ctx, state) {
10466
10718
  return $EVENT(ctx, state, "Extends", Extends$0);
10467
10719
  }
10468
- var Finally$0 = $TS($S($EXPECT($L140, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10720
+ var Finally$0 = $TS($S($EXPECT($L138, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10469
10721
  return { $loc, token: $1 };
10470
10722
  });
10471
10723
  function Finally(ctx, state) {
10472
10724
  return $EVENT(ctx, state, "Finally", Finally$0);
10473
10725
  }
10474
- var For$0 = $TS($S($EXPECT($L141, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10726
+ var For$0 = $TS($S($EXPECT($L139, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10475
10727
  return { $loc, token: $1 };
10476
10728
  });
10477
10729
  function For(ctx, state) {
10478
10730
  return $EVENT(ctx, state, "For", For$0);
10479
10731
  }
10480
- var From$0 = $TS($S($EXPECT($L142, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10732
+ var From$0 = $TS($S($EXPECT($L140, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10481
10733
  return { $loc, token: $1 };
10482
10734
  });
10483
10735
  function From(ctx, state) {
10484
10736
  return $EVENT(ctx, state, "From", From$0);
10485
10737
  }
10486
- var Function$0 = $TS($S($EXPECT($L143, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10738
+ var Function$0 = $TS($S($EXPECT($L141, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10487
10739
  return { $loc, token: $1 };
10488
10740
  });
10489
10741
  function Function(ctx, state) {
10490
10742
  return $EVENT(ctx, state, "Function", Function$0);
10491
10743
  }
10492
- var GetOrSet$0 = $TS($S($C($EXPECT($L144, 'GetOrSet "get"'), $EXPECT($L145, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10744
+ var GetOrSet$0 = $TS($S($C($EXPECT($L142, 'GetOrSet "get"'), $EXPECT($L143, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10493
10745
  return { $loc, token: $1, type: "GetOrSet" };
10494
10746
  });
10495
10747
  function GetOrSet(ctx, state) {
10496
10748
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
10497
10749
  }
10498
- var Hash$0 = $TV($EXPECT($L146, 'Hash "#"'), function($skip, $loc, $0, $1) {
10750
+ var Hash$0 = $TV($EXPECT($L144, 'Hash "#"'), function($skip, $loc, $0, $1) {
10499
10751
  return { $loc, token: $1 };
10500
10752
  });
10501
10753
  function Hash(ctx, state) {
10502
10754
  return $EVENT(ctx, state, "Hash", Hash$0);
10503
10755
  }
10504
- var If$0 = $TV($TEXT($S($EXPECT($L147, 'If "if"'), NonIdContinue, $E($EXPECT($L11, 'If " "')))), function($skip, $loc, $0, $1) {
10756
+ var If$0 = $TV($TEXT($S($EXPECT($L145, 'If "if"'), NonIdContinue, $E($EXPECT($L12, 'If " "')))), function($skip, $loc, $0, $1) {
10505
10757
  return { $loc, token: $1 };
10506
10758
  });
10507
10759
  function If(ctx, state) {
10508
10760
  return $EVENT(ctx, state, "If", If$0);
10509
10761
  }
10510
- var Import$0 = $TS($S($EXPECT($L15, 'Import "import"'), $Y($EXPECT($R52, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
10762
+ var Import$0 = $TS($S($EXPECT($L15, 'Import "import"'), $Y($EXPECT($R68, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
10511
10763
  return { $loc, token: $1 };
10512
10764
  });
10513
10765
  function Import(ctx, state) {
10514
10766
  return $EVENT(ctx, state, "Import", Import$0);
10515
10767
  }
10516
- var In$0 = $TS($S($EXPECT($L148, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10768
+ var In$0 = $TS($S($EXPECT($L146, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10517
10769
  return { $loc, token: $1 };
10518
10770
  });
10519
10771
  function In(ctx, state) {
10520
10772
  return $EVENT(ctx, state, "In", In$0);
10521
10773
  }
10522
- var LetOrConst$0 = $TS($S($C($EXPECT($L149, 'LetOrConst "let"'), $EXPECT($L150, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10774
+ var LetOrConst$0 = $TS($S($C($EXPECT($L147, 'LetOrConst "let"'), $EXPECT($L148, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10523
10775
  return { $loc, token: $1 };
10524
10776
  });
10525
10777
  function LetOrConst(ctx, state) {
10526
10778
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
10527
10779
  }
10528
- var Const$0 = $TS($S($EXPECT($L150, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10780
+ var Const$0 = $TS($S($EXPECT($L148, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10529
10781
  return { $loc, token: $1 };
10530
10782
  });
10531
10783
  function Const(ctx, state) {
10532
10784
  return $EVENT(ctx, state, "Const", Const$0);
10533
10785
  }
10534
- var Is$0 = $TS($S($EXPECT($L151, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10786
+ var Is$0 = $TS($S($EXPECT($L149, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10535
10787
  return { $loc, token: $1 };
10536
10788
  });
10537
10789
  function Is(ctx, state) {
@@ -10543,31 +10795,31 @@ ${input.slice(result.pos)}
10543
10795
  function LetOrConstOrVar(ctx, state) {
10544
10796
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
10545
10797
  }
10546
- var Loop$0 = $TS($S($EXPECT($L152, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10798
+ var Loop$0 = $TS($S($EXPECT($L150, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10547
10799
  return { $loc, token: "while(true)" };
10548
10800
  });
10549
10801
  function Loop(ctx, state) {
10550
10802
  return $EVENT(ctx, state, "Loop", Loop$0);
10551
10803
  }
10552
- var New$0 = $TS($S($EXPECT($L153, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10804
+ var New$0 = $TS($S($EXPECT($L151, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10553
10805
  return { $loc, token: $1 };
10554
10806
  });
10555
10807
  function New(ctx, state) {
10556
10808
  return $EVENT(ctx, state, "New", New$0);
10557
10809
  }
10558
- var Not$0 = $TS($S($EXPECT($L154, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L12, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
10810
+ var Not$0 = $TS($S($EXPECT($L152, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L11, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
10559
10811
  return { $loc, token: "!" };
10560
10812
  });
10561
10813
  function Not(ctx, state) {
10562
10814
  return $EVENT(ctx, state, "Not", Not$0);
10563
10815
  }
10564
- var Of$0 = $TS($S($EXPECT($L84, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10816
+ var Of$0 = $TS($S($EXPECT($L153, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10565
10817
  return { $loc, token: $1 };
10566
10818
  });
10567
10819
  function Of(ctx, state) {
10568
10820
  return $EVENT(ctx, state, "Of", Of$0);
10569
10821
  }
10570
- var OpenAngleBracket$0 = $TV($EXPECT($L155, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
10822
+ var OpenAngleBracket$0 = $TV($EXPECT($L154, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
10571
10823
  return { $loc, token: $1 };
10572
10824
  });
10573
10825
  function OpenAngleBracket(ctx, state) {
@@ -10579,7 +10831,7 @@ ${input.slice(result.pos)}
10579
10831
  function OpenBrace(ctx, state) {
10580
10832
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
10581
10833
  }
10582
- var OpenBracket$0 = $TV($EXPECT($L112, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
10834
+ var OpenBracket$0 = $TV($EXPECT($L155, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
10583
10835
  return { $loc, token: $1 };
10584
10836
  });
10585
10837
  function OpenBracket(ctx, state) {
@@ -10658,7 +10910,7 @@ ${input.slice(result.pos)}
10658
10910
  function Satisfies(ctx, state) {
10659
10911
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
10660
10912
  }
10661
- var Semicolon$0 = $TV($EXPECT($L100, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
10913
+ var Semicolon$0 = $TV($EXPECT($L99, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
10662
10914
  return { $loc, token: $1 };
10663
10915
  });
10664
10916
  function Semicolon(ctx, state) {
@@ -10679,7 +10931,7 @@ ${input.slice(result.pos)}
10679
10931
  var Static$0 = $TS($S($EXPECT($L171, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10680
10932
  return { $loc, token: $1 };
10681
10933
  });
10682
- var Static$1 = $TS($S($EXPECT($L117, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L117, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
10934
+ var Static$1 = $TS($S($EXPECT($L114, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L114, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
10683
10935
  return { $loc, token: "static " };
10684
10936
  });
10685
10937
  var Static$$ = [Static$0, Static$1];
@@ -10835,12 +11087,18 @@ ${input.slice(result.pos)}
10835
11087
  function JSXImplicitFragment(ctx, state) {
10836
11088
  return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
10837
11089
  }
10838
- var JSXTag$0 = JSXElement;
10839
- var JSXTag$1 = JSXFragment;
10840
- var JSXTag$2 = JSXComment;
10841
- var JSXTag$$ = [JSXTag$0, JSXTag$1, JSXTag$2];
11090
+ var JSXTag$0 = $T($S($EXPECT($R69, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
11091
+ return value[1];
11092
+ });
10842
11093
  function JSXTag(ctx, state) {
10843
- return $EVENT_C(ctx, state, "JSXTag", JSXTag$$);
11094
+ return $EVENT(ctx, state, "JSXTag", JSXTag$0);
11095
+ }
11096
+ var _JSXTag$0 = JSXElement;
11097
+ var _JSXTag$1 = JSXFragment;
11098
+ var _JSXTag$2 = JSXComment;
11099
+ var _JSXTag$$ = [_JSXTag$0, _JSXTag$1, _JSXTag$2];
11100
+ function _JSXTag(ctx, state) {
11101
+ return $EVENT_C(ctx, state, "_JSXTag", _JSXTag$$);
10844
11102
  }
10845
11103
  var JSXElement$0 = JSXSelfClosingElement;
10846
11104
  var JSXElement$1 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningElement, $E(JSXMixedChildren), JSXOptionalClosingElement, PopJSXStack), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
@@ -10879,7 +11137,7 @@ ${input.slice(result.pos)}
10879
11137
  function JSXElement(ctx, state) {
10880
11138
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
10881
11139
  }
10882
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L155, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L193, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
11140
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L154, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L193, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10883
11141
  return { type: "JSXElement", children: $0, tag: $2 };
10884
11142
  });
10885
11143
  function JSXSelfClosingElement(ctx, state) {
@@ -10898,7 +11156,7 @@ ${input.slice(result.pos)}
10898
11156
  function PopJSXStack(ctx, state) {
10899
11157
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
10900
11158
  }
10901
- var JSXOpeningElement$0 = $S($EXPECT($L155, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L33, 'JSXOpeningElement ">"'));
11159
+ var JSXOpeningElement$0 = $S($EXPECT($L154, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L33, 'JSXOpeningElement ">"'));
10902
11160
  function JSXOpeningElement(ctx, state) {
10903
11161
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
10904
11162
  }
@@ -10968,7 +11226,7 @@ ${input.slice(result.pos)}
10968
11226
  function JSXClosingFragment(ctx, state) {
10969
11227
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
10970
11228
  }
10971
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L146, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
11229
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L144, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
10972
11230
  return module.config.defaultElement;
10973
11231
  });
10974
11232
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -10976,7 +11234,7 @@ ${input.slice(result.pos)}
10976
11234
  function JSXElementName(ctx, state) {
10977
11235
  return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
10978
11236
  }
10979
- var JSXIdentifierName$0 = $R$0($EXPECT($R53, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
11237
+ var JSXIdentifierName$0 = $R$0($EXPECT($R70, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
10980
11238
  function JSXIdentifierName(ctx, state) {
10981
11239
  return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
10982
11240
  }
@@ -11140,7 +11398,7 @@ ${input.slice(result.pos)}
11140
11398
  }
11141
11399
  return $skip;
11142
11400
  });
11143
- var JSXAttribute$5 = $TS($S($EXPECT($L146, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
11401
+ var JSXAttribute$5 = $TS($S($EXPECT($L144, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
11144
11402
  return [" ", "id=", $2];
11145
11403
  });
11146
11404
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -11149,7 +11407,7 @@ ${input.slice(result.pos)}
11149
11407
  class: $2
11150
11408
  };
11151
11409
  });
11152
- var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R6, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
11410
+ var JSXAttribute$7 = $TS($S($TEXT($EXPECT($R15, "JSXAttribute /[!+-]/")), JSXAttributeName, $Y(JSXAttributeSpace)), function($skip, $loc, $0, $1, $2, $3) {
11153
11411
  var toggle = $1;
11154
11412
  var id = $2;
11155
11413
  const value = toggle === "+" ? "true" : "false";
@@ -11159,11 +11417,11 @@ ${input.slice(result.pos)}
11159
11417
  function JSXAttribute(ctx, state) {
11160
11418
  return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
11161
11419
  }
11162
- var JSXAttributeSpace$0 = $R$0($EXPECT($R54, "JSXAttributeSpace /[\\s>]|\\/>/"));
11420
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R71, "JSXAttributeSpace /[\\s>]|\\/>/"));
11163
11421
  function JSXAttributeSpace(ctx, state) {
11164
11422
  return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
11165
11423
  }
11166
- var JSXShorthandString$0 = $TR($EXPECT($R55, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11424
+ var JSXShorthandString$0 = $TR($EXPECT($R72, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11167
11425
  return quoteString($0);
11168
11426
  });
11169
11427
  var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -11197,7 +11455,7 @@ ${input.slice(result.pos)}
11197
11455
  }
11198
11456
  return [open, value, close];
11199
11457
  });
11200
- var JSXAttributeValue$4 = $R$0($EXPECT($R56, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
11458
+ var JSXAttributeValue$4 = $R$0($EXPECT($R73, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
11201
11459
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
11202
11460
  function JSXAttributeValue(ctx, state) {
11203
11461
  return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
@@ -11210,7 +11468,7 @@ ${input.slice(result.pos)}
11210
11468
  function InlineJSXAttributeValue(ctx, state) {
11211
11469
  return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
11212
11470
  }
11213
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R57, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
11471
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R74, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
11214
11472
  var op = $2;
11215
11473
  var rhs = $3;
11216
11474
  return [[], op, [], rhs];
@@ -11227,7 +11485,7 @@ ${input.slice(result.pos)}
11227
11485
  function InlineJSXUnaryExpression(ctx, state) {
11228
11486
  return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
11229
11487
  }
11230
- var InlineJSXUnaryOp$0 = $TR($EXPECT($R58, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11488
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R75, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11231
11489
  return { $loc, token: $0 };
11232
11490
  });
11233
11491
  function InlineJSXUnaryOp(ctx, state) {
@@ -11294,7 +11552,7 @@ ${input.slice(result.pos)}
11294
11552
  }
11295
11553
  return $1;
11296
11554
  });
11297
- var InlineJSXCallExpressionRest$2 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
11555
+ var InlineJSXCallExpressionRest$2 = $TS($S($E(OptionalShorthand), ExplicitArguments), function($skip, $loc, $0, $1, $2) {
11298
11556
  var args = $2;
11299
11557
  args = { type: "Call", children: args };
11300
11558
  if (!$1)
@@ -11318,7 +11576,7 @@ ${input.slice(result.pos)}
11318
11576
  function InlineJSXMemberExpression(ctx, state) {
11319
11577
  return $EVENT(ctx, state, "InlineJSXMemberExpression", InlineJSXMemberExpression$0);
11320
11578
  }
11321
- var InlineJSXMemberExpressionRest$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
11579
+ var InlineJSXMemberExpressionRest$0 = $TS($S($E(OptionalShorthand), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
11322
11580
  if ($1) {
11323
11581
  if ($1.type === "Optional" && $2.type === "SliceExpression") {
11324
11582
  return [$1.children[0], $2];
@@ -11439,13 +11697,13 @@ ${input.slice(result.pos)}
11439
11697
  function JSXComment(ctx, state) {
11440
11698
  return $EVENT(ctx, state, "JSXComment", JSXComment$0);
11441
11699
  }
11442
- var JSXCommentContent$0 = $TR($EXPECT($R59, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11700
+ var JSXCommentContent$0 = $TR($EXPECT($R76, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11443
11701
  return { $loc, token: $0.replace(/\*\//g, "* /") };
11444
11702
  });
11445
11703
  function JSXCommentContent(ctx, state) {
11446
11704
  return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
11447
11705
  }
11448
- var JSXText$0 = $TR($EXPECT($R60, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11706
+ var JSXText$0 = $TR($EXPECT($R77, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11449
11707
  return {
11450
11708
  type: "JSXText",
11451
11709
  token: $0,
@@ -11810,7 +12068,7 @@ ${input.slice(result.pos)}
11810
12068
  function TypeProperty(ctx, state) {
11811
12069
  return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
11812
12070
  }
11813
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R61, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R62, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
12071
+ 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)))));
11814
12072
  function TypeIndexSignature(ctx, state) {
11815
12073
  return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
11816
12074
  }
@@ -11861,7 +12119,7 @@ ${input.slice(result.pos)}
11861
12119
  function ReturnType(ctx, state) {
11862
12120
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
11863
12121
  }
11864
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L151, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
12122
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L149, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
11865
12123
  var lhs = $1;
11866
12124
  var rhs = $2;
11867
12125
  if (!rhs)
@@ -12023,7 +12281,7 @@ ${input.slice(result.pos)}
12023
12281
  function NestedType(ctx, state) {
12024
12282
  return $EVENT(ctx, state, "NestedType", NestedType$0);
12025
12283
  }
12026
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L139, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
12284
+ var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L137, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
12027
12285
  if ($2)
12028
12286
  return $0;
12029
12287
  return $1;
@@ -12083,16 +12341,16 @@ ${input.slice(result.pos)}
12083
12341
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
12084
12342
  return value[1];
12085
12343
  });
12086
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L12, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L114, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L34, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L25, 'InlineInterfacePropertyDelimiter "}"'))));
12344
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L11, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L111, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L34, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L25, 'InlineInterfacePropertyDelimiter "}"'))));
12087
12345
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
12088
12346
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
12089
12347
  function InlineInterfacePropertyDelimiter(ctx, state) {
12090
12348
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
12091
12349
  }
12092
- var TypeBinaryOp$0 = $TV($EXPECT($L99, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
12350
+ var TypeBinaryOp$0 = $TV($EXPECT($L98, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
12093
12351
  return { $loc, token: "|" };
12094
12352
  });
12095
- var TypeBinaryOp$1 = $TV($EXPECT($L98, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
12353
+ var TypeBinaryOp$1 = $TV($EXPECT($L97, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
12096
12354
  return { $loc, token: "&" };
12097
12355
  });
12098
12356
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
@@ -12115,7 +12373,7 @@ ${input.slice(result.pos)}
12115
12373
  function TypeArrowFunction(ctx, state) {
12116
12374
  return $EVENT(ctx, state, "TypeArrowFunction", TypeArrowFunction$0);
12117
12375
  }
12118
- var TypeArguments$0 = $TS($S($EXPECT($L155, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
12376
+ var TypeArguments$0 = $TS($S($EXPECT($L154, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
12119
12377
  var args = $2;
12120
12378
  return { ts: true, types: args.map(([, t]) => t), children: $0 };
12121
12379
  });
@@ -12130,7 +12388,7 @@ ${input.slice(result.pos)}
12130
12388
  function TypeArgumentDelimiter(ctx, state) {
12131
12389
  return $EVENT(ctx, state, "TypeArgumentDelimiter", TypeArgumentDelimiter$0);
12132
12390
  }
12133
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L155, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12391
+ var TypeParameters$0 = $TS($S($E(_), $EXPECT($L154, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12134
12392
  var parameters = $3;
12135
12393
  return {
12136
12394
  type: "TypeParameters",
@@ -12142,11 +12400,11 @@ ${input.slice(result.pos)}
12142
12400
  function TypeParameters(ctx, state) {
12143
12401
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
12144
12402
  }
12145
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L150, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
12403
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L148, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
12146
12404
  function TypeParameter(ctx, state) {
12147
12405
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
12148
12406
  }
12149
- var TypeConstraint$0 = $S(__, $EXPECT($L139, 'TypeConstraint "extends"'), NonIdContinue, Type);
12407
+ var TypeConstraint$0 = $S(__, $EXPECT($L137, 'TypeConstraint "extends"'), NonIdContinue, Type);
12150
12408
  function TypeConstraint(ctx, state) {
12151
12409
  return $EVENT(ctx, state, "TypeConstraint", TypeConstraint$0);
12152
12410
  }
@@ -12154,7 +12412,7 @@ ${input.slice(result.pos)}
12154
12412
  function TypeInitializer(ctx, state) {
12155
12413
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
12156
12414
  }
12157
- var TypeParameterDelimiter$0 = $S($Q(_), Comma);
12415
+ var TypeParameterDelimiter$0 = $S($E(_), Comma);
12158
12416
  var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L33, 'TypeParameterDelimiter ">"')));
12159
12417
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
12160
12418
  return value[1];
@@ -12169,15 +12427,15 @@ ${input.slice(result.pos)}
12169
12427
  function ThisType(ctx, state) {
12170
12428
  return $EVENT(ctx, state, "ThisType", ThisType$0);
12171
12429
  }
12172
- var Shebang$0 = $S($R$0($EXPECT($R63, "Shebang /#![^\\r\\n]*/")), EOL);
12430
+ var Shebang$0 = $S($R$0($EXPECT($R80, "Shebang /#![^\\r\\n]*/")), EOL);
12173
12431
  function Shebang(ctx, state) {
12174
12432
  return $EVENT(ctx, state, "Shebang", Shebang$0);
12175
12433
  }
12176
- var CivetPrologue$0 = $T($S($EXPECT($R64, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $E(EOS)), function(value) {
12434
+ var CivetPrologue$0 = $T($S($EXPECT($R81, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, SimpleStatementDelimiter, $E(EOS)), function(value) {
12177
12435
  var content = value[2];
12178
12436
  return content;
12179
12437
  });
12180
- var CivetPrologue$1 = $T($S($EXPECT($R64, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $E(EOS)), function(value) {
12438
+ var CivetPrologue$1 = $T($S($EXPECT($R81, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, SimpleStatementDelimiter, $E(EOS)), function(value) {
12181
12439
  var content = value[2];
12182
12440
  return content;
12183
12441
  });
@@ -12185,7 +12443,7 @@ ${input.slice(result.pos)}
12185
12443
  function CivetPrologue(ctx, state) {
12186
12444
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
12187
12445
  }
12188
- var CivetPrologueContent$0 = $TS($S($EXPECT($L210, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R65, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
12446
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L210, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R82, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
12189
12447
  var options = $3;
12190
12448
  return {
12191
12449
  type: "CivetPrologue",
@@ -12196,7 +12454,7 @@ ${input.slice(result.pos)}
12196
12454
  function CivetPrologueContent(ctx, state) {
12197
12455
  return $EVENT(ctx, state, "CivetPrologueContent", CivetPrologueContent$0);
12198
12456
  }
12199
- var CivetOption$0 = $TR($EXPECT($R66, "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) {
12457
+ 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) {
12200
12458
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
12201
12459
  if (l)
12202
12460
  return l.toUpperCase();
@@ -12213,11 +12471,11 @@ ${input.slice(result.pos)}
12213
12471
  function CivetOption(ctx, state) {
12214
12472
  return $EVENT(ctx, state, "CivetOption", CivetOption$0);
12215
12473
  }
12216
- var UnknownPrologue$0 = $S($R$0($EXPECT($R64, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
12474
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R81, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
12217
12475
  function UnknownPrologue(ctx, state) {
12218
12476
  return $EVENT(ctx, state, "UnknownPrologue", UnknownPrologue$0);
12219
12477
  }
12220
- var TripleSlashDirective$0 = $S($R$0($EXPECT($R67, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
12478
+ var TripleSlashDirective$0 = $S($R$0($EXPECT($R84, "TripleSlashDirective /\\/\\/\\/[^\\r\\n]*/")), $E(EOS));
12221
12479
  function TripleSlashDirective(ctx, state) {
12222
12480
  return $EVENT(ctx, state, "TripleSlashDirective", TripleSlashDirective$0);
12223
12481
  }
@@ -12231,13 +12489,13 @@ ${input.slice(result.pos)}
12231
12489
  function PrologueString(ctx, state) {
12232
12490
  return $EVENT_C(ctx, state, "PrologueString", PrologueString$$);
12233
12491
  }
12234
- var EOS$0 = $T($S($EXPECT($R68, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
12492
+ var EOS$0 = $T($S($EXPECT($R85, "EOS /(?=[ \\t\\r\\n\\/#]|$)/"), $P(RestOfLine)), function(value) {
12235
12493
  return value[1];
12236
12494
  });
12237
12495
  function EOS(ctx, state) {
12238
12496
  return $EVENT(ctx, state, "EOS", EOS$0);
12239
12497
  }
12240
- var EOL$0 = $TR($EXPECT($R69, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12498
+ var EOL$0 = $TR($EXPECT($R86, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12241
12499
  return { $loc, token: $0 };
12242
12500
  });
12243
12501
  function EOL(ctx, state) {
@@ -12731,7 +12989,7 @@ ${input.slice(result.pos)}
12731
12989
  function Init(ctx, state) {
12732
12990
  return $EVENT(ctx, state, "Init", Init$0);
12733
12991
  }
12734
- var Indent$0 = $TR($EXPECT($R70, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12992
+ var Indent$0 = $TR($EXPECT($R87, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12735
12993
  const level = getIndentLevel($0, module.config.tab);
12736
12994
  return {
12737
12995
  $loc,
@@ -12853,6 +13111,7 @@ ${input.slice(result.pos)}
12853
13111
  exports.NestedNonAssignmentExtendedExpression = NestedNonAssignmentExtendedExpression;
12854
13112
  exports.ExpressionizedStatementWithTrailingCallExpressions = ExpressionizedStatementWithTrailingCallExpressions;
12855
13113
  exports.ExpressionizedStatement = ExpressionizedStatement;
13114
+ exports._ExpressionizedStatement = _ExpressionizedStatement;
12856
13115
  exports.Expression = Expression;
12857
13116
  exports.Arguments = Arguments;
12858
13117
  exports.ImplicitArguments = ImplicitArguments;
@@ -12944,6 +13203,7 @@ ${input.slice(result.pos)}
12944
13203
  exports.MemberBracketContent = MemberBracketContent;
12945
13204
  exports.SliceParameters = SliceParameters;
12946
13205
  exports.AccessStart = AccessStart;
13206
+ exports.PropertyAccessModifier = PropertyAccessModifier;
12947
13207
  exports.PropertyAccess = PropertyAccess;
12948
13208
  exports.PropertyGlob = PropertyGlob;
12949
13209
  exports.PropertyBind = PropertyBind;
@@ -13014,12 +13274,14 @@ ${input.slice(result.pos)}
13014
13274
  exports.LiteralContent = LiteralContent;
13015
13275
  exports.NullLiteral = NullLiteral;
13016
13276
  exports.BooleanLiteral = BooleanLiteral;
13277
+ exports._BooleanLiteral = _BooleanLiteral;
13017
13278
  exports.CoffeeScriptBooleanLiteral = CoffeeScriptBooleanLiteral;
13018
13279
  exports.Identifier = Identifier;
13019
13280
  exports.IdentifierName = IdentifierName;
13020
13281
  exports.IdentifierReference = IdentifierReference;
13021
13282
  exports.UpcomingAssignment = UpcomingAssignment;
13022
13283
  exports.ArrayLiteral = ArrayLiteral;
13284
+ exports._ArrayLiteral = _ArrayLiteral;
13023
13285
  exports.RangeExpression = RangeExpression;
13024
13286
  exports.ArrayLiteralContent = ArrayLiteralContent;
13025
13287
  exports.NestedElementList = NestedElementList;
@@ -13060,7 +13322,10 @@ ${input.slice(result.pos)}
13060
13322
  exports.NotDedentedBinaryOp = NotDedentedBinaryOp;
13061
13323
  exports.IdentifierBinaryOp = IdentifierBinaryOp;
13062
13324
  exports.BinaryOp = BinaryOp;
13325
+ exports._BinaryOp = _BinaryOp;
13063
13326
  exports.BinaryOpSymbol = BinaryOpSymbol;
13327
+ exports.CoffeeOfOp = CoffeeOfOp;
13328
+ exports.NotOp = NotOp;
13064
13329
  exports.Xor = Xor;
13065
13330
  exports.Xnor = Xnor;
13066
13331
  exports.UnaryOp = UnaryOp;
@@ -13071,6 +13336,7 @@ ${input.slice(result.pos)}
13071
13336
  exports.PostfixedExpression = PostfixedExpression;
13072
13337
  exports.NonPipelinePostfixedExpression = NonPipelinePostfixedExpression;
13073
13338
  exports.PostfixStatement = PostfixStatement;
13339
+ exports._PostfixStatement = _PostfixStatement;
13074
13340
  exports.Statement = Statement;
13075
13341
  exports.EmptyStatement = EmptyStatement;
13076
13342
  exports.BlockStatement = BlockStatement;
@@ -13090,6 +13356,7 @@ ${input.slice(result.pos)}
13090
13356
  exports.NestedBlockExpression = NestedBlockExpression;
13091
13357
  exports.BlockExpressionPart = BlockExpressionPart;
13092
13358
  exports.IterationStatement = IterationStatement;
13359
+ exports._IterationStatement = _IterationStatement;
13093
13360
  exports.IterationExpression = IterationExpression;
13094
13361
  exports.LoopStatement = LoopStatement;
13095
13362
  exports.LoopClause = LoopClause;
@@ -13226,6 +13493,7 @@ ${input.slice(result.pos)}
13226
13493
  exports.RegExpCharacter = RegExpCharacter;
13227
13494
  exports.RegularExpressionFlags = RegularExpressionFlags;
13228
13495
  exports.TemplateLiteral = TemplateLiteral;
13496
+ exports._TemplateLiteral = _TemplateLiteral;
13229
13497
  exports.TemplateSubstitution = TemplateSubstitution;
13230
13498
  exports.TemplateCharacters = TemplateCharacters;
13231
13499
  exports.TemplateBlockCharacters = TemplateBlockCharacters;
@@ -13344,6 +13612,7 @@ ${input.slice(result.pos)}
13344
13612
  exports.Yield = Yield;
13345
13613
  exports.JSXImplicitFragment = JSXImplicitFragment;
13346
13614
  exports.JSXTag = JSXTag;
13615
+ exports._JSXTag = _JSXTag;
13347
13616
  exports.JSXElement = JSXElement;
13348
13617
  exports.JSXSelfClosingElement = JSXSelfClosingElement;
13349
13618
  exports.PushJSXOpeningElement = PushJSXOpeningElement;
@@ -14182,7 +14451,8 @@ ${counts}`;
14182
14451
  return;
14183
14452
  }
14184
14453
  ;
14185
- const key = [ruleName, state.pos, ...getStateKey()];
14454
+ const [stateKey, tagKey] = getStateKey();
14455
+ const key = [tagKey, stateKey, state.pos, ruleName];
14186
14456
  if (stateCache.has(key)) {
14187
14457
  if (trace) {
14188
14458
  logs.push("".padStart(stack.length * 2, " ") + ruleName + ":" + state.pos + "\u{1F4B0}");
@@ -14203,12 +14473,9 @@ ${counts}`;
14203
14473
  ({ getStateKey } = result.value);
14204
14474
  }
14205
14475
  if (!uncacheable.has(ruleName)) {
14206
- const key = [ruleName, state.pos, ...getStateKey()];
14207
- if (result) {
14208
- stateCache.set(key, { ...result });
14209
- } else {
14210
- stateCache.set(key, result);
14211
- }
14476
+ const [stateKey, tagKey] = getStateKey();
14477
+ const key = [tagKey, stateKey, state.pos, ruleName];
14478
+ stateCache.set(key, result);
14212
14479
  }
14213
14480
  if (parse.config.verbose && result) {
14214
14481
  console.log(`Parsed ${JSON.stringify(state.input.slice(state.pos, result.pos))} [pos ${state.pos}-${result.pos}] as ${ruleName}`);