@danielx/civet 0.4.6 → 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,
@@ -654,6 +655,7 @@ var require_parser = __commonJS({
654
655
  SubstitutionStart,
655
656
  Switch,
656
657
  Target,
658
+ Throw,
657
659
  TripleDoubleQuote,
658
660
  TripleSingleQuote,
659
661
  TripleTick,
@@ -820,46 +822,46 @@ var require_parser = __commonJS({
820
822
  var $L77 = $L("break");
821
823
  var $L78 = $L("continue");
822
824
  var $L79 = $L("debugger");
823
- var $L80 = $L("throw");
824
- var $L81 = $L("import type");
825
- var $L82 = $L("default");
826
- var $L83 = $L(":=");
827
- var $L84 = $L("/*");
828
- var $L85 = $L("*/");
829
- var $L86 = $L("###");
830
- var $L87 = $L("as");
831
- var $L88 = $L("async");
832
- var $L89 = $L("await");
833
- var $L90 = $L("case");
834
- var $L91 = $L("catch");
835
- var $L92 = $L("class");
836
- var $L93 = $L("#{");
837
- var $L94 = $L(":");
838
- var $L95 = $L(".");
839
- var $L96 = $L('"');
840
- var $L97 = $L("else");
841
- var $L98 = $L("export");
842
- var $L99 = $L("for");
843
- var $L100 = $L("from");
844
- var $L101 = $L("function");
845
- var $L102 = $L("get");
846
- var $L103 = $L("set");
847
- var $L104 = $L("if");
848
- var $L105 = $L("let");
849
- var $L106 = $L("const");
850
- var $L107 = $L("loop");
851
- var $L108 = $L("new");
852
- var $L109 = $L("of");
853
- var $L110 = $L("{");
854
- var $L111 = $L("[");
855
- var $L112 = $L("(");
856
- var $L113 = $L("?");
857
- var $L114 = $L("return");
858
- var $L115 = $L("'");
859
- var $L116 = $L("static");
860
- var $L117 = $L("${");
861
- var $L118 = $L("switch");
862
- 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");
863
865
  var $L120 = $L('"""');
864
866
  var $L121 = $L("'''");
865
867
  var $L122 = $L("```");
@@ -941,7 +943,11 @@ var require_parser = __commonJS({
941
943
  return TopLevelStatement$0(state);
942
944
  }
943
945
  }
944
- 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
+ });
945
951
  function Expression(state) {
946
952
  if (state.verbose)
947
953
  console.log("ENTER:", "Expression");
@@ -1022,7 +1028,9 @@ var require_parser = __commonJS({
1022
1028
  var spacing = $2;
1023
1029
  return module2.insertTrimmingSpace(spacing, "(");
1024
1030
  });
1025
- 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
+ });
1026
1034
  function ApplicationStart(state) {
1027
1035
  if (state.tokenize) {
1028
1036
  return $TOKEN("ApplicationStart", state, ApplicationStart$0(state) || ApplicationStart$1(state));
@@ -1054,7 +1062,11 @@ var require_parser = __commonJS({
1054
1062
  return CommaExpression$0(state);
1055
1063
  }
1056
1064
  }
1057
- 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
+ });
1058
1070
  function BinaryOpExpression(state) {
1059
1071
  if (state.verbose)
1060
1072
  console.log("ENTER:", "BinaryOpExpression");
@@ -1094,7 +1106,11 @@ var require_parser = __commonJS({
1094
1106
  }
1095
1107
  }
1096
1108
  var UpdateExpression$0 = $S(UpdateExpressionSymbol, UnaryExpression);
1097
- 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
+ });
1098
1114
  function UpdateExpression(state) {
1099
1115
  if (state.tokenize) {
1100
1116
  return $TOKEN("UpdateExpression", state, UpdateExpression$0(state) || UpdateExpression$1(state));
@@ -1114,7 +1130,11 @@ var require_parser = __commonJS({
1114
1130
  return UpdateExpressionSymbol$0(state);
1115
1131
  }
1116
1132
  }
1117
- 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
+ });
1118
1138
  var AssignmentExpression$1 = $S(__, AssignmentExpressionRest);
