@danielx/civet 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -534,6 +534,7 @@ var require_parser = __commonJS({
534
534
  NestedCaseClause,
535
535
  CaseClause,
536
536
  CaseExpressionList,
537
+ NoExpressions,
537
538
  ImpliedColon,
538
539
  TryStatement,
539
540
  CatchClause,
@@ -585,6 +586,9 @@ var require_parser = __commonJS({
585
586
  TripleDoubleStringCharacters,
586
587
  TripleSingleStringCharacters,
587
588
  CoffeeStringSubstitution,
589
+ CoffeeCompat,
590
+ CoffeeCompatDoubleQuotedString,
591
+ CoffeeCompatDoubleQuotedStringCharacters,
588
592
  RegularExpressionLiteral,
589
593
  RegularExpressionBody,
590
594
  RegExpCharacter,
@@ -651,6 +655,7 @@ var require_parser = __commonJS({
651
655
  SubstitutionStart,
652
656
  Switch,
653
657
  Target,
658
+ Throw,
654
659
  TripleDoubleQuote,
655
660
  TripleSingleQuote,
656
661
  TripleTick,
@@ -727,6 +732,7 @@ var require_parser = __commonJS({
727
732
  InsertSpace,
728
733
  InsertDot,
729
734
  InsertBreak,
735
+ Reset,
730
736
  Init,
731
737
  Indent,
732
738
  TrackIndent,
@@ -816,46 +822,46 @@ var require_parser = __commonJS({
816
822
  var $L77 = $L("break");
817
823
  var $L78 = $L("continue");
818
824
  var $L79 = $L("debugger");
819
- var $L80 = $L("throw");
820
- var $L81 = $L("import type");
821
- var $L82 = $L("default");
822
- var $L83 = $L(":=");
823
- var $L84 = $L("/*");
824
- var $L85 = $L("*/");
825
- var $L86 = $L("###");
826
- var $L87 = $L("as");
827
- var $L88 = $L("async");
828
- var $L89 = $L("await");
829
- var $L90 = $L("case");
830
- var $L91 = $L("catch");
831
- var $L92 = $L("class");
832
- var $L93 = $L("#{");
833
- var $L94 = $L(":");
834
- var $L95 = $L(".");
835
- var $L96 = $L('"');
836
- var $L97 = $L("else");
837
- var $L98 = $L("export");
838
- var $L99 = $L("for");
839
- var $L100 = $L("from");
840
- var $L101 = $L("function");
841
- var $L102 = $L("get");
842
- var $L103 = $L("set");
843
- var $L104 = $L("if");
844
- var $L105 = $L("let");
845
- var $L106 = $L("const");
846
- var $L107 = $L("loop");
847
- var $L108 = $L("new");
848
- var $L109 = $L("of");
849
- var $L110 = $L("{");
850
- var $L111 = $L("[");
851
- var $L112 = $L("(");
852
- var $L113 = $L("?");
853
- var $L114 = $L("return");
854
- var $L115 = $L("'");
855
- var $L116 = $L("static");
856
- var $L117 = $L("${");
857
- var $L118 = $L("switch");
858
- var $L119 = $L("target");
825
+ var $L80 = $L("import type");
826
+ var $L81 = $L("default");
827
+ var $L82 = $L(":=");
828
+ var $L83 = $L("/*");
829
+ var $L84 = $L("*/");
830
+ var $L85 = $L("###");
831
+ var $L86 = $L("as");
832
+ var $L87 = $L("async");
833
+ var $L88 = $L("await");
834
+ var $L89 = $L("case");
835
+ var $L90 = $L("catch");
836
+ var $L91 = $L("class");
837
+ var $L92 = $L("#{");
838
+ var $L93 = $L(":");
839
+ var $L94 = $L(".");
840
+ var $L95 = $L('"');
841
+ var $L96 = $L("else");
842
+ var $L97 = $L("export");
843
+ var $L98 = $L("for");
844
+ var $L99 = $L("from");
845
+ var $L100 = $L("function");
846
+ var $L101 = $L("get");
847
+ var $L102 = $L("set");
848
+ var $L103 = $L("if");
849
+ var $L104 = $L("let");
850
+ var $L105 = $L("const");
851
+ var $L106 = $L("loop");
852
+ var $L107 = $L("new");
853
+ var $L108 = $L("of");
854
+ var $L109 = $L("{");
855
+ var $L110 = $L("[");
856
+ var $L111 = $L("(");
857
+ var $L112 = $L("?");
858
+ var $L113 = $L("return");
859
+ var $L114 = $L("'");
860
+ var $L115 = $L("static");
861
+ var $L116 = $L("${");
862
+ var $L117 = $L("switch");
863
+ var $L118 = $L("target");
864
+ var $L119 = $L("throw");
859
865
  var $L120 = $L('"""');
860
866
  var $L121 = $L("'''");
861
867
  var $L122 = $L("```");
@@ -892,31 +898,32 @@ var require_parser = __commonJS({
892
898
  var $R10 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
893
899
  var $R11 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
894
900
  var $R12 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
895
- var $R13 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
896
- var $R14 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
897
- var $R15 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
898
- var $R16 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
899
- var $R17 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
900
- var $R18 = $R(new RegExp("(?:and|as|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|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
901
- var $R19 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
902
- var $R20 = $R(new RegExp(".", "suy"));
903
- var $R21 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
904
- var $R22 = $R(new RegExp("[^\\r\\n]", "suy"));
905
- var $R23 = $R(new RegExp("[ \\t]+", "suy"));
906
- var $R24 = $R(new RegExp("[\\s]+", "suy"));
907
- var $R25 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
908
- var $R26 = $R(new RegExp("\\s", "suy"));
909
- var $R27 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
910
- var $R28 = $R(new RegExp('"[^"]*"', "suy"));
911
- var $R29 = $R(new RegExp("'[^']*'", "suy"));
912
- var $R30 = $R(new RegExp("[^{}<>]+", "suy"));
913
- var $R31 = $R(new RegExp("[+-]?", "suy"));
914
- var $R32 = $R(new RegExp("[+-]", "suy"));
915
- var $R33 = $R(new RegExp("#![^\\r\\n]*", "suy"));
916
- var $R34 = $R(new RegExp("[\\t ]*", "suy"));
917
- var $R35 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
918
- var $R36 = $R(new RegExp("$", "suy"));
919
- var Program$0 = $S(Init, __, $Q(TopLevelStatement), __);
901
+ var $R13 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
902
+ var $R14 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
903
+ var $R15 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
904
+ var $R16 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
905
+ var $R17 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
906
+ var $R18 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
907
+ var $R19 = $R(new RegExp("(?:and|as|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|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
908
+ var $R20 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
909
+ var $R21 = $R(new RegExp(".", "suy"));
910
+ var $R22 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
911
+ var $R23 = $R(new RegExp("[^\\r\\n]", "suy"));
912
+ var $R24 = $R(new RegExp("[ \\t]+", "suy"));
913
+ var $R25 = $R(new RegExp("[\\s]+", "suy"));
914
+ var $R26 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
915
+ var $R27 = $R(new RegExp("\\s", "suy"));
916
+ var $R28 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
917
+ var $R29 = $R(new RegExp('"[^"]*"', "suy"));
918
+ var $R30 = $R(new RegExp("'[^']*'", "suy"));
919
+ var $R31 = $R(new RegExp("[^{}<>]+", "suy"));
920
+ var $R32 = $R(new RegExp("[+-]?", "suy"));
921
+ var $R33 = $R(new RegExp("[+-]", "suy"));
922
+ var $R34 = $R(new RegExp("#![^\\r\\n]*", "suy"));
923
+ var $R35 = $R(new RegExp("[\\t ]*", "suy"));
924
+ var $R36 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
925
+ var $R37 = $R(new RegExp("$", "suy"));
926
+ var Program$0 = $S(Reset, Init, __, $Q(TopLevelStatement), __);
920
927
  function Program(state) {
921
928
  if (state.verbose)
922
929
  console.log("ENTER:", "Program");
@@ -936,7 +943,11 @@ var require_parser = __commonJS({
936
943
  return TopLevelStatement$0(state);
937
944
  }
938
945
  }
939
- var Expression$0 = $S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression)));
946
+ var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
947
+ if ($2.length == 0)
948
+ return $1;
949
+ return $0;
950
+ });
940
951
  function Expression(state) {
941
952
  if (state.verbose)
942
953
  console.log("ENTER:", "Expression");
@@ -1017,7 +1028,9 @@ var require_parser = __commonJS({
1017
1028
  var spacing = $2;
1018
1029
  return module2.insertTrimmingSpace(spacing, "(");
1019
1030
  });
1020
- var ApplicationStart$1 = $S(IndentedApplicationAllowed, $Y(NestedObjectLiteral), InsertOpenParen);
1031
+ var ApplicationStart$1 = $T($S(IndentedApplicationAllowed, $Y(NestedObjectLiteral), InsertOpenParen), function(value) {
1032
+ return value[2];
1033
+ });
1021
1034
  function ApplicationStart(state) {
1022
1035
  if (state.tokenize) {
1023
1036
  return $TOKEN("ApplicationStart", state, ApplicationStart$0(state) || ApplicationStart$1(state));
@@ -1049,7 +1062,11 @@ var require_parser = __commonJS({
1049
1062
  return CommaExpression$0(state);
1050
1063
  }
1051
1064
  }
1052
- var BinaryOpExpression$0 = $S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression)));
1065
+ var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression))), function($skip, $loc, $0, $1, $2) {
1066
+ if ($2.length)
1067
+ return $0;
1068
+ return $1;
1069
+ });
1053
1070
  function BinaryOpExpression(state) {
1054
1071
  if (state.verbose)
1055
1072
  console.log("ENTER:", "BinaryOpExpression");
@@ -1089,7 +1106,11 @@ var require_parser = __commonJS({
1089
1106
  }
1090
1107
  }
1091
1108
  var UpdateExpression$0 = $S(UpdateExpressionSymbol, UnaryExpression);
1092
- var UpdateExpression$1 = $S(LeftHandSideExpression, $E(UpdateExpressionSymbol));
1109
+ var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
1110
+ if ($2)
1111
+ return $0;
1112
+ return $1;
1113
+ });
1093
1114
  function UpdateExpression(state) {
1094
1115
  if (state.tokenize) {
1095
1116
  return $TOKEN("UpdateExpression", state, UpdateExpression$0(state) || UpdateExpression$1(state));
@@ -1109,7 +1130,11 @@ var require_parser = __commonJS({
1109
1130
  return UpdateExpressionSymbol$0(state);
1110
1131
  }
1111
1132
  }
1112
- var AssignmentExpression$0 = $S($Q(TrailingComment), AssignmentExpressionRest);
1133
+ var AssignmentExpression$0 = $TS($S($Q(TrailingComment), AssignmentExpressionRest), function($skip, $loc, $0, $1, $2) {
1134
+ if ($1.length)
1135
+ return $0;
1136
+ return $2;
1137
+ });
1113
1138
  var AssignmentExpression$1 = $S(__, AssignmentExpressionRest);
1114
1139
  function AssignmentExpression(state) {
1115
1140
  if (state.tokenize) {
@@ -1121,7 +1146,9 @@ var require_parser = __commonJS({
1121
1146
  var AssignmentExpressionRest$0 = AwaitExpression;
1122
1147
  var AssignmentExpressionRest$1 = YieldExpression;
1123
1148
  var AssignmentExpressionRest$2 = $S($E($S(Async, __)), ArrowFunction);
1124
- var AssignmentExpressionRest$3 = $S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression);
1149
+ var AssignmentExpressionRest$3 = $T($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function(value) {
1150
+ return { "type": "AssignmentExpression", "children": value };
1151
+ });
1125
1152
  var AssignmentExpressionRest$4 = ConditionalExpression;
1126
1153
  function AssignmentExpressionRest(state) {
1127
1154
  if (state.tokenize) {
@@ -1186,7 +1213,11 @@ var require_parser = __commonJS({
1186
1213
  return FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state) || FatArrowBody$4(state);
1187
1214
  }
1188
1215
  }
1189
- var ConditionalExpression$0 = $S(ShortCircuitExpression, $E($S(__, QuestionMark, AssignmentExpression, __, Colon, AssignmentExpression)));
1216
+ var ConditionalExpression$0 = $TS($S(ShortCircuitExpression, $E($S(__, QuestionMark, AssignmentExpression, __, Colon, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1217
+ if ($2)
1218
+ return $0;
1219
+ return $1;
1220
+ });
1190
1221
  function ConditionalExpression(state) {
1191
1222
  if (state.verbose)
1192
1223
  console.log("ENTER:", "ConditionalExpression");
@@ -1375,7 +1406,11 @@ var require_parser = __commonJS({
1375
1406
  }
1376
1407
  var CallExpression$0 = $S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1377
1408
  var CallExpression$1 = $S($EXPECT($L11, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
1378
- var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest));
1409
+ var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
1410
+ if ($2.length)
1411
+ return $0;
1412
+ return $1;
1413
+ });
1379
1414
  function CallExpression(state) {
1380
1415
  if (state.tokenize) {
1381
1416
  return $TOKEN("CallExpression", state, CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state));
@@ -1425,7 +1460,11 @@ var require_parser = __commonJS({
1425
1460
  return AdditionalReservedWords$0(state);
1426
1461
  }
1427
1462
  }
1428
- var MemberExpression$0 = $S(PrimaryExpression, $Q(MemberExpressionRest));
1463
+ var MemberExpression$0 = $TS($S(PrimaryExpression, $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
1464
+ if ($2.length)
1465
+ return $0;
1466
+ return $1;
1467
+ });
1429
1468
  var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1430
1469
  var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1431
1470
  function MemberExpression(state) {
@@ -1661,7 +1700,9 @@ var require_parser = __commonJS({
1661
1700
  }
1662
1701
  }
1663
1702
  var FunctionExpression$0 = ThinArrowFunction;
1664
- var FunctionExpression$1 = $S($E($S(Async, __)), Function, $E($S(Star, __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix), BracedBlock);
1703
+ var FunctionExpression$1 = $T($S($E($S(Async, __)), Function, $E($S(Star, __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix), BracedBlock), function(value) {
1704
+ return { "type": "FunctionExpression", "children": value };
1705
+ });
1665
1706
  function FunctionExpression(state) {
1666
1707
  if (state.tokenize) {
1667
1708
  return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
@@ -1669,17 +1710,23 @@ var require_parser = __commonJS({
1669
1710
  return FunctionExpression$0(state) || FunctionExpression$1(state);
1670
1711
  }
1671
1712
  }
1672
- var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), __, Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1713
+ var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), $Q(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1673
1714
  var params = $1;
1674
1715
  var suffix = $2;
1675
1716
  var arrow = $4;
1676
1717
  var block = $5;
1677
- return [
1678
- { $loc: arrow.$loc, token: "function" },
1679
- params,
1680
- suffix,
1681
- block
1682
- ];
1718
+ if (module2.implicitReturns && suffix?.children[3] !== "void") {
1719
+ block = module2.addImplicitReturns(block);
1720
+ }
1721
+ return {
1722
+ type: "FunctionExpression",
1723
+ children: [
1724
+ { $loc: arrow.$loc, token: "function" },
1725
+ params,
1726
+ suffix,
1727
+ block
1728
+ ]
1729
+ };
1683
1730
  });
1684
1731
  function ThinArrowFunction(state) {
1685
1732
  if (state.verbose)
@@ -1702,8 +1749,14 @@ var require_parser = __commonJS({
1702
1749
  return Arrow$0(state);
1703
1750
  }
1704
1751
  }
1705
- var Block$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace);
1706
- var Block$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1752
+ var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1753
+ var exps = value[3];
1754
+ return { "type": "BlockStatement", "expressions": exps, "children": value };
1755
+ });
1756
+ var Block$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1757
+ var exps = value[2];
1758
+ return { "type": "BlockStatement", "expressions": exps, "children": value };
1759
+ });
1707
1760
  var Block$2 = Statement;
1708
1761
  var Block$3 = $S(__, Statement);
1709
1762
  function Block(state) {
@@ -1714,7 +1767,9 @@ var require_parser = __commonJS({
1714
1767
  }
1715
1768
  }
1716
1769
  var BracedOrEmptyBlock$0 = BracedBlock;
1717
- var BracedOrEmptyBlock$1 = $S(InsertOpenBrace, InsertCloseBrace);
1770
+ var BracedOrEmptyBlock$1 = $T($S(InsertOpenBrace, InsertCloseBrace), function(value) {
1771
+ return { "type": "BlockStatement", "expressions": [], "children": value };
1772
+ });
1718
1773
  function BracedOrEmptyBlock(state) {
1719
1774
  if (state.tokenize) {
1720
1775
  return $TOKEN("BracedOrEmptyBlock", state, BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state));
@@ -1722,9 +1777,22 @@ var require_parser = __commonJS({
1722
1777
  return BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state);
1723
1778
  }
1724
1779
  }
1725
- var BracedBlock$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace);
1726
- var BracedBlock$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1727
- var BracedBlock$2 = $S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace);
1780
+ var BracedBlock$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1781
+ var exps = value[3];
1782
+ return { "type": "BlockStatement", "expressions": exps, "children": value };
1783
+ });
1784
+ var BracedBlock$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1785
+ var exps = value[2];
1786
+ return { "type": "BlockStatement", "expressions": exps, "children": value };
1787
+ });
1788
+ var BracedBlock$2 = $TS($S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1789
+ var s = $4;
1790
+ return {
1791
+ type: "BlockStatement",
1792
+ expressions: [s],
1793
+ children: $0
1794
+ };
1795
+ });
1728
1796
  function BracedBlock(state) {
1729
1797
  if (state.tokenize) {
1730
1798
  return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state));
@@ -1819,7 +1887,9 @@ var require_parser = __commonJS({
1819
1887
  return Comma$0(state);
1820
1888
  }
1821
1889
  }
1822
- var Identifier$0 = $S($N(ReservedWord), IdentifierName);
1890
+ var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
1891
+ return value[1];
1892
+ });
1823
1893
  function Identifier(state) {
1824
1894
  if (state.verbose)
1825
1895
  console.log("ENTER:", "Identifier");
@@ -2207,8 +2277,7 @@ var require_parser = __commonJS({
2207
2277
  var l = $3;
2208
2278
  if (cond)
2209
2279
  return [cond, statement, { $loc: l.$loc, token: "}" }];
2210
- $0.pop();
2211
- return $0;
2280
+ return statement;
2212
2281
  });
2213
2282
  function StatementListItem(state) {
2214
2283
  if (state.verbose)
@@ -2263,7 +2332,9 @@ var require_parser = __commonJS({
2263
2332
  return Statement$0(state) || Statement$1(state) || Statement$2(state) || Statement$3(state) || Statement$4(state) || Statement$5(state) || Statement$6(state) || Statement$7(state) || Statement$8(state);
2264
2333
  }
2265
2334
  }
2266
- var EmptyStatement$0 = $S($Q(TrailingComment), $Y($EXPECT($L72, fail, 'EmptyStatement ";"')));
2335
+ var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L72, fail, 'EmptyStatement ";"'))), function(value) {
2336
+ return { "type": "EmptyStatement", "children": value[0] };
2337
+ });
2267
2338
  function EmptyStatement(state) {
2268
2339
  if (state.verbose)
2269
2340
  console.log("ENTER:", "EmptyStatement");
@@ -2283,7 +2354,9 @@ var require_parser = __commonJS({
2283
2354
  return BlockStatement$0(state);
2284
2355
  }
2285
2356
  }
2286
- var IfStatement$0 = $S(If, Condition, Block, $E($S(__, Else, Block)));
2357
+ var IfStatement$0 = $T($S(If, Condition, Block, $E($S(__, Else, Block))), function(value) {
2358
+ return { "type": "IfStatement", "children": value };
2359
+ });
2287
2360
  var IfStatement$1 = $TS($S(Unless, Condition, Block), function($skip, $loc, $0, $1, $2, $3) {
2288
2361
  var kind = $1;
2289
2362
  var condition = $2;
@@ -2297,7 +2370,10 @@ var require_parser = __commonJS({
2297
2370
  c.token = "))";
2298
2371
  });
2299
2372
  kind.token = "if";
2300
- return [kind, condition, block];
2373
+ return {
2374
+ type: "IfStatement",
2375
+ children: [kind, condition, block]
2376
+ };
2301
2377
  });
2302
2378
  function IfStatement(state) {
2303
2379
  if (state.tokenize) {
@@ -2309,8 +2385,12 @@ var require_parser = __commonJS({
2309
2385
  var IterationStatement$0 = LoopStatement;
2310
2386
  var IterationStatement$1 = DoWhileStatement;
2311
2387
  var IterationStatement$2 = WhileStatement;
2312
- var IterationStatement$3 = ForStatement;
2313
- var IterationStatement$4 = ForInOfStatement;
2388
+ var IterationStatement$3 = $T($S(ForStatement), function(value) {
2389
+ return { "type": "IterationStatement", "children": value };
2390
+ });
2391
+ var IterationStatement$4 = $T($S(ForInOfStatement), function(value) {
2392
+ return { "type": "IterationStatement", "children": value };
2393
+ });
2314
2394
  function IterationStatement(state) {
2315
2395
  if (state.tokenize) {
2316
2396
  return $TOKEN("IterationStatement", state, IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state));
@@ -2318,7 +2398,9 @@ var require_parser = __commonJS({
2318
2398
  return IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state);
2319
2399
  }
2320
2400
  }
2321
- var LoopStatement$0 = $S(Loop, Block);
2401
+ var LoopStatement$0 = $T($S(Loop, Block), function(value) {
2402
+ return { "type": "IterationStatement", "children": value };
2403
+ });
2322
2404
  function LoopStatement(state) {
2323
2405
  if (state.verbose)
2324
2406
  console.log("ENTER:", "LoopStatement");
@@ -2328,7 +2410,9 @@ var require_parser = __commonJS({
2328
2410
  return LoopStatement$0(state);
2329
2411
  }
2330
2412
  }
2331
- var DoWhileStatement$0 = $S($EXPECT($L73, fail, 'DoWhileStatement "do"'), NonIdContinue, Block, __, WhileClause);
2413
+ var DoWhileStatement$0 = $T($S($EXPECT($L73, fail, 'DoWhileStatement "do"'), NonIdContinue, Block, __, WhileClause), function(value) {
2414
+ return { "type": "IterationStatement", "children": value };
2415
+ });
2332
2416
  function DoWhileStatement(state) {
2333
2417
  if (state.verbose)
2334
2418
  console.log("ENTER:", "DoWhileStatement");
@@ -2338,7 +2422,9 @@ var require_parser = __commonJS({
2338
2422
  return DoWhileStatement$0(state);
2339
2423
  }
2340
2424
  }
2341
- var WhileStatement$0 = $S(WhileClause, Block);
2425
+ var WhileStatement$0 = $T($S(WhileClause, Block), function(value) {
2426
+ return { "type": "IterationStatement", "children": value };
2427
+ });
2342
2428
  function WhileStatement(state) {
2343
2429
  if (state.verbose)
2344
2430
  console.log("ENTER:", "WhileStatement");
@@ -2407,7 +2493,9 @@ var require_parser = __commonJS({
2407
2493
  return ForBinding$0(state) || ForBinding$1(state);
2408
2494
  }
2409
2495
  }
2410
- var SwitchStatement$0 = $S(Switch, Condition, CaseBlock);
2496
+ var SwitchStatement$0 = $T($S(Switch, Condition, CaseBlock), function(value) {
2497
+ return { "type": "SwitchStatement", "children": value };
2498
+ });
2411
2499
  function SwitchStatement(state) {
2412
2500
  if (state.verbose)
2413
2501
  console.log("ENTER:", "SwitchStatement");
@@ -2417,8 +2505,24 @@ var require_parser = __commonJS({
2417
2505
  return SwitchStatement$0(state);
2418
2506
  }
2419
2507
  }
2420
- var CaseBlock$0 = $S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace);
2421
- var CaseBlock$1 = $S($Y(EOS), InsertOpenBrace, NestedCaseClauses, InsertNewline, InsertCloseBrace);
2508
+ var CaseBlock$0 = $TS($S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2509
+ var clauses = $4;
2510
+ $0.splice(2, 1);
2511
+ return {
2512
+ type: "CaseBlock",
2513
+ clauses,
2514
+ children: $0
2515
+ };
2516
+ });
2517
+ var CaseBlock$1 = $TS($S($Y(EOS), InsertOpenBrace, NestedCaseClauses, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2518
+ var clauses = $3;
2519
+ $0.shift();
2520
+ return {
2521
+ type: "CaseBlock",
2522
+ clauses,
2523
+ children: $0
2524
+ };
2525
+ });
2422
2526
  function CaseBlock(state) {
2423
2527
  if (state.tokenize) {
2424
2528
  return $TOKEN("CaseBlock", state, CaseBlock$0(state) || CaseBlock$1(state));
@@ -2441,7 +2545,10 @@ var require_parser = __commonJS({
2441
2545
  return NestedCaseClauses$0(state);
2442
2546
  }
2443
2547
  }
2444
- var NestedCaseClause$0 = $S(Nested, CaseClause);
2548
+ var NestedCaseClause$0 = $TS($S(Nested, CaseClause), function($skip, $loc, $0, $1, $2) {
2549
+ $2.children.unshift($1);
2550
+ return $2;
2551
+ });
2445
2552
  function NestedCaseClause(state) {
2446
2553
  if (state.verbose)
2447
2554
  console.log("ENTER:", "NestedCaseClause");
@@ -2451,14 +2558,32 @@ var require_parser = __commonJS({
2451
2558
  return NestedCaseClause$0(state);
2452
2559
  }
2453
2560
  }
2454
- var CaseClause$0 = $S(Case, CaseExpressionList, NestedBlockExpressions);
2455
- var CaseClause$1 = $S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak);
2456
- var CaseClause$2 = $S(Default, ImpliedColon, NestedBlockExpressions);
2561
+ var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockExpressions, NoExpressions)), function(value) {
2562
+ var exps = value[2];
2563
+ return { "type": "CaseClause", "expressions": exps, "children": value };
2564
+ });
2565
+ var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak), function(value) {
2566
+ var exps = value[2];
2567
+ return { "type": "WhenClause", "expressions": exps, "children": value };
2568
+ });
2569
+ var CaseClause$2 = $T($S(Default, ImpliedColon, $C(NestedBlockExpressions, NoExpressions)), function(value) {
2570
+ var exps = value[2];
2571
+ return { "type": "DefaultClause", "expressions": exps, "children": value };
2572
+ });
2573
+ var CaseClause$3 = $TS($S(Else, ImpliedColon, NestedBlockExpressions), function($skip, $loc, $0, $1, $2, $3) {
2574
+ var exps = $3;
2575
+ $1.token = "default";
2576
+ return {
2577
+ type: "DefaultClause",
2578
+ expressions: exps,
2579
+ children: $0
2580
+ };
2581
+ });
2457
2582
  function CaseClause(state) {
2458
2583
  if (state.tokenize) {
2459
- return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state));
2584
+ return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state));
2460
2585
  } else {
2461
- return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state);
2586
+ return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state);
2462
2587
  }
2463
2588
  }
2464
2589
  var CaseExpressionList$0 = $TS($S($S($Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon), $Q($S(__, Comma, ExpressionWithIndentedApplicationSuppressed, ImpliedColon))), function($skip, $loc, $0, $1, $2) {
@@ -2480,6 +2605,18 @@ var require_parser = __commonJS({
2480
2605
  return CaseExpressionList$0(state);
2481
2606
  }
2482
2607
  }
2608
+ var NoExpressions$0 = $T($EXPECT($L1, fail, 'NoExpressions ""'), function(value) {
2609
+ return [];
2610
+ });
2611
+ function NoExpressions(state) {
2612
+ if (state.verbose)
2613
+ console.log("ENTER:", "NoExpressions");
2614
+ if (state.tokenize) {
2615
+ return $TOKEN("NoExpressions", state, NoExpressions$0(state));
2616
+ } else {
2617
+ return NoExpressions$0(state);
2618
+ }
2619
+ }
2483
2620
  var ImpliedColon$0 = $S(__, Colon);
2484
2621
  var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
2485
2622
  return { $loc, token: ":" };
@@ -2492,12 +2629,20 @@ var require_parser = __commonJS({
2492
2629
  }
2493
2630
  }
2494
2631
  var TryStatement$0 = $TS($S(Try, BracedBlock, $E(CatchClause), $E(Finally)), function($skip, $loc, $0, $1, $2, $3, $4) {
2632
+ var t = $1;
2633
+ var b = $2;
2495
2634
  var c = $3;
2496
2635
  var f = $4;
2497
2636
  if (!c && !f) {
2498
- return [$1, $2, " catch {}"];
2637
+ return {
2638
+ type: "TryStatement",
2639
+ children: [t, b, " catch(e) {}"]
2640
+ };
2499
2641
  }
2500
- return [$1, $2, c, f];
2642
+ return {
2643
+ type: "TryStatement",
2644
+ children: [t, b, c, f]
2645
+ };
2501
2646
  });
2502
2647
  function TryStatement(state) {
2503
2648
  if (state.verbose)
@@ -2519,7 +2664,7 @@ var require_parser = __commonJS({
2519
2664
  }
2520
2665
  }
2521
2666
  var CatchBind$0 = $S(__, OpenParen, __, CatchParameter, __, CloseParen);
2522
- var CatchBind$1 = $S(__, InsertOpenParen, CatchParameter, InsertCloseParen);
2667
+ var CatchBind$1 = $S($N(EOS), $Q(TrailingComment), InsertOpenParen, CatchParameter, InsertCloseParen);
2523
2668
  function CatchBind(state) {
2524
2669
  if (state.tokenize) {
2525
2670
  return $TOKEN("CatchBind", state, CatchBind$0(state) || CatchBind$1(state));
@@ -2593,11 +2738,21 @@ var require_parser = __commonJS({
2593
2738
  return ExpressionStatement$0(state);
2594
2739
  }
2595
2740
  }
2596
- var KeywordStatement$0 = $S($EXPECT($L77, fail, 'KeywordStatement "break"'), NonIdContinue);
2597
- var KeywordStatement$1 = $S($EXPECT($L78, fail, 'KeywordStatement "continue"'), NonIdContinue);
2598
- var KeywordStatement$2 = $S($EXPECT($L79, fail, 'KeywordStatement "debugger"'), NonIdContinue);
2599
- var KeywordStatement$3 = $S(Return, $E(MaybeNestedExpression));
2600
- var KeywordStatement$4 = $S($EXPECT($L80, fail, 'KeywordStatement "throw"'), NonIdContinue, Expression);
2741
+ var KeywordStatement$0 = $T($S($EXPECT($L77, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
2742
+ return { "type": "BreakStatement", "children": value };
2743
+ });
2744
+ var KeywordStatement$1 = $T($S($EXPECT($L78, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
2745
+ return { "type": "ContinueStatement", "children": value };
2746
+ });
2747
+ var KeywordStatement$2 = $T($S($EXPECT($L79, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
2748
+ return { "type": "DebuggerStatement", "children": value };
2749
+ });
2750
+ var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
2751
+ return { "type": "ReturnStatement", "children": value };
2752
+ });
2753
+ var KeywordStatement$4 = $T($S(Throw, Expression), function(value) {
2754
+ return { "type": "ThrowStatement", "children": value };
2755
+ });
2601
2756
  function KeywordStatement(state) {
2602
2757
  if (state.tokenize) {
2603
2758
  return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state));
@@ -2614,7 +2769,7 @@ var require_parser = __commonJS({
2614
2769
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
2615
2770
  }
2616
2771
  }
2617
- var ImportDeclaration$0 = $T($S($EXPECT($L81, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
2772
+ var ImportDeclaration$0 = $T($S($EXPECT($L80, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
2618
2773
  return { "ts": true, "children": value };
2619
2774
  });
2620
2775
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -2752,7 +2907,7 @@ var require_parser = __commonJS({
2752
2907
  return ImportedBinding$0(state);
2753
2908
  }
2754
2909
  }
2755
- var ExportDeclaration$0 = $S(Export, __, $EXPECT($L82, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
2910
+ var ExportDeclaration$0 = $S(Export, __, $EXPECT($L81, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
2756
2911
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
2757
2912
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
2758
2913
  function ExportDeclaration(state) {
@@ -2812,7 +2967,9 @@ var require_parser = __commonJS({
2812
2967
  return HoistableDeclaration$0(state);
2813
2968
  }
2814
2969
  }
2815
- var LexicalDeclaration$0 = $S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding)));
2970
+ var LexicalDeclaration$0 = $T($S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding))), function(value) {
2971
+ return { "type": "VariableDeclaration", "children": value };
2972
+ });
2816
2973
  var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2817
2974
  var c = $1;
2818
2975
  var ca = $5;
@@ -2820,7 +2977,10 @@ var require_parser = __commonJS({
2820
2977
  pos: ca.$loc.pos - 1,
2821
2978
  length: ca.$loc.length + 1
2822
2979
  };
2823
- return $0;
2980
+ return {
2981
+ type: "VariableDeclaration",
2982
+ children: $0
2983
+ };
2824
2984
  });
2825
2985
  function LexicalDeclaration(state) {
2826
2986
  if (state.tokenize) {
@@ -2829,7 +2989,7 @@ var require_parser = __commonJS({
2829
2989
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2830
2990
  }
2831
2991
  }
2832
- var ConstAssignment$0 = $TV($EXPECT($L83, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
2992
+ var ConstAssignment$0 = $TV($EXPECT($L82, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
2833
2993
  return { $loc, token: "=" };
2834
2994
  });
2835
2995
  function ConstAssignment(state) {
@@ -2860,7 +3020,9 @@ var require_parser = __commonJS({
2860
3020
  return Initializer$0(state);
2861
3021
  }
2862
3022
  }
2863
- var VariableStatement$0 = $S(Var, __, VariableDeclarationList);
3023
+ var VariableStatement$0 = $T($S(Var, __, VariableDeclarationList), function(value) {
3024
+ return { "type": "VariableDeclaration", "children": value };
3025
+ });
2864
3026
  function VariableStatement(state) {
2865
3027
  if (state.verbose)
2866
3028
  console.log("ENTER:", "VariableStatement");
@@ -2972,12 +3134,13 @@ var require_parser = __commonJS({
2972
3134
  var e = $3;
2973
3135
  return [s, module2.dedentBlockString(str), e];
2974
3136
  });
2975
- var StringLiteral$2 = BasicStringLiteral;
3137
+ var StringLiteral$2 = CoffeeCompatDoubleQuotedString;
3138
+ var StringLiteral$3 = BasicStringLiteral;
2976
3139
  function StringLiteral(state) {
2977
3140
  if (state.tokenize) {
2978
- return $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state));
3141
+ return $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state));
2979
3142
  } else {
2980
- return StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state);
3143
+ return StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state);
2981
3144
  }
2982
3145
  }
2983
3146
  var BasicStringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
@@ -3059,6 +3222,61 @@ var require_parser = __commonJS({
3059
3222
  return CoffeeStringSubstitution$0(state);
3060
3223
  }
3061
3224
  }
3225
+ var CoffeeCompat$0 = $TV($EXPECT($L1, fail, 'CoffeeCompat ""'), function($skip, $loc, $0, $1) {
3226
+ if (module2.coffeeCompat)
3227
+ return;
3228
+ return $skip;
3229
+ });
3230
+ function CoffeeCompat(state) {
3231
+ if (state.verbose)
3232
+ console.log("ENTER:", "CoffeeCompat");
3233
+ if (state.tokenize) {
3234
+ return $TOKEN("CoffeeCompat", state, CoffeeCompat$0(state));
3235
+ } else {
3236
+ return CoffeeCompat$0(state);
3237
+ }
3238
+ }
3239
+ var CoffeeCompatDoubleQuotedString$0 = $TS($S(CoffeeCompat, DoubleQuote, $Q($C(CoffeeCompatDoubleQuotedStringCharacters, CoffeeStringSubstitution)), DoubleQuote), function($skip, $loc, $0, $1, $2, $3, $4) {
3240
+ var s = $2;
3241
+ var parts = $3;
3242
+ var e = $4;
3243
+ const noInterpolations = parts.length === 1 && parts[0].token != null;
3244
+ if (noInterpolations) {
3245
+ return {
3246
+ token: `"${module2.modifyString(parts[0].token)}"`,
3247
+ $loc
3248
+ };
3249
+ }
3250
+ parts.forEach((part) => {
3251
+ if (part.token) {
3252
+ const str = part.token.replace(/(`|\$\{)/g, "\\$1");
3253
+ part.token = module2.modifyString(str);
3254
+ }
3255
+ });
3256
+ s.token = e.token = "`";
3257
+ return [s, parts, e];
3258
+ });
3259
+ function CoffeeCompatDoubleQuotedString(state) {
3260
+ if (state.verbose)
3261
+ console.log("ENTER:", "CoffeeCompatDoubleQuotedString");
3262
+ if (state.tokenize) {
3263
+ return $TOKEN("CoffeeCompatDoubleQuotedString", state, CoffeeCompatDoubleQuotedString$0(state));
3264
+ } else {
3265
+ return CoffeeCompatDoubleQuotedString$0(state);
3266
+ }
3267
+ }
3268
+ var CoffeeCompatDoubleQuotedStringCharacters$0 = $TR($EXPECT($R13, fail, 'CoffeeCompatDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3269
+ return { $loc, token: $0 };
3270
+ });
3271
+ function CoffeeCompatDoubleQuotedStringCharacters(state) {
3272
+ if (state.verbose)
3273
+ console.log("ENTER:", "CoffeeCompatDoubleQuotedStringCharacters");
3274
+ if (state.tokenize) {
3275
+ return $TOKEN("CoffeeCompatDoubleQuotedStringCharacters", state, CoffeeCompatDoubleQuotedStringCharacters$0(state));
3276
+ } else {
3277
+ return CoffeeCompatDoubleQuotedStringCharacters$0(state);
3278
+ }
3279
+ }
3062
3280
  var RegularExpressionLiteral$0 = $TV($TEXT($S($EXPECT($L44, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L44, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
3063
3281
  return { $loc, token: $1 };
3064
3282
  });
@@ -3071,7 +3289,7 @@ var require_parser = __commonJS({
3071
3289
  return RegularExpressionLiteral$0(state);
3072
3290
  }
3073
3291
  }
3074
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R13, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
3292
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R14, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
3075
3293
  function RegularExpressionBody(state) {
3076
3294
  if (state.verbose)
3077
3295
  console.log("ENTER:", "RegularExpressionBody");
@@ -3081,7 +3299,7 @@ var require_parser = __commonJS({
3081
3299
  return RegularExpressionBody$0(state);
3082
3300
  }
3083
3301
  }
3084
- var RegExpCharacter$0 = $R$0($EXPECT($R14, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
3302
+ var RegExpCharacter$0 = $R$0($EXPECT($R15, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
3085
3303
  function RegExpCharacter(state) {
3086
3304
  if (state.verbose)
3087
3305
  console.log("ENTER:", "RegExpCharacter");
@@ -3091,7 +3309,7 @@ var require_parser = __commonJS({
3091
3309
  return RegExpCharacter$0(state);
3092
3310
  }
3093
3311
  }
3094
- var RegularExpressionFlags$0 = $R$0($EXPECT($R15, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
3312
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R16, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
3095
3313
  function RegularExpressionFlags(state) {
3096
3314
  if (state.verbose)
3097
3315
  console.log("ENTER:", "RegularExpressionFlags");
@@ -3122,7 +3340,7 @@ var require_parser = __commonJS({
3122
3340
  return TemplateSubstitution$0(state);
3123
3341
  }
3124
3342
  }
3125
- var TemplateCharacters$0 = $TR($EXPECT($R16, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3343
+ var TemplateCharacters$0 = $TR($EXPECT($R17, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3126
3344
  return { $loc, token: $0 };
3127
3345
  });
3128
3346
  function TemplateCharacters(state) {
@@ -3134,7 +3352,7 @@ var require_parser = __commonJS({
3134
3352
  return TemplateCharacters$0(state);
3135
3353
  }
3136
3354
  }
3137
- var TemplateBlockCharacters$0 = $TR($EXPECT($R17, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3355
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R18, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3138
3356
  return { $loc, token: $0 };
3139
3357
  });
3140
3358
  function TemplateBlockCharacters(state) {
@@ -3146,7 +3364,7 @@ var require_parser = __commonJS({
3146
3364
  return TemplateBlockCharacters$0(state);
3147
3365
  }
3148
3366
  }
3149
- var ReservedWord$0 = $R$0($EXPECT($R18, fail, "ReservedWord /(?:and|as|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|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
3367
+ var ReservedWord$0 = $R$0($EXPECT($R19, fail, "ReservedWord /(?:and|as|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|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
3150
3368
  function ReservedWord(state) {
3151
3369
  if (state.verbose)
3152
3370
  console.log("ENTER:", "ReservedWord");
@@ -3165,10 +3383,10 @@ var require_parser = __commonJS({
3165
3383
  return Comment$0(state) || Comment$1(state);
3166
3384
  }
3167
3385
  }
3168
- var SingleLineComment$0 = $TR($EXPECT($R19, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3386
+ var SingleLineComment$0 = $TR($EXPECT($R20, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3169
3387
  return { $loc, token: $0 };
3170
3388
  });
3171
- var SingleLineComment$1 = CoffeeSingleLineComment;
3389
+ var SingleLineComment$1 = $S(CoffeeCompat, CoffeeSingleLineComment);
3172
3390
  function SingleLineComment(state) {
3173
3391
  if (state.tokenize) {
3174
3392
  return $TOKEN("SingleLineComment", state, SingleLineComment$0(state) || SingleLineComment$1(state));
@@ -3185,7 +3403,7 @@ var require_parser = __commonJS({
3185
3403
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3186
3404
  }
3187
3405
  }
3188
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L85, fail, 'JSMultiLineComment "*/"')), $EXPECT($R20, fail, "JSMultiLineComment /./"))), $EXPECT($L85, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3406
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L84, fail, 'JSMultiLineComment "*/"')), $EXPECT($R21, fail, "JSMultiLineComment /./"))), $EXPECT($L84, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3189
3407
  return { $loc, token: $1 };
3190
3408
  });
3191
3409
  function JSMultiLineComment(state) {
@@ -3197,9 +3415,7 @@ var require_parser = __commonJS({
3197
3415
  return JSMultiLineComment$0(state);
3198
3416
  }
3199
3417
  }
3200
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R21, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3201
- if (!module2.coffeeCompat)
3202
- return $skip;
3418
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R22, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3203
3419
  return { $loc, token: `//${$1}` };
3204
3420
  });
3205
3421
  function CoffeeSingleLineComment(state) {
@@ -3211,7 +3427,7 @@ var require_parser = __commonJS({
3211
3427
  return CoffeeSingleLineComment$0(state);
3212
3428
  }
3213
3429
  }
3214
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L85, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R20, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L86, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3430
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L84, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R21, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L85, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3215
3431
  return { $loc, token: `/*${$2}*/` };
3216
3432
  });
3217
3433
  function CoffeeMultiLineComment(state) {
@@ -3223,7 +3439,7 @@ var require_parser = __commonJS({
3223
3439
  return CoffeeMultiLineComment$0(state);
3224
3440
  }
3225
3441
  }
3226
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L85, fail, 'InlineComment "*/"')), $EXPECT($R22, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L85, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3442
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L84, fail, 'InlineComment "*/"')), $EXPECT($R23, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L84, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3227
3443
  return { $loc, token: $1 };
3228
3444
  });
3229
3445
  function InlineComment(state) {
@@ -3265,7 +3481,7 @@ var require_parser = __commonJS({
3265
3481
  return _$0(state);
3266
3482
  }
3267
3483
  }
3268
- var NonNewlineWhitespace$0 = $TR($EXPECT($R23, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3484
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R24, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3269
3485
  return { $loc, token: $0 };
3270
3486
  });
3271
3487
  function NonNewlineWhitespace(state) {
@@ -3287,7 +3503,7 @@ var require_parser = __commonJS({
3287
3503
  return __$0(state);
3288
3504
  }
3289
3505
  }
3290
- var Whitespace$0 = $TR($EXPECT($R24, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3506
+ var Whitespace$0 = $TR($EXPECT($R25, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3291
3507
  return { $loc, token: $0 };
3292
3508
  });
3293
3509
  function Whitespace(state) {
@@ -3310,7 +3526,7 @@ var require_parser = __commonJS({
3310
3526
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
3311
3527
  }
3312
3528
  }
3313
- var NonIdContinue$0 = $R$0($EXPECT($R25, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
3529
+ var NonIdContinue$0 = $R$0($EXPECT($R26, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
3314
3530
  function NonIdContinue(state) {
3315
3531
  if (state.verbose)
3316
3532
  console.log("ENTER:", "NonIdContinue");
@@ -3332,7 +3548,7 @@ var require_parser = __commonJS({
3332
3548
  return Loc$0(state);
3333
3549
  }
3334
3550
  }
3335
- var As$0 = $TS($S($EXPECT($L87, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3551
+ var As$0 = $TS($S($EXPECT($L86, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3336
3552
  return { $loc, token: $1 };
3337
3553
  });
3338
3554
  function As(state) {
@@ -3344,7 +3560,7 @@ var require_parser = __commonJS({
3344
3560
  return As$0(state);
3345
3561
  }
3346
3562
  }
3347
- var Async$0 = $TV($EXPECT($L88, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3563
+ var Async$0 = $TV($EXPECT($L87, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3348
3564
  return { $loc, token: $1 };
3349
3565
  });
3350
3566
  function Async(state) {
@@ -3356,7 +3572,7 @@ var require_parser = __commonJS({
3356
3572
  return Async$0(state);
3357
3573
  }
3358
3574
  }
3359
- var Await$0 = $TS($S($EXPECT($L89, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3575
+ var Await$0 = $TS($S($EXPECT($L88, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3360
3576
  return { $loc, token: $1 };
3361
3577
  });
3362
3578
  function Await(state) {
@@ -3368,7 +3584,7 @@ var require_parser = __commonJS({
3368
3584
  return Await$0(state);
3369
3585
  }
3370
3586
  }
3371
- var Case$0 = $TS($S($EXPECT($L90, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3587
+ var Case$0 = $TS($S($EXPECT($L89, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3372
3588
  return { $loc, token: $1 };
3373
3589
  });
3374
3590
  function Case(state) {
@@ -3380,7 +3596,7 @@ var require_parser = __commonJS({
3380
3596
  return Case$0(state);
3381
3597
  }
3382
3598
  }
3383
- var Catch$0 = $TV($EXPECT($L91, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3599
+ var Catch$0 = $TV($EXPECT($L90, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3384
3600
  return { $loc, token: $1 };
3385
3601
  });
3386
3602
  function Catch(state) {
@@ -3392,7 +3608,7 @@ var require_parser = __commonJS({
3392
3608
  return Catch$0(state);
3393
3609
  }
3394
3610
  }
3395
- var Class$0 = $TV($EXPECT($L92, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3611
+ var Class$0 = $TV($EXPECT($L91, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3396
3612
  return { $loc, token: $1 };
3397
3613
  });
3398
3614
  function Class(state) {
@@ -3440,7 +3656,7 @@ var require_parser = __commonJS({
3440
3656
  return CloseParen$0(state);
3441
3657
  }
3442
3658
  }
3443
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L93, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3659
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L92, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3444
3660
  return { $loc, token: "${" };
3445
3661
  });
3446
3662
  function CoffeeSubstitutionStart(state) {
@@ -3452,7 +3668,7 @@ var require_parser = __commonJS({
3452
3668
  return CoffeeSubstitutionStart$0(state);
3453
3669
  }
3454
3670
  }
3455
- var Colon$0 = $TV($EXPECT($L94, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3671
+ var Colon$0 = $TV($EXPECT($L93, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3456
3672
  return { $loc, token: $1 };
3457
3673
  });
3458
3674
  function Colon(state) {
@@ -3476,7 +3692,7 @@ var require_parser = __commonJS({
3476
3692
  return ConstructorShorthand$0(state);
3477
3693
  }
3478
3694
  }
3479
- var Default$0 = $TS($S($EXPECT($L82, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3695
+ var Default$0 = $TS($S($EXPECT($L81, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3480
3696
  return { $loc, token: $1 };
3481
3697
  });
3482
3698
  function Default(state) {
@@ -3488,7 +3704,7 @@ var require_parser = __commonJS({
3488
3704
  return Default$0(state);
3489
3705
  }
3490
3706
  }
3491
- var Dot$0 = $TV($EXPECT($L95, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3707
+ var Dot$0 = $TV($EXPECT($L94, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3492
3708
  return { $loc, token: $1 };
3493
3709
  });
3494
3710
  function Dot(state) {
@@ -3500,7 +3716,7 @@ var require_parser = __commonJS({
3500
3716
  return Dot$0(state);
3501
3717
  }
3502
3718
  }
3503
- var DoubleQuote$0 = $TV($EXPECT($L96, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
3719
+ var DoubleQuote$0 = $TV($EXPECT($L95, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
3504
3720
  return { $loc, token: $1 };
3505
3721
  });
3506
3722
  function DoubleQuote(state) {
@@ -3512,7 +3728,7 @@ var require_parser = __commonJS({
3512
3728
  return DoubleQuote$0(state);
3513
3729
  }
3514
3730
  }
3515
- var Else$0 = $TV($EXPECT($L97, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3731
+ var Else$0 = $TV($EXPECT($L96, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3516
3732
  return { $loc, token: $1 };
3517
3733
  });
3518
3734
  function Else(state) {
@@ -3536,7 +3752,7 @@ var require_parser = __commonJS({
3536
3752
  return Equals$0(state);
3537
3753
  }
3538
3754
  }
3539
- var Export$0 = $TS($S($EXPECT($L98, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3755
+ var Export$0 = $TS($S($EXPECT($L97, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3540
3756
  return { $loc, token: $1 };
3541
3757
  });
3542
3758
  function Export(state) {
@@ -3548,7 +3764,7 @@ var require_parser = __commonJS({
3548
3764
  return Export$0(state);
3549
3765
  }
3550
3766
  }
3551
- var For$0 = $TS($S($EXPECT($L99, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3767
+ var For$0 = $TS($S($EXPECT($L98, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3552
3768
  return { $loc, token: $1 };
3553
3769
  });
3554
3770
  function For(state) {
@@ -3560,7 +3776,7 @@ var require_parser = __commonJS({
3560
3776
  return For$0(state);
3561
3777
  }
3562
3778
  }
3563
- var From$0 = $TS($S($EXPECT($L100, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3779
+ var From$0 = $TS($S($EXPECT($L99, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3564
3780
  return { $loc, token: $1 };
3565
3781
  });
3566
3782
  function From(state) {
@@ -3572,7 +3788,7 @@ var require_parser = __commonJS({
3572
3788
  return From$0(state);
3573
3789
  }
3574
3790
  }
3575
- var Function$0 = $TV($EXPECT($L101, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3791
+ var Function$0 = $TV($EXPECT($L100, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3576
3792
  return { $loc, token: $1 };
3577
3793
  });
3578
3794
  function Function(state) {
@@ -3584,7 +3800,7 @@ var require_parser = __commonJS({
3584
3800
  return Function$0(state);
3585
3801
  }
3586
3802
  }
3587
- var GetOrSet$0 = $TS($S($C($EXPECT($L102, fail, 'GetOrSet "get"'), $EXPECT($L103, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3803
+ var GetOrSet$0 = $TS($S($C($EXPECT($L101, fail, 'GetOrSet "get"'), $EXPECT($L102, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3588
3804
  return { $loc, token: $1 };
3589
3805
  });
3590
3806
  function GetOrSet(state) {
@@ -3596,7 +3812,7 @@ var require_parser = __commonJS({
3596
3812
  return GetOrSet$0(state);
3597
3813
  }
3598
3814
  }
3599
- var If$0 = $TV($EXPECT($L104, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3815
+ var If$0 = $TV($EXPECT($L103, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3600
3816
  return { $loc, token: $1 };
3601
3817
  });
3602
3818
  function If(state) {
@@ -3608,7 +3824,7 @@ var require_parser = __commonJS({
3608
3824
  return If$0(state);
3609
3825
  }
3610
3826
  }
3611
- var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R26, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
3827
+ var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R27, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
3612
3828
  return { $loc, token: $1 };
3613
3829
  });
3614
3830
  function Import(state) {
@@ -3632,7 +3848,7 @@ var require_parser = __commonJS({
3632
3848
  return In$0(state);
3633
3849
  }
3634
3850
  }
3635
- var LetOrConst$0 = $TV($C($EXPECT($L105, fail, 'LetOrConst "let"'), $EXPECT($L106, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
3851
+ var LetOrConst$0 = $TV($C($EXPECT($L104, fail, 'LetOrConst "let"'), $EXPECT($L105, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
3636
3852
  return { $loc, token: $1 };
3637
3853
  });
3638
3854
  function LetOrConst(state) {
@@ -3644,7 +3860,7 @@ var require_parser = __commonJS({
3644
3860
  return LetOrConst$0(state);
3645
3861
  }
3646
3862
  }
3647
- var Loop$0 = $TS($S($EXPECT($L107, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3863
+ var Loop$0 = $TS($S($EXPECT($L106, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3648
3864
  return { $loc, token: "while(true)" };
3649
3865
  });
3650
3866
  function Loop(state) {
@@ -3656,7 +3872,7 @@ var require_parser = __commonJS({
3656
3872
  return Loop$0(state);
3657
3873
  }
3658
3874
  }
3659
- var New$0 = $TV($EXPECT($L108, fail, 'New "new"'), function($skip, $loc, $0, $1) {
3875
+ var New$0 = $TV($EXPECT($L107, fail, 'New "new"'), function($skip, $loc, $0, $1) {
3660
3876
  return { $loc, token: $1 };
3661
3877
  });
3662
3878
  function New(state) {
@@ -3668,7 +3884,7 @@ var require_parser = __commonJS({
3668
3884
  return New$0(state);
3669
3885
  }
3670
3886
  }
3671
- var Of$0 = $TV($EXPECT($L109, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
3887
+ var Of$0 = $TV($EXPECT($L108, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
3672
3888
  return { $loc, token: $1 };
3673
3889
  });
3674
3890
  function Of(state) {
@@ -3680,7 +3896,7 @@ var require_parser = __commonJS({
3680
3896
  return Of$0(state);
3681
3897
  }
3682
3898
  }
3683
- var OpenBrace$0 = $TV($EXPECT($L110, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
3899
+ var OpenBrace$0 = $TV($EXPECT($L109, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
3684
3900
  return { $loc, token: $1 };
3685
3901
  });
3686
3902
  function OpenBrace(state) {
@@ -3692,7 +3908,7 @@ var require_parser = __commonJS({
3692
3908
  return OpenBrace$0(state);
3693
3909
  }
3694
3910
  }
3695
- var OpenBracket$0 = $TV($EXPECT($L111, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
3911
+ var OpenBracket$0 = $TV($EXPECT($L110, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
3696
3912
  return { $loc, token: $1 };
3697
3913
  });
3698
3914
  function OpenBracket(state) {
@@ -3704,7 +3920,7 @@ var require_parser = __commonJS({
3704
3920
  return OpenBracket$0(state);
3705
3921
  }
3706
3922
  }
3707
- var OpenParen$0 = $TV($EXPECT($L112, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
3923
+ var OpenParen$0 = $TV($EXPECT($L111, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
3708
3924
  return { $loc, token: $1 };
3709
3925
  });
3710
3926
  function OpenParen(state) {
@@ -3716,7 +3932,7 @@ var require_parser = __commonJS({
3716
3932
  return OpenParen$0(state);
3717
3933
  }
3718
3934
  }
3719
- var QuestionMark$0 = $TV($EXPECT($L113, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
3935
+ var QuestionMark$0 = $TV($EXPECT($L112, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
3720
3936
  return { $loc, token: $1 };
3721
3937
  });
3722
3938
  function QuestionMark(state) {
@@ -3728,7 +3944,7 @@ var require_parser = __commonJS({
3728
3944
  return QuestionMark$0(state);
3729
3945
  }
3730
3946
  }
3731
- var Return$0 = $TS($S($EXPECT($L114, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3947
+ var Return$0 = $TS($S($EXPECT($L113, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3732
3948
  return { $loc, token: $1 };
3733
3949
  });
3734
3950
  function Return(state) {
@@ -3752,7 +3968,7 @@ var require_parser = __commonJS({
3752
3968
  return Semicolon$0(state);
3753
3969
  }
3754
3970
  }
3755
- var SingleQuote$0 = $TV($EXPECT($L115, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
3971
+ var SingleQuote$0 = $TV($EXPECT($L114, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
3756
3972
  return { $loc, token: $1 };
3757
3973
  });
3758
3974
  function SingleQuote(state) {
@@ -3776,10 +3992,10 @@ var require_parser = __commonJS({
3776
3992
  return Star$0(state);
3777
3993
  }
3778
3994
  }
3779
- var Static$0 = $TV($EXPECT($L116, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
3995
+ var Static$0 = $TV($EXPECT($L115, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
3780
3996
  return { $loc, token: $1 };
3781
3997
  });
3782
- var Static$1 = $TS($S($EXPECT($L9, fail, 'Static "@"'), $N($EXPECT($L112, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
3998
+ var Static$1 = $TS($S($EXPECT($L9, fail, 'Static "@"'), $N($EXPECT($L111, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
3783
3999
  return { $loc, token: "static " };
3784
4000
  });
3785
4001
  function Static(state) {
@@ -3789,7 +4005,7 @@ var require_parser = __commonJS({
3789
4005
  return Static$0(state) || Static$1(state);
3790
4006
  }
3791
4007
  }
3792
- var SubstitutionStart$0 = $TV($EXPECT($L117, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4008
+ var SubstitutionStart$0 = $TV($EXPECT($L116, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
3793
4009
  return { $loc, token: $1 };
3794
4010
  });
3795
4011
  function SubstitutionStart(state) {
@@ -3801,7 +4017,7 @@ var require_parser = __commonJS({
3801
4017
  return SubstitutionStart$0(state);
3802
4018
  }
3803
4019
  }
3804
- var Switch$0 = $TS($S($EXPECT($L118, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4020
+ var Switch$0 = $TS($S($EXPECT($L117, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3805
4021
  return { $loc, token: $1 };
3806
4022
  });
3807
4023
  function Switch(state) {
@@ -3813,7 +4029,7 @@ var require_parser = __commonJS({
3813
4029
  return Switch$0(state);
3814
4030
  }
3815
4031
  }
3816
- var Target$0 = $TV($EXPECT($L119, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4032
+ var Target$0 = $TV($EXPECT($L118, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
3817
4033
  return { $loc, token: $1 };
3818
4034
  });
3819
4035
  function Target(state) {
@@ -3825,6 +4041,18 @@ var require_parser = __commonJS({
3825
4041
  return Target$0(state);
3826
4042
  }
3827
4043
  }
4044
+ var Throw$0 = $TS($S($EXPECT($L119, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4045
+ return { $loc, token: $1 };
4046
+ });
4047
+ function Throw(state) {
4048
+ if (state.verbose)
4049
+ console.log("ENTER:", "Throw");
4050
+ if (state.tokenize) {
4051
+ return $TOKEN("Throw", state, Throw$0(state));
4052
+ } else {
4053
+ return Throw$0(state);
4054
+ }
4055
+ }
3828
4056
  var TripleDoubleQuote$0 = $TV($EXPECT($L120, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
3829
4057
  return { $loc, token: "`" };
3830
4058
  });
@@ -3985,7 +4213,7 @@ var require_parser = __commonJS({
3985
4213
  return JSXElementName$0(state);
3986
4214
  }
3987
4215
  }
3988
- var JSXIdentifierName$0 = $R$0($EXPECT($R27, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
4216
+ var JSXIdentifierName$0 = $R$0($EXPECT($R28, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
3989
4217
  function JSXIdentifierName(state) {
3990
4218
  if (state.verbose)
3991
4219
  console.log("ENTER:", "JSXIdentifierName");
@@ -4034,8 +4262,8 @@ var require_parser = __commonJS({
4034
4262
  return JSXAttributeInitializer$0(state);
4035
4263
  }
4036
4264
  }
4037
- var JSXAttributeValue$0 = $R$0($EXPECT($R28, fail, 'JSXAttributeValue /"[^"]*"/'));
4038
- var JSXAttributeValue$1 = $R$0($EXPECT($R29, fail, "JSXAttributeValue /'[^']*'/"));
4265
+ var JSXAttributeValue$0 = $R$0($EXPECT($R29, fail, 'JSXAttributeValue /"[^"]*"/'));
4266
+ var JSXAttributeValue$1 = $R$0($EXPECT($R30, fail, "JSXAttributeValue /'[^']*'/"));
4039
4267
  var JSXAttributeValue$2 = $S(OpenBrace, __, AssignmentExpression, __, CloseBrace);
4040
4268
  var JSXAttributeValue$3 = JSXElement;
4041
4269
  var JSXAttributeValue$4 = JSXFragment;
@@ -4067,7 +4295,7 @@ var require_parser = __commonJS({
4067
4295
  return JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state);
4068
4296
  }
4069
4297
  }
4070
- var JSXText$0 = $R$0($EXPECT($R30, fail, "JSXText /[^{}<>]+/"));
4298
+ var JSXText$0 = $R$0($EXPECT($R31, fail, "JSXText /[^{}<>]+/"));
4071
4299
  function JSXText(state) {
4072
4300
  if (state.verbose)
4073
4301
  console.log("ENTER:", "JSXText");
@@ -4242,7 +4470,7 @@ var require_parser = __commonJS({
4242
4470
  return NestedTypeDeclaration$0(state);
4243
4471
  }
4244
4472
  }
4245
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R31, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L136, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R32, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4473
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R32, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L136, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R33, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4246
4474
  function TypeIndexSignature(state) {
4247
4475
  if (state.verbose)
4248
4476
  console.log("ENTER:", "TypeIndexSignature");
@@ -4463,7 +4691,7 @@ var require_parser = __commonJS({
4463
4691
  return TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
4464
4692
  }
4465
4693
  }
4466
- var Shebang$0 = $S($R$0($EXPECT($R33, fail, "Shebang /#![^\\r\\n]*/")), EOL);
4694
+ var Shebang$0 = $S($R$0($EXPECT($R34, fail, "Shebang /#![^\\r\\n]*/")), EOL);
4467
4695
  function Shebang(state) {
4468
4696
  if (state.verbose)
4469
4697
  console.log("ENTER:", "Shebang");
@@ -4473,7 +4701,7 @@ var require_parser = __commonJS({
4473
4701
  return Shebang$0(state);
4474
4702
  }
4475
4703
  }
4476
- var DirectivePrologue$0 = $Q($S($R$0($EXPECT($R34, fail, "DirectivePrologue /[\\t ]*/")), StringLiteral, $TEXT(StatementDelimiter), EOS));
4704
+ var DirectivePrologue$0 = $Q($S($R$0($EXPECT($R35, fail, "DirectivePrologue /[\\t ]*/")), StringLiteral, $TEXT(StatementDelimiter), EOS));
4477
4705
  function DirectivePrologue(state) {
4478
4706
  if (state.verbose)
4479
4707
  console.log("ENTER:", "DirectivePrologue");
@@ -4493,7 +4721,7 @@ var require_parser = __commonJS({
4493
4721
  return EOS$0(state);
4494
4722
  }
4495
4723
  }
4496
- var EOL$0 = $R$0($EXPECT($R35, fail, "EOL /\\r\\n|\\n|\\r|$/"));
4724
+ var EOL$0 = $R$0($EXPECT($R36, fail, "EOL /\\r\\n|\\n|\\r|$/"));
4497
4725
  function EOL(state) {
4498
4726
  if (state.verbose)
4499
4727
  console.log("ENTER:", "EOL");
@@ -4503,7 +4731,7 @@ var require_parser = __commonJS({
4503
4731
  return EOL$0(state);
4504
4732
  }
4505
4733
  }
4506
- var EOF$0 = $R$0($EXPECT($R36, fail, "EOF /$/"));
4734
+ var EOF$0 = $R$0($EXPECT($R37, fail, "EOF /$/"));
4507
4735
  function EOF(state) {
4508
4736
  if (state.verbose)
4509
4737
  console.log("ENTER:", "EOF");
@@ -4657,15 +4885,103 @@ var require_parser = __commonJS({
4657
4885
  return InsertBreak$0(state);
4658
4886
  }
4659
4887
  }
4660
- var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
4661
- var directives = $2;
4888
+ var Reset$0 = $TV($EXPECT($L1, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
4662
4889
  module2.currentIndent = 0;
4663
4890
  module2.indentLevels = [0];
4664
4891
  module2.verbose = false;
4892
+ module2.coffeeCompat = false;
4893
+ module2.implicitReturns = true;
4894
+ });
4895
+ function Reset(state) {
4896
+ if (state.verbose)
4897
+ console.log("ENTER:", "Reset");
4898
+ if (state.tokenize) {
4899
+ return $TOKEN("Reset", state, Reset$0(state));
4900
+ } else {
4901
+ return Reset$0(state);
4902
+ }
4903
+ }
4904
+ var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
4905
+ var directives = $2;
4665
4906
  if (directives) {
4666
4907
  const compatRe = /use coffee-compat/;
4667
4908
  module2.coffeeCompat = directives.some((d) => d[1].token?.match(compatRe));
4668
4909
  }
4910
+ function hasReturnStatement(node) {
4911
+ if (!node)
4912
+ return false;
4913
+ if (Array.isArray(node))
4914
+ return node.some(hasReturnStatement);
4915
+ if (node.type === "ReturnStatement")
4916
+ return true;
4917
+ if (node.type === "FunctionExpression")
4918
+ return false;
4919
+ if (node.children)
4920
+ return hasReturnStatement(node.children);
4921
+ return false;
4922
+ }
4923
+ function insertReturn(node) {
4924
+ if (!node)
4925
+ return;
4926
+ switch (node.type) {
4927
+ case "AssignmentExpression":
4928
+ node.children.unshift("return ");
4929
+ return;
4930
+ case "BlockStatement":
4931
+ insertReturn(node.expressions[node.expressions.length - 1]);
4932
+ return;
4933
+ case "CaseBlock":
4934
+ node.clauses.forEach((clause) => {
4935
+ insertReturn(clause);
4936
+ });
4937
+ return;
4938
+ case "CaseClause":
4939
+ return;
4940
+ case "WhenClause":
4941
+ node.children.pop();
4942
+ insertReturn(node.expressions[node.expressions.length - 1]);
4943
+ return;
4944
+ case "DefaultClause":
4945
+ insertReturn(node.expressions[node.expressions.length - 1]);
4946
+ return;
4947
+ }
4948
+ if (!Array.isArray(node))
4949
+ return;
4950
+ const [, exp] = node;
4951
+ debugger;
4952
+ if (!exp)
4953
+ return;
4954
+ switch (exp.type) {
4955
+ case "BreakStatement":
4956
+ case "ContinueStatement":
4957
+ case "DebuggerStatement":
4958
+ case "EmptyStatement":
4959
+ case "IterationStatement":
4960
+ case "ThrowStatement":
4961
+ case "VariableDeclaration":
4962
+ return;
4963
+ case "IfStatement":
4964
+ debugger;
4965
+ insertReturn(exp.children[2]);
4966
+ if (exp.children[3])
4967
+ insertReturn(exp.children[3][2]);
4968
+ return;
4969
+ case "SwitchStatement":
4970
+ insertReturn(exp.children[2]);
4971
+ return;
4972
+ case "TryStatement":
4973
+ insertReturn(exp.children[1]);
4974
+ insertReturn(exp.children[2][3]);
4975
+ return;
4976
+ }
4977
+ node.splice(1, 0, "return ");
4978
+ }
4979
+ module2.addImplicitReturns = function(block) {
4980
+ if (hasReturnStatement(block))
4981
+ return block;
4982
+ insertReturn(block);
4983
+ return block;
4984
+ };
4669
4985
  module2.parsePosition = function() {
4670
4986
  let s = Error().stack.split(/\n at /);
4671
4987
  s.shift();
@@ -4673,6 +4989,25 @@ var require_parser = __commonJS({
4673
4989
  s = s.slice(1, s.indexOf("Program") + 1);
4674
4990
  return s;
4675
4991
  };
4992
+ module2.prune = function(node) {
4993
+ if (node === null || node === void 0)
4994
+ return;
4995
+ if (node.length === 0)
4996
+ return;
4997
+ if (Array.isArray(node)) {
4998
+ const a = node.map((n) => module2.prune(n)).filter((n) => !!n);
4999
+ if (a.length > 1)
5000
+ return a;
5001
+ if (a.length === 1)
5002
+ return a[0];
5003
+ return;
5004
+ }
5005
+ if (node.children != null) {
5006
+ node.children = module2.prune(node.children);
5007
+ return node;
5008
+ }
5009
+ return node;
5010
+ };
4676
5011
  module2.insertTrimmingSpace = function(spacing, c) {
4677
5012
  let target = spacing;
4678
5013
  while (Array.isArray(target)) {
@@ -4729,7 +5064,7 @@ var require_parser = __commonJS({
4729
5064
  if (trim) {
4730
5065
  str = str.replace(/^(\r?\n|\n)/, "").replace(/(\r?\n|\n)[ \t]*$/, "");
4731
5066
  }
4732
- str = str.replace(/(`|\$)/g, "\\$1");
5067
+ str = str.replace(/(`|\$\{)/g, "\\$1");
4733
5068
  return {
4734
5069
  $loc: $loc2,
4735
5070
  token: str
@@ -4942,7 +5277,7 @@ var require_generate = __commonJS({
4942
5277
  return;
4943
5278
  }
4944
5279
  if (node.children != null) {
4945
- node.children = prune2(node.children);
5280
+ node.children = prune2(node.children) || [];
4946
5281
  return node;
4947
5282
  }
4948
5283
  return node;