@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/README.md +28 -17
- package/dist/browser.js +398 -134
- package/dist/esm.mjs +2 -2
- package/dist/main.js +398 -134
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -535,6 +535,7 @@ var Civet = (() => {
|
|
|
535
535
|
NestedCaseClause,
|
|
536
536
|
CaseClause,
|
|
537
537
|
CaseExpressionList,
|
|
538
|
+
NoExpressions,
|
|
538
539
|
ImpliedColon,
|
|
539
540
|
TryStatement,
|
|
540
541
|
CatchClause,
|
|
@@ -655,6 +656,7 @@ var Civet = (() => {
|
|
|
655
656
|
SubstitutionStart,
|
|
656
657
|
Switch,
|
|
657
658
|
Target,
|
|
659
|
+
Throw,
|
|
658
660
|
TripleDoubleQuote,
|
|
659
661
|
TripleSingleQuote,
|
|
660
662
|
TripleTick,
|
|
@@ -821,46 +823,46 @@ var Civet = (() => {
|
|
|
821
823
|
var $L77 = $L("break");
|
|
822
824
|
var $L78 = $L("continue");
|
|
823
825
|
var $L79 = $L("debugger");
|
|
824
|
-
var $L80 = $L("
|
|
825
|
-
var $L81 = $L("
|
|
826
|
-
var $L82 = $L("
|
|
827
|
-
var $L83 = $L("
|
|
828
|
-
var $L84 = $L("
|
|
829
|
-
var $L85 = $L("
|
|
830
|
-
var $L86 = $L("
|
|
831
|
-
var $L87 = $L("
|
|
832
|
-
var $L88 = $L("
|
|
833
|
-
var $L89 = $L("
|
|
834
|
-
var $L90 = $L("
|
|
835
|
-
var $L91 = $L("
|
|
836
|
-
var $L92 = $L("
|
|
837
|
-
var $L93 = $L("
|
|
838
|
-
var $L94 = $L("
|
|
839
|
-
var $L95 = $L("
|
|
840
|
-
var $L96 = $L(
|
|
841
|
-
var $L97 = $L("
|
|
842
|
-
var $L98 = $L("
|
|
843
|
-
var $L99 = $L("
|
|
844
|
-
var $L100 = $L("
|
|
845
|
-
var $L101 = $L("
|
|
846
|
-
var $L102 = $L("
|
|
847
|
-
var $L103 = $L("
|
|
848
|
-
var $L104 = $L("
|
|
849
|
-
var $L105 = $L("
|
|
850
|
-
var $L106 = $L("
|
|
851
|
-
var $L107 = $L("
|
|
852
|
-
var $L108 = $L("
|
|
853
|
-
var $L109 = $L("
|
|
854
|
-
var $L110 = $L("
|
|
855
|
-
var $L111 = $L("
|
|
856
|
-
var $L112 = $L("
|
|
857
|
-
var $L113 = $L("
|
|
858
|
-
var $L114 = $L("
|
|
859
|
-
var $L115 = $L("
|
|
860
|
-
var $L116 = $L("
|
|
861
|
-
var $L117 = $L("
|
|
862
|
-
var $L118 = $L("
|
|
863
|
-
var $L119 = $L("
|
|
826
|
+
var $L80 = $L("import type");
|
|
827
|
+
var $L81 = $L("default");
|
|
828
|
+
var $L82 = $L(":=");
|
|
829
|
+
var $L83 = $L("/*");
|
|
830
|
+
var $L84 = $L("*/");
|
|
831
|
+
var $L85 = $L("###");
|
|
832
|
+
var $L86 = $L("as");
|
|
833
|
+
var $L87 = $L("async");
|
|
834
|
+
var $L88 = $L("await");
|
|
835
|
+
var $L89 = $L("case");
|
|
836
|
+
var $L90 = $L("catch");
|
|
837
|
+
var $L91 = $L("class");
|
|
838
|
+
var $L92 = $L("#{");
|
|
839
|
+
var $L93 = $L(":");
|
|
840
|
+
var $L94 = $L(".");
|
|
841
|
+
var $L95 = $L('"');
|
|
842
|
+
var $L96 = $L("else");
|
|
843
|
+
var $L97 = $L("export");
|
|
844
|
+
var $L98 = $L("for");
|
|
845
|
+
var $L99 = $L("from");
|
|
846
|
+
var $L100 = $L("function");
|
|
847
|
+
var $L101 = $L("get");
|
|
848
|
+
var $L102 = $L("set");
|
|
849
|
+
var $L103 = $L("if");
|
|
850
|
+
var $L104 = $L("let");
|
|
851
|
+
var $L105 = $L("const");
|
|
852
|
+
var $L106 = $L("loop");
|
|
853
|
+
var $L107 = $L("new");
|
|
854
|
+
var $L108 = $L("of");
|
|
855
|
+
var $L109 = $L("{");
|
|
856
|
+
var $L110 = $L("[");
|
|
857
|
+
var $L111 = $L("(");
|
|
858
|
+
var $L112 = $L("?");
|
|
859
|
+
var $L113 = $L("return");
|
|
860
|
+
var $L114 = $L("'");
|
|
861
|
+
var $L115 = $L("static");
|
|
862
|
+
var $L116 = $L("${");
|
|
863
|
+
var $L117 = $L("switch");
|
|
864
|
+
var $L118 = $L("target");
|
|
865
|
+
var $L119 = $L("throw");
|
|
864
866
|
var $L120 = $L('"""');
|
|
865
867
|
var $L121 = $L("'''");
|
|
866
868
|
var $L122 = $L("```");
|
|
@@ -942,7 +944,11 @@ var Civet = (() => {
|
|
|
942
944
|
return TopLevelStatement$0(state);
|
|
943
945
|
}
|
|
944
946
|
}
|
|
945
|
-
var Expression$0 = $S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression)))
|
|
947
|
+
var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
|
|
948
|
+
if ($2.length == 0)
|
|
949
|
+
return $1;
|
|
950
|
+
return $0;
|
|
951
|
+
});
|
|
946
952
|
function Expression(state) {
|
|
947
953
|
if (state.verbose)
|
|
948
954
|
console.log("ENTER:", "Expression");
|
|
@@ -1023,7 +1029,9 @@ var Civet = (() => {
|
|
|
1023
1029
|
var spacing = $2;
|
|
1024
1030
|
return module.insertTrimmingSpace(spacing, "(");
|
|
1025
1031
|
});
|
|
1026
|
-
var ApplicationStart$1 = $S(IndentedApplicationAllowed, $Y(NestedObjectLiteral), InsertOpenParen)
|
|
1032
|
+
var ApplicationStart$1 = $T($S(IndentedApplicationAllowed, $Y(NestedObjectLiteral), InsertOpenParen), function(value) {
|
|
1033
|
+
return value[2];
|
|
1034
|
+
});
|
|
1027
1035
|
function ApplicationStart(state) {
|
|
1028
1036
|
if (state.tokenize) {
|
|
1029
1037
|
return $TOKEN("ApplicationStart", state, ApplicationStart$0(state) || ApplicationStart$1(state));
|
|
@@ -1055,7 +1063,11 @@ var Civet = (() => {
|
|
|
1055
1063
|
return CommaExpression$0(state);
|
|
1056
1064
|
}
|
|
1057
1065
|
}
|
|
1058
|
-
var BinaryOpExpression$0 = $S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression)))
|
|
1066
|
+
var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression))), function($skip, $loc, $0, $1, $2) {
|
|
1067
|
+
if ($2.length)
|
|
1068
|
+
return $0;
|
|
1069
|
+
return $1;
|
|
1070
|
+
});
|
|
1059
1071
|
function BinaryOpExpression(state) {
|
|
1060
1072
|
if (state.verbose)
|
|
1061
1073
|
console.log("ENTER:", "BinaryOpExpression");
|
|
@@ -1095,7 +1107,11 @@ var Civet = (() => {
|
|
|
1095
1107
|
}
|
|
1096
1108
|
}
|
|
1097
1109
|
var UpdateExpression$0 = $S(UpdateExpressionSymbol, UnaryExpression);
|
|
1098
|
-
var UpdateExpression$1 = $S(LeftHandSideExpression, $E(UpdateExpressionSymbol))
|
|
1110
|
+
var UpdateExpression$1 = $TS($S(LeftHandSideExpression, $E(UpdateExpressionSymbol)), function($skip, $loc, $0, $1, $2) {
|
|
1111
|
+
if ($2)
|
|
1112
|
+
return $0;
|
|
1113
|
+
return $1;
|
|
1114
|
+
});
|
|
1099
1115
|
function UpdateExpression(state) {
|
|
1100
1116
|
if (state.tokenize) {
|
|
1101
1117
|
return $TOKEN("UpdateExpression", state, UpdateExpression$0(state) || UpdateExpression$1(state));
|
|
@@ -1115,7 +1131,11 @@ var Civet = (() => {
|
|
|
1115
1131
|
return UpdateExpressionSymbol$0(state);
|
|
1116
1132
|
}
|
|
1117
1133
|
}
|
|
1118
|
-
var AssignmentExpression$0 = $S($Q(TrailingComment), AssignmentExpressionRest)
|
|
1134
|
+
var AssignmentExpression$0 = $TS($S($Q(TrailingComment), AssignmentExpressionRest), function($skip, $loc, $0, $1, $2) {
|
|
1135
|
+
if ($1.length)
|
|
1136
|
+
return $0;
|
|
1137
|
+
return $2;
|
|
1138
|
+
});
|
|
1119
1139
|
var AssignmentExpression$1 = $S(__, AssignmentExpressionRest);
|
|
1120
1140
|
function AssignmentExpression(state) {
|
|
1121
1141
|
if (state.tokenize) {
|
|
@@ -1127,7 +1147,9 @@ var Civet = (() => {
|
|
|
1127
1147
|
var AssignmentExpressionRest$0 = AwaitExpression;
|
|
1128
1148
|
var AssignmentExpressionRest$1 = YieldExpression;
|
|
1129
1149
|
var AssignmentExpressionRest$2 = $S($E($S(Async, __)), ArrowFunction);
|
|
1130
|
-
var AssignmentExpressionRest$3 = $S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression)
|
|
1150
|
+
var AssignmentExpressionRest$3 = $T($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function(value) {
|
|
1151
|
+
return { "type": "AssignmentExpression", "children": value };
|
|
1152
|
+
});
|
|
1131
1153
|
var AssignmentExpressionRest$4 = ConditionalExpression;
|
|
1132
1154
|
function AssignmentExpressionRest(state) {
|
|
1133
1155
|
if (state.tokenize) {
|
|
@@ -1192,7 +1214,11 @@ var Civet = (() => {
|
|
|
1192
1214
|
return FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state) || FatArrowBody$4(state);
|
|
1193
1215
|
}
|
|
1194
1216
|
}
|
|
1195
|
-
var ConditionalExpression$0 = $S(ShortCircuitExpression, $E($S(__, QuestionMark, AssignmentExpression, __, Colon, AssignmentExpression)))
|
|
1217
|
+
var ConditionalExpression$0 = $TS($S(ShortCircuitExpression, $E($S(__, QuestionMark, AssignmentExpression, __, Colon, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
|
|
1218
|
+
if ($2)
|
|
1219
|
+
return $0;
|
|
1220
|
+
return $1;
|
|
1221
|
+
});
|
|
1196
1222
|
function ConditionalExpression(state) {
|
|
1197
1223
|
if (state.verbose)
|
|
1198
1224
|
console.log("ENTER:", "ConditionalExpression");
|
|
@@ -1381,7 +1407,11 @@ var Civet = (() => {
|
|
|
1381
1407
|
}
|
|
1382
1408
|
var CallExpression$0 = $S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
|
|
1383
1409
|
var CallExpression$1 = $S($EXPECT($L11, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
|
|
1384
|
-
var CallExpression$2 = $S(MemberExpression, $Q(CallExpressionRest))
|
|
1410
|
+
var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
|
|
1411
|
+
if ($2.length)
|
|
1412
|
+
return $0;
|
|
1413
|
+
return $1;
|
|
1414
|
+
});
|
|
1385
1415
|
function CallExpression(state) {
|
|
1386
1416
|
if (state.tokenize) {
|
|
1387
1417
|
return $TOKEN("CallExpression", state, CallExpression$0(state) || CallExpression$1(state) || CallExpression$2(state));
|
|
@@ -1431,7 +1461,11 @@ var Civet = (() => {
|
|
|
1431
1461
|
return AdditionalReservedWords$0(state);
|
|
1432
1462
|
}
|
|
1433
1463
|
}
|
|
1434
|
-
var MemberExpression$0 = $S(PrimaryExpression, $Q(MemberExpressionRest))
|
|
1464
|
+
var MemberExpression$0 = $TS($S(PrimaryExpression, $Q(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
|
|
1465
|
+
if ($2.length)
|
|
1466
|
+
return $0;
|
|
1467
|
+
return $1;
|
|
1468
|
+
});
|
|
1435
1469
|
var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
|
|
1436
1470
|
var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
|
|
1437
1471
|
function MemberExpression(state) {
|
|
@@ -1667,7 +1701,9 @@ var Civet = (() => {
|
|
|
1667
1701
|
}
|
|
1668
1702
|
}
|
|
1669
1703
|
var FunctionExpression$0 = ThinArrowFunction;
|
|
1670
|
-
var FunctionExpression$1 = $S($E($S(Async, __)), Function, $E($S(Star, __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix), BracedBlock)
|
|
1704
|
+
var FunctionExpression$1 = $T($S($E($S(Async, __)), Function, $E($S(Star, __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix), BracedBlock), function(value) {
|
|
1705
|
+
return { "type": "FunctionExpression", "children": value };
|
|
1706
|
+
});
|
|
1671
1707
|
function FunctionExpression(state) {
|
|
1672
1708
|
if (state.tokenize) {
|
|
1673
1709
|
return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
|
|
@@ -1675,17 +1711,23 @@ var Civet = (() => {
|
|
|
1675
1711
|
return FunctionExpression$0(state) || FunctionExpression$1(state);
|
|
1676
1712
|
}
|
|
1677
1713
|
}
|
|
1678
|
-
var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix),
|
|
1714
|
+
var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), $Q(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
|
|
1679
1715
|
var params = $1;
|
|
1680
1716
|
var suffix = $2;
|
|
1681
1717
|
var arrow = $4;
|
|
1682
1718
|
var block = $5;
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1719
|
+
if (module.implicitReturns && suffix?.children[3] !== "void") {
|
|
1720
|
+
block = module.addImplicitReturns(block);
|
|
1721
|
+
}
|
|
1722
|
+
return {
|
|
1723
|
+
type: "FunctionExpression",
|
|
1724
|
+
children: [
|
|
1725
|
+
{ $loc: arrow.$loc, token: "function" },
|
|
1726
|
+
params,
|
|
1727
|
+
suffix,
|
|
1728
|
+
block
|
|
1729
|
+
]
|
|
1730
|
+
};
|
|
1689
1731
|
});
|
|
1690
1732
|
function ThinArrowFunction(state) {
|
|
1691
1733
|
if (state.verbose)
|
|
@@ -1708,8 +1750,14 @@ var Civet = (() => {
|
|
|
1708
1750
|
return Arrow$0(state);
|
|
1709
1751
|
}
|
|
1710
1752
|
}
|
|
1711
|
-
var Block$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace)
|
|
1712
|
-
|
|
1753
|
+
var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
|
|
1754
|
+
var exps = value[3];
|
|
1755
|
+
return { "type": "BlockStatement", "expressions": exps, "children": value };
|
|
1756
|
+
});
|
|
1757
|
+
var Block$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
|
|
1758
|
+
var exps = value[2];
|
|
1759
|
+
return { "type": "BlockStatement", "expressions": exps, "children": value };
|
|
1760
|
+
});
|
|
1713
1761
|
var Block$2 = Statement;
|
|
1714
1762
|
var Block$3 = $S(__, Statement);
|
|
1715
1763
|
function Block(state) {
|
|
@@ -1720,7 +1768,9 @@ var Civet = (() => {
|
|
|
1720
1768
|
}
|
|
1721
1769
|
}
|
|
1722
1770
|
var BracedOrEmptyBlock$0 = BracedBlock;
|
|
1723
|
-
var BracedOrEmptyBlock$1 = $S(InsertOpenBrace, InsertCloseBrace)
|
|
1771
|
+
var BracedOrEmptyBlock$1 = $T($S(InsertOpenBrace, InsertCloseBrace), function(value) {
|
|
1772
|
+
return { "type": "BlockStatement", "expressions": [], "children": value };
|
|
1773
|
+
});
|
|
1724
1774
|
function BracedOrEmptyBlock(state) {
|
|
1725
1775
|
if (state.tokenize) {
|
|
1726
1776
|
return $TOKEN("BracedOrEmptyBlock", state, BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state));
|
|
@@ -1728,9 +1778,22 @@ var Civet = (() => {
|
|
|
1728
1778
|
return BracedOrEmptyBlock$0(state) || BracedOrEmptyBlock$1(state);
|
|
1729
1779
|
}
|
|
1730
1780
|
}
|
|
1731
|
-
var BracedBlock$0 = $S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace)
|
|
1732
|
-
|
|
1733
|
-
|
|
1781
|
+
var BracedBlock$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
|
|
1782
|
+
var exps = value[3];
|
|
1783
|
+
return { "type": "BlockStatement", "expressions": exps, "children": value };
|
|
1784
|
+
});
|
|
1785
|
+
var BracedBlock$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
|
|
1786
|
+
var exps = value[2];
|
|
1787
|
+
return { "type": "BlockStatement", "expressions": exps, "children": value };
|
|
1788
|
+
});
|
|
1789
|
+
var BracedBlock$2 = $TS($S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
|
|
1790
|
+
var s = $4;
|
|
1791
|
+
return {
|
|
1792
|
+
type: "BlockStatement",
|
|
1793
|
+
expressions: [s],
|
|
1794
|
+
children: $0
|
|
1795
|
+
};
|
|
1796
|
+
});
|
|
1734
1797
|
function BracedBlock(state) {
|
|
1735
1798
|
if (state.tokenize) {
|
|
1736
1799
|
return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state));
|
|
@@ -1825,7 +1888,9 @@ var Civet = (() => {
|
|
|
1825
1888
|
return Comma$0(state);
|
|
1826
1889
|
}
|
|
1827
1890
|
}
|
|
1828
|
-
var Identifier$0 = $S($N(ReservedWord), IdentifierName)
|
|
1891
|
+
var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
|
|
1892
|
+
return value[1];
|
|
1893
|
+
});
|
|
1829
1894
|
function Identifier(state) {
|
|
1830
1895
|
if (state.verbose)
|
|
1831
1896
|
console.log("ENTER:", "Identifier");
|
|
@@ -2213,8 +2278,7 @@ var Civet = (() => {
|
|
|
2213
2278
|
var l = $3;
|
|
2214
2279
|
if (cond)
|
|
2215
2280
|
return [cond, statement, { $loc: l.$loc, token: "}" }];
|
|
2216
|
-
|
|
2217
|
-
return $0;
|
|
2281
|
+
return statement;
|
|
2218
2282
|
});
|
|
2219
2283
|
function StatementListItem(state) {
|
|
2220
2284
|
if (state.verbose)
|
|
@@ -2269,7 +2333,9 @@ var Civet = (() => {
|
|
|
2269
2333
|
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);
|
|
2270
2334
|
}
|
|
2271
2335
|
}
|
|
2272
|
-
var EmptyStatement$0 = $S($Q(TrailingComment), $Y($EXPECT($L72, fail, 'EmptyStatement ";"')))
|
|
2336
|
+
var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L72, fail, 'EmptyStatement ";"'))), function(value) {
|
|
2337
|
+
return { "type": "EmptyStatement", "children": value[0] };
|
|
2338
|
+
});
|
|
2273
2339
|
function EmptyStatement(state) {
|
|
2274
2340
|
if (state.verbose)
|
|
2275
2341
|
console.log("ENTER:", "EmptyStatement");
|
|
@@ -2289,7 +2355,9 @@ var Civet = (() => {
|
|
|
2289
2355
|
return BlockStatement$0(state);
|
|
2290
2356
|
}
|
|
2291
2357
|
}
|
|
2292
|
-
var IfStatement$0 = $S(If, Condition, Block, $E($S(__, Else, Block)))
|
|
2358
|
+
var IfStatement$0 = $T($S(If, Condition, Block, $E($S(__, Else, Block))), function(value) {
|
|
2359
|
+
return { "type": "IfStatement", "children": value };
|
|
2360
|
+
});
|
|
2293
2361
|
var IfStatement$1 = $TS($S(Unless, Condition, Block), function($skip, $loc, $0, $1, $2, $3) {
|
|
2294
2362
|
var kind = $1;
|
|
2295
2363
|
var condition = $2;
|
|
@@ -2303,7 +2371,10 @@ var Civet = (() => {
|
|
|
2303
2371
|
c.token = "))";
|
|
2304
2372
|
});
|
|
2305
2373
|
kind.token = "if";
|
|
2306
|
-
return
|
|
2374
|
+
return {
|
|
2375
|
+
type: "IfStatement",
|
|
2376
|
+
children: [kind, condition, block]
|
|
2377
|
+
};
|
|
2307
2378
|
});
|
|
2308
2379
|
function IfStatement(state) {
|
|
2309
2380
|
if (state.tokenize) {
|
|
@@ -2315,8 +2386,12 @@ var Civet = (() => {
|
|
|
2315
2386
|
var IterationStatement$0 = LoopStatement;
|
|
2316
2387
|
var IterationStatement$1 = DoWhileStatement;
|
|
2317
2388
|
var IterationStatement$2 = WhileStatement;
|
|
2318
|
-
var IterationStatement$3 = ForStatement
|
|
2319
|
-
|
|
2389
|
+
var IterationStatement$3 = $T($S(ForStatement), function(value) {
|
|
2390
|
+
return { "type": "IterationStatement", "children": value };
|
|
2391
|
+
});
|
|
2392
|
+
var IterationStatement$4 = $T($S(ForInOfStatement), function(value) {
|
|
2393
|
+
return { "type": "IterationStatement", "children": value };
|
|
2394
|
+
});
|
|
2320
2395
|
function IterationStatement(state) {
|
|
2321
2396
|
if (state.tokenize) {
|
|
2322
2397
|
return $TOKEN("IterationStatement", state, IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state));
|
|
@@ -2324,7 +2399,9 @@ var Civet = (() => {
|
|
|
2324
2399
|
return IterationStatement$0(state) || IterationStatement$1(state) || IterationStatement$2(state) || IterationStatement$3(state) || IterationStatement$4(state);
|
|
2325
2400
|
}
|
|
2326
2401
|
}
|
|
2327
|
-
var LoopStatement$0 = $S(Loop, Block)
|
|
2402
|
+
var LoopStatement$0 = $T($S(Loop, Block), function(value) {
|
|
2403
|
+
return { "type": "IterationStatement", "children": value };
|
|
2404
|
+
});
|
|
2328
2405
|
function LoopStatement(state) {
|
|
2329
2406
|
if (state.verbose)
|
|
2330
2407
|
console.log("ENTER:", "LoopStatement");
|
|
@@ -2334,7 +2411,9 @@ var Civet = (() => {
|
|
|
2334
2411
|
return LoopStatement$0(state);
|
|
2335
2412
|
}
|
|
2336
2413
|
}
|
|
2337
|
-
var DoWhileStatement$0 = $S($EXPECT($L73, fail, 'DoWhileStatement "do"'), NonIdContinue, Block, __, WhileClause)
|
|
2414
|
+
var DoWhileStatement$0 = $T($S($EXPECT($L73, fail, 'DoWhileStatement "do"'), NonIdContinue, Block, __, WhileClause), function(value) {
|
|
2415
|
+
return { "type": "IterationStatement", "children": value };
|
|
2416
|
+
});
|
|
2338
2417
|
function DoWhileStatement(state) {
|
|
2339
2418
|
if (state.verbose)
|
|
2340
2419
|
console.log("ENTER:", "DoWhileStatement");
|
|
@@ -2344,7 +2423,9 @@ var Civet = (() => {
|
|
|
2344
2423
|
return DoWhileStatement$0(state);
|
|
2345
2424
|
}
|
|
2346
2425
|
}
|
|
2347
|
-
var WhileStatement$0 = $S(WhileClause, Block)
|
|
2426
|
+
var WhileStatement$0 = $T($S(WhileClause, Block), function(value) {
|
|
2427
|
+
return { "type": "IterationStatement", "children": value };
|
|
2428
|
+
});
|
|
2348
2429
|
function WhileStatement(state) {
|
|
2349
2430
|
if (state.verbose)
|
|
2350
2431
|
console.log("ENTER:", "WhileStatement");
|
|
@@ -2413,7 +2494,9 @@ var Civet = (() => {
|
|
|
2413
2494
|
return ForBinding$0(state) || ForBinding$1(state);
|
|
2414
2495
|
}
|
|
2415
2496
|
}
|
|
2416
|
-
var SwitchStatement$0 = $S(Switch, Condition, CaseBlock)
|
|
2497
|
+
var SwitchStatement$0 = $T($S(Switch, Condition, CaseBlock), function(value) {
|
|
2498
|
+
return { "type": "SwitchStatement", "children": value };
|
|
2499
|
+
});
|
|
2417
2500
|
function SwitchStatement(state) {
|
|
2418
2501
|
if (state.verbose)
|
|
2419
2502
|
console.log("ENTER:", "SwitchStatement");
|
|
@@ -2423,8 +2506,24 @@ var Civet = (() => {
|
|
|
2423
2506
|
return SwitchStatement$0(state);
|
|
2424
2507
|
}
|
|
2425
2508
|
}
|
|
2426
|
-
var CaseBlock$0 = $S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace)
|
|
2427
|
-
|
|
2509
|
+
var CaseBlock$0 = $TS($S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
|
|
2510
|
+
var clauses = $4;
|
|
2511
|
+
$0.splice(2, 1);
|
|
2512
|
+
return {
|
|
2513
|
+
type: "CaseBlock",
|
|
2514
|
+
clauses,
|
|
2515
|
+
children: $0
|
|
2516
|
+
};
|
|
2517
|
+
});
|
|
2518
|
+
var CaseBlock$1 = $TS($S($Y(EOS), InsertOpenBrace, NestedCaseClauses, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
|
|
2519
|
+
var clauses = $3;
|
|
2520
|
+
$0.shift();
|
|
2521
|
+
return {
|
|
2522
|
+
type: "CaseBlock",
|
|
2523
|
+
clauses,
|
|
2524
|
+
children: $0
|
|
2525
|
+
};
|
|
2526
|
+
});
|
|
2428
2527
|
function CaseBlock(state) {
|
|
2429
2528
|
if (state.tokenize) {
|
|
2430
2529
|
return $TOKEN("CaseBlock", state, CaseBlock$0(state) || CaseBlock$1(state));
|
|
@@ -2447,7 +2546,10 @@ var Civet = (() => {
|
|
|
2447
2546
|
return NestedCaseClauses$0(state);
|
|
2448
2547
|
}
|
|
2449
2548
|
}
|
|
2450
|
-
var NestedCaseClause$0 = $S(Nested, CaseClause)
|
|
2549
|
+
var NestedCaseClause$0 = $TS($S(Nested, CaseClause), function($skip, $loc, $0, $1, $2) {
|
|
2550
|
+
$2.children.unshift($1);
|
|
2551
|
+
return $2;
|
|
2552
|
+
});
|
|
2451
2553
|
function NestedCaseClause(state) {
|
|
2452
2554
|
if (state.verbose)
|
|
2453
2555
|
console.log("ENTER:", "NestedCaseClause");
|
|
@@ -2457,14 +2559,32 @@ var Civet = (() => {
|
|
|
2457
2559
|
return NestedCaseClause$0(state);
|
|
2458
2560
|
}
|
|
2459
2561
|
}
|
|
2460
|
-
var CaseClause$0 = $S(Case, CaseExpressionList, NestedBlockExpressions)
|
|
2461
|
-
|
|
2462
|
-
|
|
2562
|
+
var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockExpressions, NoExpressions)), function(value) {
|
|
2563
|
+
var exps = value[2];
|
|
2564
|
+
return { "type": "CaseClause", "expressions": exps, "children": value };
|
|
2565
|
+
});
|
|
2566
|
+
var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak), function(value) {
|
|
2567
|
+
var exps = value[2];
|
|
2568
|
+
return { "type": "WhenClause", "expressions": exps, "children": value };
|
|
2569
|
+
});
|
|
2570
|
+
var CaseClause$2 = $T($S(Default, ImpliedColon, $C(NestedBlockExpressions, NoExpressions)), function(value) {
|
|
2571
|
+
var exps = value[2];
|
|
2572
|
+
return { "type": "DefaultClause", "expressions": exps, "children": value };
|
|
2573
|
+
});
|
|
2574
|
+
var CaseClause$3 = $TS($S(Else, ImpliedColon, NestedBlockExpressions), function($skip, $loc, $0, $1, $2, $3) {
|
|
2575
|
+
var exps = $3;
|
|
2576
|
+
$1.token = "default";
|
|
2577
|
+
return {
|
|
2578
|
+
type: "DefaultClause",
|
|
2579
|
+
expressions: exps,
|
|
2580
|
+
children: $0
|
|
2581
|
+
};
|
|
2582
|
+
});
|
|
2463
2583
|
function CaseClause(state) {
|
|
2464
2584
|
if (state.tokenize) {
|
|
2465
|
-
return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state));
|
|
2585
|
+
return $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state));
|
|
2466
2586
|
} else {
|
|
2467
|
-
return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state);
|
|
2587
|
+
return CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state);
|
|
2468
2588
|
}
|
|
2469
2589
|
}
|
|
2470
2590
|
var CaseExpressionList$0 = $TS($S($S($Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon), $Q($S(__, Comma, ExpressionWithIndentedApplicationSuppressed, ImpliedColon))), function($skip, $loc, $0, $1, $2) {
|
|
@@ -2486,6 +2606,18 @@ var Civet = (() => {
|
|
|
2486
2606
|
return CaseExpressionList$0(state);
|
|
2487
2607
|
}
|
|
2488
2608
|
}
|
|
2609
|
+
var NoExpressions$0 = $T($EXPECT($L1, fail, 'NoExpressions ""'), function(value) {
|
|
2610
|
+
return [];
|
|
2611
|
+
});
|
|
2612
|
+
function NoExpressions(state) {
|
|
2613
|
+
if (state.verbose)
|
|
2614
|
+
console.log("ENTER:", "NoExpressions");
|
|
2615
|
+
if (state.tokenize) {
|
|
2616
|
+
return $TOKEN("NoExpressions", state, NoExpressions$0(state));
|
|
2617
|
+
} else {
|
|
2618
|
+
return NoExpressions$0(state);
|
|
2619
|
+
}
|
|
2620
|
+
}
|
|
2489
2621
|
var ImpliedColon$0 = $S(__, Colon);
|
|
2490
2622
|
var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
|
|
2491
2623
|
return { $loc, token: ":" };
|
|
@@ -2498,12 +2630,20 @@ var Civet = (() => {
|
|
|
2498
2630
|
}
|
|
2499
2631
|
}
|
|
2500
2632
|
var TryStatement$0 = $TS($S(Try, BracedBlock, $E(CatchClause), $E(Finally)), function($skip, $loc, $0, $1, $2, $3, $4) {
|
|
2633
|
+
var t = $1;
|
|
2634
|
+
var b = $2;
|
|
2501
2635
|
var c = $3;
|
|
2502
2636
|
var f = $4;
|
|
2503
2637
|
if (!c && !f) {
|
|
2504
|
-
return
|
|
2638
|
+
return {
|
|
2639
|
+
type: "TryStatement",
|
|
2640
|
+
children: [t, b, " catch(e) {}"]
|
|
2641
|
+
};
|
|
2505
2642
|
}
|
|
2506
|
-
return
|
|
2643
|
+
return {
|
|
2644
|
+
type: "TryStatement",
|
|
2645
|
+
children: [t, b, c, f]
|
|
2646
|
+
};
|
|
2507
2647
|
});
|
|
2508
2648
|
function TryStatement(state) {
|
|
2509
2649
|
if (state.verbose)
|
|
@@ -2525,7 +2665,7 @@ var Civet = (() => {
|
|
|
2525
2665
|
}
|
|
2526
2666
|
}
|
|
2527
2667
|
var CatchBind$0 = $S(__, OpenParen, __, CatchParameter, __, CloseParen);
|
|
2528
|
-
var CatchBind$1 = $S(
|
|
2668
|
+
var CatchBind$1 = $S($N(EOS), $Q(TrailingComment), InsertOpenParen, CatchParameter, InsertCloseParen);
|
|
2529
2669
|
function CatchBind(state) {
|
|
2530
2670
|
if (state.tokenize) {
|
|
2531
2671
|
return $TOKEN("CatchBind", state, CatchBind$0(state) || CatchBind$1(state));
|
|
@@ -2599,11 +2739,21 @@ var Civet = (() => {
|
|
|
2599
2739
|
return ExpressionStatement$0(state);
|
|
2600
2740
|
}
|
|
2601
2741
|
}
|
|
2602
|
-
var KeywordStatement$0 = $S($EXPECT($L77, fail, 'KeywordStatement "break"'), NonIdContinue)
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
var KeywordStatement$
|
|
2606
|
-
|
|
2742
|
+
var KeywordStatement$0 = $T($S($EXPECT($L77, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
|
|
2743
|
+
return { "type": "BreakStatement", "children": value };
|
|
2744
|
+
});
|
|
2745
|
+
var KeywordStatement$1 = $T($S($EXPECT($L78, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
|
|
2746
|
+
return { "type": "ContinueStatement", "children": value };
|
|
2747
|
+
});
|
|
2748
|
+
var KeywordStatement$2 = $T($S($EXPECT($L79, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
|
|
2749
|
+
return { "type": "DebuggerStatement", "children": value };
|
|
2750
|
+
});
|
|
2751
|
+
var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
|
|
2752
|
+
return { "type": "ReturnStatement", "children": value };
|
|
2753
|
+
});
|
|
2754
|
+
var KeywordStatement$4 = $T($S(Throw, Expression), function(value) {
|
|
2755
|
+
return { "type": "ThrowStatement", "children": value };
|
|
2756
|
+
});
|
|
2607
2757
|
function KeywordStatement(state) {
|
|
2608
2758
|
if (state.tokenize) {
|
|
2609
2759
|
return $TOKEN("KeywordStatement", state, KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state));
|
|
@@ -2620,7 +2770,7 @@ var Civet = (() => {
|
|
|
2620
2770
|
return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
|
|
2621
2771
|
}
|
|
2622
2772
|
}
|
|
2623
|
-
var ImportDeclaration$0 = $T($S($EXPECT($
|
|
2773
|
+
var ImportDeclaration$0 = $T($S($EXPECT($L80, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
|
|
2624
2774
|
return { "ts": true, "children": value };
|
|
2625
2775
|
});
|
|
2626
2776
|
var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
|
|
@@ -2758,7 +2908,7 @@ var Civet = (() => {
|
|
|
2758
2908
|
return ImportedBinding$0(state);
|
|
2759
2909
|
}
|
|
2760
2910
|
}
|
|
2761
|
-
var ExportDeclaration$0 = $S(Export, __, $EXPECT($
|
|
2911
|
+
var ExportDeclaration$0 = $S(Export, __, $EXPECT($L81, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
|
|
2762
2912
|
var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
|
|
2763
2913
|
var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
|
|
2764
2914
|
function ExportDeclaration(state) {
|
|
@@ -2818,7 +2968,9 @@ var Civet = (() => {
|
|
|
2818
2968
|
return HoistableDeclaration$0(state);
|
|
2819
2969
|
}
|
|
2820
2970
|
}
|
|
2821
|
-
var LexicalDeclaration$0 = $S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding)))
|
|
2971
|
+
var LexicalDeclaration$0 = $T($S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding))), function(value) {
|
|
2972
|
+
return { "type": "VariableDeclaration", "children": value };
|
|
2973
|
+
});
|
|
2822
2974
|
var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
|
|
2823
2975
|
var c = $1;
|
|
2824
2976
|
var ca = $5;
|
|
@@ -2826,7 +2978,10 @@ var Civet = (() => {
|
|
|
2826
2978
|
pos: ca.$loc.pos - 1,
|
|
2827
2979
|
length: ca.$loc.length + 1
|
|
2828
2980
|
};
|
|
2829
|
-
return
|
|
2981
|
+
return {
|
|
2982
|
+
type: "VariableDeclaration",
|
|
2983
|
+
children: $0
|
|
2984
|
+
};
|
|
2830
2985
|
});
|
|
2831
2986
|
function LexicalDeclaration(state) {
|
|
2832
2987
|
if (state.tokenize) {
|
|
@@ -2835,7 +2990,7 @@ var Civet = (() => {
|
|
|
2835
2990
|
return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
|
|
2836
2991
|
}
|
|
2837
2992
|
}
|
|
2838
|
-
var ConstAssignment$0 = $TV($EXPECT($
|
|
2993
|
+
var ConstAssignment$0 = $TV($EXPECT($L82, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
|
|
2839
2994
|
return { $loc, token: "=" };
|
|
2840
2995
|
});
|
|
2841
2996
|
function ConstAssignment(state) {
|
|
@@ -2866,7 +3021,9 @@ var Civet = (() => {
|
|
|
2866
3021
|
return Initializer$0(state);
|
|
2867
3022
|
}
|
|
2868
3023
|
}
|
|
2869
|
-
var VariableStatement$0 = $S(Var, __, VariableDeclarationList)
|
|
3024
|
+
var VariableStatement$0 = $T($S(Var, __, VariableDeclarationList), function(value) {
|
|
3025
|
+
return { "type": "VariableDeclaration", "children": value };
|
|
3026
|
+
});
|
|
2870
3027
|
function VariableStatement(state) {
|
|
2871
3028
|
if (state.verbose)
|
|
2872
3029
|
console.log("ENTER:", "VariableStatement");
|
|
@@ -3247,7 +3404,7 @@ var Civet = (() => {
|
|
|
3247
3404
|
return MultiLineComment$0(state) || MultiLineComment$1(state);
|
|
3248
3405
|
}
|
|
3249
3406
|
}
|
|
3250
|
-
var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($
|
|
3407
|
+
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) {
|
|
3251
3408
|
return { $loc, token: $1 };
|
|
3252
3409
|
});
|
|
3253
3410
|
function JSMultiLineComment(state) {
|
|
@@ -3271,7 +3428,7 @@ var Civet = (() => {
|
|
|
3271
3428
|
return CoffeeSingleLineComment$0(state);
|
|
3272
3429
|
}
|
|
3273
3430
|
}
|
|
3274
|
-
var CoffeeMultiLineComment$0 = $TS($S($EXPECT($
|
|
3431
|
+
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) {
|
|
3275
3432
|
return { $loc, token: `/*${$2}*/` };
|
|
3276
3433
|
});
|
|
3277
3434
|
function CoffeeMultiLineComment(state) {
|
|
@@ -3283,7 +3440,7 @@ var Civet = (() => {
|
|
|
3283
3440
|
return CoffeeMultiLineComment$0(state);
|
|
3284
3441
|
}
|
|
3285
3442
|
}
|
|
3286
|
-
var InlineComment$0 = $TV($TEXT($S($EXPECT($
|
|
3443
|
+
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) {
|
|
3287
3444
|
return { $loc, token: $1 };
|
|
3288
3445
|
});
|
|
3289
3446
|
function InlineComment(state) {
|
|
@@ -3392,7 +3549,7 @@ var Civet = (() => {
|
|
|
3392
3549
|
return Loc$0(state);
|
|
3393
3550
|
}
|
|
3394
3551
|
}
|
|
3395
|
-
var As$0 = $TS($S($EXPECT($
|
|
3552
|
+
var As$0 = $TS($S($EXPECT($L86, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3396
3553
|
return { $loc, token: $1 };
|
|
3397
3554
|
});
|
|
3398
3555
|
function As(state) {
|
|
@@ -3404,7 +3561,7 @@ var Civet = (() => {
|
|
|
3404
3561
|
return As$0(state);
|
|
3405
3562
|
}
|
|
3406
3563
|
}
|
|
3407
|
-
var Async$0 = $TV($EXPECT($
|
|
3564
|
+
var Async$0 = $TV($EXPECT($L87, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
|
|
3408
3565
|
return { $loc, token: $1 };
|
|
3409
3566
|
});
|
|
3410
3567
|
function Async(state) {
|
|
@@ -3416,7 +3573,7 @@ var Civet = (() => {
|
|
|
3416
3573
|
return Async$0(state);
|
|
3417
3574
|
}
|
|
3418
3575
|
}
|
|
3419
|
-
var Await$0 = $TS($S($EXPECT($
|
|
3576
|
+
var Await$0 = $TS($S($EXPECT($L88, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3420
3577
|
return { $loc, token: $1 };
|
|
3421
3578
|
});
|
|
3422
3579
|
function Await(state) {
|
|
@@ -3428,7 +3585,7 @@ var Civet = (() => {
|
|
|
3428
3585
|
return Await$0(state);
|
|
3429
3586
|
}
|
|
3430
3587
|
}
|
|
3431
|
-
var Case$0 = $TS($S($EXPECT($
|
|
3588
|
+
var Case$0 = $TS($S($EXPECT($L89, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3432
3589
|
return { $loc, token: $1 };
|
|
3433
3590
|
});
|
|
3434
3591
|
function Case(state) {
|
|
@@ -3440,7 +3597,7 @@ var Civet = (() => {
|
|
|
3440
3597
|
return Case$0(state);
|
|
3441
3598
|
}
|
|
3442
3599
|
}
|
|
3443
|
-
var Catch$0 = $TV($EXPECT($
|
|
3600
|
+
var Catch$0 = $TV($EXPECT($L90, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
|
|
3444
3601
|
return { $loc, token: $1 };
|
|
3445
3602
|
});
|
|
3446
3603
|
function Catch(state) {
|
|
@@ -3452,7 +3609,7 @@ var Civet = (() => {
|
|
|
3452
3609
|
return Catch$0(state);
|
|
3453
3610
|
}
|
|
3454
3611
|
}
|
|
3455
|
-
var Class$0 = $TV($EXPECT($
|
|
3612
|
+
var Class$0 = $TV($EXPECT($L91, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
|
|
3456
3613
|
return { $loc, token: $1 };
|
|
3457
3614
|
});
|
|
3458
3615
|
function Class(state) {
|
|
@@ -3500,7 +3657,7 @@ var Civet = (() => {
|
|
|
3500
3657
|
return CloseParen$0(state);
|
|
3501
3658
|
}
|
|
3502
3659
|
}
|
|
3503
|
-
var CoffeeSubstitutionStart$0 = $TV($EXPECT($
|
|
3660
|
+
var CoffeeSubstitutionStart$0 = $TV($EXPECT($L92, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
|
|
3504
3661
|
return { $loc, token: "${" };
|
|
3505
3662
|
});
|
|
3506
3663
|
function CoffeeSubstitutionStart(state) {
|
|
@@ -3512,7 +3669,7 @@ var Civet = (() => {
|
|
|
3512
3669
|
return CoffeeSubstitutionStart$0(state);
|
|
3513
3670
|
}
|
|
3514
3671
|
}
|
|
3515
|
-
var Colon$0 = $TV($EXPECT($
|
|
3672
|
+
var Colon$0 = $TV($EXPECT($L93, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
|
|
3516
3673
|
return { $loc, token: $1 };
|
|
3517
3674
|
});
|
|
3518
3675
|
function Colon(state) {
|
|
@@ -3536,7 +3693,7 @@ var Civet = (() => {
|
|
|
3536
3693
|
return ConstructorShorthand$0(state);
|
|
3537
3694
|
}
|
|
3538
3695
|
}
|
|
3539
|
-
var Default$0 = $TS($S($EXPECT($
|
|
3696
|
+
var Default$0 = $TS($S($EXPECT($L81, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3540
3697
|
return { $loc, token: $1 };
|
|
3541
3698
|
});
|
|
3542
3699
|
function Default(state) {
|
|
@@ -3548,7 +3705,7 @@ var Civet = (() => {
|
|
|
3548
3705
|
return Default$0(state);
|
|
3549
3706
|
}
|
|
3550
3707
|
}
|
|
3551
|
-
var Dot$0 = $TV($EXPECT($
|
|
3708
|
+
var Dot$0 = $TV($EXPECT($L94, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
|
|
3552
3709
|
return { $loc, token: $1 };
|
|
3553
3710
|
});
|
|
3554
3711
|
function Dot(state) {
|
|
@@ -3560,7 +3717,7 @@ var Civet = (() => {
|
|
|
3560
3717
|
return Dot$0(state);
|
|
3561
3718
|
}
|
|
3562
3719
|
}
|
|
3563
|
-
var DoubleQuote$0 = $TV($EXPECT($
|
|
3720
|
+
var DoubleQuote$0 = $TV($EXPECT($L95, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
|
|
3564
3721
|
return { $loc, token: $1 };
|
|
3565
3722
|
});
|
|
3566
3723
|
function DoubleQuote(state) {
|
|
@@ -3572,7 +3729,7 @@ var Civet = (() => {
|
|
|
3572
3729
|
return DoubleQuote$0(state);
|
|
3573
3730
|
}
|
|
3574
3731
|
}
|
|
3575
|
-
var Else$0 = $TV($EXPECT($
|
|
3732
|
+
var Else$0 = $TV($EXPECT($L96, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
|
|
3576
3733
|
return { $loc, token: $1 };
|
|
3577
3734
|
});
|
|
3578
3735
|
function Else(state) {
|
|
@@ -3596,7 +3753,7 @@ var Civet = (() => {
|
|
|
3596
3753
|
return Equals$0(state);
|
|
3597
3754
|
}
|
|
3598
3755
|
}
|
|
3599
|
-
var Export$0 = $TS($S($EXPECT($
|
|
3756
|
+
var Export$0 = $TS($S($EXPECT($L97, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3600
3757
|
return { $loc, token: $1 };
|
|
3601
3758
|
});
|
|
3602
3759
|
function Export(state) {
|
|
@@ -3608,7 +3765,7 @@ var Civet = (() => {
|
|
|
3608
3765
|
return Export$0(state);
|
|
3609
3766
|
}
|
|
3610
3767
|
}
|
|
3611
|
-
var For$0 = $TS($S($EXPECT($
|
|
3768
|
+
var For$0 = $TS($S($EXPECT($L98, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3612
3769
|
return { $loc, token: $1 };
|
|
3613
3770
|
});
|
|
3614
3771
|
function For(state) {
|
|
@@ -3620,7 +3777,7 @@ var Civet = (() => {
|
|
|
3620
3777
|
return For$0(state);
|
|
3621
3778
|
}
|
|
3622
3779
|
}
|
|
3623
|
-
var From$0 = $TS($S($EXPECT($
|
|
3780
|
+
var From$0 = $TS($S($EXPECT($L99, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3624
3781
|
return { $loc, token: $1 };
|
|
3625
3782
|
});
|
|
3626
3783
|
function From(state) {
|
|
@@ -3632,7 +3789,7 @@ var Civet = (() => {
|
|
|
3632
3789
|
return From$0(state);
|
|
3633
3790
|
}
|
|
3634
3791
|
}
|
|
3635
|
-
var Function$0 = $TV($EXPECT($
|
|
3792
|
+
var Function$0 = $TV($EXPECT($L100, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
|
|
3636
3793
|
return { $loc, token: $1 };
|
|
3637
3794
|
});
|
|
3638
3795
|
function Function(state) {
|
|
@@ -3644,7 +3801,7 @@ var Civet = (() => {
|
|
|
3644
3801
|
return Function$0(state);
|
|
3645
3802
|
}
|
|
3646
3803
|
}
|
|
3647
|
-
var GetOrSet$0 = $TS($S($C($EXPECT($
|
|
3804
|
+
var GetOrSet$0 = $TS($S($C($EXPECT($L101, fail, 'GetOrSet "get"'), $EXPECT($L102, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3648
3805
|
return { $loc, token: $1 };
|
|
3649
3806
|
});
|
|
3650
3807
|
function GetOrSet(state) {
|
|
@@ -3656,7 +3813,7 @@ var Civet = (() => {
|
|
|
3656
3813
|
return GetOrSet$0(state);
|
|
3657
3814
|
}
|
|
3658
3815
|
}
|
|
3659
|
-
var If$0 = $TV($EXPECT($
|
|
3816
|
+
var If$0 = $TV($EXPECT($L103, fail, 'If "if"'), function($skip, $loc, $0, $1) {
|
|
3660
3817
|
return { $loc, token: $1 };
|
|
3661
3818
|
});
|
|
3662
3819
|
function If(state) {
|
|
@@ -3692,7 +3849,7 @@ var Civet = (() => {
|
|
|
3692
3849
|
return In$0(state);
|
|
3693
3850
|
}
|
|
3694
3851
|
}
|
|
3695
|
-
var LetOrConst$0 = $TV($C($EXPECT($
|
|
3852
|
+
var LetOrConst$0 = $TV($C($EXPECT($L104, fail, 'LetOrConst "let"'), $EXPECT($L105, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
|
|
3696
3853
|
return { $loc, token: $1 };
|
|
3697
3854
|
});
|
|
3698
3855
|
function LetOrConst(state) {
|
|
@@ -3704,7 +3861,7 @@ var Civet = (() => {
|
|
|
3704
3861
|
return LetOrConst$0(state);
|
|
3705
3862
|
}
|
|
3706
3863
|
}
|
|
3707
|
-
var Loop$0 = $TS($S($EXPECT($
|
|
3864
|
+
var Loop$0 = $TS($S($EXPECT($L106, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3708
3865
|
return { $loc, token: "while(true)" };
|
|
3709
3866
|
});
|
|
3710
3867
|
function Loop(state) {
|
|
@@ -3716,7 +3873,7 @@ var Civet = (() => {
|
|
|
3716
3873
|
return Loop$0(state);
|
|
3717
3874
|
}
|
|
3718
3875
|
}
|
|
3719
|
-
var New$0 = $TV($EXPECT($
|
|
3876
|
+
var New$0 = $TV($EXPECT($L107, fail, 'New "new"'), function($skip, $loc, $0, $1) {
|
|
3720
3877
|
return { $loc, token: $1 };
|
|
3721
3878
|
});
|
|
3722
3879
|
function New(state) {
|
|
@@ -3728,7 +3885,7 @@ var Civet = (() => {
|
|
|
3728
3885
|
return New$0(state);
|
|
3729
3886
|
}
|
|
3730
3887
|
}
|
|
3731
|
-
var Of$0 = $TV($EXPECT($
|
|
3888
|
+
var Of$0 = $TV($EXPECT($L108, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
|
|
3732
3889
|
return { $loc, token: $1 };
|
|
3733
3890
|
});
|
|
3734
3891
|
function Of(state) {
|
|
@@ -3740,7 +3897,7 @@ var Civet = (() => {
|
|
|
3740
3897
|
return Of$0(state);
|
|
3741
3898
|
}
|
|
3742
3899
|
}
|
|
3743
|
-
var OpenBrace$0 = $TV($EXPECT($
|
|
3900
|
+
var OpenBrace$0 = $TV($EXPECT($L109, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
|
|
3744
3901
|
return { $loc, token: $1 };
|
|
3745
3902
|
});
|
|
3746
3903
|
function OpenBrace(state) {
|
|
@@ -3752,7 +3909,7 @@ var Civet = (() => {
|
|
|
3752
3909
|
return OpenBrace$0(state);
|
|
3753
3910
|
}
|
|
3754
3911
|
}
|
|
3755
|
-
var OpenBracket$0 = $TV($EXPECT($
|
|
3912
|
+
var OpenBracket$0 = $TV($EXPECT($L110, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
|
|
3756
3913
|
return { $loc, token: $1 };
|
|
3757
3914
|
});
|
|
3758
3915
|
function OpenBracket(state) {
|
|
@@ -3764,7 +3921,7 @@ var Civet = (() => {
|
|
|
3764
3921
|
return OpenBracket$0(state);
|
|
3765
3922
|
}
|
|
3766
3923
|
}
|
|
3767
|
-
var OpenParen$0 = $TV($EXPECT($
|
|
3924
|
+
var OpenParen$0 = $TV($EXPECT($L111, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
|
|
3768
3925
|
return { $loc, token: $1 };
|
|
3769
3926
|
});
|
|
3770
3927
|
function OpenParen(state) {
|
|
@@ -3776,7 +3933,7 @@ var Civet = (() => {
|
|
|
3776
3933
|
return OpenParen$0(state);
|
|
3777
3934
|
}
|
|
3778
3935
|
}
|
|
3779
|
-
var QuestionMark$0 = $TV($EXPECT($
|
|
3936
|
+
var QuestionMark$0 = $TV($EXPECT($L112, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
|
|
3780
3937
|
return { $loc, token: $1 };
|
|
3781
3938
|
});
|
|
3782
3939
|
function QuestionMark(state) {
|
|
@@ -3788,7 +3945,7 @@ var Civet = (() => {
|
|
|
3788
3945
|
return QuestionMark$0(state);
|
|
3789
3946
|
}
|
|
3790
3947
|
}
|
|
3791
|
-
var Return$0 = $TS($S($EXPECT($
|
|
3948
|
+
var Return$0 = $TS($S($EXPECT($L113, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3792
3949
|
return { $loc, token: $1 };
|
|
3793
3950
|
});
|
|
3794
3951
|
function Return(state) {
|
|
@@ -3812,7 +3969,7 @@ var Civet = (() => {
|
|
|
3812
3969
|
return Semicolon$0(state);
|
|
3813
3970
|
}
|
|
3814
3971
|
}
|
|
3815
|
-
var SingleQuote$0 = $TV($EXPECT($
|
|
3972
|
+
var SingleQuote$0 = $TV($EXPECT($L114, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
|
|
3816
3973
|
return { $loc, token: $1 };
|
|
3817
3974
|
});
|
|
3818
3975
|
function SingleQuote(state) {
|
|
@@ -3836,10 +3993,10 @@ var Civet = (() => {
|
|
|
3836
3993
|
return Star$0(state);
|
|
3837
3994
|
}
|
|
3838
3995
|
}
|
|
3839
|
-
var Static$0 = $TV($EXPECT($
|
|
3996
|
+
var Static$0 = $TV($EXPECT($L115, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
|
|
3840
3997
|
return { $loc, token: $1 };
|
|
3841
3998
|
});
|
|
3842
|
-
var Static$1 = $TS($S($EXPECT($L9, fail, 'Static "@"'), $N($EXPECT($
|
|
3999
|
+
var Static$1 = $TS($S($EXPECT($L9, fail, 'Static "@"'), $N($EXPECT($L111, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
|
|
3843
4000
|
return { $loc, token: "static " };
|
|
3844
4001
|
});
|
|
3845
4002
|
function Static(state) {
|
|
@@ -3849,7 +4006,7 @@ var Civet = (() => {
|
|
|
3849
4006
|
return Static$0(state) || Static$1(state);
|
|
3850
4007
|
}
|
|
3851
4008
|
}
|
|
3852
|
-
var SubstitutionStart$0 = $TV($EXPECT($
|
|
4009
|
+
var SubstitutionStart$0 = $TV($EXPECT($L116, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
|
|
3853
4010
|
return { $loc, token: $1 };
|
|
3854
4011
|
});
|
|
3855
4012
|
function SubstitutionStart(state) {
|
|
@@ -3861,7 +4018,7 @@ var Civet = (() => {
|
|
|
3861
4018
|
return SubstitutionStart$0(state);
|
|
3862
4019
|
}
|
|
3863
4020
|
}
|
|
3864
|
-
var Switch$0 = $TS($S($EXPECT($
|
|
4021
|
+
var Switch$0 = $TS($S($EXPECT($L117, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
3865
4022
|
return { $loc, token: $1 };
|
|
3866
4023
|
});
|
|
3867
4024
|
function Switch(state) {
|
|
@@ -3873,7 +4030,7 @@ var Civet = (() => {
|
|
|
3873
4030
|
return Switch$0(state);
|
|
3874
4031
|
}
|
|
3875
4032
|
}
|
|
3876
|
-
var Target$0 = $TV($EXPECT($
|
|
4033
|
+
var Target$0 = $TV($EXPECT($L118, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
|
|
3877
4034
|
return { $loc, token: $1 };
|
|
3878
4035
|
});
|
|
3879
4036
|
function Target(state) {
|
|
@@ -3885,6 +4042,18 @@ var Civet = (() => {
|
|
|
3885
4042
|
return Target$0(state);
|
|
3886
4043
|
}
|
|
3887
4044
|
}
|
|
4045
|
+
var Throw$0 = $TS($S($EXPECT($L119, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
|
|
4046
|
+
return { $loc, token: $1 };
|
|
4047
|
+
});
|
|
4048
|
+
function Throw(state) {
|
|
4049
|
+
if (state.verbose)
|
|
4050
|
+
console.log("ENTER:", "Throw");
|
|
4051
|
+
if (state.tokenize) {
|
|
4052
|
+
return $TOKEN("Throw", state, Throw$0(state));
|
|
4053
|
+
} else {
|
|
4054
|
+
return Throw$0(state);
|
|
4055
|
+
}
|
|
4056
|
+
}
|
|
3888
4057
|
var TripleDoubleQuote$0 = $TV($EXPECT($L120, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
|
|
3889
4058
|
return { $loc, token: "`" };
|
|
3890
4059
|
});
|
|
@@ -4722,6 +4891,7 @@ var Civet = (() => {
|
|
|
4722
4891
|
module.indentLevels = [0];
|
|
4723
4892
|
module.verbose = false;
|
|
4724
4893
|
module.coffeeCompat = false;
|
|
4894
|
+
module.implicitReturns = true;
|
|
4725
4895
|
});
|
|
4726
4896
|
function Reset(state) {
|
|
4727
4897
|
if (state.verbose)
|
|
@@ -4738,6 +4908,81 @@ var Civet = (() => {
|
|
|
4738
4908
|
const compatRe = /use coffee-compat/;
|
|
4739
4909
|
module.coffeeCompat = directives.some((d) => d[1].token?.match(compatRe));
|
|
4740
4910
|
}
|
|
4911
|
+
function hasReturnStatement(node) {
|
|
4912
|
+
if (!node)
|
|
4913
|
+
return false;
|
|
4914
|
+
if (Array.isArray(node))
|
|
4915
|
+
return node.some(hasReturnStatement);
|
|
4916
|
+
if (node.type === "ReturnStatement")
|
|
4917
|
+
return true;
|
|
4918
|
+
if (node.type === "FunctionExpression")
|
|
4919
|
+
return false;
|
|
4920
|
+
if (node.children)
|
|
4921
|
+
return hasReturnStatement(node.children);
|
|
4922
|
+
return false;
|
|
4923
|
+
}
|
|
4924
|
+
function insertReturn(node) {
|
|
4925
|
+
if (!node)
|
|
4926
|
+
return;
|
|
4927
|
+
switch (node.type) {
|
|
4928
|
+
case "AssignmentExpression":
|
|
4929
|
+
node.children.unshift("return ");
|
|
4930
|
+
return;
|
|
4931
|
+
case "BlockStatement":
|
|
4932
|
+
insertReturn(node.expressions[node.expressions.length - 1]);
|
|
4933
|
+
return;
|
|
4934
|
+
case "CaseBlock":
|
|
4935
|
+
node.clauses.forEach((clause) => {
|
|
4936
|
+
insertReturn(clause);
|
|
4937
|
+
});
|
|
4938
|
+
return;
|
|
4939
|
+
case "CaseClause":
|
|
4940
|
+
return;
|
|
4941
|
+
case "WhenClause":
|
|
4942
|
+
node.children.pop();
|
|
4943
|
+
insertReturn(node.expressions[node.expressions.length - 1]);
|
|
4944
|
+
return;
|
|
4945
|
+
case "DefaultClause":
|
|
4946
|
+
insertReturn(node.expressions[node.expressions.length - 1]);
|
|
4947
|
+
return;
|
|
4948
|
+
}
|
|
4949
|
+
if (!Array.isArray(node))
|
|
4950
|
+
return;
|
|
4951
|
+
const [, exp] = node;
|
|
4952
|
+
debugger;
|
|
4953
|
+
if (!exp)
|
|
4954
|
+
return;
|
|
4955
|
+
switch (exp.type) {
|
|
4956
|
+
case "BreakStatement":
|
|
4957
|
+
case "ContinueStatement":
|
|
4958
|
+
case "DebuggerStatement":
|
|
4959
|
+
case "EmptyStatement":
|
|
4960
|
+
case "IterationStatement":
|
|
4961
|
+
case "ThrowStatement":
|
|
4962
|
+
case "VariableDeclaration":
|
|
4963
|
+
return;
|
|
4964
|
+
case "IfStatement":
|
|
4965
|
+
debugger;
|
|
4966
|
+
insertReturn(exp.children[2]);
|
|
4967
|
+
if (exp.children[3])
|
|
4968
|
+
insertReturn(exp.children[3][2]);
|
|
4969
|
+
return;
|
|
4970
|
+
case "SwitchStatement":
|
|
4971
|
+
insertReturn(exp.children[2]);
|
|
4972
|
+
return;
|
|
4973
|
+
case "TryStatement":
|
|
4974
|
+
insertReturn(exp.children[1]);
|
|
4975
|
+
insertReturn(exp.children[2][3]);
|
|
4976
|
+
return;
|
|
4977
|
+
}
|
|
4978
|
+
node.splice(1, 0, "return ");
|
|
4979
|
+
}
|
|
4980
|
+
module.addImplicitReturns = function(block) {
|
|
4981
|
+
if (hasReturnStatement(block))
|
|
4982
|
+
return block;
|
|
4983
|
+
insertReturn(block);
|
|
4984
|
+
return block;
|
|
4985
|
+
};
|
|
4741
4986
|
module.parsePosition = function() {
|
|
4742
4987
|
let s = Error().stack.split(/\n at /);
|
|
4743
4988
|
s.shift();
|
|
@@ -4745,6 +4990,25 @@ var Civet = (() => {
|
|
|
4745
4990
|
s = s.slice(1, s.indexOf("Program") + 1);
|
|
4746
4991
|
return s;
|
|
4747
4992
|
};
|
|
4993
|
+
module.prune = function(node) {
|
|
4994
|
+
if (node === null || node === void 0)
|
|
4995
|
+
return;
|
|
4996
|
+
if (node.length === 0)
|
|
4997
|
+
return;
|
|
4998
|
+
if (Array.isArray(node)) {
|
|
4999
|
+
const a = node.map((n) => module.prune(n)).filter((n) => !!n);
|
|
5000
|
+
if (a.length > 1)
|
|
5001
|
+
return a;
|
|
5002
|
+
if (a.length === 1)
|
|
5003
|
+
return a[0];
|
|
5004
|
+
return;
|
|
5005
|
+
}
|
|
5006
|
+
if (node.children != null) {
|
|
5007
|
+
node.children = module.prune(node.children);
|
|
5008
|
+
return node;
|
|
5009
|
+
}
|
|
5010
|
+
return node;
|
|
5011
|
+
};
|
|
4748
5012
|
module.insertTrimmingSpace = function(spacing, c) {
|
|
4749
5013
|
let target = spacing;
|
|
4750
5014
|
while (Array.isArray(target)) {
|
|
@@ -5014,7 +5278,7 @@ var Civet = (() => {
|
|
|
5014
5278
|
return;
|
|
5015
5279
|
}
|
|
5016
5280
|
if (node.children != null) {
|
|
5017
|
-
node.children = prune(node.children);
|
|
5281
|
+
node.children = prune(node.children) || [];
|
|
5018
5282
|
return node;
|
|
5019
5283
|
}
|
|
5020
5284
|
return node;
|