1119
1139
  function AssignmentExpression(state) {
1120
1140
  if (state.tokenize) {
@@ -1126,7 +1146,9 @@ var require_parser = __commonJS({
1126
1146
  var AssignmentExpressionRest$0 = AwaitExpression;
1127
1147
  var AssignmentExpressionRest$1 = YieldExpression;
1128
1148
  var AssignmentExpressionRest$2 = $S($E($S(Async, __)), ArrowFunction);
1129
- 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
+ });
1130
1152
  var AssignmentExpressionRest$4 = ConditionalExpression;
1131
1153
  function AssignmentExpressionRest(state) {
1132
1154
  if (state.tokenize) {
@@ -1191,7 +1213,11 @@ var require_parser = __commonJS({
1191
1213
  return FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state) || FatArrowBody$4(state);
1192
1214
  }
1193
1215
  }
1194
- 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
+ });
1195
1221
  function ConditionalExpression(state) {
1196
1222
  if (state.verbose)
1197
1223
  console.log("ENTER:", "ConditionalExpression");
@@ -1380,7 +1406,11 @@ var require_parser = __commonJS({
1380
1406
  }
1381
1407
  var CallExpression$0 = $S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1382
1408
  var CallExpression$1 = $S($EXPECT($L11, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
1383
- 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
+ });
1384
1414
  function CallExpression(state) {
1385
1415
  if (state.tokenize) {
1386
1416
  return $TOKEN("CallExpression", state, CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state));
@@ -1430,7 +1460,11 @@ var require_parser = __commonJS({
1430
1460
  return AdditionalReservedWords$0(state);
1431
1461
  }
1432
1462
  }
1433
- 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
+ });
1434
1468
  var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1435
1469
  var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1436
1470
  function MemberExpression(state) {
@@ -1666,7 +1700,9 @@ var require_parser = __commonJS({
1666
1700
  }
1667
1701
  }
1668
1702
  var FunctionExpression$0 = ThinArrowFunction;
1669
- 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
+ });
1670
1706
  function FunctionExpression(state) {
1671
1707
  if (state.tokenize) {
1672
1708
  return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
@@ -1674,17 +1710,23 @@ var require_parser = __commonJS({
1674
1710
  return FunctionExpression$0(state) || FunctionExpression$1(state);
1675
1711
  }
1676
1712
  }
1677
- 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) {
1678
1714
  var params = $1;
1679
1715
  var suffix = $2;
1680
1716
  var arrow = $4;
1681
1717
  var block = $5;
1682
- return [
1683
- { $loc: arrow.$loc, token: "function" },
1684
- params,
1685
- suffix,
1686
- block
1687
- ];
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
+ };
1688
1730
  });
1689
1731
  function ThinArrowFunction(state) {
1690
1732
  if (state.verbose)
@@ -1707,8 +1749,14 @@ var require_parser = __commonJS({
1707
1749
  return Arrow$0(state);
1708
1750
  }
1709
1751
  }
1710
- var Block$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace);
1711
- 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
+ });
1712
1760
  var Block$2 = Statement;
1713
1761
  var Block$3 = $S(__, Statement);
1714
1762
  function Block(state) {
@@ -1719,7 +1767,9 @@ var require_parser = __commonJS({
1719
1767
  }
1720
1768
  }
1721
1769
  var BracedOrEmptyBlock$0 = BracedBlock;
1722
- var BracedOrEmptyBlock$1 = $S(InsertOpenBrace, InsertCloseBrace);
1770
+ var BracedOrEmptyBlock$1 = $T($S(InsertOpenBrace, InsertCloseBrace), function(value) {
1771
+ return { "type": "BlockStatement", "expressions": [], "children": value };
1772
+ });
1723
1773
  function BracedOrEmptyBlock(state) {
1724
1774
  if (state.tokenize) {
1725
1775
  return $TOKEN("BracedOrEmptyBlock", state, BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state));
@@ -1727,9 +1777,22 @@ var require_parser = __commonJS({
1727
1777
  return BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state);
1728
1778
  }
1729
1779
  }
1730
- var BracedBlock$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace);
1731
- var BracedBlock$1 = $S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace);
1732
- 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
+ });
1733
1796
  function BracedBlock(state) {
1734
1797
  if (state.tokenize) {
1735
1798
  return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state));
