@danielx/civet 0.6.73 → 0.6.75

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
@@ -1251,15 +1251,15 @@ var Civet = (() => {
1251
1251
  }
1252
1252
  function insertHoistDec(block, node, dec) {
1253
1253
  const { expressions } = block;
1254
- const index = expressions.findIndex((exp) => exp === node || Array.isArray(exp) && exp[1] === node);
1255
- if (index < 0)
1254
+ const index = expressions.findIndex((exp) => {
1255
+ return exp === node || Array.isArray(exp) && exp[1] === node;
1256
+ });
1257
+ if (index < 0) {
1256
1258
  throw new Error("Couldn't find expression in block for hoistable declaration.");
1257
- if (expressions[index] === node) {
1258
- expressions.splice(index, 0, ["", dec, ";"]);
1259
- } else {
1260
- const indent = expressions[index][0];
1261
- expressions.splice(index, 0, [indent, dec, ";"]);
1262
1259
  }
1260
+ const statement = [expressions[index][0], dec, ";"];
1261
+ expressions[index][0] = "";
1262
+ expressions.splice(index, 0, statement);
1263
1263
  addParentPointers(dec, block);
1264
1264
  }
1265
1265
  function patternAsValue(pattern) {
@@ -1425,6 +1425,9 @@ var Civet = (() => {
1425
1425
  function isGeneratorVoidType(t) {
1426
1426
  return t?.type === "IdentifierType" && (t.raw === "Iterator" || t.raw === "Generator") && t.args?.types?.length >= 2 && isVoidType(t.args.types[1]);
1427
1427
  }
1428
+ function isAsyncGeneratorVoidType(t) {
1429
+ return t?.type === "IdentifierType" && (t.raw === "AsyncIterator" || t.raw === "AsyncGenerator") && t.args?.types?.length >= 2 && isVoidType(t.args.types[1]);
1430
+ }
1428
1431
  function isWhitespaceOrEmpty(node) {
1429
1432
  if (!node)
1430
1433
  return true;
@@ -1827,6 +1830,7 @@ var Civet = (() => {
1827
1830
  case "IterationExpression":
1828
1831
  case "CallExpression":
1829
1832
  case "MemberExpression":
1833
+ case "NewExpression":
1830
1834
  case "ParenthesizedExpression":
1831
1835
  case "IfExpression":
1832
1836
  case "DebuggerExpression":
@@ -1874,6 +1878,9 @@ var Civet = (() => {
1874
1878
  }
1875
1879
  }
1876
1880
  function lastAccessInCallExpression(exp) {
1881
+ if (exp.type === "Identifier") {
1882
+ return exp;
1883
+ }
1877
1884
  let children, i;
1878
1885
  do {
1879
1886
  ({ children } = exp);
@@ -2076,7 +2083,7 @@ var Civet = (() => {
2076
2083
  children: [s, parts, e]
2077
2084
  };
2078
2085
  }
2079
- function processAssignmentDeclaration(decl, id, suffix, ws, assign, e) {
2086
+ function processAssignmentDeclaration(decl, pattern, suffix, ws, assign, e) {
2080
2087
  decl = {
2081
2088
  ...decl,
2082
2089
  $loc: {
@@ -2084,23 +2091,23 @@ var Civet = (() => {
2084
2091
  length: assign.$loc.length + 1
2085
2092
  }
2086
2093
  };
2087
- let [splices, thisAssignments] = gatherBindingCode(id);
2094
+ let [splices, assignments] = gatherBindingCode(pattern);
2088
2095
  splices = splices.map((s) => [", ", s]);
2089
- thisAssignments = thisAssignments.map((a) => ["", a, ";"]);
2096
+ const thisAssignments = assignments.map((a) => ["", a, ";"]);
2090
2097
  const initializer = [ws, assign, e];
2091
2098
  const binding = makeNode({
2092
2099
  type: "Binding",
2093
- pattern: id,
2100
+ pattern,
2094
2101
  initializer,
2095
2102
  splices,
2096
2103
  suffix,
2097
2104
  thisAssignments,
2098
- children: [id, suffix, initializer]
2105
+ children: [pattern, suffix, initializer]
2099
2106
  });
2100
2107
  const children = [decl, binding];
2101
2108
  return makeNode({
2102
2109
  type: "Declaration",
2103
- names: id.names,
2110
+ names: pattern.names,
2104
2111
  decl,
2105
2112
  bindings: [binding],
2106
2113
  splices,
@@ -2213,9 +2220,7 @@ var Civet = (() => {
2213
2220
  }
2214
2221
  }
2215
2222
  function processDeclarations(statements) {
2216
- gatherRecursiveAll(statements, (n) => {
2217
- return n.type === "Declaration";
2218
- }).forEach(({ bindings }) => {
2223
+ gatherRecursiveAll(statements, ($) => $.type === "Declaration").forEach(({ bindings }) => {
2219
2224
  return bindings?.forEach((binding) => {
2220
2225
  const suffix = binding.suffix;
2221
2226
  if (suffix && suffix.optional && suffix.t) {
@@ -2261,7 +2266,7 @@ var Civet = (() => {
2261
2266
  const { async, generator, set } = modifier;
2262
2267
  const isMethod = f.type === "MethodDefinition";
2263
2268
  const isConstructor = isMethod && name === "constructor";
2264
- const isVoid = isVoidType(returnType2?.t) || async && isPromiseVoidType(returnType2?.t) || !async && generator && isGeneratorVoidType(returnType2?.t);
2269
+ const isVoid = isVoidType(returnType2?.t) || async && (isPromiseVoidType(returnType2?.t) || generator && isAsyncGeneratorVoidType(returnType2?.t)) || !async && generator && isGeneratorVoidType(returnType2?.t);
2265
2270
  if (block?.type === "BlockStatement") {
2266
2271
  if (isVoid || set || isConstructor) {
2267
2272
  if (block.bare && block.implicitlyReturned) {
@@ -2420,7 +2425,7 @@ var Civet = (() => {
2420
2425
  }
2421
2426
  function processBlocks(statements) {
2422
2427
  insertSemicolon(statements);
2423
- gatherRecursive(statements, ($) => $.type === "BlockStatement").forEach(function({ expressions }) {
2428
+ gatherRecursive(statements, ($3) => $3.type === "BlockStatement").forEach(function({ expressions }) {
2424
2429
  return processBlocks(expressions);
2425
2430
  });
2426
2431
  }
@@ -2679,8 +2684,8 @@ var Civet = (() => {
2679
2684
  }
2680
2685
  }
2681
2686
  function aggregateDuplicateBindings(bindings, ReservedWord) {
2682
- const props = gatherRecursiveAll(bindings, ($3) => $3.type === "BindingProperty");
2683
- const arrayBindings = gatherRecursiveAll(bindings, ($4) => $4.type === "ArrayBindingPattern");
2687
+ const props = gatherRecursiveAll(bindings, ($4) => $4.type === "BindingProperty");
2688
+ const arrayBindings = gatherRecursiveAll(bindings, ($5) => $5.type === "ArrayBindingPattern");
2684
2689
  arrayBindings.forEach((a) => {
2685
2690
  const { elements } = a;
2686
2691
  return elements.forEach((element) => {
@@ -2738,7 +2743,7 @@ var Civet = (() => {
2738
2743
  return declarations;
2739
2744
  }
2740
2745
  function processPatternMatching(statements, ReservedWord) {
2741
- gatherRecursiveAll(statements, ($5) => $5.type === "SwitchStatement").forEach((s) => {
2746
+ gatherRecursiveAll(statements, ($6) => $6.type === "SwitchStatement").forEach((s) => {
2742
2747
  const { caseBlock } = s;
2743
2748
  const { clauses } = caseBlock;
2744
2749
  for (const c of clauses) {
@@ -2752,7 +2757,7 @@ var Civet = (() => {
2752
2757
  }
2753
2758
  let errors = false;
2754
2759
  let isPattern = false;
2755
- if (clauses.some(($6) => $6.type === "PatternClause")) {
2760
+ if (clauses.some(($7) => $7.type === "PatternClause")) {
2756
2761
  isPattern = true;
2757
2762
  clauses.forEach((c) => {
2758
2763
  if (!(c.type === "PatternClause" || c.type === "DefaultClause")) {
@@ -2980,7 +2985,7 @@ var Civet = (() => {
2980
2985
  };
2981
2986
  }
2982
2987
  children.push(arg);
2983
- if (!children.some(($7) => $7?.type === "ReturnStatement") && children.some(($8) => $8 === ",")) {
2988
+ if (!children.some(($8) => $8?.type === "ReturnStatement") && children.some(($9) => $9 === ",")) {
2984
2989
  const { parent } = s;
2985
2990
  const parenthesizedExpression = makeLeftHandSideExpression({ ...s });
2986
2991
  Object.assign(s, parenthesizedExpression, {
@@ -3103,7 +3108,7 @@ var Civet = (() => {
3103
3108
  scopes.push(decs);
3104
3109
  const varIds = [];
3105
3110
  const assignmentStatements = findAssignments(statements, scopes);
3106
- const undeclaredIdentifiers = assignmentStatements.flatMap(($9) => $9?.names || []);
3111
+ const undeclaredIdentifiers = assignmentStatements.flatMap(($10) => $10?.names || []);
3107
3112
  undeclaredIdentifiers.filter((x, i, a) => {
3108
3113
  if (!hasDec(x))
3109
3114
  return a.indexOf(x) === i;
@@ -4481,6 +4486,7 @@ ${input.slice(result.pos)}
4481
4486
  LexicalDeclaration,
4482
4487
  ConstAssignment,
4483
4488
  LetAssignment,
4489
+ TypeAssignment,
4484
4490
  LexicalBinding,
4485
4491
  Initializer,
4486
4492
  VariableStatement,
@@ -4756,7 +4762,7 @@ ${input.slice(result.pos)}
4756
4762
  InlineBasicInterfaceProperty,
4757
4763
  InlineInterfacePropertyDelimiter,
4758
4764
  TypeBinaryOp,
4759
- FunctionType,
4765
+ TypeFunction,
4760
4766
  TypeArrowFunction,
4761
4767
  TypeArguments,
4762
4768
  TypeArgument,
@@ -4798,6 +4804,7 @@ ${input.slice(result.pos)}
4798
4804
  InsertDot,
4799
4805
  InsertBreak,
4800
4806
  InsertVar,
4807
+ InsertType,
4801
4808
  CoffeeBinaryExistentialEnabled,
4802
4809
  CoffeeBooleansEnabled,
4803
4810
  CoffeeClassesEnabled,
@@ -4844,100 +4851,100 @@ ${input.slice(result.pos)}
4844
4851
  var $L17 = $L("implements");
4845
4852
  var $L18 = $L("<:");
4846
4853
  var $L19 = $L("import");
4847
- var $L20 = $L("!");
4848
- var $L21 = $L("^");
4849
- var $L22 = $L("-");
4850
- var $L23 = $L("import.meta");
4851
- var $L24 = $L("return.value");
4852
- var $L25 = $L(",");
4853
- var $L26 = $L("(&)");
4854
- var $L27 = $L("->");
4855
- var $L28 = $L("\u2192");
4856
- var $L29 = $L("}");
4857
- var $L30 = $L("null");
4858
- var $L31 = $L("true");
4859
- var $L32 = $L("false");
4860
- var $L33 = $L("yes");
4861
- var $L34 = $L("on");
4862
- var $L35 = $L("no");
4863
- var $L36 = $L("off");
4864
- var $L37 = $L(">");
4865
- var $L38 = $L("]");
4866
- var $L39 = $L("**=");
4867
- var $L40 = $L("*=");
4868
- var $L41 = $L("/=");
4869
- var $L42 = $L("%=");
4870
- var $L43 = $L("+=");
4871
- var $L44 = $L("-=");
4872
- var $L45 = $L("<<=");
4873
- var $L46 = $L(">>>=");
4874
- var $L47 = $L(">>=");
4875
- var $L48 = $L("&&=");
4876
- var $L49 = $L("&=");
4877
- var $L50 = $L("^=");
4878
- var $L51 = $L("||=");
4879
- var $L52 = $L("|=");
4880
- var $L53 = $L("??=");
4881
- var $L54 = $L("?=");
4882
- var $L55 = $L("and=");
4883
- var $L56 = $L("or=");
4884
- var $L57 = $L("**");
4885
- var $L58 = $L("*");
4886
- var $L59 = $L("/");
4887
- var $L60 = $L("%%");
4888
- var $L61 = $L("%");
4889
- var $L62 = $L("+");
4890
- var $L63 = $L("<=");
4891
- var $L64 = $L("\u2264");
4892
- var $L65 = $L(">=");
4893
- var $L66 = $L("\u2265");
4894
- var $L67 = $L("<?");
4895
- var $L68 = $L("!<?");
4896
- var $L69 = $L("<<");
4897
- var $L70 = $L("\xAB");
4898
- var $L71 = $L(">>>");
4899
- var $L72 = $L("\u22D9");
4900
- var $L73 = $L(">>");
4901
- var $L74 = $L("\xBB");
4902
- var $L75 = $L("!==");
4903
- var $L76 = $L("\u2262");
4904
- var $L77 = $L("!=");
4905
- var $L78 = $L("\u2260");
4906
- var $L79 = $L("isnt");
4907
- var $L80 = $L("===");
4908
- var $L81 = $L("\u2263");
4909
- var $L82 = $L("\u2A76");
4910
- var $L83 = $L("==");
4911
- var $L84 = $L("\u2261");
4912
- var $L85 = $L("\u2A75");
4913
- var $L86 = $L("and");
4914
- var $L87 = $L("&&");
4915
- var $L88 = $L("or");
4916
- var $L89 = $L("||");
4917
- var $L90 = $L("\u2016");
4918
- var $L91 = $L("^^");
4919
- var $L92 = $L("xor");
4920
- var $L93 = $L("xnor");
4921
- var $L94 = $L("??");
4922
- var $L95 = $L("\u2047");
4923
- var $L96 = $L("instanceof");
4924
- var $L97 = $L("\u2208");
4925
- var $L98 = $L("\u220B");
4926
- var $L99 = $L("\u220C");
4927
- var $L100 = $L("\u2209");
4928
- var $L101 = $L("&");
4929
- var $L102 = $L("|");
4930
- var $L103 = $L("$:");
4931
- var $L104 = $L(";");
4932
- var $L105 = $L("break");
4933
- var $L106 = $L("continue");
4934
- var $L107 = $L("debugger");
4935
- var $L108 = $L("require");
4936
- var $L109 = $L("with");
4937
- var $L110 = $L("assert");
4938
- var $L111 = $L(":=");
4939
- var $L112 = $L("\u2254");
4940
- var $L113 = $L(".=");
4854
+ var $L20 = $L("^");
4855
+ var $L21 = $L("-");
4856
+ var $L22 = $L("import.meta");
4857
+ var $L23 = $L("return.value");
4858
+ var $L24 = $L(",");
4859
+ var $L25 = $L("(&)");
4860
+ var $L26 = $L("->");
4861
+ var $L27 = $L("\u2192");
4862
+ var $L28 = $L("}");
4863
+ var $L29 = $L("null");
4864
+ var $L30 = $L("true");
4865
+ var $L31 = $L("false");
4866
+ var $L32 = $L("yes");
4867
+ var $L33 = $L("on");
4868
+ var $L34 = $L("no");
4869
+ var $L35 = $L("off");
4870
+ var $L36 = $L(">");
4871
+ var $L37 = $L("]");
4872
+ var $L38 = $L("**=");
4873
+ var $L39 = $L("*=");
4874
+ var $L40 = $L("/=");
4875
+ var $L41 = $L("%=");
4876
+ var $L42 = $L("+=");
4877
+ var $L43 = $L("-=");
4878
+ var $L44 = $L("<<=");
4879
+ var $L45 = $L(">>>=");
4880
+ var $L46 = $L(">>=");
4881
+ var $L47 = $L("&&=");
4882
+ var $L48 = $L("&=");
4883
+ var $L49 = $L("^=");
4884
+ var $L50 = $L("||=");
4885
+ var $L51 = $L("|=");
4886
+ var $L52 = $L("??=");
4887
+ var $L53 = $L("?=");
4888
+ var $L54 = $L("and=");
4889
+ var $L55 = $L("or=");
4890
+ var $L56 = $L("**");
4891
+ var $L57 = $L("*");
4892
+ var $L58 = $L("/");
4893
+ var $L59 = $L("%%");
4894
+ var $L60 = $L("%");
4895
+ var $L61 = $L("+");
4896
+ var $L62 = $L("<=");
4897
+ var $L63 = $L("\u2264");
4898
+ var $L64 = $L(">=");
4899
+ var $L65 = $L("\u2265");
4900
+ var $L66 = $L("<?");
4901
+ var $L67 = $L("!<?");
4902
+ var $L68 = $L("<<");
4903
+ var $L69 = $L("\xAB");
4904
+ var $L70 = $L(">>>");
4905
+ var $L71 = $L("\u22D9");
4906
+ var $L72 = $L(">>");
4907
+ var $L73 = $L("\xBB");
4908
+ var $L74 = $L("!==");
4909
+ var $L75 = $L("\u2262");
4910
+ var $L76 = $L("!=");
4911
+ var $L77 = $L("\u2260");
4912
+ var $L78 = $L("isnt");
4913
+ var $L79 = $L("===");
4914
+ var $L80 = $L("\u2263");
4915
+ var $L81 = $L("\u2A76");
4916
+ var $L82 = $L("==");
4917
+ var $L83 = $L("\u2261");
4918
+ var $L84 = $L("\u2A75");
4919
+ var $L85 = $L("and");
4920
+ var $L86 = $L("&&");
4921
+ var $L87 = $L("or");
4922
+ var $L88 = $L("||");
4923
+ var $L89 = $L("\u2016");
4924
+ var $L90 = $L("^^");
4925
+ var $L91 = $L("xor");
4926
+ var $L92 = $L("xnor");
4927
+ var $L93 = $L("??");
4928
+ var $L94 = $L("\u2047");
4929
+ var $L95 = $L("instanceof");
4930
+ var $L96 = $L("\u2208");
4931
+ var $L97 = $L("\u220B");
4932
+ var $L98 = $L("\u220C");
4933
+ var $L99 = $L("\u2209");
4934
+ var $L100 = $L("&");
4935
+ var $L101 = $L("|");
4936
+ var $L102 = $L("$:");
4937
+ var $L103 = $L(";");
4938
+ var $L104 = $L("break");
4939
+ var $L105 = $L("continue");
4940
+ var $L106 = $L("debugger");
4941
+ var $L107 = $L("require");
4942
+ var $L108 = $L("with");
4943
+ var $L109 = $L("assert");
4944
+ var $L110 = $L(":=");
4945
+ var $L111 = $L("\u2254");
4946
+ var $L112 = $L(".=");
4947
+ var $L113 = $L("::=");
4941
4948
  var $L114 = $L("/*");
4942
4949
  var $L115 = $L("*/");
4943
4950
  var $L116 = $L("\\");
@@ -4966,80 +4973,81 @@ ${input.slice(result.pos)}
4966
4973
  var $L139 = $L('"');
4967
4974
  var $L140 = $L("each");
4968
4975
  var $L141 = $L("else");
4969
- var $L142 = $L("export");
4970
- var $L143 = $L("extends");
4971
- var $L144 = $L("finally");
4972
- var $L145 = $L("for");
4973
- var $L146 = $L("from");
4974
- var $L147 = $L("function");
4975
- var $L148 = $L("get");
4976
- var $L149 = $L("set");
4977
- var $L150 = $L("#");
4978
- var $L151 = $L("if");
4979
- var $L152 = $L("in");
4980
- var $L153 = $L("infer");
4981
- var $L154 = $L("let");
4982
- var $L155 = $L("const");
4983
- var $L156 = $L("is");
4984
- var $L157 = $L("loop");
4985
- var $L158 = $L("new");
4986
- var $L159 = $L("not");
4987
- var $L160 = $L("of");
4988
- var $L161 = $L("[");
4989
- var $L162 = $L("operator");
4990
- var $L163 = $L("own");
4991
- var $L164 = $L("public");
4992
- var $L165 = $L("private");
4993
- var $L166 = $L("protected");
4994
- var $L167 = $L("||>");
4995
- var $L168 = $L("|\u25B7");
4996
- var $L169 = $L("|>=");
4997
- var $L170 = $L("\u25B7=");
4998
- var $L171 = $L("|>");
4999
- var $L172 = $L("\u25B7");
5000
- var $L173 = $L("readonly");
5001
- var $L174 = $L("return");
5002
- var $L175 = $L("satisfies");
5003
- var $L176 = $L("'");
5004
- var $L177 = $L("static");
5005
- var $L178 = $L("${");
5006
- var $L179 = $L("super");
5007
- var $L180 = $L("switch");
5008
- var $L181 = $L("target");
5009
- var $L182 = $L("then");
5010
- var $L183 = $L("this");
5011
- var $L184 = $L("throw");
5012
- var $L185 = $L('"""');
5013
- var $L186 = $L("'''");
5014
- var $L187 = $L("///");
5015
- var $L188 = $L("```");
5016
- var $L189 = $L("try");
5017
- var $L190 = $L("typeof");
5018
- var $L191 = $L("unless");
5019
- var $L192 = $L("until");
5020
- var $L193 = $L("using");
5021
- var $L194 = $L("var");
5022
- var $L195 = $L("void");
5023
- var $L196 = $L("when");
5024
- var $L197 = $L("while");
5025
- var $L198 = $L("yield");
5026
- var $L199 = $L("/>");
5027
- var $L200 = $L("</");
5028
- var $L201 = $L("<>");
5029
- var $L202 = $L("</>");
5030
- var $L203 = $L("<!--");
5031
- var $L204 = $L("-->");
5032
- var $L205 = $L("type");
5033
- var $L206 = $L("enum");
5034
- var $L207 = $L("interface");
5035
- var $L208 = $L("global");
5036
- var $L209 = $L("module");
5037
- var $L210 = $L("namespace");
5038
- var $L211 = $L("asserts");
5039
- var $L212 = $L("keyof");
5040
- var $L213 = $L("???");
5041
- var $L214 = $L("[]");
5042
- var $L215 = $L("civet");
4976
+ var $L142 = $L("!");
4977
+ var $L143 = $L("export");
4978
+ var $L144 = $L("extends");
4979
+ var $L145 = $L("finally");
4980
+ var $L146 = $L("for");
4981
+ var $L147 = $L("from");
4982
+ var $L148 = $L("function");
4983
+ var $L149 = $L("get");
4984
+ var $L150 = $L("set");
4985
+ var $L151 = $L("#");
4986
+ var $L152 = $L("if");
4987
+ var $L153 = $L("in");
4988
+ var $L154 = $L("infer");
4989
+ var $L155 = $L("let");
4990
+ var $L156 = $L("const");
4991
+ var $L157 = $L("is");
4992
+ var $L158 = $L("loop");
4993
+ var $L159 = $L("new");
4994
+ var $L160 = $L("not");
4995
+ var $L161 = $L("of");
4996
+ var $L162 = $L("[");
4997
+ var $L163 = $L("operator");
4998
+ var $L164 = $L("own");
4999
+ var $L165 = $L("public");
5000
+ var $L166 = $L("private");
5001
+ var $L167 = $L("protected");
5002
+ var $L168 = $L("||>");
5003
+ var $L169 = $L("|\u25B7");
5004
+ var $L170 = $L("|>=");
5005
+ var $L171 = $L("\u25B7=");
5006
+ var $L172 = $L("|>");
5007
+ var $L173 = $L("\u25B7");
5008
+ var $L174 = $L("readonly");
5009
+ var $L175 = $L("return");
5010
+ var $L176 = $L("satisfies");
5011
+ var $L177 = $L("'");
5012
+ var $L178 = $L("static");
5013
+ var $L179 = $L("${");
5014
+ var $L180 = $L("super");
5015
+ var $L181 = $L("switch");
5016
+ var $L182 = $L("target");
5017
+ var $L183 = $L("then");
5018
+ var $L184 = $L("this");
5019
+ var $L185 = $L("throw");
5020
+ var $L186 = $L('"""');
5021
+ var $L187 = $L("'''");
5022
+ var $L188 = $L("///");
5023
+ var $L189 = $L("```");
5024
+ var $L190 = $L("try");
5025
+ var $L191 = $L("typeof");
5026
+ var $L192 = $L("unless");
5027
+ var $L193 = $L("until");
5028
+ var $L194 = $L("using");
5029
+ var $L195 = $L("var");
5030
+ var $L196 = $L("void");
5031
+ var $L197 = $L("when");
5032
+ var $L198 = $L("while");
5033
+ var $L199 = $L("yield");
5034
+ var $L200 = $L("/>");
5035
+ var $L201 = $L("</");
5036
+ var $L202 = $L("<>");
5037
+ var $L203 = $L("</>");
5038
+ var $L204 = $L("<!--");
5039
+ var $L205 = $L("-->");
5040
+ var $L206 = $L("type");
5041
+ var $L207 = $L("enum");
5042
+ var $L208 = $L("interface");
5043
+ var $L209 = $L("global");
5044
+ var $L210 = $L("module");
5045
+ var $L211 = $L("namespace");
5046
+ var $L212 = $L("asserts");
5047
+ var $L213 = $L("keyof");
5048
+ var $L214 = $L("???");
5049
+ var $L215 = $L("[]");
5050
+ var $L216 = $L("civet");
5043
5051
  var $R0 = $R(new RegExp("(?=debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
5044
5052
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
5045
5053
  var $R2 = $R(new RegExp("[0-9]", "suy"));
@@ -5057,70 +5065,70 @@ ${input.slice(result.pos)}
5057
5065
  var $R14 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
5058
5066
  var $R15 = $R(new RegExp("(?=\\[)", "suy"));
5059
5067
  var $R16 = $R(new RegExp("[!+-]", "suy"));
5060
- var $R17 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
5061
- var $R18 = $R(new RegExp("!\\^\\^?", "suy"));
5062
- var $R19 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
5063
- var $R20 = $R(new RegExp("[:.]", "suy"));
5064
- var $R21 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
5065
- var $R22 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
5066
- var $R23 = $R(new RegExp("(?=[\\s\\),])", "suy"));
5067
- var $R24 = $R(new RegExp('[^;"\\s]+', "suy"));
5068
- var $R25 = $R(new RegExp("(?=[0-9.])", "suy"));
5069
- var $R26 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
5070
- var $R27 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
5071
- var $R28 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
5072
- var $R29 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
5073
- var $R30 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
5074
- var $R31 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
5075
- var $R32 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
5076
- var $R33 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
5077
- var $R34 = $R(new RegExp("(?=[0-9])", "suy"));
5078
- var $R35 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
5079
- var $R36 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
5080
- var $R37 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
5081
- var $R38 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
5082
- var $R39 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
5083
- var $R40 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
5084
- var $R41 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
5085
- var $R42 = $R(new RegExp("(?:\\\\.)", "suy"));
5086
- var $R43 = $R(new RegExp("[\\s]+", "suy"));
5087
- var $R44 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
5088
- var $R45 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
5089
- var $R46 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
5090
- var $R47 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
5091
- var $R48 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
5092
- var $R49 = $R(new RegExp("(?=[`'\"])", "suy"));
5093
- var $R50 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
5094
- var $R51 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
5095
- var $R52 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
5096
- var $R53 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
5097
- var $R54 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
5098
- var $R55 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
5099
- var $R56 = $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"));
5100
- var $R57 = $R(new RegExp("(?=\\/|#)", "suy"));
5101
- var $R58 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
5102
- var $R59 = $R(new RegExp(".", "suy"));
5103
- var $R60 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
5104
- var $R61 = $R(new RegExp("[^]*?###", "suy"));
5105
- var $R62 = $R(new RegExp("###(?!#)", "suy"));
5106
- var $R63 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
5107
- var $R64 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
5108
- var $R65 = $R(new RegExp("[ \\t]+", "suy"));
5109
- var $R66 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
5110
- var $R67 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
5111
- var $R68 = $R(new RegExp("['\u2019]s", "suy"));
5112
- var $R69 = $R(new RegExp("\\s", "suy"));
5113
- var $R70 = $R(new RegExp("(?=[<])", "suy"));
5114
- var $R71 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
5115
- var $R72 = $R(new RegExp("[\\s>]|\\/>", "suy"));
5116
- var $R73 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
5117
- var $R74 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
5118
- var $R75 = $R(new RegExp("[<>]", "suy"));
5119
- var $R76 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
5120
- var $R77 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
5121
- var $R78 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
5122
- var $R79 = $R(new RegExp("[+-]?", "suy"));
5123
- var $R80 = $R(new RegExp("[+-]", "suy"));
5068
+ var $R17 = $R(new RegExp("[+-]", "suy"));
5069
+ var $R18 = $R(new RegExp("(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])", "suy"));
5070
+ var $R19 = $R(new RegExp("!\\^\\^?", "suy"));
5071
+ var $R20 = $R(new RegExp("(?!\\+\\+|--)[!~+-](?!\\s)", "suy"));
5072
+ var $R21 = $R(new RegExp("[:.]", "suy"));
5073
+ var $R22 = $R(new RegExp("(?=for|if|loop|unless|until|while)", "suy"));
5074
+ var $R23 = $R(new RegExp("(?=loop|do|for|until|while)", "suy"));
5075
+ var $R24 = $R(new RegExp("(?=[\\s\\),])", "suy"));
5076
+ var $R25 = $R(new RegExp('[^;"\\s]+', "suy"));
5077
+ var $R26 = $R(new RegExp("(?=[0-9.])", "suy"));
5078
+ var $R27 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
5079
+ var $R28 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
5080
+ var $R29 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
5081
+ var $R30 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
5082
+ var $R31 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
5083
+ var $R32 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
5084
+ var $R33 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
5085
+ var $R34 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
5086
+ var $R35 = $R(new RegExp("(?=[0-9])", "suy"));
5087
+ var $R36 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)", "suy"));
5088
+ var $R37 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
5089
+ var $R38 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
5090
+ var $R39 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
5091
+ var $R40 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
5092
+ var $R41 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
5093
+ var $R42 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
5094
+ var $R43 = $R(new RegExp("(?:\\\\.)", "suy"));
5095
+ var $R44 = $R(new RegExp("[\\s]+", "suy"));
5096
+ var $R45 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
5097
+ var $R46 = $R(new RegExp("[^[\\/\\s#\\\\]+", "suy"));
5098
+ var $R47 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
5099
+ var $R48 = $R(new RegExp("(?:\\\\.|[^[\\/\\r\\n])+", "suy"));
5100
+ var $R49 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
5101
+ var $R50 = $R(new RegExp("(?=[`'\"])", "suy"));
5102
+ var $R51 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
5103
+ var $R52 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
5104
+ var $R53 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
5105
+ var $R54 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
5106
+ var $R55 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
5107
+ var $R56 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
5108
+ var $R57 = $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"));
5109
+ var $R58 = $R(new RegExp("(?=\\/|#)", "suy"));
5110
+ var $R59 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
5111
+ var $R60 = $R(new RegExp(".", "suy"));
5112
+ var $R61 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
5113
+ var $R62 = $R(new RegExp("[^]*?###", "suy"));
5114
+ var $R63 = $R(new RegExp("###(?!#)", "suy"));
5115
+ var $R64 = $R(new RegExp("\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\/", "suy"));
5116
+ var $R65 = $R(new RegExp("(?=[ \\t\\/\\\\])", "suy"));
5117
+ var $R66 = $R(new RegExp("[ \\t]+", "suy"));
5118
+ var $R67 = $R(new RegExp("(?=\\s|\\/|#)", "suy"));
5119
+ var $R68 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
5120
+ var $R69 = $R(new RegExp("['\u2019]s", "suy"));
5121
+ var $R70 = $R(new RegExp("\\s", "suy"));
5122
+ var $R71 = $R(new RegExp("(?=[<])", "suy"));
5123
+ var $R72 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
5124
+ var $R73 = $R(new RegExp("[\\s>]|\\/>", "suy"));
5125
+ var $R74 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
5126
+ var $R75 = $R(new RegExp(`"[^"]*"|'[^']*'`, "suy"));
5127
+ var $R76 = $R(new RegExp("[<>]", "suy"));
5128
+ var $R77 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
5129
+ var $R78 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
5130
+ var $R79 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
5131
+ var $R80 = $R(new RegExp("[+-]?", "suy"));
5124
5132
  var $R81 = $R(new RegExp("(?=if|unless)", "suy"));
5125
5133
  var $R82 = $R(new RegExp("#![^\\r\\n]*", "suy"));
5126
5134
  var $R83 = $R(new RegExp("[\\t ]*", "suy"));
@@ -6269,7 +6277,14 @@ ${input.slice(result.pos)}
6269
6277
  function AtThis(ctx, state) {
6270
6278
  return $EVENT(ctx, state, "AtThis", AtThis$0);
6271
6279
  }
6272
- var LeftHandSideExpression$0 = $S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L14, 'LeftHandSideExpression ":"'))), __)), CallExpression);
6280
+ var LeftHandSideExpression$0 = $TS($S($P($S(New, $N($C($EXPECT($L7, 'LeftHandSideExpression "."'), $EXPECT($L14, 'LeftHandSideExpression ":"'))), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
6281
+ var expression = $2;
6282
+ return {
6283
+ type: "NewExpression",
6284
+ children: $0,
6285
+ expression
6286
+ };
6287
+ });
6273
6288
  var LeftHandSideExpression$1 = CallExpression;
6274
6289
  var LeftHandSideExpression$$ = [LeftHandSideExpression$0, LeftHandSideExpression$1];
6275
6290
  function LeftHandSideExpression(ctx, state) {
@@ -6332,10 +6347,8 @@ ${input.slice(result.pos)}
6332
6347
  children: $0
6333
6348
  };
6334
6349
  });
6335
- var OptionalShorthand$1 = NonNullAssertion;
6336
- var OptionalShorthand$$ = [OptionalShorthand$0, OptionalShorthand$1];
6337
6350
  function OptionalShorthand(ctx, state) {
6338
- return $EVENT_C(ctx, state, "OptionalShorthand", OptionalShorthand$$);
6351
+ return $EVENT(ctx, state, "OptionalShorthand", OptionalShorthand$0);
6339
6352
  }
6340
6353
  var OptionalDot$0 = $S($Q(InlineComment), Dot);
6341
6354
  var OptionalDot$1 = InsertDot;
@@ -6343,8 +6356,8 @@ ${input.slice(result.pos)}
6343
6356
  function OptionalDot(ctx, state) {
6344
6357
  return $EVENT_C(ctx, state, "OptionalDot", OptionalDot$$);
6345
6358
  }
6346
- var NonNullAssertion$0 = $T($S($EXPECT($L20, 'NonNullAssertion "!"'), $N($EXPECT($L21, 'NonNullAssertion "^"'))), function(value) {
6347
- return { "type": "NonNullAssertion", "ts": true, "children": value[0] };
6359
+ var NonNullAssertion$0 = $T($S(ExclamationPoint, $N($EXPECT($L20, 'NonNullAssertion "^"'))), function(value) {
6360
+ return { "type": "NonNullAssertion", "ts": true, "children": [value[0]] };
6348
6361
  });
6349
6362
  function NonNullAssertion(ctx, state) {
6350
6363
  return $EVENT(ctx, state, "NonNullAssertion", NonNullAssertion$0);
@@ -6396,13 +6409,15 @@ ${input.slice(result.pos)}
6396
6409
  var dot = $1;
6397
6410
  var comments = $2;
6398
6411
  var content = $3;
6412
+ if (!dot && !comments.length)
6413
+ return content;
6399
6414
  if (dot) {
6400
6415
  if (dot.type === "Optional" && content.type === "SliceExpression") {
6401
6416
  return [...dot.children.slice(0, -1), ...comments, content];
6402
6417
  }
6403
- return $0.flat();
6418
+ return [dot, ...comments, content];
6404
6419
  }
6405
- return content;
6420
+ return [...comments, content];
6406
6421
  });
6407
6422
  var MemberExpressionRestBody$1 = PropertyAccess;
6408
6423
  var MemberExpressionRestBody$2 = PropertyGlob;
@@ -6538,7 +6553,7 @@ ${input.slice(result.pos)}
6538
6553
  ]
6539
6554
  };
6540
6555
  });
6541
- var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L22, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6556
+ var PropertyAccess$1 = $TS($S(AccessStart, $EXPECT($L21, 'PropertyAccess "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
6542
6557
  var dot = $1;
6543
6558
  var neg = $2;
6544
6559
  var num = $3;
@@ -6614,7 +6629,7 @@ ${input.slice(result.pos)}
6614
6629
  return $EVENT_C(ctx, state, "SuperProperty", SuperProperty$$);
6615
6630
  }
6616
6631
  var MetaProperty$0 = $S(New, Dot, Target);
6617
- var MetaProperty$1 = $TS($S($EXPECT($L23, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6632
+ var MetaProperty$1 = $TS($S($EXPECT($L22, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6618
6633
  return { $loc, token: $1 };
6619
6634
  });
6620
6635
  var MetaProperty$2 = ReturnValue;
@@ -6622,7 +6637,7 @@ ${input.slice(result.pos)}
6622
6637
  function MetaProperty(ctx, state) {
6623
6638
  return $EVENT_C(ctx, state, "MetaProperty", MetaProperty$$);
6624
6639
  }
6625
- var ReturnValue$0 = $TV($C($S($EXPECT($L24, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6640
+ var ReturnValue$0 = $TV($C($S($EXPECT($L23, 'ReturnValue "return.value"'), NonIdContinue), $S(Return, $Y(AfterReturnShorthand))), function($skip, $loc, $0, $1) {
6626
6641
  return { type: "ReturnValue", children: [$1[0]] };
6627
6642
  });
6628
6643
  function ReturnValue(ctx, state) {
@@ -7135,7 +7150,7 @@ ${input.slice(result.pos)}
7135
7150
  children: [ws, binding]
7136
7151
  };
7137
7152
  });
7138
- var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L25, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
7153
+ var BindingElement$2 = $TV($Y($S($E(_), $EXPECT($L24, 'BindingElement ","'))), function($skip, $loc, $0, $1) {
7139
7154
  return {
7140
7155
  children: [{
7141
7156
  type: "ElisionElement",
@@ -7261,7 +7276,7 @@ ${input.slice(result.pos)}
7261
7276
  block
7262
7277
  };
7263
7278
  });
7264
- var FunctionExpression$1 = $TV($EXPECT($L26, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
7279
+ var FunctionExpression$1 = $TV($EXPECT($L25, 'FunctionExpression "(&)"'), function($skip, $loc, $0, $1) {
7265
7280
  return makeAmpersandFunction();
7266
7281
  });
7267
7282
  var FunctionExpression$2 = $TS($S(OpenParen, BinaryOp, CloseParen), function($skip, $loc, $0, $1, $2, $3) {
@@ -7362,22 +7377,7 @@ ${input.slice(result.pos)}
7362
7377
  };
7363
7378
  });
7364
7379
  var FunctionExpression$5 = AmpersandFunctionExpression;
7365
- var FunctionExpression$6 = $TS($S(Identifier, __, ConstAssignment, $Q(_), ThinArrowFunction), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7366
- var id = $1;
7367
- var ws = $4;
7368
- var fn = $5;
7369
- return {
7370
- ...fn,
7371
- id,
7372
- children: [
7373
- ...fn.children.slice(0, 3),
7374
- insertTrimmingSpace(ws, " "),
7375
- id,
7376
- ...fn.children.slice(3)
7377
- ]
7378
- };
7379
- });
7380
- var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3, FunctionExpression$4, FunctionExpression$5, FunctionExpression$6];
7380
+ var FunctionExpression$$ = [FunctionExpression$0, FunctionExpression$1, FunctionExpression$2, FunctionExpression$3, FunctionExpression$4, FunctionExpression$5];
7381
7381
  function FunctionExpression(ctx, state) {
7382
7382
  return $EVENT_C(ctx, state, "FunctionExpression", FunctionExpression$$);
7383
7383
  }
@@ -7607,7 +7607,7 @@ ${input.slice(result.pos)}
7607
7607
  function ThinArrowFunction(ctx, state) {
7608
7608
  return $EVENT(ctx, state, "ThinArrowFunction", ThinArrowFunction$0);
7609
7609
  }
7610
- var Arrow$0 = $TV($C($EXPECT($L27, 'Arrow "->"'), $EXPECT($L28, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7610
+ var Arrow$0 = $TV($C($EXPECT($L26, 'Arrow "->"'), $EXPECT($L27, 'Arrow "\u2192"')), function($skip, $loc, $0, $1) {
7611
7611
  return { $loc, token: "->" };
7612
7612
  });
7613
7613
  function Arrow(ctx, state) {
@@ -7907,7 +7907,7 @@ ${input.slice(result.pos)}
7907
7907
  }
7908
7908
  var BracedContent$0 = NestedBlockStatements;
7909
7909
  var BracedContent$1 = SingleLineStatements;
7910
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L29, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7910
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L28, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
7911
7911
  const expressions = [];
7912
7912
  return {
7913
7913
  type: "BlockStatement",
@@ -7977,7 +7977,7 @@ ${input.slice(result.pos)}
7977
7977
  function LiteralContent(ctx, state) {
7978
7978
  return $EVENT_C(ctx, state, "LiteralContent", LiteralContent$$);
7979
7979
  }
7980
- var NullLiteral$0 = $TS($S($EXPECT($L30, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7980
+ var NullLiteral$0 = $TS($S($EXPECT($L29, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7981
7981
  return { $loc, token: $1 };
7982
7982
  });
7983
7983
  function NullLiteral(ctx, state) {
@@ -7992,17 +7992,17 @@ ${input.slice(result.pos)}
7992
7992
  var _BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
7993
7993
  return value[1];
7994
7994
  });
7995
- var _BooleanLiteral$1 = $TS($S($C($EXPECT($L31, '_BooleanLiteral "true"'), $EXPECT($L32, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7995
+ var _BooleanLiteral$1 = $TS($S($C($EXPECT($L30, '_BooleanLiteral "true"'), $EXPECT($L31, '_BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7996
7996
  return { $loc, token: $1 };
7997
7997
  });
7998
7998
  var _BooleanLiteral$$ = [_BooleanLiteral$0, _BooleanLiteral$1];
7999
7999
  function _BooleanLiteral(ctx, state) {
8000
8000
  return $EVENT_C(ctx, state, "_BooleanLiteral", _BooleanLiteral$$);
8001
8001
  }
8002
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L33, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L34, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8002
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L32, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L33, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8003
8003
  return { $loc, token: "true" };
8004
8004
  });
8005
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L35, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L36, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8005
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L34, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L35, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8006
8006
  return { $loc, token: "false" };
8007
8007
  });
8008
8008
  var CoffeeScriptBooleanLiteral$$ = [CoffeeScriptBooleanLiteral$0, CoffeeScriptBooleanLiteral$1];
@@ -8034,7 +8034,7 @@ ${input.slice(result.pos)}
8034
8034
  function IdentifierReference(ctx, state) {
8035
8035
  return $EVENT(ctx, state, "IdentifierReference", IdentifierReference$0);
8036
8036
  }
8037
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L37, 'UpcomingAssignment ">"')))));
8037
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L3, 'UpcomingAssignment "="'), $N($C($EXPECT($L3, 'UpcomingAssignment "="'), $EXPECT($L36, 'UpcomingAssignment ">"')))));
8038
8038
  function UpcomingAssignment(ctx, state) {
8039
8039
  return $EVENT(ctx, state, "UpcomingAssignment", UpcomingAssignment$0);
8040
8040
  }
@@ -8192,7 +8192,7 @@ ${input.slice(result.pos)}
8192
8192
  return $EVENT(ctx, state, "NestedElement", NestedElement$0);
8193
8193
  }
8194
8194
  var ArrayElementDelimiter$0 = $S(__, Comma);
8195
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L38, 'ArrayElementDelimiter "]"')));
8195
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L37, 'ArrayElementDelimiter "]"')));
8196
8196
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
8197
8197
  return value[1];
8198
8198
  });
@@ -8446,7 +8446,7 @@ ${input.slice(result.pos)}
8446
8446
  return $EVENT(ctx, state, "InlineObjectPropertyDelimiter", InlineObjectPropertyDelimiter$0);
8447
8447
  }
8448
8448
  var ObjectPropertyDelimiter$0 = $S($E(_), Comma);
8449
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L29, 'ObjectPropertyDelimiter "}"')));
8449
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L28, 'ObjectPropertyDelimiter "}"')));
8450
8450
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
8451
8451
  return value[1];
8452
8452
  });
@@ -8502,22 +8502,26 @@ ${input.slice(result.pos)}
8502
8502
  value: exp
8503
8503
  };
8504
8504
  });
8505
- var PropertyDefinition$4 = $TS($S($E(_), $N(EOS), CallExpression), function($skip, $loc, $0, $1, $2, $3) {
8505
+ var PropertyDefinition$4 = $TS($S($E(_), $N(EOS), $Q(UnaryOp), CallExpression, $E(UnaryPostfix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8506
8506
  var ws = $1;
8507
- var value = $3;
8508
- switch (value.type) {
8509
- case "Identifier":
8510
- return { ...value, children: [ws, ...value.children] };
8511
- case "ObjectExpression":
8512
- let first = value.properties[0];
8513
- if (first) {
8514
- first = {
8515
- ...first,
8516
- children: [ws, ...first.children],
8517
- hoistDec: value.hoistDec
8518
- };
8519
- }
8520
- return [first, ...value.properties.slice(1)];
8507
+ var pre = $3;
8508
+ var value = $4;
8509
+ var post = $5;
8510
+ if (!pre.length && !post) {
8511
+ switch (value.type) {
8512
+ case "Identifier":
8513
+ return { ...value, children: [ws, ...value.children] };
8514
+ case "ObjectExpression":
8515
+ let first = value.properties[0];
8516
+ if (first) {
8517
+ first = {
8518
+ ...first,
8519
+ children: [ws, ...first.children],
8520
+ hoistDec: value.hoistDec
8521
+ };
8522
+ }
8523
+ return [first, ...value.properties.slice(1)];
8524
+ }
8521
8525
  }
8522
8526
  const last = lastAccessInCallExpression(value);
8523
8527
  if (!last)
@@ -8565,7 +8569,7 @@ ${input.slice(result.pos)}
8565
8569
  name = name.slice(1);
8566
8570
  return {
8567
8571
  type: "Property",
8568
- children: [ws, name, ": ", value],
8572
+ children: [ws, name, ": ", processUnaryExpression(pre, value, post)],
8569
8573
  name,
8570
8574
  names: [],
8571
8575
  value,
@@ -8634,7 +8638,7 @@ ${input.slice(result.pos)}
8634
8638
  implicit: true
8635
8639
  };
8636
8640
  });
8637
- var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L22, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8641
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($R17, "ComputedPropertyName /[+-]/"), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
8638
8642
  const expression = [$2, $3];
8639
8643
  return {
8640
8644
  type: "ComputedPropertyName",
@@ -8672,7 +8676,7 @@ ${input.slice(result.pos)}
8672
8676
  ts: true
8673
8677
  };
8674
8678
  });
8675
- var MethodDefinition$1 = $TS($S(MethodSignature, $N(PropertyAccess), $E(BracedBlock)), function($skip, $loc, $0, $1, $2, $3) {
8679
+ var MethodDefinition$1 = $TS($S(MethodSignature, $N($C(PropertyAccess, UnaryPostfix, NonNullAssertion)), $E(BracedBlock)), function($skip, $loc, $0, $1, $2, $3) {
8676
8680
  var signature = $1;
8677
8681
  var block = $3;
8678
8682
  let children = $0;
@@ -8939,10 +8943,10 @@ ${input.slice(result.pos)}
8939
8943
  function OperatorAssignmentOp(ctx, state) {
8940
8944
  return $EVENT_C(ctx, state, "OperatorAssignmentOp", OperatorAssignmentOp$$);
8941
8945
  }
8942
- var AssignmentOpSymbol$0 = $EXPECT($L39, 'AssignmentOpSymbol "**="');
8943
- var AssignmentOpSymbol$1 = $EXPECT($L40, 'AssignmentOpSymbol "*="');
8944
- var AssignmentOpSymbol$2 = $EXPECT($L41, 'AssignmentOpSymbol "/="');
8945
- var AssignmentOpSymbol$3 = $EXPECT($L42, 'AssignmentOpSymbol "%="');
8946
+ var AssignmentOpSymbol$0 = $EXPECT($L38, 'AssignmentOpSymbol "**="');
8947
+ var AssignmentOpSymbol$1 = $EXPECT($L39, 'AssignmentOpSymbol "*="');
8948
+ var AssignmentOpSymbol$2 = $EXPECT($L40, 'AssignmentOpSymbol "/="');
8949
+ var AssignmentOpSymbol$3 = $EXPECT($L41, 'AssignmentOpSymbol "%="');
8946
8950
  var AssignmentOpSymbol$4 = $TS($S($C($EXPECT($L8, 'AssignmentOpSymbol "++"'), $EXPECT($L10, 'AssignmentOpSymbol "\u29FA"')), Equals), function($skip, $loc, $0, $1, $2) {
8947
8951
  return {
8948
8952
  special: true,
@@ -8951,18 +8955,18 @@ ${input.slice(result.pos)}
8951
8955
  children: [$2]
8952
8956
  };
8953
8957
  });
8954
- var AssignmentOpSymbol$5 = $EXPECT($L43, 'AssignmentOpSymbol "+="');
8955
- var AssignmentOpSymbol$6 = $EXPECT($L44, 'AssignmentOpSymbol "-="');
8956
- var AssignmentOpSymbol$7 = $EXPECT($L45, 'AssignmentOpSymbol "<<="');
8957
- var AssignmentOpSymbol$8 = $EXPECT($L46, 'AssignmentOpSymbol ">>>="');
8958
- var AssignmentOpSymbol$9 = $EXPECT($L47, 'AssignmentOpSymbol ">>="');
8959
- var AssignmentOpSymbol$10 = $EXPECT($L48, 'AssignmentOpSymbol "&&="');
8960
- var AssignmentOpSymbol$11 = $EXPECT($L49, 'AssignmentOpSymbol "&="');
8961
- var AssignmentOpSymbol$12 = $EXPECT($L50, 'AssignmentOpSymbol "^="');
8962
- var AssignmentOpSymbol$13 = $EXPECT($L51, 'AssignmentOpSymbol "||="');
8963
- var AssignmentOpSymbol$14 = $EXPECT($L52, 'AssignmentOpSymbol "|="');
8964
- var AssignmentOpSymbol$15 = $EXPECT($L53, 'AssignmentOpSymbol "??="');
8965
- var AssignmentOpSymbol$16 = $T($EXPECT($L54, 'AssignmentOpSymbol "?="'), function(value) {
8958
+ var AssignmentOpSymbol$5 = $EXPECT($L42, 'AssignmentOpSymbol "+="');
8959
+ var AssignmentOpSymbol$6 = $EXPECT($L43, 'AssignmentOpSymbol "-="');
8960
+ var AssignmentOpSymbol$7 = $EXPECT($L44, 'AssignmentOpSymbol "<<="');
8961
+ var AssignmentOpSymbol$8 = $EXPECT($L45, 'AssignmentOpSymbol ">>>="');
8962
+ var AssignmentOpSymbol$9 = $EXPECT($L46, 'AssignmentOpSymbol ">>="');
8963
+ var AssignmentOpSymbol$10 = $EXPECT($L47, 'AssignmentOpSymbol "&&="');
8964
+ var AssignmentOpSymbol$11 = $EXPECT($L48, 'AssignmentOpSymbol "&="');
8965
+ var AssignmentOpSymbol$12 = $EXPECT($L49, 'AssignmentOpSymbol "^="');
8966
+ var AssignmentOpSymbol$13 = $EXPECT($L50, 'AssignmentOpSymbol "||="');
8967
+ var AssignmentOpSymbol$14 = $EXPECT($L51, 'AssignmentOpSymbol "|="');
8968
+ var AssignmentOpSymbol$15 = $EXPECT($L52, 'AssignmentOpSymbol "??="');
8969
+ var AssignmentOpSymbol$16 = $T($EXPECT($L53, 'AssignmentOpSymbol "?="'), function(value) {
8966
8970
  return "??=";
8967
8971
  });
8968
8972
  var AssignmentOpSymbol$17 = $T($S($EXPECT($L3, 'AssignmentOpSymbol "="'), $N($EXPECT($L3, 'AssignmentOpSymbol "="'))), function(value) {
@@ -8975,10 +8979,10 @@ ${input.slice(result.pos)}
8975
8979
  function AssignmentOpSymbol(ctx, state) {
8976
8980
  return $EVENT_C(ctx, state, "AssignmentOpSymbol", AssignmentOpSymbol$$);
8977
8981
  }
8978
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L55, 'CoffeeWordAssignmentOp "and="'), function(value) {
8982
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L54, 'CoffeeWordAssignmentOp "and="'), function(value) {
8979
8983
  return "&&=";
8980
8984
  });
8981
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L56, 'CoffeeWordAssignmentOp "or="'), function(value) {
8985
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L55, 'CoffeeWordAssignmentOp "or="'), function(value) {
8982
8986
  return "||=";
8983
8987
  });
8984
8988
  var CoffeeWordAssignmentOp$$ = [CoffeeWordAssignmentOp$0, CoffeeWordAssignmentOp$1];
@@ -9012,7 +9016,7 @@ ${input.slice(result.pos)}
9012
9016
  function IdentifierBinaryOp(ctx, state) {
9013
9017
  return $EVENT(ctx, state, "IdentifierBinaryOp", IdentifierBinaryOp$0);
9014
9018
  }
9015
- var BinaryOp$0 = $T($S($EXPECT($R17, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
9019
+ var BinaryOp$0 = $T($S($EXPECT($R18, "BinaryOp /(?=\\p{ID_Start}|[_$^\xAB\xBB\u22D9\u2264\u2265\u2208\u220B\u2209\u220C\u2263\u2261\u2262\u2260=\u2016\u2047&|*\\/!?%<>\u29FA+-])/"), _BinaryOp), function(value) {
9016
9020
  var op = value[1];
9017
9021
  return op;
9018
9022
  });
@@ -9047,33 +9051,33 @@ ${input.slice(result.pos)}
9047
9051
  function _BinaryOp(ctx, state) {
9048
9052
  return $EVENT_C(ctx, state, "_BinaryOp", _BinaryOp$$);
9049
9053
  }
9050
- var BinaryOpSymbol$0 = $EXPECT($L57, 'BinaryOpSymbol "**"');
9051
- var BinaryOpSymbol$1 = $EXPECT($L58, 'BinaryOpSymbol "*"');
9052
- var BinaryOpSymbol$2 = $EXPECT($L59, 'BinaryOpSymbol "/"');
9053
- var BinaryOpSymbol$3 = $TV($EXPECT($L60, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
9054
+ var BinaryOpSymbol$0 = $EXPECT($L56, 'BinaryOpSymbol "**"');
9055
+ var BinaryOpSymbol$1 = $EXPECT($L57, 'BinaryOpSymbol "*"');
9056
+ var BinaryOpSymbol$2 = $EXPECT($L58, 'BinaryOpSymbol "/"');
9057
+ var BinaryOpSymbol$3 = $TV($EXPECT($L59, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
9054
9058
  return {
9055
9059
  call: module.getRef("modulo"),
9056
9060
  special: true
9057
9061
  };
9058
9062
  });
9059
- var BinaryOpSymbol$4 = $EXPECT($L61, 'BinaryOpSymbol "%"');
9063
+ var BinaryOpSymbol$4 = $EXPECT($L60, 'BinaryOpSymbol "%"');
9060
9064
  var BinaryOpSymbol$5 = $TV($C($EXPECT($L8, 'BinaryOpSymbol "++"'), $EXPECT($L10, 'BinaryOpSymbol "\u29FA"')), function($skip, $loc, $0, $1) {
9061
9065
  return {
9062
9066
  method: "concat",
9063
9067
  special: true
9064
9068
  };
9065
9069
  });
9066
- var BinaryOpSymbol$6 = $EXPECT($L62, 'BinaryOpSymbol "+"');
9067
- var BinaryOpSymbol$7 = $EXPECT($L22, 'BinaryOpSymbol "-"');
9068
- var BinaryOpSymbol$8 = $EXPECT($L63, 'BinaryOpSymbol "<="');
9069
- var BinaryOpSymbol$9 = $T($EXPECT($L64, 'BinaryOpSymbol "\u2264"'), function(value) {
9070
+ var BinaryOpSymbol$6 = $EXPECT($L61, 'BinaryOpSymbol "+"');
9071
+ var BinaryOpSymbol$7 = $EXPECT($L21, 'BinaryOpSymbol "-"');
9072
+ var BinaryOpSymbol$8 = $EXPECT($L62, 'BinaryOpSymbol "<="');
9073
+ var BinaryOpSymbol$9 = $T($EXPECT($L63, 'BinaryOpSymbol "\u2264"'), function(value) {
9070
9074
  return "<=";
9071
9075
  });
9072
- var BinaryOpSymbol$10 = $EXPECT($L65, 'BinaryOpSymbol ">="');
9073
- var BinaryOpSymbol$11 = $T($EXPECT($L66, 'BinaryOpSymbol "\u2265"'), function(value) {
9076
+ var BinaryOpSymbol$10 = $EXPECT($L64, 'BinaryOpSymbol ">="');
9077
+ var BinaryOpSymbol$11 = $T($EXPECT($L65, 'BinaryOpSymbol "\u2265"'), function(value) {
9074
9078
  return ">=";
9075
9079
  });
9076
- var BinaryOpSymbol$12 = $TV($EXPECT($L67, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
9080
+ var BinaryOpSymbol$12 = $TV($EXPECT($L66, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
9077
9081
  return {
9078
9082
  $loc,
9079
9083
  token: "instanceof",
@@ -9081,7 +9085,7 @@ ${input.slice(result.pos)}
9081
9085
  special: true
9082
9086
  };
9083
9087
  });
9084
- var BinaryOpSymbol$13 = $TV($EXPECT($L68, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
9088
+ var BinaryOpSymbol$13 = $TV($EXPECT($L67, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
9085
9089
  return {
9086
9090
  $loc,
9087
9091
  token: "instanceof",
@@ -9090,74 +9094,74 @@ ${input.slice(result.pos)}
9090
9094
  negated: true
9091
9095
  };
9092
9096
  });
9093
- var BinaryOpSymbol$14 = $EXPECT($L69, 'BinaryOpSymbol "<<"');
9094
- var BinaryOpSymbol$15 = $T($EXPECT($L70, 'BinaryOpSymbol "\xAB"'), function(value) {
9097
+ var BinaryOpSymbol$14 = $EXPECT($L68, 'BinaryOpSymbol "<<"');
9098
+ var BinaryOpSymbol$15 = $T($EXPECT($L69, 'BinaryOpSymbol "\xAB"'), function(value) {
9095
9099
  return "<<";
9096
9100
  });
9097
9101
  var BinaryOpSymbol$16 = $EXPECT($L16, 'BinaryOpSymbol "<"');
9098
- var BinaryOpSymbol$17 = $EXPECT($L71, 'BinaryOpSymbol ">>>"');
9099
- var BinaryOpSymbol$18 = $T($EXPECT($L72, 'BinaryOpSymbol "\u22D9"'), function(value) {
9102
+ var BinaryOpSymbol$17 = $EXPECT($L70, 'BinaryOpSymbol ">>>"');
9103
+ var BinaryOpSymbol$18 = $T($EXPECT($L71, 'BinaryOpSymbol "\u22D9"'), function(value) {
9100
9104
  return ">>>";
9101
9105
  });
9102
- var BinaryOpSymbol$19 = $EXPECT($L73, 'BinaryOpSymbol ">>"');
9103
- var BinaryOpSymbol$20 = $T($EXPECT($L74, 'BinaryOpSymbol "\xBB"'), function(value) {
9106
+ var BinaryOpSymbol$19 = $EXPECT($L72, 'BinaryOpSymbol ">>"');
9107
+ var BinaryOpSymbol$20 = $T($EXPECT($L73, 'BinaryOpSymbol "\xBB"'), function(value) {
9104
9108
  return ">>";
9105
9109
  });
9106
- var BinaryOpSymbol$21 = $EXPECT($L37, 'BinaryOpSymbol ">"');
9107
- var BinaryOpSymbol$22 = $EXPECT($L75, 'BinaryOpSymbol "!=="');
9108
- var BinaryOpSymbol$23 = $T($EXPECT($L76, 'BinaryOpSymbol "\u2262"'), function(value) {
9110
+ var BinaryOpSymbol$21 = $EXPECT($L36, 'BinaryOpSymbol ">"');
9111
+ var BinaryOpSymbol$22 = $EXPECT($L74, 'BinaryOpSymbol "!=="');
9112
+ var BinaryOpSymbol$23 = $T($EXPECT($L75, 'BinaryOpSymbol "\u2262"'), function(value) {
9109
9113
  return "!==";
9110
9114
  });
9111
- var BinaryOpSymbol$24 = $TV($C($EXPECT($L77, 'BinaryOpSymbol "!="'), $EXPECT($L78, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
9115
+ var BinaryOpSymbol$24 = $TV($C($EXPECT($L76, 'BinaryOpSymbol "!="'), $EXPECT($L77, 'BinaryOpSymbol "\u2260"')), function($skip, $loc, $0, $1) {
9112
9116
  if (module.config.coffeeEq)
9113
9117
  return "!==";
9114
9118
  return "!=";
9115
9119
  });
9116
- var BinaryOpSymbol$25 = $TS($S($EXPECT($L79, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9120
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L78, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9117
9121
  if (module.config.coffeeIsnt)
9118
9122
  return "!==";
9119
9123
  return $skip;
9120
9124
  });
9121
- var BinaryOpSymbol$26 = $EXPECT($L80, 'BinaryOpSymbol "==="');
9122
- var BinaryOpSymbol$27 = $T($C($EXPECT($L81, 'BinaryOpSymbol "\u2263"'), $EXPECT($L82, 'BinaryOpSymbol "\u2A76"')), function(value) {
9125
+ var BinaryOpSymbol$26 = $EXPECT($L79, 'BinaryOpSymbol "==="');
9126
+ var BinaryOpSymbol$27 = $T($C($EXPECT($L80, 'BinaryOpSymbol "\u2263"'), $EXPECT($L81, 'BinaryOpSymbol "\u2A76"')), function(value) {
9123
9127
  return "===";
9124
9128
  });
9125
- var BinaryOpSymbol$28 = $TV($C($EXPECT($L83, 'BinaryOpSymbol "=="'), $EXPECT($L84, 'BinaryOpSymbol "\u2261"'), $EXPECT($L85, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
9129
+ var BinaryOpSymbol$28 = $TV($C($EXPECT($L82, 'BinaryOpSymbol "=="'), $EXPECT($L83, 'BinaryOpSymbol "\u2261"'), $EXPECT($L84, 'BinaryOpSymbol "\u2A75"')), function($skip, $loc, $0, $1) {
9126
9130
  if (module.config.coffeeEq)
9127
9131
  return "===";
9128
9132
  return "==";
9129
9133
  });
9130
- var BinaryOpSymbol$29 = $T($S($EXPECT($L86, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
9134
+ var BinaryOpSymbol$29 = $T($S($EXPECT($L85, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
9131
9135
  return "&&";
9132
9136
  });
9133
- var BinaryOpSymbol$30 = $EXPECT($L87, 'BinaryOpSymbol "&&"');
9134
- var BinaryOpSymbol$31 = $T($S($EXPECT($L88, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
9137
+ var BinaryOpSymbol$30 = $EXPECT($L86, 'BinaryOpSymbol "&&"');
9138
+ var BinaryOpSymbol$31 = $T($S($EXPECT($L87, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
9135
9139
  return "||";
9136
9140
  });
9137
- var BinaryOpSymbol$32 = $EXPECT($L89, 'BinaryOpSymbol "||"');
9138
- var BinaryOpSymbol$33 = $T($EXPECT($L90, 'BinaryOpSymbol "\u2016"'), function(value) {
9141
+ var BinaryOpSymbol$32 = $EXPECT($L88, 'BinaryOpSymbol "||"');
9142
+ var BinaryOpSymbol$33 = $T($EXPECT($L89, 'BinaryOpSymbol "\u2016"'), function(value) {
9139
9143
  return "||";
9140
9144
  });
9141
- var BinaryOpSymbol$34 = $TV($C($EXPECT($L91, 'BinaryOpSymbol "^^"'), $S($EXPECT($L92, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9145
+ var BinaryOpSymbol$34 = $TV($C($EXPECT($L90, 'BinaryOpSymbol "^^"'), $S($EXPECT($L91, 'BinaryOpSymbol "xor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9142
9146
  return {
9143
9147
  call: module.getRef("xor"),
9144
9148
  special: true
9145
9149
  };
9146
9150
  });
9147
- var BinaryOpSymbol$35 = $TV($C($EXPECT($R18, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L93, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9151
+ var BinaryOpSymbol$35 = $TV($C($EXPECT($R19, "BinaryOpSymbol /!\\^\\^?/"), $S($EXPECT($L92, 'BinaryOpSymbol "xnor"'), NonIdContinue)), function($skip, $loc, $0, $1) {
9148
9152
  return {
9149
9153
  call: module.getRef("xnor"),
9150
9154
  special: true
9151
9155
  };
9152
9156
  });
9153
- var BinaryOpSymbol$36 = $EXPECT($L94, 'BinaryOpSymbol "??"');
9154
- var BinaryOpSymbol$37 = $T($EXPECT($L95, 'BinaryOpSymbol "\u2047"'), function(value) {
9157
+ var BinaryOpSymbol$36 = $EXPECT($L93, 'BinaryOpSymbol "??"');
9158
+ var BinaryOpSymbol$37 = $T($EXPECT($L94, 'BinaryOpSymbol "\u2047"'), function(value) {
9155
9159
  return "??";
9156
9160
  });
9157
9161
  var BinaryOpSymbol$38 = $T($S($EXPECT($L6, 'BinaryOpSymbol "?"'), CoffeeBinaryExistentialEnabled), function(value) {
9158
9162
  return "??";
9159
9163
  });
9160
- var BinaryOpSymbol$39 = $TS($S($EXPECT($L96, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9164
+ var BinaryOpSymbol$39 = $TS($S($EXPECT($L95, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9161
9165
  return {
9162
9166
  $loc,
9163
9167
  token: $1,
@@ -9174,7 +9178,7 @@ ${input.slice(result.pos)}
9174
9178
  var op = $3;
9175
9179
  return { ...op, $loc };
9176
9180
  });
9177
- var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L97, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
9181
+ var BinaryOpSymbol$42 = $TV($C($S(Is, __, In), $EXPECT($L96, 'BinaryOpSymbol "\u2208"')), function($skip, $loc, $0, $1) {
9178
9182
  return {
9179
9183
  method: "includes",
9180
9184
  relational: true,
@@ -9182,14 +9186,14 @@ ${input.slice(result.pos)}
9182
9186
  special: true
9183
9187
  };
9184
9188
  });
9185
- var BinaryOpSymbol$43 = $TV($EXPECT($L98, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
9189
+ var BinaryOpSymbol$43 = $TV($EXPECT($L97, 'BinaryOpSymbol "\u220B"'), function($skip, $loc, $0, $1) {
9186
9190
  return {
9187
9191
  method: "includes",
9188
9192
  relational: true,
9189
9193
  special: true
9190
9194
  };
9191
9195
  });
9192
- var BinaryOpSymbol$44 = $TV($EXPECT($L99, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
9196
+ var BinaryOpSymbol$44 = $TV($EXPECT($L98, 'BinaryOpSymbol "\u220C"'), function($skip, $loc, $0, $1) {
9193
9197
  return {
9194
9198
  method: "includes",
9195
9199
  relational: true,
@@ -9197,7 +9201,7 @@ ${input.slice(result.pos)}
9197
9201
  negated: true
9198
9202
  };
9199
9203
  });
9200
- var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L100, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
9204
+ var BinaryOpSymbol$45 = $TV($C($S(Is, __, OmittedNegation, __, In), $EXPECT($L99, 'BinaryOpSymbol "\u2209"')), function($skip, $loc, $0, $1) {
9201
9205
  return {
9202
9206
  method: "includes",
9203
9207
  relational: true,
@@ -9230,9 +9234,9 @@ ${input.slice(result.pos)}
9230
9234
  return "===";
9231
9235
  });
9232
9236
  var BinaryOpSymbol$48 = In;
9233
- var BinaryOpSymbol$49 = $EXPECT($L101, 'BinaryOpSymbol "&"');
9234
- var BinaryOpSymbol$50 = $EXPECT($L21, 'BinaryOpSymbol "^"');
9235
- var BinaryOpSymbol$51 = $EXPECT($L102, 'BinaryOpSymbol "|"');
9237
+ var BinaryOpSymbol$49 = $EXPECT($L100, 'BinaryOpSymbol "&"');
9238
+ var BinaryOpSymbol$50 = $EXPECT($L20, 'BinaryOpSymbol "^"');
9239
+ var BinaryOpSymbol$51 = $EXPECT($L101, 'BinaryOpSymbol "|"');
9236
9240
  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];
9237
9241
  function BinaryOpSymbol(ctx, state) {
9238
9242
  return $EVENT_C(ctx, state, "BinaryOpSymbol", BinaryOpSymbol$$);
@@ -9270,7 +9274,7 @@ ${input.slice(result.pos)}
9270
9274
  function CoffeeOfOp(ctx, state) {
9271
9275
  return $EVENT_C(ctx, state, "CoffeeOfOp", CoffeeOfOp$$);
9272
9276
  }
9273
- var NotOp$0 = $TS($S($EXPECT($L96, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9277
+ var NotOp$0 = $TS($S($EXPECT($L95, 'NotOp "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9274
9278
  return {
9275
9279
  $loc,
9276
9280
  token: "instanceof",
@@ -9291,24 +9295,24 @@ ${input.slice(result.pos)}
9291
9295
  function NotOp(ctx, state) {
9292
9296
  return $EVENT_C(ctx, state, "NotOp", NotOp$$);
9293
9297
  }
9294
- var Xor$0 = $EXPECT($L91, 'Xor "^^"');
9295
- var Xor$1 = $S($EXPECT($L92, 'Xor "xor"'), NonIdContinue);
9298
+ var Xor$0 = $EXPECT($L90, 'Xor "^^"');
9299
+ var Xor$1 = $S($EXPECT($L91, 'Xor "xor"'), NonIdContinue);
9296
9300
  var Xor$$ = [Xor$0, Xor$1];
9297
9301
  function Xor(ctx, state) {
9298
9302
  return $EVENT_C(ctx, state, "Xor", Xor$$);
9299
9303
  }
9300
- var Xnor$0 = $R$0($EXPECT($R18, "Xnor /!\\^\\^?/"));
9301
- var Xnor$1 = $EXPECT($L93, 'Xnor "xnor"');
9304
+ var Xnor$0 = $R$0($EXPECT($R19, "Xnor /!\\^\\^?/"));
9305
+ var Xnor$1 = $EXPECT($L92, 'Xnor "xnor"');
9302
9306
  var Xnor$$ = [Xnor$0, Xnor$1];
9303
9307
  function Xnor(ctx, state) {
9304
9308
  return $EVENT_C(ctx, state, "Xnor", Xnor$$);
9305
9309
  }
9306
- var UnaryOp$0 = $TR($EXPECT($R19, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9310
+ var UnaryOp$0 = $TR($EXPECT($R20, "UnaryOp /(?!\\+\\+|--)[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9307
9311
  return { $loc, token: $0 };
9308
9312
  });
9309
9313
  var UnaryOp$1 = AwaitOp;
9310
- var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R20, "UnaryOp /[:.]/"))), $E(_));
9311
- var UnaryOp$3 = $T($S(Not, $N($EXPECT($R20, "UnaryOp /[:.]/")), $E($EXPECT($L15, 'UnaryOp " "')), $E(_)), function(value) {
9314
+ var UnaryOp$2 = $S($C(Delete, Void, Typeof), $N($R$0($EXPECT($R21, "UnaryOp /[:.]/"))), $E(_));
9315
+ var UnaryOp$3 = $T($S(Not, $N($EXPECT($R21, "UnaryOp /[:.]/")), $E($EXPECT($L15, 'UnaryOp " "')), $E(_)), function(value) {
9312
9316
  return [value[0], value[3]];
9313
9317
  });
9314
9318
  var UnaryOp$$ = [UnaryOp$0, UnaryOp$1, UnaryOp$2, UnaryOp$3];
@@ -9339,7 +9343,7 @@ ${input.slice(result.pos)}
9339
9343
  return $EVENT_C(ctx, state, "ModuleItem", ModuleItem$$);
9340
9344
  }
9341
9345
  var StatementListItem$0 = Declaration;
9342
- var StatementListItem$1 = $TS($S($N($EXPECT($L103, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
9346
+ var StatementListItem$1 = $TS($S($N($EXPECT($L102, 'StatementListItem "$:"')), ImplicitObjectLiteral), function($skip, $loc, $0, $1, $2) {
9343
9347
  return makeLeftHandSideExpression($2);
9344
9348
  });
9345
9349
  var StatementListItem$2 = PostfixedStatement;
@@ -9406,7 +9410,7 @@ ${input.slice(result.pos)}
9406
9410
  function NonPipelinePostfixedExpression(ctx, state) {
9407
9411
  return $EVENT(ctx, state, "NonPipelinePostfixedExpression", NonPipelinePostfixedExpression$0);
9408
9412
  }
9409
- var PostfixStatement$0 = $T($S($EXPECT($R21, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
9413
+ var PostfixStatement$0 = $T($S($EXPECT($R22, "PostfixStatement /(?=for|if|loop|unless|until|while)/"), _PostfixStatement), function(value) {
9410
9414
  return value[1];
9411
9415
  });
9412
9416
  function PostfixStatement(ctx, state) {
@@ -9449,7 +9453,7 @@ ${input.slice(result.pos)}
9449
9453
  function NoCommaStatement(ctx, state) {
9450
9454
  return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
9451
9455
  }
9452
- var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L104, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9456
+ var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L103, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
9453
9457
  return { type: "EmptyStatement", children: $1 || [] };
9454
9458
  });
9455
9459
  function EmptyStatement(ctx, state) {
@@ -9480,7 +9484,7 @@ ${input.slice(result.pos)}
9480
9484
  var w = $3;
9481
9485
  return [id, colon, w];
9482
9486
  });
9483
- var Label$1 = $S($EXPECT($L103, 'Label "$:"'), Whitespace);
9487
+ var Label$1 = $S($EXPECT($L102, 'Label "$:"'), Whitespace);
9484
9488
  var Label$$ = [Label$0, Label$1];
9485
9489
  function Label(ctx, state) {
9486
9490
  return $EVENT_C(ctx, state, "Label", Label$$);
@@ -9653,7 +9657,7 @@ ${input.slice(result.pos)}
9653
9657
  function BlockExpressionPart(ctx, state) {
9654
9658
  return $EVENT(ctx, state, "BlockExpressionPart", BlockExpressionPart$0);
9655
9659
  }
9656
- var IterationStatement$0 = $T($S($EXPECT($R22, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9660
+ var IterationStatement$0 = $T($S($EXPECT($R23, "IterationStatement /(?=loop|do|for|until|while)/"), _IterationStatement), function(value) {
9657
9661
  return value[1];
9658
9662
  });
9659
9663
  function IterationStatement(ctx, state) {
@@ -10006,7 +10010,7 @@ ${input.slice(result.pos)}
10006
10010
  names: binding.names
10007
10011
  };
10008
10012
  });
10009
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R23, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
10013
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R24, "ForDeclaration /(?=[\\s\\),])/")), function($skip, $loc, $0, $1, $2, $3) {
10010
10014
  var c = $1;
10011
10015
  var binding = $2;
10012
10016
  return {
@@ -10341,8 +10345,8 @@ ${input.slice(result.pos)}
10341
10345
  function Condition(ctx, state) {
10342
10346
  return $EVENT_C(ctx, state, "Condition", Condition$$);
10343
10347
  }
10344
- var DeclarationCondition$0 = $TS($S(ForbidIndentedApplication, $E(LexicalDeclaration), RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3) {
10345
- var declaration = $2;
10348
+ var DeclarationCondition$0 = $TS($S(ForbidBracedApplication, ForbidIndentedApplication, ForbidNewlineBinaryOp, $E(LexicalDeclaration), RestoreNewlineBinaryOp, RestoreBracedApplication, RestoreIndentedApplication), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
10349
+ var declaration = $4;
10346
10350
  if (!declaration)
10347
10351
  return $skip;
10348
10352
  return {
@@ -10589,19 +10593,19 @@ ${input.slice(result.pos)}
10589
10593
  function ThrowStatement(ctx, state) {
10590
10594
  return $EVENT(ctx, state, "ThrowStatement", ThrowStatement$0);
10591
10595
  }
10592
- var Break$0 = $TS($S($EXPECT($L105, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10596
+ var Break$0 = $TS($S($EXPECT($L104, 'Break "break"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10593
10597
  return { $loc, token: $1 };
10594
10598
  });
10595
10599
  function Break(ctx, state) {
10596
10600
  return $EVENT(ctx, state, "Break", Break$0);
10597
10601
  }
10598
- var Continue$0 = $TS($S($EXPECT($L106, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10602
+ var Continue$0 = $TS($S($EXPECT($L105, 'Continue "continue"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10599
10603
  return { $loc, token: $1 };
10600
10604
  });
10601
10605
  function Continue(ctx, state) {
10602
10606
  return $EVENT(ctx, state, "Continue", Continue$0);
10603
10607
  }
10604
- var Debugger$0 = $TS($S($EXPECT($L107, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10608
+ var Debugger$0 = $TS($S($EXPECT($L106, 'Debugger "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
10605
10609
  return { $loc, token: $1 };
10606
10610
  });
10607
10611
  function Debugger(ctx, state) {
@@ -10638,7 +10642,7 @@ ${input.slice(result.pos)}
10638
10642
  function MaybeNestedExpression(ctx, state) {
10639
10643
  return $EVENT_C(ctx, state, "MaybeNestedExpression", MaybeNestedExpression$$);
10640
10644
  }
10641
- var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L108, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10645
+ var ImportDeclaration$0 = $TS($S(Import, _, Identifier, $E(_), Equals, __, $EXPECT($L107, 'ImportDeclaration "require"'), NonIdContinue, Arguments), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10642
10646
  const imp = [
10643
10647
  { ...$1, ts: true },
10644
10648
  { ...$1, token: "const", js: true }
@@ -10732,7 +10736,7 @@ ${input.slice(result.pos)}
10732
10736
  function FromClause(ctx, state) {
10733
10737
  return $EVENT(ctx, state, "FromClause", FromClause$0);
10734
10738
  }
10735
- var ImportAssertion$0 = $S($E(_), $C($EXPECT($L109, 'ImportAssertion "with"'), $EXPECT($L110, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10739
+ var ImportAssertion$0 = $S($E(_), $C($EXPECT($L108, 'ImportAssertion "with"'), $EXPECT($L109, 'ImportAssertion "assert"')), NonIdContinue, $E(_), ObjectLiteral);
10736
10740
  function ImportAssertion(ctx, state) {
10737
10741
  return $EVENT(ctx, state, "ImportAssertion", ImportAssertion$0);
10738
10742
  }
@@ -10827,7 +10831,7 @@ ${input.slice(result.pos)}
10827
10831
  function UnprocessedModuleSpecifier(ctx, state) {
10828
10832
  return $EVENT_C(ctx, state, "UnprocessedModuleSpecifier", UnprocessedModuleSpecifier$$);
10829
10833
  }
10830
- var UnquotedSpecifier$0 = $TV($EXPECT($R24, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10834
+ var UnquotedSpecifier$0 = $TV($EXPECT($R25, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
10831
10835
  var spec = $0;
10832
10836
  return { $loc, token: `"${spec}"` };
10833
10837
  });
@@ -10980,34 +10984,34 @@ ${input.slice(result.pos)}
10980
10984
  thisAssignments: bindings.flatMap((b) => b.thisAssignments)
10981
10985
  };
10982
10986
  });
10983
- var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10987
+ var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, PostfixedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10984
10988
  return processAssignmentDeclaration(...$0);
10985
10989
  });
10986
- var LexicalDeclaration$2 = $TS($S(InsertLet, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, LetAssignment, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10987
- var l = $1;
10988
- var id = $2;
10989
- var suffix = $3;
10990
- var ws = $4;
10991
- var la = $5;
10992
- var e = $6;
10990
+ var LexicalDeclaration$2 = $TS($S(InsertLet, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, LetAssignment, PostfixedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
10993
10991
  return processAssignmentDeclaration(...$0);
10994
10992
  });
10995
10993
  var LexicalDeclaration$$ = [LexicalDeclaration$0, LexicalDeclaration$1, LexicalDeclaration$2];
10996
10994
  function LexicalDeclaration(ctx, state) {
10997
10995
  return $EVENT_C(ctx, state, "LexicalDeclaration", LexicalDeclaration$$);
10998
10996
  }
10999
- var ConstAssignment$0 = $TV($C($EXPECT($L111, 'ConstAssignment ":="'), $EXPECT($L112, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
10997
+ var ConstAssignment$0 = $TV($C($EXPECT($L110, 'ConstAssignment ":="'), $EXPECT($L111, 'ConstAssignment "\u2254"')), function($skip, $loc, $0, $1) {
11000
10998
  return { $loc, token: "=" };
11001
10999
  });
11002
11000
  function ConstAssignment(ctx, state) {
11003
11001
  return $EVENT(ctx, state, "ConstAssignment", ConstAssignment$0);
11004
11002
  }
11005
- var LetAssignment$0 = $TV($EXPECT($L113, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
11003
+ var LetAssignment$0 = $TV($EXPECT($L112, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
11006
11004
  return { $loc, token: "=" };
11007
11005
  });
11008
11006
  function LetAssignment(ctx, state) {
11009
11007
  return $EVENT(ctx, state, "LetAssignment", LetAssignment$0);
11010
11008
  }
11009
+ var TypeAssignment$0 = $TV($EXPECT($L113, 'TypeAssignment "::="'), function($skip, $loc, $0, $1) {
11010
+ return { $loc, token: "=" };
11011
+ });
11012
+ function TypeAssignment(ctx, state) {
11013
+ return $EVENT(ctx, state, "TypeAssignment", TypeAssignment$0);
11014
+ }
11011
11015
  var LexicalBinding$0 = $TS($S(BindingPattern, $E(TypeSuffix), Initializer), function($skip, $loc, $0, $1, $2, $3) {
11012
11016
  var pattern = $1;
11013
11017
  var suffix = $2;
@@ -11071,7 +11075,7 @@ ${input.slice(result.pos)}
11071
11075
  function VariableDeclarationList(ctx, state) {
11072
11076
  return $EVENT(ctx, state, "VariableDeclarationList", VariableDeclarationList$0);
11073
11077
  }
11074
- var NumericLiteral$0 = $TS($S($EXPECT($R25, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
11078
+ var NumericLiteral$0 = $TS($S($EXPECT($R26, "NumericLiteral /(?=[0-9.])/"), NumericLiteralKind), function($skip, $loc, $0, $1, $2) {
11075
11079
  var token = $2;
11076
11080
  return { type: "NumericLiteral", $loc, token };
11077
11081
  });
@@ -11087,36 +11091,36 @@ ${input.slice(result.pos)}
11087
11091
  function NumericLiteralKind(ctx, state) {
11088
11092
  return $EVENT_C(ctx, state, "NumericLiteralKind", NumericLiteralKind$$);
11089
11093
  }
11090
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R26, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
11094
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R27, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
11091
11095
  function DecimalBigIntegerLiteral(ctx, state) {
11092
11096
  return $EVENT(ctx, state, "DecimalBigIntegerLiteral", DecimalBigIntegerLiteral$0);
11093
11097
  }
11094
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R27, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
11098
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R28, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
11095
11099
  return $1 + ".";
11096
11100
  });
11097
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R28, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
11098
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R29, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
11101
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R29, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
11102
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R30, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
11099
11103
  var DecimalLiteral$$ = [DecimalLiteral$0, DecimalLiteral$1, DecimalLiteral$2];
11100
11104
  function DecimalLiteral(ctx, state) {
11101
11105
  return $EVENT_C(ctx, state, "DecimalLiteral", DecimalLiteral$$);
11102
11106
  }
11103
- var ExponentPart$0 = $R$0($EXPECT($R30, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
11107
+ var ExponentPart$0 = $R$0($EXPECT($R31, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
11104
11108
  function ExponentPart(ctx, state) {
11105
11109
  return $EVENT(ctx, state, "ExponentPart", ExponentPart$0);
11106
11110
  }
11107
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R31, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
11111
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R32, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
11108
11112
  function BinaryIntegerLiteral(ctx, state) {
11109
11113
  return $EVENT(ctx, state, "BinaryIntegerLiteral", BinaryIntegerLiteral$0);
11110
11114
  }
11111
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R32, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
11115
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R33, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
11112
11116
  function OctalIntegerLiteral(ctx, state) {
11113
11117
  return $EVENT(ctx, state, "OctalIntegerLiteral", OctalIntegerLiteral$0);
11114
11118
  }
11115
- var HexIntegerLiteral$0 = $R$0($EXPECT($R33, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
11119
+ var HexIntegerLiteral$0 = $R$0($EXPECT($R34, "HexIntegerLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
11116
11120
  function HexIntegerLiteral(ctx, state) {
11117
11121
  return $EVENT(ctx, state, "HexIntegerLiteral", HexIntegerLiteral$0);
11118
11122
  }
11119
- var IntegerLiteral$0 = $TS($S($EXPECT($R34, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
11123
+ var IntegerLiteral$0 = $TS($S($EXPECT($R35, "IntegerLiteral /(?=[0-9])/"), IntegerLiteralKind), function($skip, $loc, $0, $1, $2) {
11120
11124
  var token = $2;
11121
11125
  return { $loc, token };
11122
11126
  });
@@ -11132,7 +11136,7 @@ ${input.slice(result.pos)}
11132
11136
  function IntegerLiteralKind(ctx, state) {
11133
11137
  return $EVENT_C(ctx, state, "IntegerLiteralKind", IntegerLiteralKind$$);
11134
11138
  }
11135
- var DecimalIntegerLiteral$0 = $R$0($EXPECT($R35, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
11139
+ var DecimalIntegerLiteral$0 = $R$0($EXPECT($R36, "DecimalIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)/"));
11136
11140
  function DecimalIntegerLiteral(ctx, state) {
11137
11141
  return $EVENT(ctx, state, "DecimalIntegerLiteral", DecimalIntegerLiteral$0);
11138
11142
  }
@@ -11156,25 +11160,25 @@ ${input.slice(result.pos)}
11156
11160
  function StringLiteral(ctx, state) {
11157
11161
  return $EVENT_C(ctx, state, "StringLiteral", StringLiteral$$);
11158
11162
  }
11159
- var DoubleStringCharacters$0 = $TR($EXPECT($R36, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11163
+ var DoubleStringCharacters$0 = $TR($EXPECT($R37, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11160
11164
  return { $loc, token: $0 };
11161
11165
  });
11162
11166
  function DoubleStringCharacters(ctx, state) {
11163
11167
  return $EVENT(ctx, state, "DoubleStringCharacters", DoubleStringCharacters$0);
11164
11168
  }
11165
- var SingleStringCharacters$0 = $TR($EXPECT($R37, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11169
+ var SingleStringCharacters$0 = $TR($EXPECT($R38, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11166
11170
  return { $loc, token: $0 };
11167
11171
  });
11168
11172
  function SingleStringCharacters(ctx, state) {
11169
11173
  return $EVENT(ctx, state, "SingleStringCharacters", SingleStringCharacters$0);
11170
11174
  }
11171
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R38, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11175
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R39, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11172
11176
  return { $loc, token: $0 };
11173
11177
  });
11174
11178
  function TripleDoubleStringCharacters(ctx, state) {
11175
11179
  return $EVENT(ctx, state, "TripleDoubleStringCharacters", TripleDoubleStringCharacters$0);
11176
11180
  }
11177
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R39, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11181
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R40, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11178
11182
  return { $loc, token: $0 };
11179
11183
  });
11180
11184
  function TripleSingleStringCharacters(ctx, state) {
@@ -11193,14 +11197,14 @@ ${input.slice(result.pos)}
11193
11197
  function CoffeeInterpolatedDoubleQuotedString(ctx, state) {
11194
11198
  return $EVENT(ctx, state, "CoffeeInterpolatedDoubleQuotedString", CoffeeInterpolatedDoubleQuotedString$0);
11195
11199
  }
11196
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R40, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11200
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R41, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11197
11201
  return { $loc, token: $0 };
11198
11202
  });
11199
11203
  function CoffeeDoubleQuotedStringCharacters(ctx, state) {
11200
11204
  return $EVENT(ctx, state, "CoffeeDoubleQuotedStringCharacters", CoffeeDoubleQuotedStringCharacters$0);
11201
11205
  }
11202
11206
  var RegularExpressionLiteral$0 = HeregexLiteral;
11203
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L59, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L59, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11207
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L58, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11204
11208
  return { type: "RegularExpressionLiteral", $loc, token: $1 };
11205
11209
  });
11206
11210
  var RegularExpressionLiteral$$ = [RegularExpressionLiteral$0, RegularExpressionLiteral$1];
@@ -11213,7 +11217,7 @@ ${input.slice(result.pos)}
11213
11217
  function RegularExpressionClass(ctx, state) {
11214
11218
  return $EVENT(ctx, state, "RegularExpressionClass", RegularExpressionClass$0);
11215
11219
  }
11216
- var RegularExpressionClassCharacters$0 = $TR($EXPECT($R41, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11220
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R42, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11217
11221
  return { $loc, token: $0 };
11218
11222
  });
11219
11223
  function RegularExpressionClassCharacters(ctx, state) {
@@ -11270,7 +11274,7 @@ ${input.slice(result.pos)}
11270
11274
  var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
11271
11275
  return { "type": "Substitution", "children": value[0] };
11272
11276
  });
11273
- var HeregexPart$3 = $TR($EXPECT($R42, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11277
+ var HeregexPart$3 = $TR($EXPECT($R43, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11274
11278
  let token = $0;
11275
11279
  switch ($0[1]) {
11276
11280
  case "\n":
@@ -11288,13 +11292,13 @@ ${input.slice(result.pos)}
11288
11292
  var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
11289
11293
  return { $loc, token: "" };
11290
11294
  });
11291
- var HeregexPart$5 = $TR($EXPECT($R43, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11295
+ var HeregexPart$5 = $TR($EXPECT($R44, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11292
11296
  return { $loc, token: "" };
11293
11297
  });
11294
- var HeregexPart$6 = $TR($EXPECT($R44, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11298
+ var HeregexPart$6 = $TR($EXPECT($R45, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11295
11299
  return { $loc, token: "\\/" };
11296
11300
  });
11297
- var HeregexPart$7 = $TR($EXPECT($R45, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11301
+ var HeregexPart$7 = $TR($EXPECT($R46, "HeregexPart /[^[\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11298
11302
  return { $loc, token: $0 };
11299
11303
  });
11300
11304
  var HeregexPart$$ = [HeregexPart$0, HeregexPart$1, HeregexPart$2, HeregexPart$3, HeregexPart$4, HeregexPart$5, HeregexPart$6, HeregexPart$7];
@@ -11307,7 +11311,7 @@ ${input.slice(result.pos)}
11307
11311
  function HeregexComment(ctx, state) {
11308
11312
  return $EVENT_C(ctx, state, "HeregexComment", HeregexComment$$);
11309
11313
  }
11310
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R46, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
11314
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R47, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpPart));
11311
11315
  function RegularExpressionBody(ctx, state) {
11312
11316
  return $EVENT(ctx, state, "RegularExpressionBody", RegularExpressionBody$0);
11313
11317
  }
@@ -11317,15 +11321,15 @@ ${input.slice(result.pos)}
11317
11321
  function RegExpPart(ctx, state) {
11318
11322
  return $EVENT_C(ctx, state, "RegExpPart", RegExpPart$$);
11319
11323
  }
11320
- var RegExpCharacter$0 = $R$0($EXPECT($R47, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
11324
+ var RegExpCharacter$0 = $R$0($EXPECT($R48, "RegExpCharacter /(?:\\\\.|[^[\\/\\r\\n])+/"));
11321
11325
  function RegExpCharacter(ctx, state) {
11322
11326
  return $EVENT(ctx, state, "RegExpCharacter", RegExpCharacter$0);
11323
11327
  }
11324
- var RegularExpressionFlags$0 = $R$0($EXPECT($R48, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
11328
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R49, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
11325
11329
  function RegularExpressionFlags(ctx, state) {
11326
11330
  return $EVENT(ctx, state, "RegularExpressionFlags", RegularExpressionFlags$0);
11327
11331
  }
11328
- var TemplateLiteral$0 = $T($S($EXPECT($R49, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
11332
+ var TemplateLiteral$0 = $T($S($EXPECT($R50, "TemplateLiteral /(?=[`'\"])/"), _TemplateLiteral), function(value) {
11329
11333
  return value[1];
11330
11334
  });
11331
11335
  function TemplateLiteral(ctx, state) {
@@ -11361,28 +11365,28 @@ ${input.slice(result.pos)}
11361
11365
  function TemplateSubstitution(ctx, state) {
11362
11366
  return $EVENT(ctx, state, "TemplateSubstitution", TemplateSubstitution$0);
11363
11367
  }
11364
- var TemplateCharacters$0 = $TR($EXPECT($R50, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11368
+ var TemplateCharacters$0 = $TR($EXPECT($R51, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11365
11369
  return { $loc, token: $0 };
11366
11370
  });
11367
11371
  function TemplateCharacters(ctx, state) {
11368
11372
  return $EVENT(ctx, state, "TemplateCharacters", TemplateCharacters$0);
11369
11373
  }
11370
- var TemplateBlockCharacters$0 = $TR($EXPECT($R51, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11374
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R52, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11371
11375
  return { $loc, token: $0 };
11372
11376
  });
11373
11377
  function TemplateBlockCharacters(ctx, state) {
11374
11378
  return $EVENT(ctx, state, "TemplateBlockCharacters", TemplateBlockCharacters$0);
11375
11379
  }
11376
- var ReservedWord$0 = $S($R$0($EXPECT($R52, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
11377
- var ReservedWord$1 = $S($R$0($EXPECT($R53, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
11378
- var ReservedWord$2 = $S($R$0($EXPECT($R54, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
11379
- var ReservedWord$3 = $S($R$0($EXPECT($R55, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
11380
- var ReservedWord$4 = $R$0($EXPECT($R56, "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})/"));
11380
+ var ReservedWord$0 = $S($R$0($EXPECT($R53, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")), CoffeeBooleansEnabled);
11381
+ var ReservedWord$1 = $S($R$0($EXPECT($R54, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")), CoffeeIsntEnabled);
11382
+ var ReservedWord$2 = $S($R$0($EXPECT($R55, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")), CoffeeForLoopsEnabled);
11383
+ var ReservedWord$3 = $S($R$0($EXPECT($R56, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")), CoffeeOfEnabled);
11384
+ var ReservedWord$4 = $R$0($EXPECT($R57, "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})/"));
11381
11385
  var ReservedWord$$ = [ReservedWord$0, ReservedWord$1, ReservedWord$2, ReservedWord$3, ReservedWord$4];
11382
11386
  function ReservedWord(ctx, state) {
11383
11387
  return $EVENT_C(ctx, state, "ReservedWord", ReservedWord$$);
11384
11388
  }
11385
- var Comment$0 = $T($S($EXPECT($R57, "Comment /(?=\\/|#)/"), _Comment), function(value) {
11389
+ var Comment$0 = $T($S($EXPECT($R58, "Comment /(?=\\/|#)/"), _Comment), function(value) {
11386
11390
  return value[1];
11387
11391
  });
11388
11392
  function Comment(ctx, state) {
@@ -11400,7 +11404,7 @@ ${input.slice(result.pos)}
11400
11404
  function SingleLineComment(ctx, state) {
11401
11405
  return $EVENT_C(ctx, state, "SingleLineComment", SingleLineComment$$);
11402
11406
  }
11403
- var JSSingleLineComment$0 = $TR($EXPECT($R58, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11407
+ var JSSingleLineComment$0 = $TR($EXPECT($R59, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11404
11408
  return { type: "Comment", $loc, token: $0 };
11405
11409
  });
11406
11410
  function JSSingleLineComment(ctx, state) {
@@ -11412,30 +11416,30 @@ ${input.slice(result.pos)}
11412
11416
  function MultiLineComment(ctx, state) {
11413
11417
  return $EVENT_C(ctx, state, "MultiLineComment", MultiLineComment$$);
11414
11418
  }
11415
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L114, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L115, 'JSMultiLineComment "*/"')), $EXPECT($R59, "JSMultiLineComment /./"))), $EXPECT($L115, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11419
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L114, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L115, 'JSMultiLineComment "*/"')), $EXPECT($R60, "JSMultiLineComment /./"))), $EXPECT($L115, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11416
11420
  return { type: "Comment", $loc, token: $1 };
11417
11421
  });
11418
11422
  function JSMultiLineComment(ctx, state) {
11419
11423
  return $EVENT(ctx, state, "JSMultiLineComment", JSMultiLineComment$0);
11420
11424
  }
11421
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R60, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11425
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R61, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11422
11426
  return { type: "Comment", $loc, token: `//${$1}` };
11423
11427
  });
11424
11428
  function CoffeeSingleLineComment(ctx, state) {
11425
11429
  return $EVENT(ctx, state, "CoffeeSingleLineComment", CoffeeSingleLineComment$0);
11426
11430
  }
11427
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R61, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11431
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R62, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11428
11432
  $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
11429
11433
  return { type: "Comment", $loc, token: `/*${$2}*/` };
11430
11434
  });
11431
11435
  function CoffeeMultiLineComment(ctx, state) {
11432
11436
  return $EVENT(ctx, state, "CoffeeMultiLineComment", CoffeeMultiLineComment$0);
11433
11437
  }
11434
- var CoffeeHereCommentStart$0 = $R$0($EXPECT($R62, "CoffeeHereCommentStart /###(?!#)/"));
11438
+ var CoffeeHereCommentStart$0 = $R$0($EXPECT($R63, "CoffeeHereCommentStart /###(?!#)/"));
11435
11439
  function CoffeeHereCommentStart(ctx, state) {
11436
11440
  return $EVENT(ctx, state, "CoffeeHereCommentStart", CoffeeHereCommentStart$0);
11437
11441
  }
11438
- var InlineComment$0 = $TR($EXPECT($R63, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11442
+ var InlineComment$0 = $TR($EXPECT($R64, "InlineComment /\\/\\*(?:(?!\\*\\/)[^\\r\\n])*\\*\\//"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11439
11443
  return { $loc, token: $0 };
11440
11444
  });
11441
11445
  function InlineComment(ctx, state) {
@@ -11449,13 +11453,13 @@ ${input.slice(result.pos)}
11449
11453
  function TrailingComment(ctx, state) {
11450
11454
  return $EVENT(ctx, state, "TrailingComment", TrailingComment$0);
11451
11455
  }
11452
- var _$0 = $T($S($EXPECT($R64, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
11456
+ var _$0 = $T($S($EXPECT($R65, "_ /(?=[ \\t\\/\\\\])/"), $P($C(NonNewlineWhitespace, InlineComment))), function(value) {
11453
11457
  return value[1];
11454
11458
  });
11455
11459
  function _(ctx, state) {
11456
11460
  return $EVENT(ctx, state, "_", _$0);
11457
11461
  }
11458
- var NonNewlineWhitespace$0 = $TR($EXPECT($R65, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11462
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R66, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11459
11463
  return { $loc, token: $0 };
11460
11464
  });
11461
11465
  var NonNewlineWhitespace$1 = $T($S($EXPECT($L116, 'NonNewlineWhitespace "\\\\\\\\"'), CoffeeLineContinuationEnabled, EOL), function(value) {
@@ -11472,7 +11476,7 @@ ${input.slice(result.pos)}
11472
11476
  function Trimmed_(ctx, state) {
11473
11477
  return $EVENT(ctx, state, "Trimmed_", Trimmed_$0);
11474
11478
  }
11475
- var __$0 = $T($S($EXPECT($R66, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
11479
+ var __$0 = $T($S($EXPECT($R67, "__ /(?=\\s|\\/|#)/"), $Q($C(Whitespace, Comment))), function(value) {
11476
11480
  return value[1];
11477
11481
  });
11478
11482
  var __$1 = $EXPECT($L0, '__ ""');
@@ -11480,7 +11484,7 @@ ${input.slice(result.pos)}
11480
11484
  function __(ctx, state) {
11481
11485
  return $EVENT_C(ctx, state, "__", __$$);
11482
11486
  }
11483
- var Whitespace$0 = $TR($EXPECT($R43, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11487
+ var Whitespace$0 = $TR($EXPECT($R44, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11484
11488
  return { $loc, token: $0 };
11485
11489
  });
11486
11490
  function Whitespace(ctx, state) {
@@ -11504,7 +11508,7 @@ ${input.slice(result.pos)}
11504
11508
  }
11505
11509
  var StatementDelimiter$0 = $Y(EOS);
11506
11510
  var StatementDelimiter$1 = SemicolonDelimiter;
11507
- var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L29, 'StatementDelimiter "}"'), $EXPECT($L117, 'StatementDelimiter ")"'), $EXPECT($L38, 'StatementDelimiter "]"'))));
11511
+ var StatementDelimiter$2 = $Y($S($E(_), $C($EXPECT($L28, 'StatementDelimiter "}"'), $EXPECT($L117, 'StatementDelimiter ")"'), $EXPECT($L37, 'StatementDelimiter "]"'))));
11508
11512
  var StatementDelimiter$$ = [StatementDelimiter$0, StatementDelimiter$1, StatementDelimiter$2];
11509
11513
  function StatementDelimiter(ctx, state) {
11510
11514
  return $EVENT_C(ctx, state, "StatementDelimiter", StatementDelimiter$$);
@@ -11518,7 +11522,7 @@ ${input.slice(result.pos)}
11518
11522
  function SemicolonDelimiter(ctx, state) {
11519
11523
  return $EVENT(ctx, state, "SemicolonDelimiter", SemicolonDelimiter$0);
11520
11524
  }
11521
- var NonIdContinue$0 = $R$0($EXPECT($R67, "NonIdContinue /(?!\\p{ID_Continue})/"));
11525
+ var NonIdContinue$0 = $R$0($EXPECT($R68, "NonIdContinue /(?!\\p{ID_Continue})/"));
11522
11526
  function NonIdContinue(ctx, state) {
11523
11527
  return $EVENT(ctx, state, "NonIdContinue", NonIdContinue$0);
11524
11528
  }
@@ -11534,7 +11538,7 @@ ${input.slice(result.pos)}
11534
11538
  function Abstract(ctx, state) {
11535
11539
  return $EVENT(ctx, state, "Abstract", Abstract$0);
11536
11540
  }
11537
- var Ampersand$0 = $TV($EXPECT($L101, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11541
+ var Ampersand$0 = $TV($EXPECT($L100, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11538
11542
  return { $loc, token: $1 };
11539
11543
  });
11540
11544
  function Ampersand(ctx, state) {
@@ -11582,7 +11586,7 @@ ${input.slice(result.pos)}
11582
11586
  function By(ctx, state) {
11583
11587
  return $EVENT(ctx, state, "By", By$0);
11584
11588
  }
11585
- var Caret$0 = $TV($EXPECT($L21, 'Caret "^"'), function($skip, $loc, $0, $1) {
11589
+ var Caret$0 = $TV($EXPECT($L20, 'Caret "^"'), function($skip, $loc, $0, $1) {
11586
11590
  return { $loc, token: $1 };
11587
11591
  });
11588
11592
  function Caret(ctx, state) {
@@ -11606,19 +11610,19 @@ ${input.slice(result.pos)}
11606
11610
  function Class(ctx, state) {
11607
11611
  return $EVENT(ctx, state, "Class", Class$0);
11608
11612
  }
11609
- var CloseAngleBracket$0 = $TV($EXPECT($L37, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11613
+ var CloseAngleBracket$0 = $TV($EXPECT($L36, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
11610
11614
  return { $loc, token: $1 };
11611
11615
  });
11612
11616
  function CloseAngleBracket(ctx, state) {
11613
11617
  return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
11614
11618
  }
11615
- var CloseBrace$0 = $TV($EXPECT($L29, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11619
+ var CloseBrace$0 = $TV($EXPECT($L28, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11616
11620
  return { $loc, token: $1 };
11617
11621
  });
11618
11622
  function CloseBrace(ctx, state) {
11619
11623
  return $EVENT(ctx, state, "CloseBrace", CloseBrace$0);
11620
11624
  }
11621
- var CloseBracket$0 = $TV($EXPECT($L38, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11625
+ var CloseBracket$0 = $TV($EXPECT($L37, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11622
11626
  return { $loc, token: $1 };
11623
11627
  });
11624
11628
  function CloseBracket(ctx, state) {
@@ -11642,7 +11646,7 @@ ${input.slice(result.pos)}
11642
11646
  function Colon(ctx, state) {
11643
11647
  return $EVENT(ctx, state, "Colon", Colon$0);
11644
11648
  }
11645
- var Comma$0 = $TV($EXPECT($L25, 'Comma ","'), function($skip, $loc, $0, $1) {
11649
+ var Comma$0 = $TV($EXPECT($L24, 'Comma ","'), function($skip, $loc, $0, $1) {
11646
11650
  return { $loc, token: $1 };
11647
11651
  });
11648
11652
  function Comma(ctx, state) {
@@ -11681,7 +11685,7 @@ ${input.slice(result.pos)}
11681
11685
  var Dot$0 = $TV($EXPECT($L7, 'Dot "."'), function($skip, $loc, $0, $1) {
11682
11686
  return { $loc, token: $1 };
11683
11687
  });
11684
- var Dot$1 = $TS($S($EXPECT($R68, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11688
+ var Dot$1 = $TS($S($EXPECT($R69, "Dot /['\u2019]s/"), _), function($skip, $loc, $0, $1, $2) {
11685
11689
  var ws = $2;
11686
11690
  return [
11687
11691
  { $loc, token: "." },
@@ -11742,97 +11746,97 @@ ${input.slice(result.pos)}
11742
11746
  function Equals(ctx, state) {
11743
11747
  return $EVENT(ctx, state, "Equals", Equals$0);
11744
11748
  }
11745
- var ExclamationPoint$0 = $TV($EXPECT($L20, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
11749
+ var ExclamationPoint$0 = $TV($EXPECT($L142, 'ExclamationPoint "!"'), function($skip, $loc, $0, $1) {
11746
11750
  return { $loc, token: $1 };
11747
11751
  });
11748
11752
  function ExclamationPoint(ctx, state) {
11749
11753
  return $EVENT(ctx, state, "ExclamationPoint", ExclamationPoint$0);
11750
11754
  }
11751
- var Export$0 = $TS($S($EXPECT($L142, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11755
+ var Export$0 = $TS($S($EXPECT($L143, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11752
11756
  return { $loc, token: $1 };
11753
11757
  });
11754
11758
  function Export(ctx, state) {
11755
11759
  return $EVENT(ctx, state, "Export", Export$0);
11756
11760
  }
11757
- var Extends$0 = $TS($S($EXPECT($L143, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11761
+ var Extends$0 = $TS($S($EXPECT($L144, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11758
11762
  return { $loc, token: $1 };
11759
11763
  });
11760
11764
  function Extends(ctx, state) {
11761
11765
  return $EVENT(ctx, state, "Extends", Extends$0);
11762
11766
  }
11763
- var Finally$0 = $TS($S($EXPECT($L144, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11767
+ var Finally$0 = $TS($S($EXPECT($L145, 'Finally "finally"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11764
11768
  return { $loc, token: $1 };
11765
11769
  });
11766
11770
  function Finally(ctx, state) {
11767
11771
  return $EVENT(ctx, state, "Finally", Finally$0);
11768
11772
  }
11769
- var For$0 = $TS($S($EXPECT($L145, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11773
+ var For$0 = $TS($S($EXPECT($L146, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11770
11774
  return { $loc, token: $1 };
11771
11775
  });
11772
11776
  function For(ctx, state) {
11773
11777
  return $EVENT(ctx, state, "For", For$0);
11774
11778
  }
11775
- var From$0 = $TS($S($EXPECT($L146, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11779
+ var From$0 = $TS($S($EXPECT($L147, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11776
11780
  return { $loc, token: $1 };
11777
11781
  });
11778
11782
  function From(ctx, state) {
11779
11783
  return $EVENT(ctx, state, "From", From$0);
11780
11784
  }
11781
- var Function$0 = $TS($S($EXPECT($L147, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11785
+ var Function$0 = $TS($S($EXPECT($L148, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11782
11786
  return { $loc, token: $1 };
11783
11787
  });
11784
11788
  function Function(ctx, state) {
11785
11789
  return $EVENT(ctx, state, "Function", Function$0);
11786
11790
  }
11787
- var GetOrSet$0 = $TS($S($C($EXPECT($L148, 'GetOrSet "get"'), $EXPECT($L149, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11791
+ var GetOrSet$0 = $TS($S($C($EXPECT($L149, 'GetOrSet "get"'), $EXPECT($L150, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11788
11792
  return { $loc, token: $1, type: "GetOrSet" };
11789
11793
  });
11790
11794
  function GetOrSet(ctx, state) {
11791
11795
  return $EVENT(ctx, state, "GetOrSet", GetOrSet$0);
11792
11796
  }
11793
- var Hash$0 = $TV($EXPECT($L150, 'Hash "#"'), function($skip, $loc, $0, $1) {
11797
+ var Hash$0 = $TV($EXPECT($L151, 'Hash "#"'), function($skip, $loc, $0, $1) {
11794
11798
  return { $loc, token: $1 };
11795
11799
  });
11796
11800
  function Hash(ctx, state) {
11797
11801
  return $EVENT(ctx, state, "Hash", Hash$0);
11798
11802
  }
11799
- var If$0 = $TV($TEXT($S($EXPECT($L151, 'If "if"'), NonIdContinue, $E($EXPECT($L15, 'If " "')))), function($skip, $loc, $0, $1) {
11803
+ var If$0 = $TV($TEXT($S($EXPECT($L152, 'If "if"'), NonIdContinue, $E($EXPECT($L15, 'If " "')))), function($skip, $loc, $0, $1) {
11800
11804
  return { $loc, token: $1 };
11801
11805
  });
11802
11806
  function If(ctx, state) {
11803
11807
  return $EVENT(ctx, state, "If", If$0);
11804
11808
  }
11805
- var Import$0 = $TS($S($EXPECT($L19, 'Import "import"'), $Y($EXPECT($R69, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11809
+ var Import$0 = $TS($S($EXPECT($L19, 'Import "import"'), $Y($EXPECT($R70, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
11806
11810
  return { $loc, token: $1 };
11807
11811
  });
11808
11812
  function Import(ctx, state) {
11809
11813
  return $EVENT(ctx, state, "Import", Import$0);
11810
11814
  }
11811
- var In$0 = $TS($S($EXPECT($L152, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11815
+ var In$0 = $TS($S($EXPECT($L153, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11812
11816
  return { $loc, token: $1 };
11813
11817
  });
11814
11818
  function In(ctx, state) {
11815
11819
  return $EVENT(ctx, state, "In", In$0);
11816
11820
  }
11817
- var Infer$0 = $TS($S($EXPECT($L153, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11821
+ var Infer$0 = $TS($S($EXPECT($L154, 'Infer "infer"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11818
11822
  return { $loc, token: $1 };
11819
11823
  });
11820
11824
  function Infer(ctx, state) {
11821
11825
  return $EVENT(ctx, state, "Infer", Infer$0);
11822
11826
  }
11823
- var LetOrConst$0 = $TS($S($C($EXPECT($L154, 'LetOrConst "let"'), $EXPECT($L155, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11827
+ var LetOrConst$0 = $TS($S($C($EXPECT($L155, 'LetOrConst "let"'), $EXPECT($L156, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11824
11828
  return { $loc, token: $1 };
11825
11829
  });
11826
11830
  function LetOrConst(ctx, state) {
11827
11831
  return $EVENT(ctx, state, "LetOrConst", LetOrConst$0);
11828
11832
  }
11829
- var Const$0 = $TS($S($EXPECT($L155, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11833
+ var Const$0 = $TS($S($EXPECT($L156, 'Const "const"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11830
11834
  return { $loc, token: $1 };
11831
11835
  });
11832
11836
  function Const(ctx, state) {
11833
11837
  return $EVENT(ctx, state, "Const", Const$0);
11834
11838
  }
11835
- var Is$0 = $TS($S($EXPECT($L156, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11839
+ var Is$0 = $TS($S($EXPECT($L157, 'Is "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11836
11840
  return { $loc, token: $1 };
11837
11841
  });
11838
11842
  function Is(ctx, state) {
@@ -11844,25 +11848,25 @@ ${input.slice(result.pos)}
11844
11848
  function LetOrConstOrVar(ctx, state) {
11845
11849
  return $EVENT_C(ctx, state, "LetOrConstOrVar", LetOrConstOrVar$$);
11846
11850
  }
11847
- var Loop$0 = $TS($S($EXPECT($L157, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11851
+ var Loop$0 = $TS($S($EXPECT($L158, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11848
11852
  return { $loc, token: "while(true)" };
11849
11853
  });
11850
11854
  function Loop(ctx, state) {
11851
11855
  return $EVENT(ctx, state, "Loop", Loop$0);
11852
11856
  }
11853
- var New$0 = $TS($S($EXPECT($L158, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11857
+ var New$0 = $TS($S($EXPECT($L159, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11854
11858
  return { $loc, token: $1 };
11855
11859
  });
11856
11860
  function New(ctx, state) {
11857
11861
  return $EVENT(ctx, state, "New", New$0);
11858
11862
  }
11859
- var Not$0 = $TS($S($EXPECT($L159, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L14, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11863
+ var Not$0 = $TS($S($EXPECT($L160, 'Not "not"'), NonIdContinue, $N($S($E(_), $EXPECT($L14, 'Not ":"')))), function($skip, $loc, $0, $1, $2, $3) {
11860
11864
  return { $loc, token: "!" };
11861
11865
  });
11862
11866
  function Not(ctx, state) {
11863
11867
  return $EVENT(ctx, state, "Not", Not$0);
11864
11868
  }
11865
- var Of$0 = $TS($S($EXPECT($L160, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11869
+ var Of$0 = $TS($S($EXPECT($L161, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11866
11870
  return { $loc, token: $1 };
11867
11871
  });
11868
11872
  function Of(ctx, state) {
@@ -11880,7 +11884,7 @@ ${input.slice(result.pos)}
11880
11884
  function OpenBrace(ctx, state) {
11881
11885
  return $EVENT(ctx, state, "OpenBrace", OpenBrace$0);
11882
11886
  }
11883
- var OpenBracket$0 = $TV($EXPECT($L161, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11887
+ var OpenBracket$0 = $TV($EXPECT($L162, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
11884
11888
  return { $loc, token: $1 };
11885
11889
  });
11886
11890
  function OpenBracket(ctx, state) {
@@ -11892,43 +11896,43 @@ ${input.slice(result.pos)}
11892
11896
  function OpenParen(ctx, state) {
11893
11897
  return $EVENT(ctx, state, "OpenParen", OpenParen$0);
11894
11898
  }
11895
- var Operator$0 = $TS($S($EXPECT($L162, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11899
+ var Operator$0 = $TS($S($EXPECT($L163, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11896
11900
  return { $loc, token: $1 };
11897
11901
  });
11898
11902
  function Operator(ctx, state) {
11899
11903
  return $EVENT(ctx, state, "Operator", Operator$0);
11900
11904
  }
11901
- var Own$0 = $TS($S($EXPECT($L163, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11905
+ var Own$0 = $TS($S($EXPECT($L164, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11902
11906
  return { $loc, token: $1 };
11903
11907
  });
11904
11908
  function Own(ctx, state) {
11905
11909
  return $EVENT(ctx, state, "Own", Own$0);
11906
11910
  }
11907
- var Public$0 = $TS($S($EXPECT($L164, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11911
+ var Public$0 = $TS($S($EXPECT($L165, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11908
11912
  return { $loc, token: $1 };
11909
11913
  });
11910
11914
  function Public(ctx, state) {
11911
11915
  return $EVENT(ctx, state, "Public", Public$0);
11912
11916
  }
11913
- var Private$0 = $TS($S($EXPECT($L165, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11917
+ var Private$0 = $TS($S($EXPECT($L166, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11914
11918
  return { $loc, token: $1 };
11915
11919
  });
11916
11920
  function Private(ctx, state) {
11917
11921
  return $EVENT(ctx, state, "Private", Private$0);
11918
11922
  }
11919
- var Protected$0 = $TS($S($EXPECT($L166, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11923
+ var Protected$0 = $TS($S($EXPECT($L167, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11920
11924
  return { $loc, token: $1 };
11921
11925
  });
11922
11926
  function Protected(ctx, state) {
11923
11927
  return $EVENT(ctx, state, "Protected", Protected$0);
11924
11928
  }
11925
- var Pipe$0 = $TV($C($EXPECT($L167, 'Pipe "||>"'), $EXPECT($L168, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11929
+ var Pipe$0 = $TV($C($EXPECT($L168, 'Pipe "||>"'), $EXPECT($L169, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
11926
11930
  return { $loc, token: "||>" };
11927
11931
  });
11928
- var Pipe$1 = $TV($C($EXPECT($L169, 'Pipe "|>="'), $EXPECT($L170, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11932
+ var Pipe$1 = $TV($C($EXPECT($L170, 'Pipe "|>="'), $EXPECT($L171, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
11929
11933
  return { $loc, token: "|>=" };
11930
11934
  });
11931
- var Pipe$2 = $TV($C($EXPECT($L171, 'Pipe "|>"'), $EXPECT($L172, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11935
+ var Pipe$2 = $TV($C($EXPECT($L172, 'Pipe "|>"'), $EXPECT($L173, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
11932
11936
  return { $loc, token: "|>" };
11933
11937
  });
11934
11938
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -11941,43 +11945,43 @@ ${input.slice(result.pos)}
11941
11945
  function QuestionMark(ctx, state) {
11942
11946
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
11943
11947
  }
11944
- var Readonly$0 = $TS($S($EXPECT($L173, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11948
+ var Readonly$0 = $TS($S($EXPECT($L174, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11945
11949
  return { $loc, token: $1, ts: true };
11946
11950
  });
11947
11951
  function Readonly(ctx, state) {
11948
11952
  return $EVENT(ctx, state, "Readonly", Readonly$0);
11949
11953
  }
11950
- var Return$0 = $TS($S($EXPECT($L174, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11954
+ var Return$0 = $TS($S($EXPECT($L175, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11951
11955
  return { $loc, token: $1 };
11952
11956
  });
11953
11957
  function Return(ctx, state) {
11954
11958
  return $EVENT(ctx, state, "Return", Return$0);
11955
11959
  }
11956
- var Satisfies$0 = $TS($S($EXPECT($L175, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11960
+ var Satisfies$0 = $TS($S($EXPECT($L176, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11957
11961
  return { $loc, token: $1 };
11958
11962
  });
11959
11963
  function Satisfies(ctx, state) {
11960
11964
  return $EVENT(ctx, state, "Satisfies", Satisfies$0);
11961
11965
  }
11962
- var Semicolon$0 = $TV($EXPECT($L104, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11966
+ var Semicolon$0 = $TV($EXPECT($L103, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
11963
11967
  return { $loc, token: $1 };
11964
11968
  });
11965
11969
  function Semicolon(ctx, state) {
11966
11970
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
11967
11971
  }
11968
- var SingleQuote$0 = $TV($EXPECT($L176, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11972
+ var SingleQuote$0 = $TV($EXPECT($L177, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
11969
11973
  return { $loc, token: $1 };
11970
11974
  });
11971
11975
  function SingleQuote(ctx, state) {
11972
11976
  return $EVENT(ctx, state, "SingleQuote", SingleQuote$0);
11973
11977
  }
11974
- var Star$0 = $TV($EXPECT($L58, 'Star "*"'), function($skip, $loc, $0, $1) {
11978
+ var Star$0 = $TV($EXPECT($L57, 'Star "*"'), function($skip, $loc, $0, $1) {
11975
11979
  return { $loc, token: $1 };
11976
11980
  });
11977
11981
  function Star(ctx, state) {
11978
11982
  return $EVENT(ctx, state, "Star", Star$0);
11979
11983
  }
11980
- var Static$0 = $TS($S($EXPECT($L177, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11984
+ var Static$0 = $TS($S($EXPECT($L178, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11981
11985
  return { $loc, token: $1 };
11982
11986
  });
11983
11987
  var Static$1 = $TS($S($EXPECT($L120, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L120, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
@@ -11987,127 +11991,127 @@ ${input.slice(result.pos)}
11987
11991
  function Static(ctx, state) {
11988
11992
  return $EVENT_C(ctx, state, "Static", Static$$);
11989
11993
  }
11990
- var SubstitutionStart$0 = $TV($EXPECT($L178, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11994
+ var SubstitutionStart$0 = $TV($EXPECT($L179, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
11991
11995
  return { $loc, token: $1 };
11992
11996
  });
11993
11997
  function SubstitutionStart(ctx, state) {
11994
11998
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
11995
11999
  }
11996
- var Super$0 = $TS($S($EXPECT($L179, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12000
+ var Super$0 = $TS($S($EXPECT($L180, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11997
12001
  return { $loc, token: $1 };
11998
12002
  });
11999
12003
  function Super(ctx, state) {
12000
12004
  return $EVENT(ctx, state, "Super", Super$0);
12001
12005
  }
12002
- var Switch$0 = $TS($S($EXPECT($L180, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12006
+ var Switch$0 = $TS($S($EXPECT($L181, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12003
12007
  return { $loc, token: $1 };
12004
12008
  });
12005
12009
  function Switch(ctx, state) {
12006
12010
  return $EVENT(ctx, state, "Switch", Switch$0);
12007
12011
  }
12008
- var Target$0 = $TS($S($EXPECT($L181, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12012
+ var Target$0 = $TS($S($EXPECT($L182, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12009
12013
  return { $loc, token: $1 };
12010
12014
  });
12011
12015
  function Target(ctx, state) {
12012
12016
  return $EVENT(ctx, state, "Target", Target$0);
12013
12017
  }
12014
- var Then$0 = $TS($S(__, $EXPECT($L182, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12018
+ var Then$0 = $TS($S(__, $EXPECT($L183, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12015
12019
  return { $loc, token: "" };
12016
12020
  });
12017
12021
  function Then(ctx, state) {
12018
12022
  return $EVENT(ctx, state, "Then", Then$0);
12019
12023
  }
12020
- var This$0 = $TS($S($EXPECT($L183, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12024
+ var This$0 = $TS($S($EXPECT($L184, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12021
12025
  return { $loc, token: $1 };
12022
12026
  });
12023
12027
  function This(ctx, state) {
12024
12028
  return $EVENT(ctx, state, "This", This$0);
12025
12029
  }
12026
- var Throw$0 = $TS($S($EXPECT($L184, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12030
+ var Throw$0 = $TS($S($EXPECT($L185, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12027
12031
  return { $loc, token: $1 };
12028
12032
  });
12029
12033
  function Throw(ctx, state) {
12030
12034
  return $EVENT(ctx, state, "Throw", Throw$0);
12031
12035
  }
12032
- var TripleDoubleQuote$0 = $TV($EXPECT($L185, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12036
+ var TripleDoubleQuote$0 = $TV($EXPECT($L186, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12033
12037
  return { $loc, token: "`" };
12034
12038
  });
12035
12039
  function TripleDoubleQuote(ctx, state) {
12036
12040
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
12037
12041
  }
12038
- var TripleSingleQuote$0 = $TV($EXPECT($L186, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12042
+ var TripleSingleQuote$0 = $TV($EXPECT($L187, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12039
12043
  return { $loc, token: "`" };
12040
12044
  });
12041
12045
  function TripleSingleQuote(ctx, state) {
12042
12046
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
12043
12047
  }
12044
- var TripleSlash$0 = $TV($EXPECT($L187, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12048
+ var TripleSlash$0 = $TV($EXPECT($L188, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12045
12049
  return { $loc, token: "/" };
12046
12050
  });
12047
12051
  function TripleSlash(ctx, state) {
12048
12052
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
12049
12053
  }
12050
- var TripleTick$0 = $TV($EXPECT($L188, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12054
+ var TripleTick$0 = $TV($EXPECT($L189, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12051
12055
  return { $loc, token: "`" };
12052
12056
  });
12053
12057
  function TripleTick(ctx, state) {
12054
12058
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
12055
12059
  }
12056
- var Try$0 = $TS($S($EXPECT($L189, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12060
+ var Try$0 = $TS($S($EXPECT($L190, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12057
12061
  return { $loc, token: $1 };
12058
12062
  });
12059
12063
  function Try(ctx, state) {
12060
12064
  return $EVENT(ctx, state, "Try", Try$0);
12061
12065
  }
12062
- var Typeof$0 = $TS($S($EXPECT($L190, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12066
+ var Typeof$0 = $TS($S($EXPECT($L191, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12063
12067
  return { $loc, token: $1 };
12064
12068
  });
12065
12069
  function Typeof(ctx, state) {
12066
12070
  return $EVENT(ctx, state, "Typeof", Typeof$0);
12067
12071
  }
12068
- var Unless$0 = $TS($S($EXPECT($L191, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12072
+ var Unless$0 = $TS($S($EXPECT($L192, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12069
12073
  return { $loc, token: $1, negated: true };
12070
12074
  });
12071
12075
  function Unless(ctx, state) {
12072
12076
  return $EVENT(ctx, state, "Unless", Unless$0);
12073
12077
  }
12074
- var Until$0 = $TS($S($EXPECT($L192, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12078
+ var Until$0 = $TS($S($EXPECT($L193, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12075
12079
  return { $loc, token: $1 };
12076
12080
  });
12077
12081
  function Until(ctx, state) {
12078
12082
  return $EVENT(ctx, state, "Until", Until$0);
12079
12083
  }
12080
- var Using$0 = $TS($S($EXPECT($L193, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12084
+ var Using$0 = $TS($S($EXPECT($L194, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12081
12085
  return { $loc, token: $1 };
12082
12086
  });
12083
12087
  function Using(ctx, state) {
12084
12088
  return $EVENT(ctx, state, "Using", Using$0);
12085
12089
  }
12086
- var Var$0 = $TS($S($EXPECT($L194, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12090
+ var Var$0 = $TS($S($EXPECT($L195, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12087
12091
  return { $loc, token: $1 };
12088
12092
  });
12089
12093
  function Var(ctx, state) {
12090
12094
  return $EVENT(ctx, state, "Var", Var$0);
12091
12095
  }
12092
- var Void$0 = $TS($S($EXPECT($L195, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12096
+ var Void$0 = $TS($S($EXPECT($L196, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12093
12097
  return { $loc, token: $1 };
12094
12098
  });
12095
12099
  function Void(ctx, state) {
12096
12100
  return $EVENT(ctx, state, "Void", Void$0);
12097
12101
  }
12098
- var When$0 = $TS($S($EXPECT($L196, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12102
+ var When$0 = $TS($S($EXPECT($L197, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12099
12103
  return { $loc, token: "case" };
12100
12104
  });
12101
12105
  function When(ctx, state) {
12102
12106
  return $EVENT(ctx, state, "When", When$0);
12103
12107
  }
12104
- var While$0 = $TS($S($EXPECT($L197, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12108
+ var While$0 = $TS($S($EXPECT($L198, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12105
12109
  return { $loc, token: $1 };
12106
12110
  });
12107
12111
  function While(ctx, state) {
12108
12112
  return $EVENT(ctx, state, "While", While$0);
12109
12113
  }
12110
- var Yield$0 = $TS($S($EXPECT($L198, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12114
+ var Yield$0 = $TS($S($EXPECT($L199, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12111
12115
  return { $loc, token: $1, type: "Yield" };
12112
12116
  });
12113
12117
  function Yield(ctx, state) {
@@ -12136,7 +12140,7 @@ ${input.slice(result.pos)}
12136
12140
  function JSXImplicitFragment(ctx, state) {
12137
12141
  return $EVENT(ctx, state, "JSXImplicitFragment", JSXImplicitFragment$0);
12138
12142
  }
12139
- var JSXTag$0 = $T($S($EXPECT($R70, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
12143
+ var JSXTag$0 = $T($S($EXPECT($R71, "JSXTag /(?=[<])/"), _JSXTag), function(value) {
12140
12144
  return value[1];
12141
12145
  });
12142
12146
  function JSXTag(ctx, state) {
@@ -12186,7 +12190,7 @@ ${input.slice(result.pos)}
12186
12190
  function JSXElement(ctx, state) {
12187
12191
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
12188
12192
  }
12189
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L16, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L199, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12193
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L16, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L200, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12190
12194
  return { type: "JSXElement", children: $0, tag: $2 };
12191
12195
  });
12192
12196
  function JSXSelfClosingElement(ctx, state) {
@@ -12205,7 +12209,7 @@ ${input.slice(result.pos)}
12205
12209
  function PopJSXStack(ctx, state) {
12206
12210
  return $EVENT(ctx, state, "PopJSXStack", PopJSXStack$0);
12207
12211
  }
12208
- var JSXOpeningElement$0 = $S($EXPECT($L16, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L37, 'JSXOpeningElement ">"'));
12212
+ var JSXOpeningElement$0 = $S($EXPECT($L16, 'JSXOpeningElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L36, 'JSXOpeningElement ">"'));
12209
12213
  function JSXOpeningElement(ctx, state) {
12210
12214
  return $EVENT(ctx, state, "JSXOpeningElement", JSXOpeningElement$0);
12211
12215
  }
@@ -12220,7 +12224,7 @@ ${input.slice(result.pos)}
12220
12224
  function JSXOptionalClosingElement(ctx, state) {
12221
12225
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
12222
12226
  }
12223
- var JSXClosingElement$0 = $S($EXPECT($L200, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L37, 'JSXClosingElement ">"'));
12227
+ var JSXClosingElement$0 = $S($EXPECT($L201, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L36, 'JSXClosingElement ">"'));
12224
12228
  function JSXClosingElement(ctx, state) {
12225
12229
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
12226
12230
  }
@@ -12241,7 +12245,7 @@ ${input.slice(result.pos)}
12241
12245
  ];
12242
12246
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
12243
12247
  });
12244
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L201, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12248
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L202, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12245
12249
  var children = $3;
12246
12250
  $0 = $0.slice(1);
12247
12251
  return {
@@ -12254,7 +12258,7 @@ ${input.slice(result.pos)}
12254
12258
  function JSXFragment(ctx, state) {
12255
12259
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
12256
12260
  }
12257
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L201, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12261
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L202, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12258
12262
  module.JSXTagStack.push("");
12259
12263
  return $1;
12260
12264
  });
@@ -12271,11 +12275,11 @@ ${input.slice(result.pos)}
12271
12275
  function JSXOptionalClosingFragment(ctx, state) {
12272
12276
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
12273
12277
  }
12274
- var JSXClosingFragment$0 = $EXPECT($L202, 'JSXClosingFragment "</>"');
12278
+ var JSXClosingFragment$0 = $EXPECT($L203, 'JSXClosingFragment "</>"');
12275
12279
  function JSXClosingFragment(ctx, state) {
12276
12280
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
12277
12281
  }
12278
- var JSXElementName$0 = $TV($Y($S($C($EXPECT($L150, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
12282
+ var JSXElementName$0 = $TV($Y($S($C($EXPECT($L151, 'JSXElementName "#"'), Dot), JSXShorthandString)), function($skip, $loc, $0, $1) {
12279
12283
  return module.config.defaultElement;
12280
12284
  });
12281
12285
  var JSXElementName$1 = $TEXT($S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName)))));
@@ -12283,7 +12287,7 @@ ${input.slice(result.pos)}
12283
12287
  function JSXElementName(ctx, state) {
12284
12288
  return $EVENT_C(ctx, state, "JSXElementName", JSXElementName$$);
12285
12289
  }
12286
- var JSXIdentifierName$0 = $R$0($EXPECT($R71, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
12290
+ var JSXIdentifierName$0 = $R$0($EXPECT($R72, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
12287
12291
  function JSXIdentifierName(ctx, state) {
12288
12292
  return $EVENT(ctx, state, "JSXIdentifierName", JSXIdentifierName$0);
12289
12293
  }
@@ -12453,7 +12457,7 @@ ${input.slice(result.pos)}
12453
12457
  }
12454
12458
  return $skip;
12455
12459
  });
12456
- var JSXAttribute$5 = $TS($S($EXPECT($L150, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12460
+ var JSXAttribute$5 = $TS($S($EXPECT($L151, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
12457
12461
  return [" ", "id=", $2];
12458
12462
  });
12459
12463
  var JSXAttribute$6 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -12472,11 +12476,11 @@ ${input.slice(result.pos)}
12472
12476
  function JSXAttribute(ctx, state) {
12473
12477
  return $EVENT_C(ctx, state, "JSXAttribute", JSXAttribute$$);
12474
12478
  }
12475
- var JSXAttributeSpace$0 = $R$0($EXPECT($R72, "JSXAttributeSpace /[\\s>]|\\/>/"));
12479
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R73, "JSXAttributeSpace /[\\s>]|\\/>/"));
12476
12480
  function JSXAttributeSpace(ctx, state) {
12477
12481
  return $EVENT(ctx, state, "JSXAttributeSpace", JSXAttributeSpace$0);
12478
12482
  }
12479
- var JSXShorthandString$0 = $TR($EXPECT($R73, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12483
+ var JSXShorthandString$0 = $TR($EXPECT($R74, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12480
12484
  return quoteString($0);
12481
12485
  });
12482
12486
  var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
@@ -12510,7 +12514,7 @@ ${input.slice(result.pos)}
12510
12514
  }
12511
12515
  return [open, value, close];
12512
12516
  });
12513
- var JSXAttributeValue$4 = $R$0($EXPECT($R74, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
12517
+ var JSXAttributeValue$4 = $R$0($EXPECT($R75, `JSXAttributeValue /"[^"]*"|'[^']*'/`));
12514
12518
  var JSXAttributeValue$$ = [JSXAttributeValue$0, JSXAttributeValue$1, JSXAttributeValue$2, JSXAttributeValue$3, JSXAttributeValue$4];
12515
12519
  function JSXAttributeValue(ctx, state) {
12516
12520
  return $EVENT_C(ctx, state, "JSXAttributeValue", JSXAttributeValue$$);
@@ -12523,7 +12527,7 @@ ${input.slice(result.pos)}
12523
12527
  function InlineJSXAttributeValue(ctx, state) {
12524
12528
  return $EVENT(ctx, state, "InlineJSXAttributeValue", InlineJSXAttributeValue$0);
12525
12529
  }
12526
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R75, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
12530
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R76, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, InlineJSXUnaryExpression), function($skip, $loc, $0, $1, $2, $3) {
12527
12531
  var op = $2;
12528
12532
  var rhs = $3;
12529
12533
  return [[], op, [], rhs];
@@ -12540,7 +12544,7 @@ ${input.slice(result.pos)}
12540
12544
  function InlineJSXUnaryExpression(ctx, state) {
12541
12545
  return $EVENT(ctx, state, "InlineJSXUnaryExpression", InlineJSXUnaryExpression$0);
12542
12546
  }
12543
- var InlineJSXUnaryOp$0 = $TR($EXPECT($R76, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12547
+ var InlineJSXUnaryOp$0 = $TR($EXPECT($R77, "InlineJSXUnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12544
12548
  return { $loc, token: $0 };
12545
12549
  });
12546
12550
  function InlineJSXUnaryOp(ctx, state) {
@@ -12630,14 +12634,19 @@ ${input.slice(result.pos)}
12630
12634
  function InlineJSXMemberExpression(ctx, state) {
12631
12635
  return $EVENT(ctx, state, "InlineJSXMemberExpression", InlineJSXMemberExpression$0);
12632
12636
  }
12633
- var InlineJSXMemberExpressionRest$0 = $TS($S($E(OptionalShorthand), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
12634
- if ($1) {
12635
- if ($1.type === "Optional" && $2.type === "SliceExpression") {
12636
- return [$1.children[0], $2];
12637
+ var InlineJSXMemberExpressionRest$0 = $TS($S($E(OptionalShorthand), $Q(InlineComment), MemberBracketContent), function($skip, $loc, $0, $1, $2, $3) {
12638
+ var dot = $1;
12639
+ var comments = $2;
12640
+ var content = $3;
12641
+ if (!dot && !comments.length)
12642
+ return content;
12643
+ if (dot) {
12644
+ if (dot.type === "Optional" && content.type === "SliceExpression") {
12645
+ return [...dot.children.slice(0, -1), ...comments, content];
12637
12646
  }
12638
- return $0;
12647
+ return [dot, ...comments, content];
12639
12648
  }
12640
- return $2;
12649
+ return [...comments, content];
12641
12650
  });
12642
12651
  var InlineJSXMemberExpressionRest$1 = PropertyAccess;
12643
12652
  var InlineJSXMemberExpressionRest$2 = PropertyGlob;
@@ -12690,7 +12699,7 @@ ${input.slice(result.pos)}
12690
12699
  }
12691
12700
  return $skip;
12692
12701
  });
12693
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L29, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12702
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L28, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
12694
12703
  return { children: [], jsxChildren: [] };
12695
12704
  });
12696
12705
  var JSXNestedChildren$$ = [JSXNestedChildren$0, JSXNestedChildren$1];
@@ -12745,19 +12754,19 @@ ${input.slice(result.pos)}
12745
12754
  function JSXChild(ctx, state) {
12746
12755
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
12747
12756
  }
12748
- var JSXComment$0 = $TS($S($EXPECT($L203, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L204, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12757
+ var JSXComment$0 = $TS($S($EXPECT($L204, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L205, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
12749
12758
  return ["{/*", $2, "*/}"];
12750
12759
  });
12751
12760
  function JSXComment(ctx, state) {
12752
12761
  return $EVENT(ctx, state, "JSXComment", JSXComment$0);
12753
12762
  }
12754
- var JSXCommentContent$0 = $TR($EXPECT($R77, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12763
+ var JSXCommentContent$0 = $TR($EXPECT($R78, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12755
12764
  return { $loc, token: $0.replace(/\*\//g, "* /") };
12756
12765
  });
12757
12766
  function JSXCommentContent(ctx, state) {
12758
12767
  return $EVENT(ctx, state, "JSXCommentContent", JSXCommentContent$0);
12759
12768
  }
12760
- var JSXText$0 = $TR($EXPECT($R78, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12769
+ var JSXText$0 = $TR($EXPECT($R79, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
12761
12770
  return {
12762
12771
  type: "JSXText",
12763
12772
  token: $0,
@@ -12856,7 +12865,7 @@ ${input.slice(result.pos)}
12856
12865
  function TypeDeclarationRest(ctx, state) {
12857
12866
  return $EVENT_C(ctx, state, "TypeDeclarationRest", TypeDeclarationRest$$);
12858
12867
  }
12859
- var TypeAliasDeclaration$0 = $TS($S(TypeKeyword, $E(_), IdentifierName, $E(TypeParameters), OptionalEquals, $C($S($E(_), Type), $S(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12868
+ var TypeAliasDeclaration$0 = $TS($S(TypeKeyword, $E(_), IdentifierName, $E(TypeParameters), OptionalEquals, $C(MaybeIndentedType, $S(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12860
12869
  var id = $3;
12861
12870
  return {
12862
12871
  type: "TypeDeclaration",
@@ -12865,8 +12874,18 @@ ${input.slice(result.pos)}
12865
12874
  ts: true
12866
12875
  };
12867
12876
  });
12877
+ var TypeAliasDeclaration$1 = $TS($S(InsertType, IdentifierName, $E(TypeParameters), __, TypeAssignment, $C(MaybeIndentedType, $S(__, Type))), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12878
+ var id = $2;
12879
+ return {
12880
+ type: "TypeDeclaration",
12881
+ id,
12882
+ children: $0,
12883
+ ts: true
12884
+ };
12885
+ });
12886
+ var TypeAliasDeclaration$$ = [TypeAliasDeclaration$0, TypeAliasDeclaration$1];
12868
12887
  function TypeAliasDeclaration(ctx, state) {
12869
- return $EVENT(ctx, state, "TypeAliasDeclaration", TypeAliasDeclaration$0);
12888
+ return $EVENT_C(ctx, state, "TypeAliasDeclaration", TypeAliasDeclaration$$);
12870
12889
  }
12871
12890
  var InterfaceDeclaration$0 = $TS($S(Interface, $E(_), IdentifierName, $E(TypeParameters), $E(InterfaceExtendsClause), InterfaceBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12872
12891
  var id = $3;
@@ -12922,37 +12941,37 @@ ${input.slice(result.pos)}
12922
12941
  function InterfaceExtendsTarget(ctx, state) {
12923
12942
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
12924
12943
  }
12925
- var TypeKeyword$0 = $TS($S($EXPECT($L205, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12944
+ var TypeKeyword$0 = $TS($S($EXPECT($L206, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12926
12945
  return { $loc, token: $1 };
12927
12946
  });
12928
12947
  function TypeKeyword(ctx, state) {
12929
12948
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
12930
12949
  }
12931
- var Enum$0 = $TS($S($EXPECT($L206, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12950
+ var Enum$0 = $TS($S($EXPECT($L207, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12932
12951
  return { $loc, token: $1 };
12933
12952
  });
12934
12953
  function Enum(ctx, state) {
12935
12954
  return $EVENT(ctx, state, "Enum", Enum$0);
12936
12955
  }
12937
- var Interface$0 = $TS($S($EXPECT($L207, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12956
+ var Interface$0 = $TS($S($EXPECT($L208, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12938
12957
  return { $loc, token: $1 };
12939
12958
  });
12940
12959
  function Interface(ctx, state) {
12941
12960
  return $EVENT(ctx, state, "Interface", Interface$0);
12942
12961
  }
12943
- var Global$0 = $TS($S($EXPECT($L208, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12962
+ var Global$0 = $TS($S($EXPECT($L209, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12944
12963
  return { $loc, token: $1 };
12945
12964
  });
12946
12965
  function Global(ctx, state) {
12947
12966
  return $EVENT(ctx, state, "Global", Global$0);
12948
12967
  }
12949
- var Module$0 = $TS($S($EXPECT($L209, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12968
+ var Module$0 = $TS($S($EXPECT($L210, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12950
12969
  return { $loc, token: $1 };
12951
12970
  });
12952
12971
  function Module(ctx, state) {
12953
12972
  return $EVENT(ctx, state, "Module", Module$0);
12954
12973
  }
12955
- var Namespace$0 = $TS($S($EXPECT($L210, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12974
+ var Namespace$0 = $TS($S($EXPECT($L211, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12956
12975
  return { $loc, token: $1 };
12957
12976
  });
12958
12977
  function Namespace(ctx, state) {
@@ -13168,7 +13187,7 @@ ${input.slice(result.pos)}
13168
13187
  function TypeProperty(ctx, state) {
13169
13188
  return $EVENT(ctx, state, "TypeProperty", TypeProperty$0);
13170
13189
  }
13171
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R79, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R80, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
13190
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R80, "TypeIndexSignature /[+-]?/")), Readonly, NotDedented)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R17, "TypeIndexSignature /[+-]/")), $Y($S($E(_), QuestionMark)))));
13172
13191
  function TypeIndexSignature(ctx, state) {
13173
13192
  return $EVENT(ctx, state, "TypeIndexSignature", TypeIndexSignature$0);
13174
13193
  }
@@ -13226,7 +13245,7 @@ ${input.slice(result.pos)}
13226
13245
  function ReturnTypeSuffix(ctx, state) {
13227
13246
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
13228
13247
  }
13229
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L211, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13248
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L212, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13230
13249
  var asserts = $1;
13231
13250
  var t = $2;
13232
13251
  if (asserts) {
@@ -13247,7 +13266,7 @@ ${input.slice(result.pos)}
13247
13266
  function ReturnType(ctx, state) {
13248
13267
  return $EVENT(ctx, state, "ReturnType", ReturnType$0);
13249
13268
  }
13250
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L156, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
13269
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L157, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
13251
13270
  var lhs = $1;
13252
13271
  var rhs = $2;
13253
13272
  if (!rhs)
@@ -13305,8 +13324,8 @@ ${input.slice(result.pos)}
13305
13324
  function TypeUnarySuffix(ctx, state) {
13306
13325
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
13307
13326
  }
13308
- var TypeUnaryOp$0 = $S($EXPECT($L212, 'TypeUnaryOp "keyof"'), NonIdContinue);
13309
- var TypeUnaryOp$1 = $S($EXPECT($L173, 'TypeUnaryOp "readonly"'), NonIdContinue);
13327
+ var TypeUnaryOp$0 = $S($EXPECT($L213, 'TypeUnaryOp "keyof"'), NonIdContinue);
13328
+ var TypeUnaryOp$1 = $S($EXPECT($L174, 'TypeUnaryOp "readonly"'), NonIdContinue);
13310
13329
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
13311
13330
  function TypeUnaryOp(ctx, state) {
13312
13331
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -13336,7 +13355,7 @@ ${input.slice(result.pos)}
13336
13355
  function TypeIndexedAccess(ctx, state) {
13337
13356
  return $EVENT_C(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$$);
13338
13357
  }
13339
- var UnknownAlias$0 = $TV($EXPECT($L213, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
13358
+ var UnknownAlias$0 = $TV($EXPECT($L214, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
13340
13359
  return { $loc, token: "unknown" };
13341
13360
  });
13342
13361
  function UnknownAlias(ctx, state) {
@@ -13353,7 +13372,7 @@ ${input.slice(result.pos)}
13353
13372
  return { ...$2, children: [$1, ...$2.children] };
13354
13373
  });
13355
13374
  var TypePrimary$3 = InterfaceBlock;
13356
- var TypePrimary$4 = $S($E(_), FunctionType);
13375
+ var TypePrimary$4 = $S($E(_), TypeFunction);
13357
13376
  var TypePrimary$5 = $S($E(_), InlineInterfaceLiteral);
13358
13377
  var TypePrimary$6 = $TS($S($E(_), ImportType), function($skip, $loc, $0, $1, $2) {
13359
13378
  var t = $2;
@@ -13542,10 +13561,10 @@ ${input.slice(result.pos)}
13542
13561
  }
13543
13562
  var TypeLiteral$0 = TypeTemplateLiteral;
13544
13563
  var TypeLiteral$1 = Literal;
13545
- var TypeLiteral$2 = $TS($S($EXPECT($L195, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13564
+ var TypeLiteral$2 = $TS($S($EXPECT($L196, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13546
13565
  return { type: "VoidType", $loc, token: $1 };
13547
13566
  });
13548
- var TypeLiteral$3 = $TV($EXPECT($L214, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13567
+ var TypeLiteral$3 = $TV($EXPECT($L215, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
13549
13568
  return { $loc, token: "[]" };
13550
13569
  });
13551
13570
  var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3];
@@ -13564,33 +13583,33 @@ ${input.slice(result.pos)}
13564
13583
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
13565
13584
  return value[1];
13566
13585
  });
13567
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L14, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L117, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L38, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L29, 'InlineInterfacePropertyDelimiter "}"'))));
13586
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L14, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L117, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L37, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L28, 'InlineInterfacePropertyDelimiter "}"'))));
13568
13587
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
13569
13588
  var InlineInterfacePropertyDelimiter$$ = [InlineInterfacePropertyDelimiter$0, InlineInterfacePropertyDelimiter$1, InlineInterfacePropertyDelimiter$2, InlineInterfacePropertyDelimiter$3];
13570
13589
  function InlineInterfacePropertyDelimiter(ctx, state) {
13571
13590
  return $EVENT_C(ctx, state, "InlineInterfacePropertyDelimiter", InlineInterfacePropertyDelimiter$$);
13572
13591
  }
13573
- var TypeBinaryOp$0 = $TV($EXPECT($L102, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13592
+ var TypeBinaryOp$0 = $TV($EXPECT($L101, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
13574
13593
  return { $loc, token: "|" };
13575
13594
  });
13576
- var TypeBinaryOp$1 = $TV($EXPECT($L101, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13595
+ var TypeBinaryOp$1 = $TV($EXPECT($L100, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
13577
13596
  return { $loc, token: "&" };
13578
13597
  });
13579
13598
  var TypeBinaryOp$$ = [TypeBinaryOp$0, TypeBinaryOp$1];
13580
13599
  function TypeBinaryOp(ctx, state) {
13581
13600
  return $EVENT_C(ctx, state, "TypeBinaryOp", TypeBinaryOp$$);
13582
13601
  }
13583
- var FunctionType$0 = $TS($S($E($S($E($S(Abstract, $E(_))), New, $E(_))), Parameters, __, TypeArrowFunction, $E(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13602
+ var TypeFunction$0 = $TS($S($E($S($E($S(Abstract, $E(_))), New, $E(_))), Parameters, __, TypeArrowFunction, $E(ReturnType)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13584
13603
  var type = $5;
13585
13604
  if (type) {
13586
13605
  return $0;
13587
13606
  }
13588
13607
  return [...$0, "void"];
13589
13608
  });
13590
- function FunctionType(ctx, state) {
13591
- return $EVENT(ctx, state, "FunctionType", FunctionType$0);
13609
+ function TypeFunction(ctx, state) {
13610
+ return $EVENT(ctx, state, "TypeFunction", TypeFunction$0);
13592
13611
  }
13593
- var TypeArrowFunction$0 = $TV($C($EXPECT($L12, 'TypeArrowFunction "=>"'), $EXPECT($L13, 'TypeArrowFunction "\u21D2"'), $EXPECT($L27, 'TypeArrowFunction "->"'), $EXPECT($L28, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13612
+ var TypeArrowFunction$0 = $TV($C($EXPECT($L12, 'TypeArrowFunction "=>"'), $EXPECT($L13, 'TypeArrowFunction "\u21D2"'), $EXPECT($L26, 'TypeArrowFunction "->"'), $EXPECT($L27, 'TypeArrowFunction "\u2192"')), function($skip, $loc, $0, $1) {
13594
13613
  return { $loc, token: "=>" };
13595
13614
  });
13596
13615
  function TypeArrowFunction(ctx, state) {
@@ -13616,8 +13635,8 @@ ${input.slice(result.pos)}
13616
13635
  function TypeArgumentDelimiter(ctx, state) {
13617
13636
  return $EVENT(ctx, state, "TypeArgumentDelimiter", TypeArgumentDelimiter$0);
13618
13637
  }
13619
- var TypeParameters$0 = $TS($S($E(_), OpenAngleBracket, $P(TypeParameter), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13620
- var parameters = $3;
13638
+ var TypeParameters$0 = $TS($S(OpenAngleBracket, $P(TypeParameter), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
13639
+ var parameters = $2;
13621
13640
  return {
13622
13641
  type: "TypeParameters",
13623
13642
  parameters,
@@ -13628,11 +13647,11 @@ ${input.slice(result.pos)}
13628
13647
  function TypeParameters(ctx, state) {
13629
13648
  return $EVENT(ctx, state, "TypeParameters", TypeParameters$0);
13630
13649
  }
13631
- var TypeParameter$0 = $S(__, $E($S($EXPECT($L155, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13650
+ var TypeParameter$0 = $S(__, $E($S($EXPECT($L156, 'TypeParameter "const"'), $E(_))), Identifier, $E(TypeConstraint), $E(TypeInitializer), TypeParameterDelimiter);
13632
13651
  function TypeParameter(ctx, state) {
13633
13652
  return $EVENT(ctx, state, "TypeParameter", TypeParameter$0);
13634
13653
  }
13635
- var TypeConstraint$0 = $S(__, $EXPECT($L143, 'TypeConstraint "extends"'), NonIdContinue, Type);
13654
+ var TypeConstraint$0 = $S(__, ExtendsToken, Type);
13636
13655
  function TypeConstraint(ctx, state) {
13637
13656
  return $EVENT(ctx, state, "TypeConstraint", TypeConstraint$0);
13638
13657
  }
@@ -13641,7 +13660,7 @@ ${input.slice(result.pos)}
13641
13660
  return $EVENT(ctx, state, "TypeInitializer", TypeInitializer$0);
13642
13661
  }
13643
13662
  var TypeParameterDelimiter$0 = $S($E(_), Comma);
13644
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L37, 'TypeParameterDelimiter ">"')));
13663
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L36, 'TypeParameterDelimiter ">"')));
13645
13664
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
13646
13665
  return value[1];
13647
13666
  });
@@ -13671,7 +13690,7 @@ ${input.slice(result.pos)}
13671
13690
  function CivetPrologue(ctx, state) {
13672
13691
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
13673
13692
  }
13674
- var CivetPrologueContent$0 = $TS($S($EXPECT($L215, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R85, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13693
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L216, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R85, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
13675
13694
  var options = $3;
13676
13695
  return {
13677
13696
  type: "CivetPrologue",
@@ -13855,6 +13874,12 @@ ${input.slice(result.pos)}
13855
13874
  function InsertVar(ctx, state) {
13856
13875
  return $EVENT(ctx, state, "InsertVar", InsertVar$0);
13857
13876
  }
13877
+ var InsertType$0 = $TV($EXPECT($L0, 'InsertType ""'), function($skip, $loc, $0, $1) {
13878
+ return { $loc, token: "type " };
13879
+ });
13880
+ function InsertType(ctx, state) {
13881
+ return $EVENT(ctx, state, "InsertType", InsertType$0);
13882
+ }
13858
13883
  var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L0, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
13859
13884
  if (module.config.coffeeBinaryExistential)
13860
13885
  return;
@@ -14074,9 +14099,9 @@ ${input.slice(result.pos)}
14074
14099
  hasProp(hasPropRef) {
14075
14100
  const typeSuffix = {
14076
14101
  ts: true,
14077
- children: [": <T>(object: T, prop: keyof T) => boolean"]
14102
+ children: [": <T>(object: T, prop: PropertyKey) => boolean"]
14078
14103
  };
14079
- module.prelude.push(["", [preludeVar, hasPropRef, typeSuffix, " = {}.constructor.hasOwn", asAny, ";\n"]]);
14104
+ module.prelude.push(["", [preludeVar, hasPropRef, typeSuffix, " = ({}.constructor", asAny, ").hasOwn;\n"]]);
14080
14105
  },
14081
14106
  is(isRef) {
14082
14107
  const typeSuffix = {
@@ -14766,6 +14791,7 @@ ${input.slice(result.pos)}
14766
14791
  exports.LexicalDeclaration = LexicalDeclaration;
14767
14792
  exports.ConstAssignment = ConstAssignment;
14768
14793
  exports.LetAssignment = LetAssignment;
14794
+ exports.TypeAssignment = TypeAssignment;
14769
14795
  exports.LexicalBinding = LexicalBinding;
14770
14796
  exports.Initializer = Initializer;
14771
14797
  exports.VariableStatement = VariableStatement;
@@ -15041,7 +15067,7 @@ ${input.slice(result.pos)}
15041
15067
  exports.InlineBasicInterfaceProperty = InlineBasicInterfaceProperty;
15042
15068
  exports.InlineInterfacePropertyDelimiter = InlineInterfacePropertyDelimiter;
15043
15069
  exports.TypeBinaryOp = TypeBinaryOp;
15044
- exports.FunctionType = FunctionType;
15070
+ exports.TypeFunction = TypeFunction;
15045
15071
  exports.TypeArrowFunction = TypeArrowFunction;
15046
15072
  exports.TypeArguments = TypeArguments;
15047
15073
  exports.TypeArgument = TypeArgument;
@@ -15083,6 +15109,7 @@ ${input.slice(result.pos)}
15083
15109
  exports.InsertDot = InsertDot;
15084
15110
  exports.InsertBreak = InsertBreak;
15085
15111
  exports.InsertVar = InsertVar;
15112
+ exports.InsertType = InsertType;
15086
15113
  exports.CoffeeBinaryExistentialEnabled = CoffeeBinaryExistentialEnabled;
15087
15114
  exports.CoffeeBooleansEnabled = CoffeeBooleansEnabled;
15088
15115
  exports.CoffeeClassesEnabled = CoffeeClassesEnabled;