@@ -1824,7 +1887,9 @@ var require_parser = __commonJS({
1824
1887
  return Comma$0(state);
1825
1888
  }
1826
1889
  }
1827
- var Identifier$0 = $S($N(ReservedWord), IdentifierName);
1890
+ var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
1891
+ return value[1];
1892
+ });
1828
1893
  function Identifier(state) {
1829
1894
  if (state.verbose)
1830
1895
  console.log("ENTER:", "Identifier");
@@ -2212,8 +2277,7 @@ var require_parser = __commonJS({
2212
2277
  var l = $3;
2213
2278
  if (cond)
2214
2279
  return [cond, statement, { $loc: l.$loc, token: "}" }];
2215
- $0.pop();
2216
- return $0;
2280
+ return statement;
2217
2281
  });
2218
2282
  function StatementListItem(state) {
2219
2283
  if (state.verbose)
@@ -2268,7 +2332,9 @@ var require_parser = __commonJS({
2268
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);
2269
2333
  }
2270
2334
  }
2271
- 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
+ });
2272
2338
  function EmptyStatement(state) {
2273
2339
  if (state.verbose)
2274
2340
  console.log("ENTER:", "EmptyStatement");
@@ -2288,7 +2354,9 @@ var require_parser = __commonJS({
2288
2354
  return BlockStatement$0(state);
2289
2355
  }
2290
2356
  }
2291
- 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
+ });
2292
2360
  var IfStatement$1 = $TS($S(Unless, Condition, Block), function($skip, $loc, $0, $1, $2, $3) {
2293
2361
  var kind = $1;
2294
2362
  var condition = $2;
@@ -2302,7 +2370,10 @@ var require_parser = __commonJS({
2302
2370
  c.token = "))";
2303
2371
  });
2304
2372
  kind.token = "if";
2305
- return [kind, condition, block];
2373
+ return {
2374
+ type: "IfStatement",
2375
+ children: [kind, condition, block]
2376
+ };
2306
2377
  });
2307
2378
  function IfStatement(state) {
2308
2379
  if (state.tokenize) {
@@ -2314,8 +2385,12 @@ var require_parser = __commonJS({
2314
2385
  var IterationStatement$0 = LoopStatement;
2315
2386
  var IterationStatement$1 = DoWhileStatement;
2316
2387
  var IterationStatement$2 = WhileStatement;
2317
- var IterationStatement$3 = ForStatement;
2318
- 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
+ });
2319
2394
  function IterationStatement(state) {
2320
2395
  if (state.tokenize) {
2321
2396
  return $TOKEN("IterationStatement", state, IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state));
@@ -2323,7 +2398,9 @@ var require_parser = __commonJS({
2323
2398
  return IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state);
2324
2399
  }
2325
2400
  }
2326
- var LoopStatement$0 = $S(Loop, Block);
2401
+ var LoopStatement$0 = $T($S(Loop, Block), function(value) {
2402
+ return { "type": "IterationStatement", "children": value };
2403
+ });
2327
2404
  function LoopStatement(state) {
2328
2405
  if (state.verbose)
2329
2406
  console.log("ENTER:", "LoopStatement");
@@ -2333,7 +2410,9 @@ var require_parser = __commonJS({
2333
2410
  return LoopStatement$0(state);
2334
2411
  }
2335
2412
  }
2336
- 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
+ });
2337
2416
  function DoWhileStatement(state) {
2338
2417
  if (state.verbose)
2339
2418
  console.log("ENTER:", "DoWhileStatement");
@@ -2343,7 +2422,9 @@ var require_parser = __commonJS({
2343
2422
  return DoWhileStatement$0(state);
2344
2423
  }
2345
2424
  }
2346
- var WhileStatement$0 = $S(WhileClause, Block);
2425
+ var WhileStatement$0 = $T($S(WhileClause, Block), function(value) {
2426
+ return { "type": "IterationStatement", "children": value };
2427
+ });
2347
2428
  function WhileStatement(state) {
2348
2429
  if (state.verbose)
2349
2430
  console.log("ENTER:", "WhileStatement");
@@ -2412,7 +2493,9 @@ var require_parser = __commonJS({
2412
2493
  return ForBinding$0(state) || ForBinding$1(state);
2413
2494
  }
2414
2495
  }
2415
- 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
+ });
2416
2499
  function SwitchStatement(state) {
2417
2500
  if (state.verbose)
2418
2501
  console.log("ENTER:", "SwitchStatement");
@@ -2422,8 +2505,24 @@ var require_parser = __commonJS({
2422
2505
  return SwitchStatement$0(state);
2423
2506
  }
2424
2507
  }
2425
- var CaseBlock$0 = $S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace);
2426
- 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
+ });
2427
2526
  function CaseBlock(state) {
2428
2527
  if (state.tokenize) {
2429
2528
  return $TOKEN("CaseBlock", state, CaseBlock$0(state) || CaseBlock$1(state));
@@ -2446,7 +2545,10 @@ var require_parser = __commonJS({
2446
2545
  return NestedCaseClauses$0(state);
2447
2546
  }
2448
2547
  }
2449
- 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
+ });
2450
2552
  function NestedCaseClause(state) {
2451
2553
  if (state.verbose)
2452
2554
  console.log("ENTER:", "NestedCaseClause");
@@ -2456,14 +2558,32 @@ var require_parser = __commonJS({
2456
2558
  return NestedCaseClause$0(state);
2457
2559
  }
2458
2560
  }
2459
- var CaseClause$0 = $S(Case, CaseExpressionList, NestedBlockExpressions);
2460
- var CaseClause$1 = $S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak);
2461
- 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
+ });
2462
2582
  function CaseClause(state) {
2463
2583
  if (state.tokenize) {
2464
- 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));
2465
2585
  } else {
2466
- return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state);
2586
+ return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state);
2467
2587
  }
2468
2588
  }
2469
2589
  var CaseExpressionList$0 = $TS($S($S($Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon), $Q($S(__, Comma, ExpressionWithIndentedApplicationSuppressed, ImpliedColon))), function($skip, $loc, $0, $1, $2) {
@@ -2485,6 +2605,18 @@ var require_parser = __commonJS({
2485
2605
  return CaseExpressionList$0(state);
2486
2606
  }
2487
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
+ }
2488
2620
  var ImpliedColon$0 = $S(__, Colon);
2489
2621
  var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
2490
2622
  return { $loc, token: ":" };
@@ -2497,12 +2629,20 @@ var require_parser = __commonJS({
2497
2629
  }
2498
2630
  }
2499
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;
2500
2634
  var c = $3;
2501
2635
  var f = $4;
2502
2636
  if (!c && !f) {
2503
- return [$1, $2, " catch {}"];
2637
+ return {
2638
+ type: "TryStatement",
2639
+ children: [t, b, " catch(e) {}"]
2640
+ };
2504
2641
  }
2505
- return [$1, $2, c, f];
2642
+ return {
2643
+ type: "TryStatement",
2644
+ children: [t, b, c, f]
2645
+ };
2506
2646
  });
2507
2647
  function TryStatement(state) {
2508
2648
  if (state.verbose)
@@ -2524,7 +2664,7 @@ var require_parser = __commonJS({
2524
2664
  }
2525
2665
  }
2526
2666
  var CatchBind$0 = $S(__, OpenParen, __, CatchParameter, __, CloseParen);
2527
- var CatchBind$1 = $S(__, InsertOpenParen, CatchParameter, InsertCloseParen);
2667
+ var CatchBind$1 = $S($N(EOS), $Q(TrailingComment), InsertOpenParen, CatchParameter, InsertCloseParen);
2528
2668
  function CatchBind(state) {
2529
2669
  if (state.tokenize) {
2530
2670
  return $TOKEN("CatchBind", state, CatchBind$0(state) || CatchBind$1(state));
@@ -2598,11 +2738,21 @@ var require_parser = __commonJS({
2598
2738
  return ExpressionStatement$0(state);
2599
2739
  }
2600
2740
  }
2601
- var KeywordStatement$0 = $S($EXPECT($L77, fail, 'KeywordStatement "break"'), NonIdContinue);
2602
- var KeywordStatement$1 = $S($EXPECT($L78, fail, 'KeywordStatement "continue"'), NonIdContinue);
2603
- var KeywordStatement$2 = $S($EXPECT($L79, fail, 'KeywordStatement "debugger"'), NonIdContinue);
2604
- var KeywordStatement$3 = $S(Return, $E(MaybeNestedExpression));
2605
- 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
+ });
2606
2756
  function KeywordStatement(state) {
2607
2757
  if (state.tokenize) {
2608
2758
  return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state));
@@ -2619,7 +2769,7 @@ var require_parser = __commonJS({
2619
2769
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
2620
2770
  }
2621
2771
  }
2622
- 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) {
2623
2773
  return { "ts": true, "children": value };
2624
2774
  });
2625
2775
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -2757,7 +2907,7 @@ var require_parser = __commonJS({
2757
2907
  return ImportedBinding$0(state);
2758
2908
  }
2759
2909
  }
2760
- 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));
2761
2911
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
2762
2912
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
2763
2913
  function ExportDeclaration(state) {
@@ -2817,7 +2967,9 @@ var require_parser = __commonJS({
2817
2967
  return HoistableDeclaration$0(state);
2818
2968
  }
2819
2969
  }
2820
- 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
+ });
2821
2973
  var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2822
2974
  var c = $1;
2823
2975
  var ca = $5;
@@ -2825,7 +2977,10 @@ var require_parser = __commonJS({
2825
2977
  pos: ca.$loc.pos - 1,
2826
2978
  length: ca.$loc.length + 1
2827
2979
  };
2828
- return $0;
2980
+ return {
2981
+ type: "VariableDeclaration",
2982
+ children: $0
2983
+ };
2829
2984
  });
2830
2985
  function LexicalDeclaration(state) {
2831
2986
  if (state.tokenize) {
@@ -2834,7 +2989,7 @@ var require_parser = __commonJS({
2834
2989
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
2835
2990
  }
2836
2991
  }
2837
- 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) {
2838
2993
  return { $loc, token: "=" };
2839
2994
  });
2840
2995
  function ConstAssignment(state) {
@@ -2865,7 +3020,9 @@ var require_parser = __commonJS({
2865
3020
  return Initializer$0(state);
2866
3021
  }
2867
3022
  }
2868
- var VariableStatement$0 = $S(Var, __, VariableDeclarationList);
3023
+ var VariableStatement$0 = $T($S(Var, __, VariableDeclarationList), function(value) {
3024
+ return { "type": "VariableDeclaration", "children": value };
3025
+ });
2869
3026
  function VariableStatement(state) {
2870
3027
  if (state.verbose)
2871
3028
  console.log("ENTER:", "VariableStatement");
@@ -3246,7 +3403,7 @@ var require_parser = __commonJS({
3246
3403
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3247
3404
  }
3248
3405
  }
3249
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L85, fail, 'JSMultiLineComment "*/"')), $EXPECT($R21, 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) {
3250
3407
  return { $loc, token: $1 };
3251
3408
  });
3252
3409
  function JSMultiLineComment(state) {
@@ -3270,7 +3427,7 @@ var require_parser = __commonJS({
3270
3427
  return CoffeeSingleLineComment$0(state);
3271
3428
  }
3272
3429
  }
3273
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L85, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R21, 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) {
3274
3431
  return { $loc, token: `/*${$2}*/` };
3275
3432
  });
3276
3433
  function CoffeeMultiLineComment(state) {
@@ -3282,7 +3439,7 @@ var require_parser = __commonJS({
3282
3439
  return CoffeeMultiLineComment$0(state);
3283
3440
  }
3284
3441
  }
3285
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L85, fail, 'InlineComment "*/"')), $EXPECT($R23, 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) {
3286
3443
  return { $loc, token: $1 };
3287
3444
  });
3288
3445
  function InlineComment(state) {
@@ -3391,7 +3548,7 @@ var require_parser = __commonJS({
3391
3548
  return Loc$0(state);
3392
3549
  }
3393
3550
  }
3394
- 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) {
3395
3552
  return { $loc, token: $1 };
3396
3553
  });
3397
3554
  function As(state) {
@@ -3403,7 +3560,7 @@ var require_parser = __commonJS({
3403
3560
  return As$0(state);
3404
3561
  }
3405
3562
  }
3406
- 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) {
3407
3564
  return { $loc, token: $1 };
3408
3565
  });
3409
3566
  function Async(state) {
@@ -3415,7 +3572,7 @@ var require_parser = __commonJS({
3415
3572
  return Async$0(state);
3416
3573
  }
3417
3574
  }
3418
- 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) {
3419
3576
  return { $loc, token: $1 };
3420
3577
  });
3421
3578
  function Await(state) {
@@ -3427,7 +3584,7 @@ var require_parser = __commonJS({
3427
3584
  return Await$0(state);
3428
3585
  }
3429
3586
  }
3430
- 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) {
3431
3588
  return { $loc, token: $1 };
3432
3589
  });
3433
3590
  function Case(state) {
@@ -3439,7 +3596,7 @@ var require_parser = __commonJS({
3439
3596
  return Case$0(state);
3440
3597
  }
3441
3598
  }
3442
- 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) {
3443
3600
  return { $loc, token: $1 };
3444
3601
  });
3445
3602
  function Catch(state) {
@@ -3451,7 +3608,7 @@ var require_parser = __commonJS({
3451
3608
  return Catch$0(state);
3452
3609
  }
3453
3610
  }
3454
- 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) {
3455
3612
  return { $loc, token: $1 };
3456
3613
  });
3457
3614
  function Class(state) {
@@ -3499,7 +3656,7 @@ var require_parser = __commonJS({
3499
3656
  return CloseParen$0(state);
3500
3657
  }
3501
3658
  }
3502
- 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) {
3503
3660
  return { $loc, token: "${" };
3504
3661
  });
3505
3662
  function CoffeeSubstitutionStart(state) {
@@ -3511,7 +3668,7 @@ var require_parser = __commonJS({
3511
3668
  return CoffeeSubstitutionStart$0(state);
3512
3669
  }
3513
3670
  }
3514
- 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) {
3515
3672
  return { $loc, token: $1 };
3516
3673
  });
3517
3674
  function Colon(state) {
@@ -3535,7 +3692,7 @@ var require_parser = __commonJS({
3535
3692
  return ConstructorShorthand$0(state);
3536
3693
  }
3537
3694
  }
3538
- 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) {
3539
3696
  return { $loc, token: $1 };
3540
3697
  });
3541
3698
  function Default(state) {
@@ -3547,7 +3704,7 @@ var require_parser = __commonJS({
3547
3704
  return Default$0(state);
3548
3705
  }
3549
3706
  }
3550
- 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) {
3551
3708
  return { $loc, token: $1 };
3552
3709
  });
3553
3710
  function Dot(state) {
@@ -3559,7 +3716,7 @@ var require_parser = __commonJS({
3559
3716
  return Dot$0(state);
3560
3717
  }
3561
3718
  }
3562
- 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) {
3563
3720
  return { $loc, token: $1 };
3564
3721
  });
3565
3722
  function DoubleQuote(state) {
@@ -3571,7 +3728,7 @@ var require_parser = __commonJS({
3571
3728
  return DoubleQuote$0(state);
3572
3729
  }
3573
3730
  }
3574
- 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) {
3575
3732
  return { $loc, token: $1 };
3576
3733
  });
3577
3734
  function Else(state) {
@@ -3595,7 +3752,7 @@ var require_parser = __commonJS({
3595
3752
  return Equals$0(state);
3596
3753
  }
3597
3754
  }
3598
- 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) {
3599
3756
  return { $loc, token: $1 };
3600
3757
  });
3601
3758
  function Export(state) {
@@ -3607,7 +3764,7 @@ var require_parser = __commonJS({
3607
3764
  return Export$0(state);
3608
3765
  }
3609
3766
  }
3610
- 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) {
3611
3768
  return { $loc, token: $1 };
3612
3769
  });
3613
3770
  function For(state) {
@@ -3619,7 +3776,7 @@ var require_parser = __commonJS({
3619
3776
  return For$0(state);
3620
3777
  }
3621
3778
  }
3622
- 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) {
3623
3780
  return { $loc, token: $1 };
3624
3781
  });
3625
3782
  function From(state) {
@@ -3631,7 +3788,7 @@ var require_parser = __commonJS({
3631
3788
  return From$0(state);
3632
3789
  }
3633
3790
  }
3634
- 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) {
3635
3792
  return { $loc, token: $1 };
3636
3793
  });
3637
3794
  function Function(state) {
@@ -3643,7 +3800,7 @@ var require_parser = __commonJS({
3643
3800
  return Function$0(state);
3644
3801
  }
3645
3802
  }
3646
- 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) {
3647
3804
  return { $loc, token: $1 };
3648
3805
  });
3649
3806
  function GetOrSet(state) {
@@ -3655,7 +3812,7 @@ var require_parser = __commonJS({
3655
3812
  return GetOrSet$0(state);
3656
3813
  }
3657
3814
  }
3658
- 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) {
3659
3816
  return { $loc, token: $1 };
3660
3817
  });
3661
3818
  function If(state) {
@@ -3691,7 +3848,7 @@ var require_parser = __commonJS({
3691
3848
  return In$0(state);
3692
3849
  }
3693
3850
  }
3694
- 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) {
3695
3852
  return { $loc, token: $1 };
3696
3853
  });
3697
3854
  function LetOrConst(state) {
@@ -3703,7 +3860,7 @@ var require_parser = __commonJS({
3703
3860
  return LetOrConst$0(state);
3704
3861
  }
3705
3862
  }
3706
- 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) {
3707
3864
  return { $loc, token: "while(true)" };
3708
3865
  });
3709
3866
  function Loop(state) {
@@ -3715,7 +3872,7 @@ var require_parser = __commonJS({
3715
3872
  return Loop$0(state);
3716
3873
  }
3717
3874
  }
3718
- 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) {
3719
3876
  return { $loc, token: $1 };
3720
3877
  });
3721
3878
  function New(state) {
@@ -3727,7 +3884,7 @@ var require_parser = __commonJS({
3727
3884
  return New$0(state);
3728
3885
  }
3729
3886
  }
3730
- 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) {
3731
3888
  return { $loc, token: $1 };
3732
3889
  });
3733
3890
  function Of(state) {
@@ -3739,7 +3896,7 @@ var require_parser = __commonJS({
3739
3896
  return Of$0(state);
3740
3897
  }
3741
3898
  }
3742
- 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) {
3743
3900
  return { $loc, token: $1 };
3744
3901
  });
3745
3902
  function OpenBrace(state) {
@@ -3751,7 +3908,7 @@ var require_parser = __commonJS({
3751
3908
  return OpenBrace$0(state);
3752
3909
  }
3753
3910
  }
3754
- 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) {
3755
3912
  return { $loc, token: $1 };
3756
3913
  });
3757
3914
  function OpenBracket(state) {
@@ -3763,7 +3920,7 @@ var require_parser = __commonJS({
3763
3920
  return OpenBracket$0(state);
3764
3921
  }
3765
3922
  }
3766
- 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) {
3767
3924
  return { $loc, token: $1 };
3768
3925
  });
3769
3926
  function OpenParen(state) {
@@ -3775,7 +3932,7 @@ var require_parser = __commonJS({
3775
3932
  return OpenParen$0(state);
3776
3933
  }
3777
3934
  }
3778
- 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) {
3779
3936
  return { $loc, token: $1 };
3780
3937
  });
3781
3938
  function QuestionMark(state) {
@@ -3787,7 +3944,7 @@ var require_parser = __commonJS({
3787
3944
  return QuestionMark$0(state);
3788
3945
  }
3789
3946
  }
3790
- 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) {
3791
3948
  return { $loc, token: $1 };
3792
3949
  });
3793
3950
  function Return(state) {
@@ -3811,7 +3968,7 @@ var require_parser = __commonJS({
3811
3968
  return Semicolon$0(state);
3812
3969
  }
3813
3970
  }
3814
- 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) {
3815
3972
  return { $loc, token: $1 };
3816
3973
  });
3817
3974
  function SingleQuote(state) {
@@ -3835,10 +3992,10 @@ var require_parser = __commonJS({
3835
3992
  return Star$0(state);
3836
3993
  }
3837
3994
  }
3838
- 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) {
3839
3996
  return { $loc, token: $1 };
3840
3997
  });
3841
- 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) {
3842
3999
  return { $loc, token: "static " };
3843
4000
  });
3844
4001
  function Static(state) {
@@ -3848,7 +4005,7 @@ var require_parser = __commonJS({
3848
4005
  return Static$0(state) || Static$1(state);
3849
4006
  }
3850
4007
  }
3851
- 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) {
3852
4009
  return { $loc, token: $1 };
3853
4010
  });
3854
4011
  function SubstitutionStart(state) {
@@ -3860,7 +4017,7 @@ var require_parser = __commonJS({
3860
4017
  return SubstitutionStart$0(state);
3861
4018
  }
3862
4019
  }
3863
- 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) {
3864
4021
  return { $loc, token: $1 };
3865
4022
  });
3866
4023
  function Switch(state) {
@@ -3872,7 +4029,7 @@ var require_parser = __commonJS({
3872
4029
  return Switch$0(state);
3873
4030
  }
3874
4031
  }
3875
- 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) {
3876
4033
  return { $loc, token: $1 };
3877
4034
  });
3878
4035
  function Target(state) {
@@ -3884,6 +4041,18 @@ var require_parser = __commonJS({
3884
4041
  return Target$0(state);
3885
4042
  }
3886
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
+ }
3887
4056
  var TripleDoubleQuote$0 = $TV($EXPECT($L120, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
3888
4057
  return { $loc, token: "`" };
3889
4058
  });
@@ -4721,6 +4890,7 @@ var require_parser = __commonJS({
4721
4890
  module2.indentLevels = [0];
4722
4891
  module2.verbose = false;
4723
4892
  module2.coffeeCompat = false;
4893
+ module2.implicitReturns = true;
4724
4894
  });
4725
4895
  function Reset(state) {
4726
4896
  if (state.verbose)
@@ -4737,6 +4907,81 @@ var require_parser = __commonJS({
4737
4907
  const compatRe = /use coffee-compat/;
4738
4908
  module2.coffeeCompat = directives.some((d) => d[1].token?.match(compatRe));
4739
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
+ };
4740
4985
  module2.parsePosition = function() {
4741
4986
  let s = Error().stack.split(/\n at /);
4742
4987
  s.shift();
@@ -4744,6 +4989,25 @@ var require_parser = __commonJS({
4744
4989
  s = s.slice(1, s.indexOf("Program") + 1);
4745
4990
  return s;
4746
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
+ };
4747
5011
  module2.insertTrimmingSpace = function(spacing, c) {
4748
5012
  let target = spacing;
4749
5013
  while (Array.isArray(target)) {
@@ -5013,7 +5277,7 @@ var require_generate = __commonJS({
5013
5277
  return;
5014
5278
  }
5015
5279
  if (node.children != null) {
5016
- node.children = prune2(node.children);
5280
+ node.children = prune2(node.children) || [];
5017
5281
  return node;
5018
5282
  }
5019
5283
  return node;