@danielx/civet 0.5.55 → 0.5.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -522,6 +522,8 @@ ${input.slice(result.pos)}
522
522
  BindingPropertyList,
523
523
  ArrayBindingPattern,
524
524
  ArrayBindingPatternContent,
525
+ BindingElementList,
526
+ NestedBindingElementList,
525
527
  Elision,
526
528
  NestedBindingProperties,
527
529
  NestedBindingPropertyList,
@@ -532,9 +534,26 @@ ${input.slice(result.pos)}
532
534
  BindingElement,
533
535
  BindingRestElement,
534
536
  EmptyBindingPattern,
537
+ MatchingPattern,
538
+ ObjectMatchingPattern,
539
+ ObjectMatchingPatternContent,
540
+ NestedMatchingProperties,
541
+ MatchingPropertyList,
542
+ NestedMatchingPropertyList,
543
+ MatchingProperty,
544
+ MatchingRestProperty,
545
+ ArrayMatchingPattern,
546
+ ArrayMatchingPatternContent,
547
+ NestedMatchingElements,
548
+ MatchingElementList,
549
+ NestedMatchingElementList,
550
+ MatchingElement,
551
+ MatchingRestElement,
535
552
  FunctionDeclaration,
536
553
  FunctionSignature,
537
554
  FunctionExpression,
555
+ OperatorDeclaration,
556
+ OperatorSignature,
538
557
  AmpersandBlockRHS,
539
558
  AmpersandUnaryPrefix,
540
559
  ThinArrowFunction,
@@ -545,6 +564,7 @@ ${input.slice(result.pos)}
545
564
  ThenClause,
546
565
  BracedOrEmptyBlock,
547
566
  EmptyBlock,
567
+ EmptyBareBlock,
548
568
  BracedBlock,
549
569
  SingleLineStatements,
550
570
  BracedContent,
@@ -555,7 +575,6 @@ ${input.slice(result.pos)}
555
575
  NullLiteral,
556
576
  BooleanLiteral,
557
577
  CoffeeScriptBooleanLiteral,
558
- Comma,
559
578
  Identifier,
560
579
  IdentifierName,
561
580
  IdentifierReference,
@@ -642,7 +661,6 @@ ${input.slice(result.pos)}
642
661
  NestedCaseClause,
643
662
  CaseClause,
644
663
  CaseExpressionList,
645
- NoExpressions,
646
664
  ImpliedColon,
647
665
  TryStatement,
648
666
  TryExpression,
@@ -705,7 +723,6 @@ ${input.slice(result.pos)}
705
723
  IntegerLiteralKind,
706
724
  DecimalIntegerLiteral,
707
725
  StringLiteral,
708
- BasicStringLiteral,
709
726
  DoubleStringCharacters,
710
727
  SingleStringCharacters,
711
728
  TripleDoubleStringCharacters,
@@ -767,6 +784,7 @@ ${input.slice(result.pos)}
767
784
  CloseParen,
768
785
  CoffeeSubstitutionStart,
769
786
  Colon,
787
+ Comma,
770
788
  ConstructorShorthand,
771
789
  Declare,
772
790
  Default,
@@ -797,6 +815,7 @@ ${input.slice(result.pos)}
797
815
  OpenBrace,
798
816
  OpenBracket,
799
817
  OpenParen,
818
+ Operator,
800
819
  Public,
801
820
  Private,
802
821
  Protected,
@@ -844,6 +863,7 @@ ${input.slice(result.pos)}
844
863
  JSXIdentifierName,
845
864
  JSXAttributes,
846
865
  JSXAttribute,
866
+ JSXAttributeSpace,
847
867
  JSXShorthandString,
848
868
  JSXAttributeName,
849
869
  JSXAttributeInitializer,
@@ -937,6 +957,8 @@ ${input.slice(result.pos)}
937
957
  InsertOpenBrace,
938
958
  InsertInlineOpenBrace,
939
959
  InsertCloseBrace,
960
+ InsertOpenBracket,
961
+ InsertCloseBracket,
940
962
  InsertComma,
941
963
  InsertConst,
942
964
  InsertLet,
@@ -972,33 +994,33 @@ ${input.slice(result.pos)}
972
994
  Nested
973
995
  });
974
996
  var $L0 = $L("/ ");
975
- var $L1 = $L("?");
976
- var $L2 = $L(".");
977
- var $L3 = $L("++");
978
- var $L4 = $L("--");
979
- var $L5 = $L("=>");
980
- var $L6 = $L(" ");
981
- var $L7 = $L("implements");
982
- var $L8 = $L("<:");
983
- var $L9 = $L("#");
984
- var $L10 = $L("super");
985
- var $L11 = $L("import");
986
- var $L12 = $L("!");
987
- var $L13 = $L("-");
988
- var $L14 = $L("super[");
989
- var $L15 = $L("import.meta");
990
- var $L16 = $L("");
991
- var $L17 = $L(")");
992
- var $L18 = $L("->");
993
- var $L19 = $L("}");
994
- var $L20 = $L("null");
995
- var $L21 = $L("true");
996
- var $L22 = $L("false");
997
- var $L23 = $L("yes");
998
- var $L24 = $L("on");
999
- var $L25 = $L("no");
1000
- var $L26 = $L("off");
1001
- var $L27 = $L(",");
997
+ var $L1 = $L("(");
998
+ var $L2 = $L("?");
999
+ var $L3 = $L(".");
1000
+ var $L4 = $L("++");
1001
+ var $L5 = $L("--");
1002
+ var $L6 = $L("=>");
1003
+ var $L7 = $L(" ");
1004
+ var $L8 = $L("implements");
1005
+ var $L9 = $L("<:");
1006
+ var $L10 = $L("#");
1007
+ var $L11 = $L("super");
1008
+ var $L12 = $L("import");
1009
+ var $L13 = $L("!");
1010
+ var $L14 = $L("-");
1011
+ var $L15 = $L("super[");
1012
+ var $L16 = $L("import.meta");
1013
+ var $L17 = $L("");
1014
+ var $L18 = $L(")");
1015
+ var $L19 = $L("->");
1016
+ var $L20 = $L("}");
1017
+ var $L21 = $L("null");
1018
+ var $L22 = $L("true");
1019
+ var $L23 = $L("false");
1020
+ var $L24 = $L("yes");
1021
+ var $L25 = $L("on");
1022
+ var $L26 = $L("no");
1023
+ var $L27 = $L("off");
1002
1024
  var $L28 = $L("=");
1003
1025
  var $L29 = $L(">");
1004
1026
  var $L30 = $L("]");
@@ -1021,49 +1043,49 @@ ${input.slice(result.pos)}
1021
1043
  var $L47 = $L("?=");
1022
1044
  var $L48 = $L("and=");
1023
1045
  var $L49 = $L("or=");
1024
- var $L50 = $L("**");
1025
- var $L51 = $L("*");
1026
- var $L52 = $L("/");
1027
- var $L53 = $L("%%");
1028
- var $L54 = $L("%");
1029
- var $L55 = $L("+");
1030
- var $L56 = $L("<=");
1031
- var $L57 = $L(">=");
1032
- var $L58 = $L("<?");
1033
- var $L59 = $L("<<");
1034
- var $L60 = $L(">>>");
1035
- var $L61 = $L(">>");
1036
- var $L62 = $L("!==");
1037
- var $L63 = $L("!=");
1038
- var $L64 = $L("isnt");
1039
- var $L65 = $L("===");
1040
- var $L66 = $L("==");
1041
- var $L67 = $L("and");
1042
- var $L68 = $L("&&");
1043
- var $L69 = $L("of");
1044
- var $L70 = $L("or");
1045
- var $L71 = $L("||");
1046
- var $L72 = $L("??");
1047
- var $L73 = $L("instanceof");
1048
- var $L74 = $L("not");
1049
- var $L75 = $L("in");
1050
- var $L76 = $L("is");
1051
- var $L77 = $L("&");
1052
- var $L78 = $L("^");
1053
- var $L79 = $L("|");
1054
- var $L80 = $L(";");
1055
- var $L81 = $L("own");
1056
- var $L82 = $L("finally");
1057
- var $L83 = $L("break");
1058
- var $L84 = $L("continue");
1059
- var $L85 = $L("debugger");
1060
- var $L86 = $L("assert");
1061
- var $L87 = $L(":=");
1062
- var $L88 = $L(".=");
1063
- var $L89 = $L("/*");
1064
- var $L90 = $L("*/");
1065
- var $L91 = $L("\\");
1066
- var $L92 = $L("(");
1046
+ var $L50 = $L("not");
1047
+ var $L51 = $L("**");
1048
+ var $L52 = $L("*");
1049
+ var $L53 = $L("/");
1050
+ var $L54 = $L("%%");
1051
+ var $L55 = $L("%");
1052
+ var $L56 = $L("+");
1053
+ var $L57 = $L("<=");
1054
+ var $L58 = $L(">=");
1055
+ var $L59 = $L("<?");
1056
+ var $L60 = $L("!<?");
1057
+ var $L61 = $L("<<");
1058
+ var $L62 = $L(">>>");
1059
+ var $L63 = $L(">>");
1060
+ var $L64 = $L("!==");
1061
+ var $L65 = $L("!=");
1062
+ var $L66 = $L("isnt");
1063
+ var $L67 = $L("===");
1064
+ var $L68 = $L("==");
1065
+ var $L69 = $L("and");
1066
+ var $L70 = $L("&&");
1067
+ var $L71 = $L("of");
1068
+ var $L72 = $L("or");
1069
+ var $L73 = $L("||");
1070
+ var $L74 = $L("??");
1071
+ var $L75 = $L("instanceof");
1072
+ var $L76 = $L("in");
1073
+ var $L77 = $L("is");
1074
+ var $L78 = $L("&");
1075
+ var $L79 = $L("^");
1076
+ var $L80 = $L("|");
1077
+ var $L81 = $L(";");
1078
+ var $L82 = $L("own");
1079
+ var $L83 = $L("finally");
1080
+ var $L84 = $L("break");
1081
+ var $L85 = $L("continue");
1082
+ var $L86 = $L("debugger");
1083
+ var $L87 = $L("assert");
1084
+ var $L88 = $L(":=");
1085
+ var $L89 = $L(".=");
1086
+ var $L90 = $L("/*");
1087
+ var $L91 = $L("*/");
1088
+ var $L92 = $L("\\");
1067
1089
  var $L93 = $L("[");
1068
1090
  var $L94 = $L("`");
1069
1091
  var $L95 = $L("abstract");
@@ -1077,71 +1099,73 @@ ${input.slice(result.pos)}
1077
1099
  var $L103 = $L("catch");
1078
1100
  var $L104 = $L("class");
1079
1101
  var $L105 = $L("#{");
1080
- var $L106 = $L("declare");
1081
- var $L107 = $L("default");
1082
- var $L108 = $L("delete");
1083
- var $L109 = $L("do");
1084
- var $L110 = $L("..");
1085
- var $L111 = $L("...");
1086
- var $L112 = $L("::");
1087
- var $L113 = $L('"');
1088
- var $L114 = $L("else");
1089
- var $L115 = $L("export");
1090
- var $L116 = $L("extends");
1091
- var $L117 = $L("for");
1092
- var $L118 = $L("from");
1093
- var $L119 = $L("function");
1094
- var $L120 = $L("get");
1095
- var $L121 = $L("set");
1096
- var $L122 = $L("if");
1097
- var $L123 = $L("let");
1098
- var $L124 = $L("const");
1099
- var $L125 = $L("loop");
1100
- var $L126 = $L("new");
1101
- var $L127 = $L("<");
1102
- var $L128 = $L("{");
1103
- var $L129 = $L("public");
1104
- var $L130 = $L("private");
1105
- var $L131 = $L("protected");
1106
- var $L132 = $L("|>");
1107
- var $L133 = $L("readonly");
1108
- var $L134 = $L("return");
1109
- var $L135 = $L("satisfies");
1110
- var $L136 = $L("'");
1111
- var $L137 = $L("static");
1112
- var $L138 = $L("${");
1113
- var $L139 = $L("switch");
1114
- var $L140 = $L("target");
1115
- var $L141 = $L("then");
1116
- var $L142 = $L("this");
1117
- var $L143 = $L("throw");
1118
- var $L144 = $L('"""');
1119
- var $L145 = $L("'''");
1120
- var $L146 = $L("///");
1121
- var $L147 = $L("```");
1122
- var $L148 = $L("try");
1123
- var $L149 = $L("typeof");
1124
- var $L150 = $L("unless");
1125
- var $L151 = $L("until");
1126
- var $L152 = $L("var");
1127
- var $L153 = $L("void");
1128
- var $L154 = $L("when");
1129
- var $L155 = $L("while");
1130
- var $L156 = $L("yield");
1131
- var $L157 = $L("/>");
1132
- var $L158 = $L("</");
1133
- var $L159 = $L("<>");
1134
- var $L160 = $L("</>");
1135
- var $L161 = $L("<!--");
1136
- var $L162 = $L("-->");
1137
- var $L163 = $L("type");
1138
- var $L164 = $L("interface");
1139
- var $L165 = $L("namespace");
1140
- var $L166 = $L("asserts");
1141
- var $L167 = $L("keyof");
1142
- var $L168 = $L("infer");
1143
- var $L169 = $L("[]");
1144
- var $L170 = $L("civet");
1102
+ var $L106 = $L(",");
1103
+ var $L107 = $L("declare");
1104
+ var $L108 = $L("default");
1105
+ var $L109 = $L("delete");
1106
+ var $L110 = $L("do");
1107
+ var $L111 = $L("..");
1108
+ var $L112 = $L("...");
1109
+ var $L113 = $L("::");
1110
+ var $L114 = $L('"');
1111
+ var $L115 = $L("else");
1112
+ var $L116 = $L("export");
1113
+ var $L117 = $L("extends");
1114
+ var $L118 = $L("for");
1115
+ var $L119 = $L("from");
1116
+ var $L120 = $L("function");
1117
+ var $L121 = $L("get");
1118
+ var $L122 = $L("set");
1119
+ var $L123 = $L("if");
1120
+ var $L124 = $L("let");
1121
+ var $L125 = $L("const");
1122
+ var $L126 = $L("loop");
1123
+ var $L127 = $L("new");
1124
+ var $L128 = $L("<");
1125
+ var $L129 = $L("{");
1126
+ var $L130 = $L("operator");
1127
+ var $L131 = $L("public");
1128
+ var $L132 = $L("private");
1129
+ var $L133 = $L("protected");
1130
+ var $L134 = $L("|>");
1131
+ var $L135 = $L("readonly");
1132
+ var $L136 = $L("return");
1133
+ var $L137 = $L("satisfies");
1134
+ var $L138 = $L("'");
1135
+ var $L139 = $L("static");
1136
+ var $L140 = $L("${");
1137
+ var $L141 = $L("switch");
1138
+ var $L142 = $L("target");
1139
+ var $L143 = $L("then");
1140
+ var $L144 = $L("this");
1141
+ var $L145 = $L("throw");
1142
+ var $L146 = $L('"""');
1143
+ var $L147 = $L("'''");
1144
+ var $L148 = $L("///");
1145
+ var $L149 = $L("```");
1146
+ var $L150 = $L("try");
1147
+ var $L151 = $L("typeof");
1148
+ var $L152 = $L("unless");
1149
+ var $L153 = $L("until");
1150
+ var $L154 = $L("var");
1151
+ var $L155 = $L("void");
1152
+ var $L156 = $L("when");
1153
+ var $L157 = $L("while");
1154
+ var $L158 = $L("yield");
1155
+ var $L159 = $L("/>");
1156
+ var $L160 = $L("</");
1157
+ var $L161 = $L("<>");
1158
+ var $L162 = $L("</>");
1159
+ var $L163 = $L("<!--");
1160
+ var $L164 = $L("-->");
1161
+ var $L165 = $L("type");
1162
+ var $L166 = $L("interface");
1163
+ var $L167 = $L("namespace");
1164
+ var $L168 = $L("asserts");
1165
+ var $L169 = $L("keyof");
1166
+ var $L170 = $L("infer");
1167
+ var $L171 = $L("[]");
1168
+ var $L172 = $L("civet");
1145
1169
  var $R0 = $R(new RegExp("(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1146
1170
  var $R1 = $R(new RegExp("[0-9]", "suy"));
1147
1171
  var $R2 = $R(new RegExp("[&]", "suy"));
@@ -1180,29 +1204,30 @@ ${input.slice(result.pos)}
1180
1204
  var $R35 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1181
1205
  var $R36 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1182
1206
  var $R37 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1183
- var $R38 = $R(new RegExp("(?:not)(?!\\p{ID_Continue})", "suy"));
1184
- var $R39 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1185
- var $R40 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1186
- var $R41 = $R(new RegExp(".", "suy"));
1187
- var $R42 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1207
+ var $R38 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1208
+ var $R39 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1209
+ var $R40 = $R(new RegExp(".", "suy"));
1210
+ var $R41 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1211
+ var $R42 = $R(new RegExp("[^]*?###", "suy"));
1188
1212
  var $R43 = $R(new RegExp("###(?!#)", "suy"));
1189
1213
  var $R44 = $R(new RegExp("[^\\r\\n]", "suy"));
1190
1214
  var $R45 = $R(new RegExp("[ \\t]+", "suy"));
1191
1215
  var $R46 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1192
1216
  var $R47 = $R(new RegExp("\\s", "suy"));
1193
1217
  var $R48 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1194
- var $R49 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
1195
- var $R50 = $R(new RegExp("[<>]", "suy"));
1196
- var $R51 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
1197
- var $R52 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1198
- var $R53 = $R(new RegExp("[+-]?", "suy"));
1199
- var $R54 = $R(new RegExp("[+-]", "suy"));
1200
- var $R55 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1201
- var $R56 = $R(new RegExp("[\\t ]*", "suy"));
1202
- var $R57 = $R(new RegExp("[\\s]*", "suy"));
1203
- var $R58 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1204
- var $R59 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1205
- var $R60 = $R(new RegExp("[ \\t]*", "suy"));
1218
+ var $R49 = $R(new RegExp("[\\s>]", "suy"));
1219
+ var $R50 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
1220
+ var $R51 = $R(new RegExp("[<>]", "suy"));
1221
+ var $R52 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
1222
+ var $R53 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1223
+ var $R54 = $R(new RegExp("[+-]?", "suy"));
1224
+ var $R55 = $R(new RegExp("[+-]", "suy"));
1225
+ var $R56 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1226
+ var $R57 = $R(new RegExp("[\\t ]*", "suy"));
1227
+ var $R58 = $R(new RegExp("[\\s]*", "suy"));
1228
+ var $R59 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1229
+ var $R60 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1230
+ var $R61 = $R(new RegExp("[ \\t]*", "suy"));
1206
1231
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1207
1232
  var statements = $4;
1208
1233
  module.processProgram(statements);
@@ -1499,7 +1524,7 @@ ${input.slice(result.pos)}
1499
1524
  }
1500
1525
  }
1501
1526
  var ApplicationStart$0 = $S(IndentedApplicationAllowed, $Y(NestedImplicitObjectLiteral));
1502
- var ApplicationStart$1 = $S($N(EOS), $Y($S($P(_), $N(ForbiddenImplicitCalls))));
1527
+ var ApplicationStart$1 = $S($N(EOS), $Y($S(_, $N(ForbiddenImplicitCalls))));
1503
1528
  function ApplicationStart(state) {
1504
1529
  let eventData;
1505
1530
  if (state.events) {
@@ -1525,6 +1550,11 @@ ${input.slice(result.pos)}
1525
1550
  var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R0, fail, "ForbiddenImplicitCalls /(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1526
1551
  var ForbiddenImplicitCalls$1 = $EXPECT($L0, fail, 'ForbiddenImplicitCalls "/ "');
1527
1552
  var ForbiddenImplicitCalls$2 = AtAt;
1553
+ var ForbiddenImplicitCalls$3 = $TS($S(Identifier, $N($EXPECT($L1, fail, 'ForbiddenImplicitCalls "("'))), function($skip, $loc, $0, $1, $2) {
1554
+ if (module.operators.has($1.name))
1555
+ return $1;
1556
+ return $skip;
1557
+ });
1528
1558
  function ForbiddenImplicitCalls(state) {
1529
1559
  let eventData;
1530
1560
  if (state.events) {
@@ -1536,12 +1566,12 @@ ${input.slice(result.pos)}
1536
1566
  }
1537
1567
  }
1538
1568
  if (state.tokenize) {
1539
- const result = $TOKEN("ForbiddenImplicitCalls", state, ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state));
1569
+ const result = $TOKEN("ForbiddenImplicitCalls", state, ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state) || ForbiddenImplicitCalls$3(state));
1540
1570
  if (state.events)
1541
1571
  state.events.exit?.("ForbiddenImplicitCalls", state, result, eventData);
1542
1572
  return result;
1543
1573
  } else {
1544
- const result = ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state);
1574
+ const result = ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state) || ForbiddenImplicitCalls$3(state);
1545
1575
  if (state.events)
1546
1576
  state.events.exit?.("ForbiddenImplicitCalls", state, result, eventData);
1547
1577
  return result;
@@ -1578,7 +1608,7 @@ ${input.slice(result.pos)}
1578
1608
  return result;
1579
1609
  }
1580
1610
  }
1581
- var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L1, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L2, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
1611
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L2, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L3, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
1582
1612
  return $1.concat($2);
1583
1613
  });
1584
1614
  function TrailingMemberExpressions(state) {
@@ -1972,7 +2002,7 @@ ${input.slice(result.pos)}
1972
2002
  return result;
1973
2003
  }
1974
2004
  }
1975
- var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L3, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L4, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
2005
+ var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L4, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L5, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1976
2006
  return { $loc, token: $1 };
1977
2007
  });
1978
2008
  function UpdateExpressionSymbol(state) {
@@ -2251,7 +2281,7 @@ ${input.slice(result.pos)}
2251
2281
  return result;
2252
2282
  }
2253
2283
  }
2254
- var FatArrow$0 = $TS($S(__, $EXPECT($L5, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2284
+ var FatArrow$0 = $TS($S(__, $EXPECT($L6, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2255
2285
  var ws = $1;
2256
2286
  if (!ws.length)
2257
2287
  return " =>";
@@ -2334,7 +2364,7 @@ ${input.slice(result.pos)}
2334
2364
  }
2335
2365
  }
2336
2366
  var TernaryRest$0 = NestedTernaryRest;
2337
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L6, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2367
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L7, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2338
2368
  return $0.slice(2);
2339
2369
  });
2340
2370
  function TernaryRest(state) {
@@ -2509,13 +2539,13 @@ ${input.slice(result.pos)}
2509
2539
  }
2510
2540
  var PrimaryExpression$0 = ObjectLiteral;
2511
2541
  var PrimaryExpression$1 = ThisLiteral;
2512
- var PrimaryExpression$2 = Literal;
2513
- var PrimaryExpression$3 = ArrayLiteral;
2514
- var PrimaryExpression$4 = IdentifierReference;
2515
- var PrimaryExpression$5 = FunctionExpression;
2516
- var PrimaryExpression$6 = ClassExpression;
2517
- var PrimaryExpression$7 = RegularExpressionLiteral;
2518
- var PrimaryExpression$8 = TemplateLiteral;
2542
+ var PrimaryExpression$2 = TemplateLiteral;
2543
+ var PrimaryExpression$3 = Literal;
2544
+ var PrimaryExpression$4 = ArrayLiteral;
2545
+ var PrimaryExpression$5 = IdentifierReference;
2546
+ var PrimaryExpression$6 = FunctionExpression;
2547
+ var PrimaryExpression$7 = ClassExpression;
2548
+ var PrimaryExpression$8 = RegularExpressionLiteral;
2519
2549
  var PrimaryExpression$9 = ParenthesizedExpression;
2520
2550
  var PrimaryExpression$10 = JSXImplicitFragment;
2521
2551
  function PrimaryExpression(state) {
@@ -2548,8 +2578,8 @@ ${input.slice(result.pos)}
2548
2578
  }
2549
2579
  return {
2550
2580
  type: "ParenthesizedExpression",
2551
- expression: exp,
2552
- children: $0
2581
+ children: $0,
2582
+ expression: exp
2553
2583
  };
2554
2584
  });
2555
2585
  function ParenthesizedExpression(state) {
@@ -2694,7 +2724,7 @@ ${input.slice(result.pos)}
2694
2724
  return result;
2695
2725
  }
2696
2726
  }
2697
- var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L6, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2727
+ var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L7, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2698
2728
  var l = $1;
2699
2729
  var ws = $2;
2700
2730
  var lt = $3;
@@ -2788,7 +2818,7 @@ ${input.slice(result.pos)}
2788
2818
  return result;
2789
2819
  }
2790
2820
  }
2791
- var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L6, fail, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2821
+ var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L7, fail, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2792
2822
  var l = $1;
2793
2823
  var ws = $2;
2794
2824
  var token = $3;
@@ -2798,7 +2828,7 @@ ${input.slice(result.pos)}
2798
2828
  }
2799
2829
  return { children };
2800
2830
  });
2801
- var ImplementsToken$1 = $TS($S(__, $EXPECT($L7, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
2831
+ var ImplementsToken$1 = $TS($S(__, $EXPECT($L8, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
2802
2832
  $2 = { $loc, token: $2 };
2803
2833
  return [$1, $2];
2804
2834
  });
@@ -2824,7 +2854,7 @@ ${input.slice(result.pos)}
2824
2854
  return result;
2825
2855
  }
2826
2856
  }
2827
- var ImplementsShorthand$0 = $TV($EXPECT($L8, fail, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
2857
+ var ImplementsShorthand$0 = $TV($EXPECT($L9, fail, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
2828
2858
  return { $loc, token: "implements " };
2829
2859
  });
2830
2860
  function ImplementsShorthand(state) {
@@ -3075,7 +3105,7 @@ ${input.slice(result.pos)}
3075
3105
  }
3076
3106
  }
3077
3107
  var ThisLiteral$0 = This;
3078
- var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L9, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3108
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L10, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3079
3109
  var at = $1;
3080
3110
  var id = $2;
3081
3111
  return [at, ".", id];
@@ -3129,7 +3159,7 @@ ${input.slice(result.pos)}
3129
3159
  return result;
3130
3160
  }
3131
3161
  }
3132
- var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
3162
+ var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L3, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
3133
3163
  if ($1.length)
3134
3164
  return $0;
3135
3165
  return $2;
@@ -3156,14 +3186,14 @@ ${input.slice(result.pos)}
3156
3186
  return result;
3157
3187
  }
3158
3188
  }
3159
- var CallExpression$0 = $TS($S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3189
+ var CallExpression$0 = $TS($S($EXPECT($L11, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3160
3190
  var rest = $3;
3161
3191
  return {
3162
3192
  type: "CallExpression",
3163
3193
  children: [$1, ...$2, ...rest.flat()]
3164
3194
  };
3165
3195
  });
3166
- var CallExpression$1 = $TS($S($EXPECT($L11, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3196
+ var CallExpression$1 = $TS($S($EXPECT($L12, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3167
3197
  var rest = $3;
3168
3198
  return {
3169
3199
  type: "CallExpression",
@@ -3262,7 +3292,7 @@ ${input.slice(result.pos)}
3262
3292
  return result;
3263
3293
  }
3264
3294
  }
3265
- var NonNullAssertion$0 = $T($EXPECT($L12, fail, 'NonNullAssertion "!"'), function(value) {
3295
+ var NonNullAssertion$0 = $T($EXPECT($L13, fail, 'NonNullAssertion "!"'), function(value) {
3266
3296
  return { "type": "NonNullAssertion", "ts": true, "children": value };
3267
3297
  });
3268
3298
  function NonNullAssertion(state) {
@@ -3292,7 +3322,7 @@ ${input.slice(result.pos)}
3292
3322
  if (rest.length) {
3293
3323
  return {
3294
3324
  type: "MemberExpression",
3295
- children: [$1].concat(rest)
3325
+ children: [$1].concat(rest.flat())
3296
3326
  };
3297
3327
  }
3298
3328
  return $1;
@@ -3326,7 +3356,7 @@ ${input.slice(result.pos)}
3326
3356
  if ($1.type === "Optional" && $2.type === "SliceExpression") {
3327
3357
  return [$1.children[0], $2];
3328
3358
  }
3329
- return $0;
3359
+ return $0.flat();
3330
3360
  }
3331
3361
  return $2;
3332
3362
  });
@@ -3372,35 +3402,42 @@ ${input.slice(result.pos)}
3372
3402
  ]
3373
3403
  };
3374
3404
  }
3375
- return $0;
3405
+ return {
3406
+ type: "Index",
3407
+ children: $0
3408
+ };
3376
3409
  });
3377
- var MemberBracketContent$1 = $TS($S(Dot, $C(StringLiteral, TemplateLiteral)), function($skip, $loc, $0, $1, $2) {
3410
+ var MemberBracketContent$1 = $TS($S(Dot, $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
3378
3411
  var dot = $1;
3379
3412
  var str = $2;
3380
- return [
3381
- { token: "[", $loc: dot.$loc },
3382
- str,
3383
- "]"
3384
- ];
3413
+ return {
3414
+ type: "Index",
3415
+ children: [
3416
+ { token: "[", $loc: dot.$loc },
3417
+ str,
3418
+ "]"
3419
+ ]
3420
+ };
3385
3421
  });
3386
- var MemberBracketContent$2 = $TS($S(Dot, $N($EXPECT($L2, fail, 'MemberBracketContent "."')), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
3422
+ var MemberBracketContent$2 = $TS($S(Dot, IntegerLiteral), function($skip, $loc, $0, $1, $2) {
3387
3423
  var dot = $1;
3388
- var num = $3;
3389
- return [
3390
- { token: "[", $loc: dot.$loc },
3391
- num,
3392
- "]"
3393
- ];
3424
+ var num = $2;
3425
+ return {
3426
+ type: "Index",
3427
+ children: [
3428
+ { token: "[", $loc: dot.$loc },
3429
+ num,
3430
+ "]"
3431
+ ]
3432
+ };
3394
3433
  });
3395
- var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L13, fail, 'MemberBracketContent "-"'), $N($EXPECT($L2, fail, 'MemberBracketContent "."')), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3, $4) {
3434
+ var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L14, fail, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
3396
3435
  var dot = $1;
3397
3436
  var neg = $2;
3398
- var num = $4;
3437
+ var num = $3;
3399
3438
  return [
3400
- { token: ".at(", $loc: dot.$loc },
3401
- neg,
3402
- num,
3403
- ")"
3439
+ { type: "PropertyAccess", children: [dot, "at"] },
3440
+ { type: "Call", children: ["(", neg, num, ")"] }
3404
3441
  ];
3405
3442
  });
3406
3443
  function MemberBracketContent(state) {
@@ -3536,8 +3573,8 @@ ${input.slice(result.pos)}
3536
3573
  return result;
3537
3574
  }
3538
3575
  }
3539
- var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
3540
- var SuperProperty$1 = $S($EXPECT($L10, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
3576
+ var SuperProperty$0 = $S($EXPECT($L15, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
3577
+ var SuperProperty$1 = $S($EXPECT($L11, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
3541
3578
  function SuperProperty(state) {
3542
3579
  let eventData;
3543
3580
  if (state.events) {
@@ -3561,7 +3598,7 @@ ${input.slice(result.pos)}
3561
3598
  }
3562
3599
  }
3563
3600
  var MetaProperty$0 = $S(New, Dot, Target);
3564
- var MetaProperty$1 = $TS($S($EXPECT($L15, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3601
+ var MetaProperty$1 = $TS($S($EXPECT($L16, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3565
3602
  return { $loc, token: $1 };
3566
3603
  });
3567
3604
  function MetaProperty(state) {
@@ -3587,7 +3624,7 @@ ${input.slice(result.pos)}
3587
3624
  }
3588
3625
  }
3589
3626
  var Parameters$0 = NonEmptyParameters;
3590
- var Parameters$1 = $TV($EXPECT($L16, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3627
+ var Parameters$1 = $TV($EXPECT($L17, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3591
3628
  return {
3592
3629
  type: "Parameters",
3593
3630
  children: [{ $loc, token: "()" }],
@@ -3748,7 +3785,7 @@ ${input.slice(result.pos)}
3748
3785
  }
3749
3786
  }
3750
3787
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
3751
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L17, fail, 'ParameterElementDelimiter ")"')));
3788
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L18, fail, 'ParameterElementDelimiter ")"')));
3752
3789
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
3753
3790
  return value[1];
3754
3791
  });
@@ -3938,10 +3975,10 @@ ${input.slice(result.pos)}
3938
3975
  }
3939
3976
  var ObjectBindingPatternContent$0 = NestedBindingProperties;
3940
3977
  var ObjectBindingPatternContent$1 = $TV($E(BindingPropertyList), function($skip, $loc, $0, $1) {
3941
- var props = $0;
3942
- if (!props)
3978
+ var props2 = $0;
3979
+ if (!props2)
3943
3980
  return { children: [], names: [] };
3944
- return module.reorderBindingRestProperty(props);
3981
+ return module.reorderBindingRestProperty(props2);
3945
3982
  });
3946
3983
  function ObjectBindingPatternContent(state) {
3947
3984
  let eventData;
@@ -3966,8 +4003,8 @@ ${input.slice(result.pos)}
3966
4003
  }
3967
4004
  }
3968
4005
  var BindingPropertyList$0 = $TV($P($S(BindingProperty, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
3969
- var props = $0;
3970
- return props.map(([prop, delim]) => {
4006
+ var props2 = $0;
4007
+ return props2.map(([prop, delim]) => {
3971
4008
  return {
3972
4009
  ...prop,
3973
4010
  children: [...prop.children, delim]
@@ -4027,36 +4064,11 @@ ${input.slice(result.pos)}
4027
4064
  }
4028
4065
  }
4029
4066
  var ArrayBindingPatternContent$0 = NestedBindingElements;
4030
- var ArrayBindingPatternContent$1 = $TS($S($Q($C(BindingElement, Elision)), $E($S(BindingRestElement, ArrayElementDelimiter)), $Q($C(BindingElement, Elision))), function($skip, $loc, $0, $1, $2, $3) {
4031
- var props = $1;
4032
- var rest = $2;
4033
- var after = $3;
4034
- const names = props.flatMap((p) => p.names || []);
4035
- const children = [...props];
4036
- let blockPrefix;
4037
- if (rest) {
4038
- const [restBinding] = rest;
4039
- children.push(restBinding);
4040
- let restIdentifier;
4041
- if (restBinding.ref) {
4042
- restIdentifier = restBinding.ref;
4043
- } else {
4044
- restIdentifier = restBinding.names[0];
4045
- names.push(...restBinding.names);
4046
- }
4047
- if (after.length) {
4048
- const spliceRef = module.getRef("splice");
4049
- blockPrefix = {
4050
- children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
4051
- names: after.flatMap((p) => p.names)
4052
- };
4053
- }
4054
- }
4055
- return {
4056
- names,
4057
- children,
4058
- blockPrefix
4059
- };
4067
+ var ArrayBindingPatternContent$1 = $TV($E(BindingElementList), function($skip, $loc, $0, $1) {
4068
+ var elements = $0;
4069
+ if (!elements)
4070
+ return { children: [], names: [] };
4071
+ return module.adjustBindingElements(elements);
4060
4072
  });
4061
4073
  function ArrayBindingPatternContent(state) {
4062
4074
  let eventData;
@@ -4080,6 +4092,71 @@ ${input.slice(result.pos)}
4080
4092
  return result;
4081
4093
  }
4082
4094
  }
4095
+ var BindingElementList$0 = $TV($P($S(BindingElement, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
4096
+ var elements = $0;
4097
+ return elements.map(([element, delim]) => {
4098
+ return {
4099
+ ...element,
4100
+ children: [...element.children, delim]
4101
+ };
4102
+ });
4103
+ });
4104
+ function BindingElementList(state) {
4105
+ let eventData;
4106
+ if (state.events) {
4107
+ const result = state.events.enter?.("BindingElementList", state);
4108
+ if (result) {
4109
+ if (result.cache)
4110
+ return result.cache;
4111
+ eventData = result.data;
4112
+ }
4113
+ }
4114
+ if (state.tokenize) {
4115
+ const result = $TOKEN("BindingElementList", state, BindingElementList$0(state));
4116
+ if (state.events)
4117
+ state.events.exit?.("BindingElementList", state, result, eventData);
4118
+ return result;
4119
+ } else {
4120
+ const result = BindingElementList$0(state);
4121
+ if (state.events)
4122
+ state.events.exit?.("BindingElementList", state, result, eventData);
4123
+ return result;
4124
+ }
4125
+ }
4126
+ var NestedBindingElementList$0 = $TS($S(Nested, BindingElementList), function($skip, $loc, $0, $1, $2) {
4127
+ var ws = $1;
4128
+ var elements = $2;
4129
+ return elements.map((element, i) => {
4130
+ if (i > 0)
4131
+ return element;
4132
+ return {
4133
+ ...element,
4134
+ children: [ws, ...element.children]
4135
+ };
4136
+ });
4137
+ });
4138
+ function NestedBindingElementList(state) {
4139
+ let eventData;
4140
+ if (state.events) {
4141
+ const result = state.events.enter?.("NestedBindingElementList", state);
4142
+ if (result) {
4143
+ if (result.cache)
4144
+ return result.cache;
4145
+ eventData = result.data;
4146
+ }
4147
+ }
4148
+ if (state.tokenize) {
4149
+ const result = $TOKEN("NestedBindingElementList", state, NestedBindingElementList$0(state));
4150
+ if (state.events)
4151
+ state.events.exit?.("NestedBindingElementList", state, result, eventData);
4152
+ return result;
4153
+ } else {
4154
+ const result = NestedBindingElementList$0(state);
4155
+ if (state.events)
4156
+ state.events.exit?.("NestedBindingElementList", state, result, eventData);
4157
+ return result;
4158
+ }
4159
+ }
4083
4160
  var Elision$0 = $S(__, Comma);
4084
4161
  function Elision(state) {
4085
4162
  let eventData;
@@ -4104,11 +4181,10 @@ ${input.slice(result.pos)}
4104
4181
  }
4105
4182
  }
4106
4183
  var NestedBindingProperties$0 = $TS($S(PushIndent, $Q(NestedBindingPropertyList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4107
- var props = $2;
4108
- if (!props.length)
4184
+ var props2 = $2;
4185
+ if (!props2.length)
4109
4186
  return $skip;
4110
- props = props.flat();
4111
- return module.reorderBindingRestProperty(props);
4187
+ return module.reorderBindingRestProperty(props2.flat());
4112
4188
  });
4113
4189
  function NestedBindingProperties(state) {
4114
4190
  let eventData;
@@ -4134,8 +4210,8 @@ ${input.slice(result.pos)}
4134
4210
  }
4135
4211
  var NestedBindingPropertyList$0 = $TS($S(Nested, BindingPropertyList), function($skip, $loc, $0, $1, $2) {
4136
4212
  var ws = $1;
4137
- var props = $2;
4138
- return props.map((prop, i) => {
4213
+ var props2 = $2;
4214
+ return props2.map((prop, i) => {
4139
4215
  if (i > 0)
4140
4216
  return prop;
4141
4217
  return {
@@ -4253,37 +4329,11 @@ ${input.slice(result.pos)}
4253
4329
  return result;
4254
4330
  }
4255
4331
  }
4256
- var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElement), $E($S(Nested, BindingRestElement, ArrayElementDelimiter)), $Q(NestedBindingElement), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4257
- var props = $2;
4258
- var rest = $3;
4259
- var after = $4;
4260
- if (!(props.length || rest))
4332
+ var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElementList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4333
+ var elements = $2;
4334
+ if (!elements.length)
4261
4335
  return $skip;
4262
- const names = props.flatMap((p) => p.names), children = [...props];
4263
- let blockPrefix;
4264
- if (rest) {
4265
- const [, restBinding] = rest;
4266
- let restIdentifier;
4267
- if (restBinding.ref) {
4268
- restIdentifier = restBinding.binding.ref;
4269
- } else {
4270
- restIdentifier = restBinding.names[0];
4271
- }
4272
- if (after.length) {
4273
- const spliceRef = module.getRef("splice");
4274
- blockPrefix = {
4275
- children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
4276
- names: after.flatMap((p) => p.names)
4277
- };
4278
- }
4279
- children.push(...rest);
4280
- names.push(...restBinding.names);
4281
- }
4282
- return {
4283
- children,
4284
- names,
4285
- blockPrefix
4286
- };
4336
+ return module.adjustBindingElements(elements.flat());
4287
4337
  });
4288
4338
  function NestedBindingElements(state) {
4289
4339
  let eventData;
@@ -4315,10 +4365,498 @@ ${input.slice(result.pos)}
4315
4365
  children: [indent, ...element.children]
4316
4366
  };
4317
4367
  });
4318
- function NestedBindingElement(state) {
4368
+ function NestedBindingElement(state) {
4369
+ let eventData;
4370
+ if (state.events) {
4371
+ const result = state.events.enter?.("NestedBindingElement", state);
4372
+ if (result) {
4373
+ if (result.cache)
4374
+ return result.cache;
4375
+ eventData = result.data;
4376
+ }
4377
+ }
4378
+ if (state.tokenize) {
4379
+ const result = $TOKEN("NestedBindingElement", state, NestedBindingElement$0(state));
4380
+ if (state.events)
4381
+ state.events.exit?.("NestedBindingElement", state, result, eventData);
4382
+ return result;
4383
+ } else {
4384
+ const result = NestedBindingElement$0(state);
4385
+ if (state.events)
4386
+ state.events.exit?.("NestedBindingElement", state, result, eventData);
4387
+ return result;
4388
+ }
4389
+ }
4390
+ var BindingElement$0 = BindingRestElement;
4391
+ var BindingElement$1 = $TS($S($C(BindingIdentifier, BindingPattern), $E(Initializer)), function($skip, $loc, $0, $1, $2) {
4392
+ var binding = $1;
4393
+ return {
4394
+ names: binding.names,
4395
+ children: $0
4396
+ };
4397
+ });
4398
+ var BindingElement$2 = $TV($EXPECT($L17, fail, 'BindingElement ""'), function($skip, $loc, $0, $1) {
4399
+ return {
4400
+ type: "ElisionElement",
4401
+ children: [],
4402
+ names: []
4403
+ };
4404
+ });
4405
+ function BindingElement(state) {
4406
+ let eventData;
4407
+ if (state.events) {
4408
+ const result = state.events.enter?.("BindingElement", state);
4409
+ if (result) {
4410
+ if (result.cache)
4411
+ return result.cache;
4412
+ eventData = result.data;
4413
+ }
4414
+ }
4415
+ if (state.tokenize) {
4416
+ const result = $TOKEN("BindingElement", state, BindingElement$0(state) || BindingElement$1(state) || BindingElement$2(state));
4417
+ if (state.events)
4418
+ state.events.exit?.("BindingElement", state, result, eventData);
4419
+ return result;
4420
+ } else {
4421
+ const result = BindingElement$0(state) || BindingElement$1(state) || BindingElement$2(state);
4422
+ if (state.events)
4423
+ state.events.exit?.("BindingElement", state, result, eventData);
4424
+ return result;
4425
+ }
4426
+ }
4427
+ var BindingRestElement$0 = $TS($S($E(_), DotDotDot, $C(BindingIdentifier, BindingPattern, EmptyBindingPattern)), function($skip, $loc, $0, $1, $2, $3) {
4428
+ var ws = $1;
4429
+ var dots = $2;
4430
+ var binding = $3;
4431
+ return {
4432
+ ...binding,
4433
+ children: [...ws || [], dots, ...binding.children],
4434
+ rest: true
4435
+ };
4436
+ });
4437
+ var BindingRestElement$1 = $TS($S($E(_), $C(BindingIdentifier, BindingPattern), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
4438
+ var ws = $1;
4439
+ var binding = $2;
4440
+ var dots = $3;
4441
+ return {
4442
+ ...binding,
4443
+ children: [...ws || [], dots, ...binding.children],
4444
+ rest: true
4445
+ };
4446
+ });
4447
+ function BindingRestElement(state) {
4448
+ let eventData;
4449
+ if (state.events) {
4450
+ const result = state.events.enter?.("BindingRestElement", state);
4451
+ if (result) {
4452
+ if (result.cache)
4453
+ return result.cache;
4454
+ eventData = result.data;
4455
+ }
4456
+ }
4457
+ if (state.tokenize) {
4458
+ const result = $TOKEN("BindingRestElement", state, BindingRestElement$0(state) || BindingRestElement$1(state));
4459
+ if (state.events)
4460
+ state.events.exit?.("BindingRestElement", state, result, eventData);
4461
+ return result;
4462
+ } else {
4463
+ const result = BindingRestElement$0(state) || BindingRestElement$1(state);
4464
+ if (state.events)
4465
+ state.events.exit?.("BindingRestElement", state, result, eventData);
4466
+ return result;
4467
+ }
4468
+ }
4469
+ var EmptyBindingPattern$0 = $TV($EXPECT($L17, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4470
+ const ref = {
4471
+ type: "Ref",
4472
+ base: "ref",
4473
+ id: "ref"
4474
+ };
4475
+ return {
4476
+ type: "EmptyBinding",
4477
+ children: [ref],
4478
+ names: [],
4479
+ ref
4480
+ };
4481
+ });
4482
+ function EmptyBindingPattern(state) {
4483
+ let eventData;
4484
+ if (state.events) {
4485
+ const result = state.events.enter?.("EmptyBindingPattern", state);
4486
+ if (result) {
4487
+ if (result.cache)
4488
+ return result.cache;
4489
+ eventData = result.data;
4490
+ }
4491
+ }
4492
+ if (state.tokenize) {
4493
+ const result = $TOKEN("EmptyBindingPattern", state, EmptyBindingPattern$0(state));
4494
+ if (state.events)
4495
+ state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4496
+ return result;
4497
+ } else {
4498
+ const result = EmptyBindingPattern$0(state);
4499
+ if (state.events)
4500
+ state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4501
+ return result;
4502
+ }
4503
+ }
4504
+ var MatchingPattern$0 = ObjectMatchingPattern;
4505
+ var MatchingPattern$1 = ArrayMatchingPattern;
4506
+ var MatchingPattern$2 = Literal;
4507
+ var MatchingPattern$3 = RegularExpressionLiteral;
4508
+ function MatchingPattern(state) {
4509
+ let eventData;
4510
+ if (state.events) {
4511
+ const result = state.events.enter?.("MatchingPattern", state);
4512
+ if (result) {
4513
+ if (result.cache)
4514
+ return result.cache;
4515
+ eventData = result.data;
4516
+ }
4517
+ }
4518
+ if (state.tokenize) {
4519
+ const result = $TOKEN("MatchingPattern", state, MatchingPattern$0(state) || MatchingPattern$1(state) || MatchingPattern$2(state) || MatchingPattern$3(state));
4520
+ if (state.events)
4521
+ state.events.exit?.("MatchingPattern", state, result, eventData);
4522
+ return result;
4523
+ } else {
4524
+ const result = MatchingPattern$0(state) || MatchingPattern$1(state) || MatchingPattern$2(state) || MatchingPattern$3(state);
4525
+ if (state.events)
4526
+ state.events.exit?.("MatchingPattern", state, result, eventData);
4527
+ return result;
4528
+ }
4529
+ }
4530
+ var ObjectMatchingPattern$0 = $TS($S($E(_), OpenBrace, ObjectMatchingPatternContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4531
+ var ws = $1;
4532
+ var open = $2;
4533
+ var properties = $3;
4534
+ var ws = $4;
4535
+ var close = $5;
4536
+ return {
4537
+ type: "ObjectMatchingPattern",
4538
+ children: [ws, open, ...properties.children, ...ws, close],
4539
+ properties: properties.children
4540
+ };
4541
+ });
4542
+ function ObjectMatchingPattern(state) {
4543
+ let eventData;
4544
+ if (state.events) {
4545
+ const result = state.events.enter?.("ObjectMatchingPattern", state);
4546
+ if (result) {
4547
+ if (result.cache)
4548
+ return result.cache;
4549
+ eventData = result.data;
4550
+ }
4551
+ }
4552
+ if (state.tokenize) {
4553
+ const result = $TOKEN("ObjectMatchingPattern", state, ObjectMatchingPattern$0(state));
4554
+ if (state.events)
4555
+ state.events.exit?.("ObjectMatchingPattern", state, result, eventData);
4556
+ return result;
4557
+ } else {
4558
+ const result = ObjectMatchingPattern$0(state);
4559
+ if (state.events)
4560
+ state.events.exit?.("ObjectMatchingPattern", state, result, eventData);
4561
+ return result;
4562
+ }
4563
+ }
4564
+ var ObjectMatchingPatternContent$0 = NestedMatchingProperties;
4565
+ var ObjectMatchingPatternContent$1 = $TV($E(MatchingPropertyList), function($skip, $loc, $0, $1) {
4566
+ var properties = $0;
4567
+ if (!properties)
4568
+ return { children: [], names: [] };
4569
+ return module.reorderBindingRestProperty(properties);
4570
+ });
4571
+ function ObjectMatchingPatternContent(state) {
4572
+ let eventData;
4573
+ if (state.events) {
4574
+ const result = state.events.enter?.("ObjectMatchingPatternContent", state);
4575
+ if (result) {
4576
+ if (result.cache)
4577
+ return result.cache;
4578
+ eventData = result.data;
4579
+ }
4580
+ }
4581
+ if (state.tokenize) {
4582
+ const result = $TOKEN("ObjectMatchingPatternContent", state, ObjectMatchingPatternContent$0(state) || ObjectMatchingPatternContent$1(state));
4583
+ if (state.events)
4584
+ state.events.exit?.("ObjectMatchingPatternContent", state, result, eventData);
4585
+ return result;
4586
+ } else {
4587
+ const result = ObjectMatchingPatternContent$0(state) || ObjectMatchingPatternContent$1(state);
4588
+ if (state.events)
4589
+ state.events.exit?.("ObjectMatchingPatternContent", state, result, eventData);
4590
+ return result;
4591
+ }
4592
+ }
4593
+ var NestedMatchingProperties$0 = $TS($S(PushIndent, $Q(NestedMatchingPropertyList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4594
+ var properties = $2;
4595
+ if (!props.length)
4596
+ return $skip;
4597
+ return module.reorderBindingRestProperty(props.flat());
4598
+ });
4599
+ function NestedMatchingProperties(state) {
4600
+ let eventData;
4601
+ if (state.events) {
4602
+ const result = state.events.enter?.("NestedMatchingProperties", state);
4603
+ if (result) {
4604
+ if (result.cache)
4605
+ return result.cache;
4606
+ eventData = result.data;
4607
+ }
4608
+ }
4609
+ if (state.tokenize) {
4610
+ const result = $TOKEN("NestedMatchingProperties", state, NestedMatchingProperties$0(state));
4611
+ if (state.events)
4612
+ state.events.exit?.("NestedMatchingProperties", state, result, eventData);
4613
+ return result;
4614
+ } else {
4615
+ const result = NestedMatchingProperties$0(state);
4616
+ if (state.events)
4617
+ state.events.exit?.("NestedMatchingProperties", state, result, eventData);
4618
+ return result;
4619
+ }
4620
+ }
4621
+ var MatchingPropertyList$0 = $TV($P($S(MatchingProperty, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
4622
+ var props2 = $0;
4623
+ return props2.map(([prop, delim]) => {
4624
+ return {
4625
+ ...prop,
4626
+ children: [...prop.children, delim]
4627
+ };
4628
+ });
4629
+ });
4630
+ function MatchingPropertyList(state) {
4631
+ let eventData;
4632
+ if (state.events) {
4633
+ const result = state.events.enter?.("MatchingPropertyList", state);
4634
+ if (result) {
4635
+ if (result.cache)
4636
+ return result.cache;
4637
+ eventData = result.data;
4638
+ }
4639
+ }
4640
+ if (state.tokenize) {
4641
+ const result = $TOKEN("MatchingPropertyList", state, MatchingPropertyList$0(state));
4642
+ if (state.events)
4643
+ state.events.exit?.("MatchingPropertyList", state, result, eventData);
4644
+ return result;
4645
+ } else {
4646
+ const result = MatchingPropertyList$0(state);
4647
+ if (state.events)
4648
+ state.events.exit?.("MatchingPropertyList", state, result, eventData);
4649
+ return result;
4650
+ }
4651
+ }
4652
+ var NestedMatchingPropertyList$0 = $TS($S(Nested, MatchingPropertyList), function($skip, $loc, $0, $1, $2) {
4653
+ var ws = $1;
4654
+ var props2 = $2;
4655
+ return props2.map((prop, i) => {
4656
+ if (i > 0)
4657
+ return prop;
4658
+ return {
4659
+ ...prop,
4660
+ children: [ws, ...prop.children]
4661
+ };
4662
+ });
4663
+ });
4664
+ function NestedMatchingPropertyList(state) {
4665
+ let eventData;
4666
+ if (state.events) {
4667
+ const result = state.events.enter?.("NestedMatchingPropertyList", state);
4668
+ if (result) {
4669
+ if (result.cache)
4670
+ return result.cache;
4671
+ eventData = result.data;
4672
+ }
4673
+ }
4674
+ if (state.tokenize) {
4675
+ const result = $TOKEN("NestedMatchingPropertyList", state, NestedMatchingPropertyList$0(state));
4676
+ if (state.events)
4677
+ state.events.exit?.("NestedMatchingPropertyList", state, result, eventData);
4678
+ return result;
4679
+ } else {
4680
+ const result = NestedMatchingPropertyList$0(state);
4681
+ if (state.events)
4682
+ state.events.exit?.("NestedMatchingPropertyList", state, result, eventData);
4683
+ return result;
4684
+ }
4685
+ }
4686
+ var MatchingProperty$0 = MatchingRestProperty;
4687
+ var MatchingProperty$1 = $TS($S($E(_), PropertyName, __, Colon, $E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4688
+ var name = $2;
4689
+ var match = $6;
4690
+ return {
4691
+ type: "BindingMatchProperty",
4692
+ name,
4693
+ match,
4694
+ children: $0
4695
+ };
4696
+ });
4697
+ var MatchingProperty$2 = $TS($S($E(_), BindingIdentifier), function($skip, $loc, $0, $1, $2) {
4698
+ var ws = $1;
4699
+ var b = $2;
4700
+ if (b.type === "AtBinding") {
4701
+ return {
4702
+ type: "AtBindingProperty",
4703
+ ref: b.ref,
4704
+ names: [],
4705
+ children: [ws, b]
4706
+ };
4707
+ }
4708
+ return {
4709
+ type: "BindingProperty",
4710
+ names: b.names,
4711
+ children: [ws, b],
4712
+ identifier: b
4713
+ };
4714
+ });
4715
+ function MatchingProperty(state) {
4716
+ let eventData;
4717
+ if (state.events) {
4718
+ const result = state.events.enter?.("MatchingProperty", state);
4719
+ if (result) {
4720
+ if (result.cache)
4721
+ return result.cache;
4722
+ eventData = result.data;
4723
+ }
4724
+ }
4725
+ if (state.tokenize) {
4726
+ const result = $TOKEN("MatchingProperty", state, MatchingProperty$0(state) || MatchingProperty$1(state) || MatchingProperty$2(state));
4727
+ if (state.events)
4728
+ state.events.exit?.("MatchingProperty", state, result, eventData);
4729
+ return result;
4730
+ } else {
4731
+ const result = MatchingProperty$0(state) || MatchingProperty$1(state) || MatchingProperty$2(state);
4732
+ if (state.events)
4733
+ state.events.exit?.("MatchingProperty", state, result, eventData);
4734
+ return result;
4735
+ }
4736
+ }
4737
+ var MatchingRestProperty$0 = BindingRestProperty;
4738
+ function MatchingRestProperty(state) {
4739
+ let eventData;
4740
+ if (state.events) {
4741
+ const result = state.events.enter?.("MatchingRestProperty", state);
4742
+ if (result) {
4743
+ if (result.cache)
4744
+ return result.cache;
4745
+ eventData = result.data;
4746
+ }
4747
+ }
4748
+ if (state.tokenize) {
4749
+ const result = $TOKEN("MatchingRestProperty", state, MatchingRestProperty$0(state));
4750
+ if (state.events)
4751
+ state.events.exit?.("MatchingRestProperty", state, result, eventData);
4752
+ return result;
4753
+ } else {
4754
+ const result = MatchingRestProperty$0(state);
4755
+ if (state.events)
4756
+ state.events.exit?.("MatchingRestProperty", state, result, eventData);
4757
+ return result;
4758
+ }
4759
+ }
4760
+ var ArrayMatchingPattern$0 = $TS($S($E(_), OpenBracket, ArrayMatchingPatternContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4761
+ var ws = $1;
4762
+ var elements = $3;
4763
+ return {
4764
+ type: "ArrayMatchingPattern",
4765
+ children: $0,
4766
+ elements: elements.children,
4767
+ length: elements.length
4768
+ };
4769
+ });
4770
+ function ArrayMatchingPattern(state) {
4771
+ let eventData;
4772
+ if (state.events) {
4773
+ const result = state.events.enter?.("ArrayMatchingPattern", state);
4774
+ if (result) {
4775
+ if (result.cache)
4776
+ return result.cache;
4777
+ eventData = result.data;
4778
+ }
4779
+ }
4780
+ if (state.tokenize) {
4781
+ const result = $TOKEN("ArrayMatchingPattern", state, ArrayMatchingPattern$0(state));
4782
+ if (state.events)
4783
+ state.events.exit?.("ArrayMatchingPattern", state, result, eventData);
4784
+ return result;
4785
+ } else {
4786
+ const result = ArrayMatchingPattern$0(state);
4787
+ if (state.events)
4788
+ state.events.exit?.("ArrayMatchingPattern", state, result, eventData);
4789
+ return result;
4790
+ }
4791
+ }
4792
+ var ArrayMatchingPatternContent$0 = NestedMatchingElements;
4793
+ var ArrayMatchingPatternContent$1 = $TV($E(MatchingElementList), function($skip, $loc, $0, $1) {
4794
+ var elements = $0;
4795
+ if (!elements)
4796
+ return { children: [], names: [], length: 0 };
4797
+ return module.adjustBindingElements(elements);
4798
+ });
4799
+ function ArrayMatchingPatternContent(state) {
4800
+ let eventData;
4801
+ if (state.events) {
4802
+ const result = state.events.enter?.("ArrayMatchingPatternContent", state);
4803
+ if (result) {
4804
+ if (result.cache)
4805
+ return result.cache;
4806
+ eventData = result.data;
4807
+ }
4808
+ }
4809
+ if (state.tokenize) {
4810
+ const result = $TOKEN("ArrayMatchingPatternContent", state, ArrayMatchingPatternContent$0(state) || ArrayMatchingPatternContent$1(state));
4811
+ if (state.events)
4812
+ state.events.exit?.("ArrayMatchingPatternContent", state, result, eventData);
4813
+ return result;
4814
+ } else {
4815
+ const result = ArrayMatchingPatternContent$0(state) || ArrayMatchingPatternContent$1(state);
4816
+ if (state.events)
4817
+ state.events.exit?.("ArrayMatchingPatternContent", state, result, eventData);
4818
+ return result;
4819
+ }
4820
+ }
4821
+ var NestedMatchingElements$0 = $TS($S(PushIndent, $Q(NestedMatchingElementList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4822
+ var elements = $2;
4823
+ return module.adjustBindingElements(elements.flat());
4824
+ });
4825
+ function NestedMatchingElements(state) {
4826
+ let eventData;
4827
+ if (state.events) {
4828
+ const result = state.events.enter?.("NestedMatchingElements", state);
4829
+ if (result) {
4830
+ if (result.cache)
4831
+ return result.cache;
4832
+ eventData = result.data;
4833
+ }
4834
+ }
4835
+ if (state.tokenize) {
4836
+ const result = $TOKEN("NestedMatchingElements", state, NestedMatchingElements$0(state));
4837
+ if (state.events)
4838
+ state.events.exit?.("NestedMatchingElements", state, result, eventData);
4839
+ return result;
4840
+ } else {
4841
+ const result = NestedMatchingElements$0(state);
4842
+ if (state.events)
4843
+ state.events.exit?.("NestedMatchingElements", state, result, eventData);
4844
+ return result;
4845
+ }
4846
+ }
4847
+ var MatchingElementList$0 = $TV($P($S(MatchingElement, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
4848
+ var elements = $0;
4849
+ return elements.map(([element, delim]) => {
4850
+ return {
4851
+ ...element,
4852
+ children: [...element.children, delim]
4853
+ };
4854
+ });
4855
+ });
4856
+ function MatchingElementList(state) {
4319
4857
  let eventData;
4320
4858
  if (state.events) {
4321
- const result = state.events.enter?.("NestedBindingElement", state);
4859
+ const result = state.events.enter?.("MatchingElementList", state);
4322
4860
  if (result) {
4323
4861
  if (result.cache)
4324
4862
  return result.cache;
@@ -4326,28 +4864,33 @@ ${input.slice(result.pos)}
4326
4864
  }
4327
4865
  }
4328
4866
  if (state.tokenize) {
4329
- const result = $TOKEN("NestedBindingElement", state, NestedBindingElement$0(state));
4867
+ const result = $TOKEN("MatchingElementList", state, MatchingElementList$0(state));
4330
4868
  if (state.events)
4331
- state.events.exit?.("NestedBindingElement", state, result, eventData);
4869
+ state.events.exit?.("MatchingElementList", state, result, eventData);
4332
4870
  return result;
4333
4871
  } else {
4334
- const result = NestedBindingElement$0(state);
4872
+ const result = MatchingElementList$0(state);
4335
4873
  if (state.events)
4336
- state.events.exit?.("NestedBindingElement", state, result, eventData);
4874
+ state.events.exit?.("MatchingElementList", state, result, eventData);
4337
4875
  return result;
4338
4876
  }
4339
4877
  }
4340
- var BindingElement$0 = $TS($S($C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
4341
- var binding = $1;
4342
- return {
4343
- names: binding.names,
4344
- children: $0
4345
- };
4878
+ var NestedMatchingElementList$0 = $TS($S(Nested, MatchingElementList), function($skip, $loc, $0, $1, $2) {
4879
+ var ws = $1;
4880
+ var elements = $2;
4881
+ return elements.map((element, i) => {
4882
+ if (i > 0)
4883
+ return element;
4884
+ return {
4885
+ ...element,
4886
+ children: [ws, ...element.children]
4887
+ };
4888
+ });
4346
4889
  });
4347
- function BindingElement(state) {
4890
+ function NestedMatchingElementList(state) {
4348
4891
  let eventData;
4349
4892
  if (state.events) {
4350
- const result = state.events.enter?.("BindingElement", state);
4893
+ const result = state.events.enter?.("NestedMatchingElementList", state);
4351
4894
  if (result) {
4352
4895
  if (result.cache)
4353
4896
  return result.cache;
@@ -4355,39 +4898,61 @@ ${input.slice(result.pos)}
4355
4898
  }
4356
4899
  }
4357
4900
  if (state.tokenize) {
4358
- const result = $TOKEN("BindingElement", state, BindingElement$0(state));
4901
+ const result = $TOKEN("NestedMatchingElementList", state, NestedMatchingElementList$0(state));
4359
4902
  if (state.events)
4360
- state.events.exit?.("BindingElement", state, result, eventData);
4903
+ state.events.exit?.("NestedMatchingElementList", state, result, eventData);
4361
4904
  return result;
4362
4905
  } else {
4363
- const result = BindingElement$0(state);
4906
+ const result = NestedMatchingElementList$0(state);
4364
4907
  if (state.events)
4365
- state.events.exit?.("BindingElement", state, result, eventData);
4908
+ state.events.exit?.("NestedMatchingElementList", state, result, eventData);
4366
4909
  return result;
4367
4910
  }
4368
4911
  }
4369
- var BindingRestElement$0 = $TS($S(__, DotDotDot, $C(BindingIdentifier, BindingPattern, EmptyBindingPattern)), function($skip, $loc, $0, $1, $2, $3) {
4912
+ var MatchingElement$0 = MatchingRestElement;
4913
+ var MatchingElement$1 = $TS($S($E(_), BindingIdentifier, __, Colon, $E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4370
4914
  var ws = $1;
4371
- var dots = $2;
4372
- var binding = $3;
4915
+ var name = $2;
4916
+ var match = $6;
4917
+ let blockPrefix;
4918
+ switch (match.type) {
4919
+ case "ArrayMatchingPattern":
4920
+ case "ObjectMatchingPattern":
4921
+ blockPrefix = [match, " = ", name];
4922
+ break;
4923
+ default:
4924
+ break;
4925
+ }
4373
4926
  return {
4374
- ...binding,
4375
- children: [...ws, dots, ...binding.children]
4927
+ names: name.names,
4928
+ children: [ws, {
4929
+ type: "BindingMatchElement",
4930
+ name,
4931
+ match,
4932
+ children: [name],
4933
+ blockPrefix
4934
+ }]
4376
4935
  };
4377
4936
  });
4378
- var BindingRestElement$1 = $TS($S(__, $C(BindingIdentifier, BindingPattern), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
4937
+ var MatchingElement$2 = $TS($S($E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2) {
4379
4938
  var ws = $1;
4380
4939
  var binding = $2;
4381
- var dots = $3;
4382
4940
  return {
4383
- ...binding,
4384
- children: [...ws, dots, ...binding.children]
4941
+ names: binding.names,
4942
+ children: [ws, binding]
4385
4943
  };
4386
4944
  });
4387
- function BindingRestElement(state) {
4945
+ var MatchingElement$3 = $TV($EXPECT($L17, fail, 'MatchingElement ""'), function($skip, $loc, $0, $1) {
4946
+ return {
4947
+ type: "ElisionElement",
4948
+ children: [],
4949
+ names: []
4950
+ };
4951
+ });
4952
+ function MatchingElement(state) {
4388
4953
  let eventData;
4389
4954
  if (state.events) {
4390
- const result = state.events.enter?.("BindingRestElement", state);
4955
+ const result = state.events.enter?.("MatchingElement", state);
4391
4956
  if (result) {
4392
4957
  if (result.cache)
4393
4958
  return result.cache;
@@ -4395,34 +4960,22 @@ ${input.slice(result.pos)}
4395
4960
  }
4396
4961
  }
4397
4962
  if (state.tokenize) {
4398
- const result = $TOKEN("BindingRestElement", state, BindingRestElement$0(state) || BindingRestElement$1(state));
4963
+ const result = $TOKEN("MatchingElement", state, MatchingElement$0(state) || MatchingElement$1(state) || MatchingElement$2(state) || MatchingElement$3(state));
4399
4964
  if (state.events)
4400
- state.events.exit?.("BindingRestElement", state, result, eventData);
4965
+ state.events.exit?.("MatchingElement", state, result, eventData);
4401
4966
  return result;
4402
4967
  } else {
4403
- const result = BindingRestElement$0(state) || BindingRestElement$1(state);
4968
+ const result = MatchingElement$0(state) || MatchingElement$1(state) || MatchingElement$2(state) || MatchingElement$3(state);
4404
4969
  if (state.events)
4405
- state.events.exit?.("BindingRestElement", state, result, eventData);
4970
+ state.events.exit?.("MatchingElement", state, result, eventData);
4406
4971
  return result;
4407
4972
  }
4408
4973
  }
4409
- var EmptyBindingPattern$0 = $TV($EXPECT($L16, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4410
- const ref = {
4411
- type: "Ref",
4412
- base: "ref",
4413
- id: "ref"
4414
- };
4415
- return {
4416
- type: "EmptyBinding",
4417
- children: [ref],
4418
- names: [],
4419
- ref
4420
- };
4421
- });
4422
- function EmptyBindingPattern(state) {
4974
+ var MatchingRestElement$0 = BindingRestElement;
4975
+ function MatchingRestElement(state) {
4423
4976
  let eventData;
4424
4977
  if (state.events) {
4425
- const result = state.events.enter?.("EmptyBindingPattern", state);
4978
+ const result = state.events.enter?.("MatchingRestElement", state);
4426
4979
  if (result) {
4427
4980
  if (result.cache)
4428
4981
  return result.cache;
@@ -4430,14 +4983,14 @@ ${input.slice(result.pos)}
4430
4983
  }
4431
4984
  }
4432
4985
  if (state.tokenize) {
4433
- const result = $TOKEN("EmptyBindingPattern", state, EmptyBindingPattern$0(state));
4986
+ const result = $TOKEN("MatchingRestElement", state, MatchingRestElement$0(state));
4434
4987
  if (state.events)
4435
- state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4988
+ state.events.exit?.("MatchingRestElement", state, result, eventData);
4436
4989
  return result;
4437
4990
  } else {
4438
- const result = EmptyBindingPattern$0(state);
4991
+ const result = MatchingRestElement$0(state);
4439
4992
  if (state.events)
4440
- state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4993
+ state.events.exit?.("MatchingRestElement", state, result, eventData);
4441
4994
  return result;
4442
4995
  }
4443
4996
  }
@@ -4568,6 +5121,101 @@ ${input.slice(result.pos)}
4568
5121
  return result;
4569
5122
  }
4570
5123
  }
5124
+ var OperatorDeclaration$0 = $TS($S(Operator, _, LexicalDeclaration), function($skip, $loc, $0, $1, $2, $3) {
5125
+ var op = $1;
5126
+ var w = $2;
5127
+ var decl = $3;
5128
+ decl.names.forEach((name) => module.operators.add(name));
5129
+ return [module.insertTrimmingSpace(w, ""), decl];
5130
+ });
5131
+ var OperatorDeclaration$1 = $TS($S(OperatorSignature, BracedBlock), function($skip, $loc, $0, $1, $2) {
5132
+ var signature = $1;
5133
+ var block = $2;
5134
+ module.operators.add(signature.id.name);
5135
+ return {
5136
+ ...signature,
5137
+ type: "FunctionExpression",
5138
+ children: [...signature.children, block],
5139
+ block,
5140
+ operator: true
5141
+ };
5142
+ });
5143
+ var OperatorDeclaration$2 = $TS($S(Operator, _, Identifier, $Q($S(CommaDelimiter, $E(_), Identifier))), function($skip, $loc, $0, $1, $2, $3, $4) {
5144
+ var op = $1;
5145
+ var w1 = $2;
5146
+ var id = $3;
5147
+ var ids = $4;
5148
+ module.operators.add(id.name);
5149
+ ids.forEach(([, , id2]) => module.operators.add(id2.name));
5150
+ return [];
5151
+ });
5152
+ function OperatorDeclaration(state) {
5153
+ let eventData;
5154
+ if (state.events) {
5155
+ const result = state.events.enter?.("OperatorDeclaration", state);
5156
+ if (result) {
5157
+ if (result.cache)
5158
+ return result.cache;
5159
+ eventData = result.data;
5160
+ }
5161
+ }
5162
+ if (state.tokenize) {
5163
+ const result = $TOKEN("OperatorDeclaration", state, OperatorDeclaration$0(state) || OperatorDeclaration$1(state) || OperatorDeclaration$2(state));
5164
+ if (state.events)
5165
+ state.events.exit?.("OperatorDeclaration", state, result, eventData);
5166
+ return result;
5167
+ } else {
5168
+ const result = OperatorDeclaration$0(state) || OperatorDeclaration$1(state) || OperatorDeclaration$2(state);
5169
+ if (state.events)
5170
+ state.events.exit?.("OperatorDeclaration", state, result, eventData);
5171
+ return result;
5172
+ }
5173
+ }
5174
+ var OperatorSignature$0 = $TS($S(Operator, $E($S(_, Function)), _, Identifier, $E(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
5175
+ var op = $1;
5176
+ var func = $2;
5177
+ var w1 = $3;
5178
+ var id = $4;
5179
+ var w2 = $5;
5180
+ var parameters = $6;
5181
+ var suffix = $7;
5182
+ if (!func) {
5183
+ func = { $loc: op.$loc, token: "function" };
5184
+ } else {
5185
+ func = [module.insertTrimmingSpace(func[0], ""), func[1]];
5186
+ }
5187
+ return {
5188
+ type: "FunctionSignature",
5189
+ id,
5190
+ parameters,
5191
+ returnType: suffix?.children?.[1]?.[0]?.[1]?.token,
5192
+ ts: false,
5193
+ block: null,
5194
+ children: [func, w1, id, w2, parameters, suffix]
5195
+ };
5196
+ });
5197
+ function OperatorSignature(state) {
5198
+ let eventData;
5199
+ if (state.events) {
5200
+ const result = state.events.enter?.("OperatorSignature", state);
5201
+ if (result) {
5202
+ if (result.cache)
5203
+ return result.cache;
5204
+ eventData = result.data;
5205
+ }
5206
+ }
5207
+ if (state.tokenize) {
5208
+ const result = $TOKEN("OperatorSignature", state, OperatorSignature$0(state));
5209
+ if (state.events)
5210
+ state.events.exit?.("OperatorSignature", state, result, eventData);
5211
+ return result;
5212
+ } else {
5213
+ const result = OperatorSignature$0(state);
5214
+ if (state.events)
5215
+ state.events.exit?.("OperatorSignature", state, result, eventData);
5216
+ return result;
5217
+ }
5218
+ }
4571
5219
  var AmpersandBlockRHS$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E($S($N($EXPECT($R2, fail, "AmpersandBlockRHS /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2) {
4572
5220
  var callExpRest = $1;
4573
5221
  var binopRHS = $2;
@@ -4682,7 +5330,7 @@ ${input.slice(result.pos)}
4682
5330
  return result;
4683
5331
  }
4684
5332
  }
4685
- var Arrow$0 = $TV($EXPECT($L18, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
5333
+ var Arrow$0 = $TV($EXPECT($L19, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4686
5334
  return { $loc, token: $1 };
4687
5335
  });
4688
5336
  function Arrow(state) {
@@ -4892,6 +5540,37 @@ ${input.slice(result.pos)}
4892
5540
  return result;
4893
5541
  }
4894
5542
  }
5543
+ var EmptyBareBlock$0 = $TV($EXPECT($L17, fail, 'EmptyBareBlock ""'), function($skip, $loc, $0, $1) {
5544
+ const expressions = [];
5545
+ return {
5546
+ type: "BlockStatement",
5547
+ expressions,
5548
+ children: [expressions],
5549
+ bare: true
5550
+ };
5551
+ });
5552
+ function EmptyBareBlock(state) {
5553
+ let eventData;
5554
+ if (state.events) {
5555
+ const result = state.events.enter?.("EmptyBareBlock", state);
5556
+ if (result) {
5557
+ if (result.cache)
5558
+ return result.cache;
5559
+ eventData = result.data;
5560
+ }
5561
+ }
5562
+ if (state.tokenize) {
5563
+ const result = $TOKEN("EmptyBareBlock", state, EmptyBareBlock$0(state));
5564
+ if (state.events)
5565
+ state.events.exit?.("EmptyBareBlock", state, result, eventData);
5566
+ return result;
5567
+ } else {
5568
+ const result = EmptyBareBlock$0(state);
5569
+ if (state.events)
5570
+ state.events.exit?.("EmptyBareBlock", state, result, eventData);
5571
+ return result;
5572
+ }
5573
+ }
4895
5574
  var BracedBlock$0 = $TS($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4896
5575
  var block = $3;
4897
5576
  return {
@@ -4990,7 +5669,7 @@ ${input.slice(result.pos)}
4990
5669
  children: [$1, expressions]
4991
5670
  };
4992
5671
  });
4993
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L19, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
5672
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L20, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4994
5673
  const expressions = [];
4995
5674
  return {
4996
5675
  type: "BlockStatement",
@@ -5135,7 +5814,7 @@ ${input.slice(result.pos)}
5135
5814
  return result;
5136
5815
  }
5137
5816
  }
5138
- var NullLiteral$0 = $TS($S($EXPECT($L20, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5817
+ var NullLiteral$0 = $TS($S($EXPECT($L21, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5139
5818
  return { $loc, token: $1 };
5140
5819
  });
5141
5820
  function NullLiteral(state) {
@@ -5163,7 +5842,7 @@ ${input.slice(result.pos)}
5163
5842
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
5164
5843
  return value[1];
5165
5844
  });
5166
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L21, fail, 'BooleanLiteral "true"'), $EXPECT($L22, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5845
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L22, fail, 'BooleanLiteral "true"'), $EXPECT($L23, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5167
5846
  return { $loc, token: $1 };
5168
5847
  });
5169
5848
  function BooleanLiteral(state) {
@@ -5188,10 +5867,10 @@ ${input.slice(result.pos)}
5188
5867
  return result;
5189
5868
  }
5190
5869
  }
5191
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5870
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L25, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5192
5871
  return { $loc, token: "true" };
5193
5872
  });
5194
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L25, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L26, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5873
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L26, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L27, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5195
5874
  return { $loc, token: "false" };
5196
5875
  });
5197
5876
  function CoffeeScriptBooleanLiteral(state) {
@@ -5216,31 +5895,6 @@ ${input.slice(result.pos)}
5216
5895
  return result;
5217
5896
  }
5218
5897
  }
5219
- var Comma$0 = $TV($EXPECT($L27, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
5220
- return { $loc, token: $1 };
5221
- });
5222
- function Comma(state) {
5223
- let eventData;
5224
- if (state.events) {
5225
- const result = state.events.enter?.("Comma", state);
5226
- if (result) {
5227
- if (result.cache)
5228
- return result.cache;
5229
- eventData = result.data;
5230
- }
5231
- }
5232
- if (state.tokenize) {
5233
- const result = $TOKEN("Comma", state, Comma$0(state));
5234
- if (state.events)
5235
- state.events.exit?.("Comma", state, result, eventData);
5236
- return result;
5237
- } else {
5238
- const result = Comma$0(state);
5239
- if (state.events)
5240
- state.events.exit?.("Comma", state, result, eventData);
5241
- return result;
5242
- }
5243
- }
5244
5898
  var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
5245
5899
  return value[1];
5246
5900
  });
@@ -6020,7 +6674,7 @@ ${input.slice(result.pos)}
6020
6674
  var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S($C(Samedent, $Q(_)), NamedProperty)), InsertComma), function(value) {
6021
6675
  return value[1];
6022
6676
  });
6023
- var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L31, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L17, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L30, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L19, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
6677
+ var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L31, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L18, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L30, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L20, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
6024
6678
  return "";
6025
6679
  });
6026
6680
  var ImplicitInlineObjectPropertyDelimiter$3 = $T($Y(EOS), function(value) {
@@ -6049,7 +6703,7 @@ ${input.slice(result.pos)}
6049
6703
  }
6050
6704
  }
6051
6705
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
6052
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L19, fail, 'ObjectPropertyDelimiter "}"')));
6706
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L20, fail, 'ObjectPropertyDelimiter "}"')));
6053
6707
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
6054
6708
  return value[1];
6055
6709
  });
@@ -6118,7 +6772,15 @@ ${input.slice(result.pos)}
6118
6772
  value
6119
6773
  };
6120
6774
  });
6121
- var PropertyDefinition$1 = $TS($S(__, $TEXT($EXPECT($R5, fail, "PropertyDefinition /[!+-]/")), IdentifierName), function($skip, $loc, $0, $1, $2, $3) {
6775
+ var PropertyDefinition$1 = $TS($S(__, NamedProperty), function($skip, $loc, $0, $1, $2) {
6776
+ var ws = $1;
6777
+ var prop = $2;
6778
+ return {
6779
+ ...prop,
6780
+ children: [...ws, ...prop.children]
6781
+ };
6782
+ });
6783
+ var PropertyDefinition$2 = $TS($S(__, $TEXT($EXPECT($R5, fail, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
6122
6784
  var ws = $1;
6123
6785
  var toggle = $2;
6124
6786
  var id = $3;
@@ -6131,14 +6793,6 @@ ${input.slice(result.pos)}
6131
6793
  value
6132
6794
  };
6133
6795
  });
6134
- var PropertyDefinition$2 = $TS($S(__, NamedProperty), function($skip, $loc, $0, $1, $2) {
6135
- var ws = $1;
6136
- var prop = $2;
6137
- return {
6138
- ...prop,
6139
- children: [...ws, ...prop.children]
6140
- };
6141
- });
6142
6796
  var PropertyDefinition$3 = $TS($S(__, MethodDefinition), function($skip, $loc, $0, $1, $2) {
6143
6797
  var ws = $1;
6144
6798
  var def = $2;
@@ -6175,9 +6829,18 @@ ${input.slice(result.pos)}
6175
6829
  if (i < 0)
6176
6830
  return $skip;
6177
6831
  } while (children[i].type === "MemberExpression" && (exp = children[i]));
6178
- const { name } = children[i];
6179
- if (!name)
6832
+ const last = children[i];
6833
+ let name;
6834
+ if (last.name) {
6835
+ ({ name } = last);
6836
+ } else if (last.type === "Index") {
6837
+ name = {
6838
+ type: "ComputedPropertyName",
6839
+ children: last.children
6840
+ };
6841
+ } else {
6180
6842
  return $skip;
6843
+ }
6181
6844
  return {
6182
6845
  type: "Property",
6183
6846
  children: [ws, name, ": ", value],
@@ -6272,9 +6935,9 @@ ${input.slice(result.pos)}
6272
6935
  }
6273
6936
  }
6274
6937
  var PropertyName$0 = NumericLiteral;
6275
- var PropertyName$1 = StringLiteral;
6276
- var PropertyName$2 = IdentifierName;
6277
- var PropertyName$3 = ComputedPropertyName;
6938
+ var PropertyName$1 = ComputedPropertyName;
6939
+ var PropertyName$2 = StringLiteral;
6940
+ var PropertyName$3 = IdentifierName;
6278
6941
  function PropertyName(state) {
6279
6942
  let eventData;
6280
6943
  if (state.events) {
@@ -6298,6 +6961,24 @@ ${input.slice(result.pos)}
6298
6961
  }
6299
6962
  }
6300
6963
  var ComputedPropertyName$0 = $TS($S(OpenBracket, ExtendedExpression, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
6964
+ var expression = $2;
6965
+ return {
6966
+ type: "ComputedPropertyName",
6967
+ children: $0,
6968
+ expression
6969
+ };
6970
+ });
6971
+ var ComputedPropertyName$1 = $TS($S(InsertOpenBracket, TemplateLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
6972
+ var expression = $2;
6973
+ if ($2.type === "StringLiteral")
6974
+ return $2;
6975
+ return {
6976
+ type: "ComputedPropertyName",
6977
+ children: $0,
6978
+ expression
6979
+ };
6980
+ });
6981
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L14, fail, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
6301
6982
  return {
6302
6983
  type: "ComputedPropertyName",
6303
6984
  children: $0
@@ -6314,12 +6995,12 @@ ${input.slice(result.pos)}
6314
6995
  }
6315
6996
  }
6316
6997
  if (state.tokenize) {
6317
- const result = $TOKEN("ComputedPropertyName", state, ComputedPropertyName$0(state));
6998
+ const result = $TOKEN("ComputedPropertyName", state, ComputedPropertyName$0(state) || ComputedPropertyName$1(state) || ComputedPropertyName$2(state));
6318
6999
  if (state.events)
6319
7000
  state.events.exit?.("ComputedPropertyName", state, result, eventData);
6320
7001
  return result;
6321
7002
  } else {
6322
- const result = ComputedPropertyName$0(state);
7003
+ const result = ComputedPropertyName$0(state) || ComputedPropertyName$1(state) || ComputedPropertyName$2(state);
6323
7004
  if (state.events)
6324
7005
  state.events.exit?.("ComputedPropertyName", state, result, eventData);
6325
7006
  return result;
@@ -6515,7 +7196,7 @@ ${input.slice(result.pos)}
6515
7196
  return result;
6516
7197
  }
6517
7198
  }
6518
- var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L9, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
7199
+ var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L10, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
6519
7200
  return {
6520
7201
  type: "Identifier",
6521
7202
  name: $0,
@@ -6658,6 +7339,25 @@ ${input.slice(result.pos)}
6658
7339
  return { $loc, token: $1 };
6659
7340
  return $1;
6660
7341
  });
7342
+ var BinaryOp$1 = $TV(Identifier, function($skip, $loc, $0, $1) {
7343
+ var id = $0;
7344
+ if (!module.operators.has(id.name))
7345
+ return $skip;
7346
+ return {
7347
+ call: id,
7348
+ special: true
7349
+ };
7350
+ });
7351
+ var BinaryOp$2 = $TS($S($EXPECT($L50, fail, 'BinaryOp "not"'), NonIdContinue, __, Identifier), function($skip, $loc, $0, $1, $2, $3, $4) {
7352
+ var id = $4;
7353
+ if (!module.operators.has(id.name))
7354
+ return $skip;
7355
+ return {
7356
+ call: id,
7357
+ special: true,
7358
+ negated: true
7359
+ };
7360
+ });
6661
7361
  function BinaryOp(state) {
6662
7362
  let eventData;
6663
7363
  if (state.events) {
@@ -6669,32 +7369,32 @@ ${input.slice(result.pos)}
6669
7369
  }
6670
7370
  }
6671
7371
  if (state.tokenize) {
6672
- const result = $TOKEN("BinaryOp", state, BinaryOp$0(state));
7372
+ const result = $TOKEN("BinaryOp", state, BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state));
6673
7373
  if (state.events)
6674
7374
  state.events.exit?.("BinaryOp", state, result, eventData);
6675
7375
  return result;
6676
7376
  } else {
6677
- const result = BinaryOp$0(state);
7377
+ const result = BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state);
6678
7378
  if (state.events)
6679
7379
  state.events.exit?.("BinaryOp", state, result, eventData);
6680
7380
  return result;
6681
7381
  }
6682
7382
  }
6683
- var BinaryOpSymbol$0 = $EXPECT($L50, fail, 'BinaryOpSymbol "**"');
6684
- var BinaryOpSymbol$1 = $EXPECT($L51, fail, 'BinaryOpSymbol "*"');
6685
- var BinaryOpSymbol$2 = $EXPECT($L52, fail, 'BinaryOpSymbol "/"');
6686
- var BinaryOpSymbol$3 = $TV($EXPECT($L53, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
7383
+ var BinaryOpSymbol$0 = $EXPECT($L51, fail, 'BinaryOpSymbol "**"');
7384
+ var BinaryOpSymbol$1 = $EXPECT($L52, fail, 'BinaryOpSymbol "*"');
7385
+ var BinaryOpSymbol$2 = $EXPECT($L53, fail, 'BinaryOpSymbol "/"');
7386
+ var BinaryOpSymbol$3 = $TV($EXPECT($L54, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6687
7387
  return {
6688
7388
  call: module.getRef("modulo"),
6689
7389
  special: true
6690
7390
  };
6691
7391
  });
6692
- var BinaryOpSymbol$4 = $EXPECT($L54, fail, 'BinaryOpSymbol "%"');
6693
- var BinaryOpSymbol$5 = $EXPECT($L55, fail, 'BinaryOpSymbol "+"');
6694
- var BinaryOpSymbol$6 = $EXPECT($L13, fail, 'BinaryOpSymbol "-"');
6695
- var BinaryOpSymbol$7 = $EXPECT($L56, fail, 'BinaryOpSymbol "<="');
6696
- var BinaryOpSymbol$8 = $EXPECT($L57, fail, 'BinaryOpSymbol ">="');
6697
- var BinaryOpSymbol$9 = $TV($EXPECT($L58, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
7392
+ var BinaryOpSymbol$4 = $EXPECT($L55, fail, 'BinaryOpSymbol "%"');
7393
+ var BinaryOpSymbol$5 = $EXPECT($L56, fail, 'BinaryOpSymbol "+"');
7394
+ var BinaryOpSymbol$6 = $EXPECT($L14, fail, 'BinaryOpSymbol "-"');
7395
+ var BinaryOpSymbol$7 = $EXPECT($L57, fail, 'BinaryOpSymbol "<="');
7396
+ var BinaryOpSymbol$8 = $EXPECT($L58, fail, 'BinaryOpSymbol ">="');
7397
+ var BinaryOpSymbol$9 = $TV($EXPECT($L59, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
6698
7398
  return {
6699
7399
  $loc,
6700
7400
  token: "instanceof",
@@ -6702,49 +7402,58 @@ ${input.slice(result.pos)}
6702
7402
  special: true
6703
7403
  };
6704
7404
  });
6705
- var BinaryOpSymbol$10 = $EXPECT($L59, fail, 'BinaryOpSymbol "<<"');
6706
- var BinaryOpSymbol$11 = $TR($EXPECT($R6, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7405
+ var BinaryOpSymbol$10 = $TV($EXPECT($L60, fail, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
7406
+ return {
7407
+ $loc,
7408
+ token: "instanceof",
7409
+ relational: true,
7410
+ special: true,
7411
+ negated: true
7412
+ };
7413
+ });
7414
+ var BinaryOpSymbol$11 = $EXPECT($L61, fail, 'BinaryOpSymbol "<<"');
7415
+ var BinaryOpSymbol$12 = $TR($EXPECT($R6, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6707
7416
  return "<";
6708
7417
  });
6709
- var BinaryOpSymbol$12 = $EXPECT($L60, fail, 'BinaryOpSymbol ">>>"');
6710
- var BinaryOpSymbol$13 = $EXPECT($L61, fail, 'BinaryOpSymbol ">>"');
6711
- var BinaryOpSymbol$14 = $EXPECT($L29, fail, 'BinaryOpSymbol ">"');
6712
- var BinaryOpSymbol$15 = $EXPECT($L62, fail, 'BinaryOpSymbol "!=="');
6713
- var BinaryOpSymbol$16 = $TV($EXPECT($L63, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
7418
+ var BinaryOpSymbol$13 = $EXPECT($L62, fail, 'BinaryOpSymbol ">>>"');
7419
+ var BinaryOpSymbol$14 = $EXPECT($L63, fail, 'BinaryOpSymbol ">>"');
7420
+ var BinaryOpSymbol$15 = $EXPECT($L29, fail, 'BinaryOpSymbol ">"');
7421
+ var BinaryOpSymbol$16 = $EXPECT($L64, fail, 'BinaryOpSymbol "!=="');
7422
+ var BinaryOpSymbol$17 = $TV($EXPECT($L65, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6714
7423
  if (module.config.coffeeEq)
6715
7424
  return "!==";
6716
7425
  return $1;
6717
7426
  });
6718
- var BinaryOpSymbol$17 = $TS($S($EXPECT($L64, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7427
+ var BinaryOpSymbol$18 = $TS($S($EXPECT($L66, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6719
7428
  if (module.config.coffeeIsnt)
6720
7429
  return "!==";
6721
7430
  return $skip;
6722
7431
  });
6723
- var BinaryOpSymbol$18 = $EXPECT($L65, fail, 'BinaryOpSymbol "==="');
6724
- var BinaryOpSymbol$19 = $TV($EXPECT($L66, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
7432
+ var BinaryOpSymbol$19 = $EXPECT($L67, fail, 'BinaryOpSymbol "==="');
7433
+ var BinaryOpSymbol$20 = $TV($EXPECT($L68, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6725
7434
  if (module.config.coffeeEq)
6726
7435
  return "===";
6727
7436
  return $1;
6728
7437
  });
6729
- var BinaryOpSymbol$20 = $T($S($EXPECT($L67, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
7438
+ var BinaryOpSymbol$21 = $T($S($EXPECT($L69, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6730
7439
  return "&&";
6731
7440
  });
6732
- var BinaryOpSymbol$21 = $EXPECT($L68, fail, 'BinaryOpSymbol "&&"');
6733
- var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L69, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
7441
+ var BinaryOpSymbol$22 = $EXPECT($L70, fail, 'BinaryOpSymbol "&&"');
7442
+ var BinaryOpSymbol$23 = $T($S(CoffeeOfEnabled, $EXPECT($L71, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6734
7443
  return "in";
6735
7444
  });
6736
- var BinaryOpSymbol$23 = $T($S($EXPECT($L70, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
7445
+ var BinaryOpSymbol$24 = $T($S($EXPECT($L72, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6737
7446
  return "||";
6738
7447
  });
6739
- var BinaryOpSymbol$24 = $EXPECT($L71, fail, 'BinaryOpSymbol "||"');
6740
- var BinaryOpSymbol$25 = $EXPECT($L72, fail, 'BinaryOpSymbol "??"');
6741
- var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L1, fail, 'BinaryOpSymbol "?"')), function(value) {
7448
+ var BinaryOpSymbol$25 = $EXPECT($L73, fail, 'BinaryOpSymbol "||"');
7449
+ var BinaryOpSymbol$26 = $EXPECT($L74, fail, 'BinaryOpSymbol "??"');
7450
+ var BinaryOpSymbol$27 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L2, fail, 'BinaryOpSymbol "?"')), function(value) {
6742
7451
  return "??";
6743
7452
  });
6744
- var BinaryOpSymbol$27 = $TS($S($EXPECT($L73, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7453
+ var BinaryOpSymbol$28 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6745
7454
  return $1;
6746
7455
  });
6747
- var BinaryOpSymbol$28 = $TS($S(CoffeeNotEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L73, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7456
+ var BinaryOpSymbol$29 = $TS($S($EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6748
7457
  return {
6749
7458
  $loc,
6750
7459
  token: "instanceof",
@@ -6753,7 +7462,7 @@ ${input.slice(result.pos)}
6753
7462
  negated: true
6754
7463
  };
6755
7464
  });
6756
- var BinaryOpSymbol$29 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L69, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
7465
+ var BinaryOpSymbol$30 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L71, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
6757
7466
  return {
6758
7467
  $loc,
6759
7468
  token: "in",
@@ -6761,7 +7470,7 @@ ${input.slice(result.pos)}
6761
7470
  negated: true
6762
7471
  };
6763
7472
  });
6764
- var BinaryOpSymbol$30 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7473
+ var BinaryOpSymbol$31 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6765
7474
  return {
6766
7475
  method: "includes",
6767
7476
  relational: true,
@@ -6769,7 +7478,7 @@ ${input.slice(result.pos)}
6769
7478
  special: true
6770
7479
  };
6771
7480
  });
6772
- var BinaryOpSymbol$31 = $TS($S(CoffeeOfEnabled, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
7481
+ var BinaryOpSymbol$32 = $TS($S(CoffeeOfEnabled, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
6773
7482
  return {
6774
7483
  call: [module.getRef("indexOf"), ".call"],
6775
7484
  relational: true,
@@ -6778,7 +7487,7 @@ ${input.slice(result.pos)}
6778
7487
  special: true
6779
7488
  };
6780
7489
  });
6781
- var BinaryOpSymbol$32 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
7490
+ var BinaryOpSymbol$33 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
6782
7491
  return {
6783
7492
  method: "includes",
6784
7493
  relational: true,
@@ -6787,7 +7496,7 @@ ${input.slice(result.pos)}
6787
7496
  negated: true
6788
7497
  };
6789
7498
  });
6790
- var BinaryOpSymbol$33 = $TS($S(CoffeeOfEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7499
+ var BinaryOpSymbol$34 = $TS($S(CoffeeOfEnabled, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6791
7500
  return {
6792
7501
  call: [module.getRef("indexOf"), ".call"],
6793
7502
  relational: true,
@@ -6796,7 +7505,7 @@ ${input.slice(result.pos)}
6796
7505
  special: true
6797
7506
  };
6798
7507
  });
6799
- var BinaryOpSymbol$34 = $TS($S($N(CoffeeNotEnabled), $EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7508
+ var BinaryOpSymbol$35 = $TS($S($N(CoffeeNotEnabled), $EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6800
7509
  if (module.config.objectIs) {
6801
7510
  return {
6802
7511
  call: module.getRef("is"),
@@ -6808,7 +7517,7 @@ ${input.slice(result.pos)}
6808
7517
  }
6809
7518
  return "!==";
6810
7519
  });
6811
- var BinaryOpSymbol$35 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7520
+ var BinaryOpSymbol$36 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6812
7521
  if (module.config.objectIs) {
6813
7522
  return {
6814
7523
  call: module.getRef("is"),
@@ -6819,12 +7528,12 @@ ${input.slice(result.pos)}
6819
7528
  }
6820
7529
  return "===";
6821
7530
  });
6822
- var BinaryOpSymbol$36 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7531
+ var BinaryOpSymbol$37 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6823
7532
  return $1;
6824
7533
  });
6825
- var BinaryOpSymbol$37 = $EXPECT($L77, fail, 'BinaryOpSymbol "&"');
6826
- var BinaryOpSymbol$38 = $EXPECT($L78, fail, 'BinaryOpSymbol "^"');
6827
- var BinaryOpSymbol$39 = $EXPECT($L79, fail, 'BinaryOpSymbol "|"');
7534
+ var BinaryOpSymbol$38 = $EXPECT($L78, fail, 'BinaryOpSymbol "&"');
7535
+ var BinaryOpSymbol$39 = $EXPECT($L79, fail, 'BinaryOpSymbol "^"');
7536
+ var BinaryOpSymbol$40 = $EXPECT($L80, fail, 'BinaryOpSymbol "|"');
6828
7537
  function BinaryOpSymbol(state) {
6829
7538
  let eventData;
6830
7539
  if (state.events) {
@@ -6836,12 +7545,12 @@ ${input.slice(result.pos)}
6836
7545
  }
6837
7546
  }
6838
7547
  if (state.tokenize) {
6839
- const result = $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state));
7548
+ const result = $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state) || BinaryOpSymbol$40(state));
6840
7549
  if (state.events)
6841
7550
  state.events.exit?.("BinaryOpSymbol", state, result, eventData);
6842
7551
  return result;
6843
7552
  } else {
6844
- const result = BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state);
7553
+ const result = BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state) || BinaryOpSymbol$40(state);
6845
7554
  if (state.events)
6846
7555
  state.events.exit?.("BinaryOpSymbol", state, result, eventData);
6847
7556
  return result;
@@ -6967,7 +7676,8 @@ ${input.slice(result.pos)}
6967
7676
  if ($1.type === "ObjectExpression") {
6968
7677
  return {
6969
7678
  type: "ParenthesizedExpression",
6970
- children: ["(", $1, ")"]
7679
+ children: ["(", $1, ")"],
7680
+ expression: $1
6971
7681
  };
6972
7682
  }
6973
7683
  return $1;
@@ -6995,7 +7705,7 @@ ${input.slice(result.pos)}
6995
7705
  return result;
6996
7706
  }
6997
7707
  }
6998
- var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L80, fail, 'EmptyStatement ";"'))), function(value) {
7708
+ var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L81, fail, 'EmptyStatement ";"'))), function(value) {
6999
7709
  return { "type": "EmptyStatement", "children": value[0] };
7000
7710
  });
7001
7711
  function EmptyStatement(state) {
@@ -7955,7 +8665,7 @@ ${input.slice(result.pos)}
7955
8665
  return result;
7956
8666
  }
7957
8667
  }
7958
- var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L81, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
8668
+ var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L82, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
7959
8669
  var own = $1;
7960
8670
  var binding = $2;
7961
8671
  return {
@@ -8156,6 +8866,7 @@ ${input.slice(result.pos)}
8156
8866
  return {
8157
8867
  type: "SwitchStatement",
8158
8868
  children: $0,
8869
+ expression: condition,
8159
8870
  caseBlock
8160
8871
  };
8161
8872
  });
@@ -8242,7 +8953,7 @@ ${input.slice(result.pos)}
8242
8953
  return result;
8243
8954
  }
8244
8955
  }
8245
- var CaseBlock$0 = $TS($S(__, OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8956
+ var CaseBlock$0 = $TS($S($E($C(Samedent, _)), OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8246
8957
  var clauses = $3;
8247
8958
  return {
8248
8959
  type: "CaseBlock",
@@ -8338,10 +9049,20 @@ ${input.slice(result.pos)}
8338
9049
  return result;
8339
9050
  }
8340
9051
  }
8341
- var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, NoExpressions)), function(value) {
9052
+ var CaseClause$0 = $TS($S(MatchingPattern, $C(ThenClause, NestedBlockStatements, EmptyBareBlock)), function($skip, $loc, $0, $1, $2) {
9053
+ var pattern = $1;
9054
+ var block = $2;
9055
+ return {
9056
+ type: "PatternClause",
9057
+ children: $0,
9058
+ block,
9059
+ pattern
9060
+ };
9061
+ });
9062
+ var CaseClause$1 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, EmptyBareBlock)), function(value) {
8342
9063
  return { "type": "CaseClause", "children": value };
8343
9064
  });
8344
- var CaseClause$1 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements, NoExpressions), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
9065
+ var CaseClause$2 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements, EmptyBareBlock), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8345
9066
  var cases = $2;
8346
9067
  var block = $4;
8347
9068
  var b = $5;
@@ -8353,7 +9074,7 @@ ${input.slice(result.pos)}
8353
9074
  children: $0
8354
9075
  };
8355
9076
  });
8356
- var CaseClause$2 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, NoExpressions)), function($skip, $loc, $0, $1, $2, $3) {
9077
+ var CaseClause$3 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, EmptyBareBlock)), function($skip, $loc, $0, $1, $2, $3) {
8357
9078
  var block = $3;
8358
9079
  return {
8359
9080
  type: "DefaultClause",
@@ -8361,7 +9082,7 @@ ${input.slice(result.pos)}
8361
9082
  children: $0
8362
9083
  };
8363
9084
  });
8364
- var CaseClause$3 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, SingleLineStatements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
9085
+ var CaseClause$4 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, SingleLineStatements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8365
9086
  var block = $4;
8366
9087
  $1.token = "default";
8367
9088
  return {
@@ -8381,12 +9102,12 @@ ${input.slice(result.pos)}
8381
9102
  }
8382
9103
  }
8383
9104
  if (state.tokenize) {
8384
- const result = $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state));
9105
+ const result = $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state) || CaseClause$4(state));
8385
9106
  if (state.events)
8386
9107
  state.events.exit?.("CaseClause", state, result, eventData);
8387
9108
  return result;
8388
9109
  } else {
8389
- const result = CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state);
9110
+ const result = CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state) || CaseClause$4(state);
8390
9111
  if (state.events)
8391
9112
  state.events.exit?.("CaseClause", state, result, eventData);
8392
9113
  return result;
@@ -8424,33 +9145,8 @@ ${input.slice(result.pos)}
8424
9145
  return result;
8425
9146
  }
8426
9147
  }
8427
- var NoExpressions$0 = $T($EXPECT($L16, fail, 'NoExpressions ""'), function(value) {
8428
- return [];
8429
- });
8430
- function NoExpressions(state) {
8431
- let eventData;
8432
- if (state.events) {
8433
- const result = state.events.enter?.("NoExpressions", state);
8434
- if (result) {
8435
- if (result.cache)
8436
- return result.cache;
8437
- eventData = result.data;
8438
- }
8439
- }
8440
- if (state.tokenize) {
8441
- const result = $TOKEN("NoExpressions", state, NoExpressions$0(state));
8442
- if (state.events)
8443
- state.events.exit?.("NoExpressions", state, result, eventData);
8444
- return result;
8445
- } else {
8446
- const result = NoExpressions$0(state);
8447
- if (state.events)
8448
- state.events.exit?.("NoExpressions", state, result, eventData);
8449
- return result;
8450
- }
8451
- }
8452
9148
  var ImpliedColon$0 = $S(__, Colon);
8453
- var ImpliedColon$1 = $TV($EXPECT($L16, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
9149
+ var ImpliedColon$1 = $TV($EXPECT($L17, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8454
9150
  return { $loc, token: ":" };
8455
9151
  });
8456
9152
  function ImpliedColon(state) {
@@ -8590,7 +9286,7 @@ ${input.slice(result.pos)}
8590
9286
  return result;
8591
9287
  }
8592
9288
  }
8593
- var Finally$0 = $S(__, $EXPECT($L82, fail, 'Finally "finally"'), NonIdContinue, BracedBlock);
9289
+ var Finally$0 = $S(__, $EXPECT($L83, fail, 'Finally "finally"'), NonIdContinue, BracedBlock);
8594
9290
  function Finally(state) {
8595
9291
  let eventData;
8596
9292
  if (state.events) {
@@ -8642,13 +9338,15 @@ ${input.slice(result.pos)}
8642
9338
  });
8643
9339
  var Condition$1 = $TS($S(InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
8644
9340
  var open = $1;
8645
- var exp = $2;
9341
+ var expression = $2;
8646
9342
  var close = $3;
8647
- if (exp.type === "ParenthesizedExpression")
8648
- return exp;
9343
+ if (expression.type === "ParenthesizedExpression")
9344
+ return expression;
9345
+ expression = module.insertTrimmingSpace(expression, "");
8649
9346
  return {
8650
9347
  type: "ParenthesizedExpression",
8651
- children: [open, module.insertTrimmingSpace(exp, ""), close]
9348
+ children: [open, expression, close],
9349
+ expression
8652
9350
  };
8653
9351
  });
8654
9352
  function Condition(state) {
@@ -8702,7 +9400,7 @@ ${input.slice(result.pos)}
8702
9400
  return result;
8703
9401
  }
8704
9402
  }
8705
- var SuppressIndentedApplication$0 = $TV($EXPECT($L16, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
9403
+ var SuppressIndentedApplication$0 = $TV($EXPECT($L17, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8706
9404
  module.suppressIndentedApplication = true;
8707
9405
  });
8708
9406
  function SuppressIndentedApplication(state) {
@@ -8727,7 +9425,7 @@ ${input.slice(result.pos)}
8727
9425
  return result;
8728
9426
  }
8729
9427
  }
8730
- var IndentedApplicationAllowed$0 = $TV($EXPECT($L16, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
9428
+ var IndentedApplicationAllowed$0 = $TV($EXPECT($L17, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
8731
9429
  if (module.suppressIndentedApplication)
8732
9430
  return $skip;
8733
9431
  return;
@@ -8754,7 +9452,7 @@ ${input.slice(result.pos)}
8754
9452
  return result;
8755
9453
  }
8756
9454
  }
8757
- var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L16, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
9455
+ var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L17, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
8758
9456
  module.suppressTrailingMemberProperty.push(true);
8759
9457
  });
8760
9458
  function SuppressTrailingMemberProperty(state) {
@@ -8779,7 +9477,7 @@ ${input.slice(result.pos)}
8779
9477
  return result;
8780
9478
  }
8781
9479
  }
8782
- var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L16, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
9480
+ var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L17, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
8783
9481
  if (module.trailingMemberPropertySuppressed)
8784
9482
  return $skip;
8785
9483
  });
@@ -8828,13 +9526,13 @@ ${input.slice(result.pos)}
8828
9526
  return result;
8829
9527
  }
8830
9528
  }
8831
- var KeywordStatement$0 = $T($S($EXPECT($L83, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
9529
+ var KeywordStatement$0 = $T($S($EXPECT($L84, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
8832
9530
  return { "type": "BreakStatement", "children": value };
8833
9531
  });
8834
- var KeywordStatement$1 = $T($S($EXPECT($L84, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
9532
+ var KeywordStatement$1 = $T($S($EXPECT($L85, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
8835
9533
  return { "type": "ContinueStatement", "children": value };
8836
9534
  });
8837
- var KeywordStatement$2 = $T($S($EXPECT($L85, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
9535
+ var KeywordStatement$2 = $T($S($EXPECT($L86, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
8838
9536
  return { "type": "DebuggerStatement", "children": value };
8839
9537
  });
8840
9538
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
@@ -8865,7 +9563,7 @@ ${input.slice(result.pos)}
8865
9563
  return result;
8866
9564
  }
8867
9565
  }
8868
- var DebuggerExpression$0 = $TS($S($EXPECT($L85, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9566
+ var DebuggerExpression$0 = $TS($S($EXPECT($L86, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8869
9567
  return {
8870
9568
  type: "DebuggerExpression",
8871
9569
  children: ["(()=>{", $1, "})()"]
@@ -8993,7 +9691,7 @@ ${input.slice(result.pos)}
8993
9691
  return result;
8994
9692
  }
8995
9693
  }
8996
- var ImpliedImport$0 = $TV($EXPECT($L16, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
9694
+ var ImpliedImport$0 = $TV($EXPECT($L17, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8997
9695
  return { $loc, token: "import " };
8998
9696
  });
8999
9697
  function ImpliedImport(state) {
@@ -9142,7 +9840,7 @@ ${input.slice(result.pos)}
9142
9840
  return result;
9143
9841
  }
9144
9842
  }
9145
- var ImportAssertion$0 = $S($E(_), $EXPECT($L86, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9843
+ var ImportAssertion$0 = $S($E(_), $EXPECT($L87, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9146
9844
  function ImportAssertion(state) {
9147
9845
  let eventData;
9148
9846
  if (state.events) {
@@ -9170,6 +9868,22 @@ ${input.slice(result.pos)}
9170
9868
  return $2;
9171
9869
  return { ts: true, children: $0, binding: $2.binding };
9172
9870
  });
9871
+ var TypeAndImportSpecifier$1 = $TS($S(__, Operator, ImportSpecifier), function($skip, $loc, $0, $1, $2, $3) {
9872
+ var ws = $1;
9873
+ var spec = $3;
9874
+ if (spec.binding.type !== "Identifier") {
9875
+ throw new Error("Expected identifier after `operator`");
9876
+ }
9877
+ module.operators.add(spec.binding.name);
9878
+ return {
9879
+ ...spec,
9880
+ children: [
9881
+ ws,
9882
+ module.insertTrimmingSpace(spec[0], ""),
9883
+ spec.children.slice(1)
9884
+ ]
9885
+ };
9886
+ });
9173
9887
  function TypeAndImportSpecifier(state) {
9174
9888
  let eventData;
9175
9889
  if (state.events) {
@@ -9181,12 +9895,12 @@ ${input.slice(result.pos)}
9181
9895
  }
9182
9896
  }
9183
9897
  if (state.tokenize) {
9184
- const result = $TOKEN("TypeAndImportSpecifier", state, TypeAndImportSpecifier$0(state));
9898
+ const result = $TOKEN("TypeAndImportSpecifier", state, TypeAndImportSpecifier$0(state) || TypeAndImportSpecifier$1(state));
9185
9899
  if (state.events)
9186
9900
  state.events.exit?.("TypeAndImportSpecifier", state, result, eventData);
9187
9901
  return result;
9188
9902
  } else {
9189
- const result = TypeAndImportSpecifier$0(state);
9903
+ const result = TypeAndImportSpecifier$0(state) || TypeAndImportSpecifier$1(state);
9190
9904
  if (state.events)
9191
9905
  state.events.exit?.("TypeAndImportSpecifier", state, result, eventData);
9192
9906
  return result;
@@ -9229,7 +9943,7 @@ ${input.slice(result.pos)}
9229
9943
  }
9230
9944
  }
9231
9945
  var ImportAsToken$0 = $S(__, As);
9232
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L6, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9946
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L7, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9233
9947
  var l = $1;
9234
9948
  var ws = $2;
9235
9949
  var c = $3;
@@ -9316,7 +10030,7 @@ ${input.slice(result.pos)}
9316
10030
  return result;
9317
10031
  }
9318
10032
  }
9319
- var UnprocessedModuleSpecifier$0 = BasicStringLiteral;
10033
+ var UnprocessedModuleSpecifier$0 = StringLiteral;
9320
10034
  var UnprocessedModuleSpecifier$1 = UnquotedSpecifier;
9321
10035
  function UnprocessedModuleSpecifier(state) {
9322
10036
  let eventData;
@@ -9583,6 +10297,7 @@ ${input.slice(result.pos)}
9583
10297
  var Declaration$1 = ClassDeclaration;
9584
10298
  var Declaration$2 = LexicalDeclaration;
9585
10299
  var Declaration$3 = TypeDeclaration;
10300
+ var Declaration$4 = OperatorDeclaration;
9586
10301
  function Declaration(state) {
9587
10302
  let eventData;
9588
10303
  if (state.events) {
@@ -9594,12 +10309,12 @@ ${input.slice(result.pos)}
9594
10309
  }
9595
10310
  }
9596
10311
  if (state.tokenize) {
9597
- const result = $TOKEN("Declaration", state, Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state));
10312
+ const result = $TOKEN("Declaration", state, Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state) || Declaration$4(state));
9598
10313
  if (state.events)
9599
10314
  state.events.exit?.("Declaration", state, result, eventData);
9600
10315
  return result;
9601
10316
  } else {
9602
- const result = Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state);
10317
+ const result = Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state) || Declaration$4(state);
9603
10318
  if (state.events)
9604
10319
  state.events.exit?.("Declaration", state, result, eventData);
9605
10320
  return result;
@@ -9727,7 +10442,7 @@ ${input.slice(result.pos)}
9727
10442
  return result;
9728
10443
  }
9729
10444
  }
9730
- var ConstAssignment$0 = $TV($EXPECT($L87, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
10445
+ var ConstAssignment$0 = $TV($EXPECT($L88, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
9731
10446
  return { $loc, token: "=" };
9732
10447
  });
9733
10448
  function ConstAssignment(state) {
@@ -9752,7 +10467,7 @@ ${input.slice(result.pos)}
9752
10467
  return result;
9753
10468
  }
9754
10469
  }
9755
- var LetAssignment$0 = $TV($EXPECT($L88, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10470
+ var LetAssignment$0 = $TV($EXPECT($L89, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
9756
10471
  return { $loc, token: "=" };
9757
10472
  });
9758
10473
  function LetAssignment(state) {
@@ -10218,57 +10933,24 @@ ${input.slice(result.pos)}
10218
10933
  return result;
10219
10934
  }
10220
10935
  }
10221
- var StringLiteral$0 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10222
- return module.dedentBlockSubstitutions($0);
10223
- });
10224
- var StringLiteral$1 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10225
- var s = $1;
10226
- var str = $2;
10227
- var e = $3;
10228
- return [s, module.dedentBlockString(str), e];
10229
- });
10230
- var StringLiteral$2 = CoffeeInterpolatedDoubleQuotedString;
10231
- var StringLiteral$3 = BasicStringLiteral;
10232
- function StringLiteral(state) {
10233
- let eventData;
10234
- if (state.events) {
10235
- const result = state.events.enter?.("StringLiteral", state);
10236
- if (result) {
10237
- if (result.cache)
10238
- return result.cache;
10239
- eventData = result.data;
10240
- }
10241
- }
10242
- if (state.tokenize) {
10243
- const result = $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state));
10244
- if (state.events)
10245
- state.events.exit?.("StringLiteral", state, result, eventData);
10246
- return result;
10247
- } else {
10248
- const result = StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state);
10249
- if (state.events)
10250
- state.events.exit?.("StringLiteral", state, result, eventData);
10251
- return result;
10252
- }
10253
- }
10254
- var BasicStringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10936
+ var StringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10255
10937
  var str = $2;
10256
10938
  return {
10257
10939
  token: `"${module.modifyString(str.token)}"`,
10258
10940
  $loc
10259
10941
  };
10260
10942
  });
10261
- var BasicStringLiteral$1 = $TS($S(SingleQuote, SingleStringCharacters, SingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10943
+ var StringLiteral$1 = $TS($S(SingleQuote, SingleStringCharacters, SingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10262
10944
  var str = $2;
10263
10945
  return {
10264
10946
  token: `'${module.modifyString(str.token)}'`,
10265
10947
  $loc
10266
10948
  };
10267
10949
  });
10268
- function BasicStringLiteral(state) {
10950
+ function StringLiteral(state) {
10269
10951
  let eventData;
10270
10952
  if (state.events) {
10271
- const result = state.events.enter?.("BasicStringLiteral", state);
10953
+ const result = state.events.enter?.("StringLiteral", state);
10272
10954
  if (result) {
10273
10955
  if (result.cache)
10274
10956
  return result.cache;
@@ -10276,14 +10958,14 @@ ${input.slice(result.pos)}
10276
10958
  }
10277
10959
  }
10278
10960
  if (state.tokenize) {
10279
- const result = $TOKEN("BasicStringLiteral", state, BasicStringLiteral$0(state) || BasicStringLiteral$1(state));
10961
+ const result = $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state));
10280
10962
  if (state.events)
10281
- state.events.exit?.("BasicStringLiteral", state, result, eventData);
10963
+ state.events.exit?.("StringLiteral", state, result, eventData);
10282
10964
  return result;
10283
10965
  } else {
10284
- const result = BasicStringLiteral$0(state) || BasicStringLiteral$1(state);
10966
+ const result = StringLiteral$0(state) || StringLiteral$1(state);
10285
10967
  if (state.events)
10286
- state.events.exit?.("BasicStringLiteral", state, result, eventData);
10968
+ state.events.exit?.("StringLiteral", state, result, eventData);
10287
10969
  return result;
10288
10970
  }
10289
10971
  }
@@ -10416,6 +11098,7 @@ ${input.slice(result.pos)}
10416
11098
  var e = $4;
10417
11099
  if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
10418
11100
  return {
11101
+ type: "StringLiteral",
10419
11102
  token: parts.length ? `"${module.modifyString(parts[0].token)}"` : '""',
10420
11103
  $loc
10421
11104
  };
@@ -10427,7 +11110,10 @@ ${input.slice(result.pos)}
10427
11110
  }
10428
11111
  });
10429
11112
  s.token = e.token = "`";
10430
- return [s, parts, e];
11113
+ return {
11114
+ type: "TemplateLiteral",
11115
+ children: [s, parts, e]
11116
+ };
10431
11117
  });
10432
11118
  function CoffeeInterpolatedDoubleQuotedString(state) {
10433
11119
  let eventData;
@@ -10477,8 +11163,8 @@ ${input.slice(result.pos)}
10477
11163
  }
10478
11164
  }
10479
11165
  var RegularExpressionLiteral$0 = HeregexLiteral;
10480
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L52, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L52, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10481
- return { $loc, token: $1 };
11166
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L53, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L53, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11167
+ return { type: "RegularExpressionLiteral", $loc, token: $1 };
10482
11168
  });
10483
11169
  function RegularExpressionLiteral(state) {
10484
11170
  let eventData;
@@ -10578,7 +11264,10 @@ ${input.slice(result.pos)}
10578
11264
  result.push({ ...close, token: ")" });
10579
11265
  return result;
10580
11266
  }
10581
- return $0;
11267
+ return {
11268
+ type: "RegularExpressionLiteral",
11269
+ children: $0
11270
+ };
10582
11271
  });
10583
11272
  function HeregexLiteral(state) {
10584
11273
  let eventData;
@@ -10779,7 +11468,25 @@ ${input.slice(result.pos)}
10779
11468
  var TemplateLiteral$0 = $TS($S(TripleTick, $Q($C(TemplateBlockCharacters, TemplateSubstitution)), TripleTick), function($skip, $loc, $0, $1, $2, $3) {
10780
11469
  return module.dedentBlockSubstitutions($0);
10781
11470
  });
10782
- var TemplateLiteral$1 = $S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick);
11471
+ var TemplateLiteral$1 = $TS($S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick), function($skip, $loc, $0, $1, $2, $3) {
11472
+ return {
11473
+ type: "TemplateLiteral",
11474
+ children: $0
11475
+ };
11476
+ });
11477
+ var TemplateLiteral$2 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
11478
+ return module.dedentBlockSubstitutions($0);
11479
+ });
11480
+ var TemplateLiteral$3 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
11481
+ var s = $1;
11482
+ var str = $2;
11483
+ var e = $3;
11484
+ return {
11485
+ type: "TemplateLiteral",
11486
+ children: [s, module.dedentBlockString(str), e]
11487
+ };
11488
+ });
11489
+ var TemplateLiteral$4 = CoffeeInterpolatedDoubleQuotedString;
10783
11490
  function TemplateLiteral(state) {
10784
11491
  let eventData;
10785
11492
  if (state.events) {
@@ -10791,12 +11498,12 @@ ${input.slice(result.pos)}
10791
11498
  }
10792
11499
  }
10793
11500
  if (state.tokenize) {
10794
- const result = $TOKEN("TemplateLiteral", state, TemplateLiteral$0(state) || TemplateLiteral$1(state));
11501
+ const result = $TOKEN("TemplateLiteral", state, TemplateLiteral$0(state) || TemplateLiteral$1(state) || TemplateLiteral$2(state) || TemplateLiteral$3(state) || TemplateLiteral$4(state));
10795
11502
  if (state.events)
10796
11503
  state.events.exit?.("TemplateLiteral", state, result, eventData);
10797
11504
  return result;
10798
11505
  } else {
10799
- const result = TemplateLiteral$0(state) || TemplateLiteral$1(state);
11506
+ const result = TemplateLiteral$0(state) || TemplateLiteral$1(state) || TemplateLiteral$2(state) || TemplateLiteral$3(state) || TemplateLiteral$4(state);
10800
11507
  if (state.events)
10801
11508
  state.events.exit?.("TemplateLiteral", state, result, eventData);
10802
11509
  return result;
@@ -10879,9 +11586,7 @@ ${input.slice(result.pos)}
10879
11586
  var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R35, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
10880
11587
  var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R36, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
10881
11588
  var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R37, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
10882
- var ReservedWord$4 = $S(CoffeeNotEnabled, $R$0($EXPECT($R38, fail, "ReservedWord /(?:not)(?!\\p{ID_Continue})/")));
10883
- var ReservedWord$5 = $S($EXPECT($L74, fail, 'ReservedWord "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'ReservedWord "in"'), NonIdContinue);
10884
- var ReservedWord$6 = $R$0($EXPECT($R39, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
11589
+ var ReservedWord$4 = $R$0($EXPECT($R38, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
10885
11590
  function ReservedWord(state) {
10886
11591
  let eventData;
10887
11592
  if (state.events) {
@@ -10893,12 +11598,12 @@ ${input.slice(result.pos)}
10893
11598
  }
10894
11599
  }
10895
11600
  if (state.tokenize) {
10896
- const result = $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state) || ReservedWord$5(state) || ReservedWord$6(state));
11601
+ const result = $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state));
10897
11602
  if (state.events)
10898
11603
  state.events.exit?.("ReservedWord", state, result, eventData);
10899
11604
  return result;
10900
11605
  } else {
10901
- const result = ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state) || ReservedWord$5(state) || ReservedWord$6(state);
11606
+ const result = ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state);
10902
11607
  if (state.events)
10903
11608
  state.events.exit?.("ReservedWord", state, result, eventData);
10904
11609
  return result;
@@ -10952,7 +11657,7 @@ ${input.slice(result.pos)}
10952
11657
  return result;
10953
11658
  }
10954
11659
  }
10955
- var JSSingleLineComment$0 = $TR($EXPECT($R40, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11660
+ var JSSingleLineComment$0 = $TR($EXPECT($R39, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10956
11661
  return { $loc, token: $0 };
10957
11662
  });
10958
11663
  function JSSingleLineComment(state) {
@@ -11001,7 +11706,7 @@ ${input.slice(result.pos)}
11001
11706
  return result;
11002
11707
  }
11003
11708
  }
11004
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L90, fail, 'JSMultiLineComment "*/"')), $EXPECT($R41, fail, "JSMultiLineComment /./"))), $EXPECT($L90, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11709
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L91, fail, 'JSMultiLineComment "*/"')), $EXPECT($R40, fail, "JSMultiLineComment /./"))), $EXPECT($L91, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11005
11710
  return { $loc, token: $1 };
11006
11711
  });
11007
11712
  function JSMultiLineComment(state) {
@@ -11026,7 +11731,7 @@ ${input.slice(result.pos)}
11026
11731
  return result;
11027
11732
  }
11028
11733
  }
11029
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R42, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11734
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R41, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11030
11735
  return { $loc, token: `//${$1}` };
11031
11736
  });
11032
11737
  function CoffeeSingleLineComment(state) {
@@ -11051,7 +11756,8 @@ ${input.slice(result.pos)}
11051
11756
  return result;
11052
11757
  }
11053
11758
  }
11054
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($Q($S($N($C(CoffeeHereCommentStart, $EXPECT($L90, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R41, fail, "CoffeeMultiLineComment /./")))), CoffeeHereCommentStart), function($skip, $loc, $0, $1, $2, $3) {
11759
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R42, fail, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11760
+ $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
11055
11761
  return { $loc, token: `/*${$2}*/` };
11056
11762
  });
11057
11763
  function CoffeeMultiLineComment(state) {
@@ -11099,7 +11805,7 @@ ${input.slice(result.pos)}
11099
11805
  return result;
11100
11806
  }
11101
11807
  }
11102
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L90, fail, 'InlineComment "*/"')), $EXPECT($R44, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L90, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
11808
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L91, fail, 'InlineComment "*/"')), $EXPECT($R44, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L91, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
11103
11809
  return { $loc, token: $1 };
11104
11810
  });
11105
11811
  function InlineComment(state) {
@@ -11198,7 +11904,7 @@ ${input.slice(result.pos)}
11198
11904
  var NonNewlineWhitespace$0 = $TR($EXPECT($R45, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11199
11905
  return { $loc, token: $0 };
11200
11906
  });
11201
- var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L91, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
11907
+ var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L92, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
11202
11908
  return "";
11203
11909
  });
11204
11910
  function NonNewlineWhitespace(state) {
@@ -11350,7 +12056,7 @@ ${input.slice(result.pos)}
11350
12056
  }
11351
12057
  }
11352
12058
  var StatementDelimiter$0 = SemicolonDelimiter;
11353
- var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L92, fail, 'StatementDelimiter "("'), $EXPECT($L93, fail, 'StatementDelimiter "["'), $EXPECT($L94, fail, 'StatementDelimiter "`"'), $EXPECT($L55, fail, 'StatementDelimiter "+"'), $EXPECT($L13, fail, 'StatementDelimiter "-"'), $EXPECT($L51, fail, 'StatementDelimiter "*"'), $EXPECT($L52, fail, 'StatementDelimiter "/"'), ObjectLiteral))), InsertSemicolon);
12059
+ var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L1, fail, 'StatementDelimiter "("'), $EXPECT($L93, fail, 'StatementDelimiter "["'), $EXPECT($L94, fail, 'StatementDelimiter "`"'), $EXPECT($L56, fail, 'StatementDelimiter "+"'), $EXPECT($L14, fail, 'StatementDelimiter "-"'), $EXPECT($L52, fail, 'StatementDelimiter "*"'), $EXPECT($L53, fail, 'StatementDelimiter "/"'), ObjectLiteral))), InsertSemicolon);
11354
12060
  var StatementDelimiter$2 = $Y(EOS);
11355
12061
  function StatementDelimiter(state) {
11356
12062
  let eventData;
@@ -11425,7 +12131,7 @@ ${input.slice(result.pos)}
11425
12131
  return result;
11426
12132
  }
11427
12133
  }
11428
- var Loc$0 = $TV($EXPECT($L16, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
12134
+ var Loc$0 = $TV($EXPECT($L17, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
11429
12135
  return { $loc, token: "" };
11430
12136
  });
11431
12137
  function Loc(state) {
@@ -11450,7 +12156,7 @@ ${input.slice(result.pos)}
11450
12156
  return result;
11451
12157
  }
11452
12158
  }
11453
- var Abstract$0 = $TV($TEXT($S($EXPECT($L95, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L6, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
12159
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L95, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L7, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11454
12160
  return { $loc, token: $1, ts: true };
11455
12161
  });
11456
12162
  function Abstract(state) {
@@ -11475,7 +12181,7 @@ ${input.slice(result.pos)}
11475
12181
  return result;
11476
12182
  }
11477
12183
  }
11478
- var Ampersand$0 = $TV($EXPECT($L77, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
12184
+ var Ampersand$0 = $TV($EXPECT($L78, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11479
12185
  return { $loc, token: $1 };
11480
12186
  });
11481
12187
  function Ampersand(state) {
@@ -11750,7 +12456,7 @@ ${input.slice(result.pos)}
11750
12456
  return result;
11751
12457
  }
11752
12458
  }
11753
- var CloseBrace$0 = $TV($EXPECT($L19, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
12459
+ var CloseBrace$0 = $TV($EXPECT($L20, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11754
12460
  return { $loc, token: $1 };
11755
12461
  });
11756
12462
  function CloseBrace(state) {
@@ -11800,7 +12506,7 @@ ${input.slice(result.pos)}
11800
12506
  return result;
11801
12507
  }
11802
12508
  }
11803
- var CloseParen$0 = $TV($EXPECT($L17, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12509
+ var CloseParen$0 = $TV($EXPECT($L18, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11804
12510
  return { $loc, token: $1 };
11805
12511
  });
11806
12512
  function CloseParen(state) {
@@ -11875,6 +12581,31 @@ ${input.slice(result.pos)}
11875
12581
  return result;
11876
12582
  }
11877
12583
  }
12584
+ var Comma$0 = $TV($EXPECT($L106, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
12585
+ return { $loc, token: $1 };
12586
+ });
12587
+ function Comma(state) {
12588
+ let eventData;
12589
+ if (state.events) {
12590
+ const result = state.events.enter?.("Comma", state);
12591
+ if (result) {
12592
+ if (result.cache)
12593
+ return result.cache;
12594
+ eventData = result.data;
12595
+ }
12596
+ }
12597
+ if (state.tokenize) {
12598
+ const result = $TOKEN("Comma", state, Comma$0(state));
12599
+ if (state.events)
12600
+ state.events.exit?.("Comma", state, result, eventData);
12601
+ return result;
12602
+ } else {
12603
+ const result = Comma$0(state);
12604
+ if (state.events)
12605
+ state.events.exit?.("Comma", state, result, eventData);
12606
+ return result;
12607
+ }
12608
+ }
11878
12609
  var ConstructorShorthand$0 = $TV($EXPECT($L97, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11879
12610
  return { $loc, token: "constructor" };
11880
12611
  });
@@ -11900,7 +12631,7 @@ ${input.slice(result.pos)}
11900
12631
  return result;
11901
12632
  }
11902
12633
  }
11903
- var Declare$0 = $TS($S($EXPECT($L106, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12634
+ var Declare$0 = $TS($S($EXPECT($L107, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11904
12635
  return { $loc, token: $1 };
11905
12636
  });
11906
12637
  function Declare(state) {
@@ -11925,7 +12656,7 @@ ${input.slice(result.pos)}
11925
12656
  return result;
11926
12657
  }
11927
12658
  }
11928
- var Default$0 = $TS($S($EXPECT($L107, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12659
+ var Default$0 = $TS($S($EXPECT($L108, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11929
12660
  return { $loc, token: $1 };
11930
12661
  });
11931
12662
  function Default(state) {
@@ -11950,7 +12681,7 @@ ${input.slice(result.pos)}
11950
12681
  return result;
11951
12682
  }
11952
12683
  }
11953
- var Delete$0 = $TS($S($EXPECT($L108, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12684
+ var Delete$0 = $TS($S($EXPECT($L109, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11954
12685
  return { $loc, token: $1 };
11955
12686
  });
11956
12687
  function Delete(state) {
@@ -11975,7 +12706,7 @@ ${input.slice(result.pos)}
11975
12706
  return result;
11976
12707
  }
11977
12708
  }
11978
- var Do$0 = $TS($S($EXPECT($L109, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12709
+ var Do$0 = $TS($S($EXPECT($L110, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11979
12710
  return { $loc, token: $1 };
11980
12711
  });
11981
12712
  function Do(state) {
@@ -12000,7 +12731,7 @@ ${input.slice(result.pos)}
12000
12731
  return result;
12001
12732
  }
12002
12733
  }
12003
- var Dot$0 = $TV($EXPECT($L2, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
12734
+ var Dot$0 = $TV($EXPECT($L3, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
12004
12735
  return { $loc, token: $1 };
12005
12736
  });
12006
12737
  function Dot(state) {
@@ -12025,7 +12756,7 @@ ${input.slice(result.pos)}
12025
12756
  return result;
12026
12757
  }
12027
12758
  }
12028
- var DotDot$0 = $TV($EXPECT($L110, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
12759
+ var DotDot$0 = $TV($EXPECT($L111, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
12029
12760
  return { $loc, token: $1 };
12030
12761
  });
12031
12762
  function DotDot(state) {
@@ -12050,7 +12781,7 @@ ${input.slice(result.pos)}
12050
12781
  return result;
12051
12782
  }
12052
12783
  }
12053
- var DotDotDot$0 = $TV($EXPECT($L111, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12784
+ var DotDotDot$0 = $TV($EXPECT($L112, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12054
12785
  return { $loc, token: $1 };
12055
12786
  });
12056
12787
  function DotDotDot(state) {
@@ -12075,7 +12806,7 @@ ${input.slice(result.pos)}
12075
12806
  return result;
12076
12807
  }
12077
12808
  }
12078
- var DoubleColon$0 = $TV($EXPECT($L112, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12809
+ var DoubleColon$0 = $TV($EXPECT($L113, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12079
12810
  return { $loc, token: $1 };
12080
12811
  });
12081
12812
  function DoubleColon(state) {
@@ -12100,7 +12831,7 @@ ${input.slice(result.pos)}
12100
12831
  return result;
12101
12832
  }
12102
12833
  }
12103
- var DoubleQuote$0 = $TV($EXPECT($L113, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12834
+ var DoubleQuote$0 = $TV($EXPECT($L114, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12104
12835
  return { $loc, token: $1 };
12105
12836
  });
12106
12837
  function DoubleQuote(state) {
@@ -12125,7 +12856,7 @@ ${input.slice(result.pos)}
12125
12856
  return result;
12126
12857
  }
12127
12858
  }
12128
- var Else$0 = $TS($S($EXPECT($L114, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12859
+ var Else$0 = $TS($S($EXPECT($L115, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12129
12860
  return { $loc, token: $1 };
12130
12861
  });
12131
12862
  function Else(state) {
@@ -12175,7 +12906,7 @@ ${input.slice(result.pos)}
12175
12906
  return result;
12176
12907
  }
12177
12908
  }
12178
- var Export$0 = $TS($S($EXPECT($L115, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12909
+ var Export$0 = $TS($S($EXPECT($L116, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12179
12910
  return { $loc, token: $1 };
12180
12911
  });
12181
12912
  function Export(state) {
@@ -12200,7 +12931,7 @@ ${input.slice(result.pos)}
12200
12931
  return result;
12201
12932
  }
12202
12933
  }
12203
- var Extends$0 = $TS($S($EXPECT($L116, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12934
+ var Extends$0 = $TS($S($EXPECT($L117, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12204
12935
  return { $loc, token: $1 };
12205
12936
  });
12206
12937
  function Extends(state) {
@@ -12225,7 +12956,7 @@ ${input.slice(result.pos)}
12225
12956
  return result;
12226
12957
  }
12227
12958
  }
12228
- var For$0 = $TS($S($EXPECT($L117, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12959
+ var For$0 = $TS($S($EXPECT($L118, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12229
12960
  return { $loc, token: $1 };
12230
12961
  });
12231
12962
  function For(state) {
@@ -12250,7 +12981,7 @@ ${input.slice(result.pos)}
12250
12981
  return result;
12251
12982
  }
12252
12983
  }
12253
- var From$0 = $TS($S($EXPECT($L118, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12984
+ var From$0 = $TS($S($EXPECT($L119, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12254
12985
  return { $loc, token: $1 };
12255
12986
  });
12256
12987
  function From(state) {
@@ -12275,7 +13006,7 @@ ${input.slice(result.pos)}
12275
13006
  return result;
12276
13007
  }
12277
13008
  }
12278
- var Function$0 = $TS($S($EXPECT($L119, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13009
+ var Function$0 = $TS($S($EXPECT($L120, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12279
13010
  return { $loc, token: $1 };
12280
13011
  });
12281
13012
  function Function(state) {
@@ -12300,7 +13031,7 @@ ${input.slice(result.pos)}
12300
13031
  return result;
12301
13032
  }
12302
13033
  }
12303
- var GetOrSet$0 = $TS($S($C($EXPECT($L120, fail, 'GetOrSet "get"'), $EXPECT($L121, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13034
+ var GetOrSet$0 = $TS($S($C($EXPECT($L121, fail, 'GetOrSet "get"'), $EXPECT($L122, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12304
13035
  return { $loc, token: $1, type: "GetOrSet" };
12305
13036
  });
12306
13037
  function GetOrSet(state) {
@@ -12325,7 +13056,7 @@ ${input.slice(result.pos)}
12325
13056
  return result;
12326
13057
  }
12327
13058
  }
12328
- var If$0 = $TV($TEXT($S($EXPECT($L122, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L6, fail, 'If " "')))), function($skip, $loc, $0, $1) {
13059
+ var If$0 = $TV($TEXT($S($EXPECT($L123, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L7, fail, 'If " "')))), function($skip, $loc, $0, $1) {
12329
13060
  return { $loc, token: $1 };
12330
13061
  });
12331
13062
  function If(state) {
@@ -12350,7 +13081,7 @@ ${input.slice(result.pos)}
12350
13081
  return result;
12351
13082
  }
12352
13083
  }
12353
- var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R47, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
13084
+ var Import$0 = $TS($S($EXPECT($L12, fail, 'Import "import"'), $Y($EXPECT($R47, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
12354
13085
  return { $loc, token: $1 };
12355
13086
  });
12356
13087
  function Import(state) {
@@ -12375,7 +13106,7 @@ ${input.slice(result.pos)}
12375
13106
  return result;
12376
13107
  }
12377
13108
  }
12378
- var In$0 = $TS($S($EXPECT($L75, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13109
+ var In$0 = $TS($S($EXPECT($L76, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12379
13110
  return { $loc, token: $1 };
12380
13111
  });
12381
13112
  function In(state) {
@@ -12400,7 +13131,7 @@ ${input.slice(result.pos)}
12400
13131
  return result;
12401
13132
  }
12402
13133
  }
12403
- var LetOrConst$0 = $TS($S($C($EXPECT($L123, fail, 'LetOrConst "let"'), $EXPECT($L124, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13134
+ var LetOrConst$0 = $TS($S($C($EXPECT($L124, fail, 'LetOrConst "let"'), $EXPECT($L125, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12404
13135
  return { $loc, token: $1 };
12405
13136
  });
12406
13137
  function LetOrConst(state) {
@@ -12425,7 +13156,7 @@ ${input.slice(result.pos)}
12425
13156
  return result;
12426
13157
  }
12427
13158
  }
12428
- var Loop$0 = $TS($S($EXPECT($L125, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13159
+ var Loop$0 = $TS($S($EXPECT($L126, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12429
13160
  return { $loc, token: "while(true)" };
12430
13161
  });
12431
13162
  function Loop(state) {
@@ -12450,7 +13181,7 @@ ${input.slice(result.pos)}
12450
13181
  return result;
12451
13182
  }
12452
13183
  }
12453
- var New$0 = $TS($S($EXPECT($L126, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13184
+ var New$0 = $TS($S($EXPECT($L127, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12454
13185
  return { $loc, token: $1 };
12455
13186
  });
12456
13187
  function New(state) {
@@ -12475,7 +13206,7 @@ ${input.slice(result.pos)}
12475
13206
  return result;
12476
13207
  }
12477
13208
  }
12478
- var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L74, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L6, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
13209
+ var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L50, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L7, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
12479
13210
  return { $loc, token: "!" };
12480
13211
  });
12481
13212
  function Not(state) {
@@ -12500,7 +13231,7 @@ ${input.slice(result.pos)}
12500
13231
  return result;
12501
13232
  }
12502
13233
  }
12503
- var Of$0 = $TS($S($EXPECT($L69, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13234
+ var Of$0 = $TS($S($EXPECT($L71, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12504
13235
  return { $loc, token: $1 };
12505
13236
  });
12506
13237
  function Of(state) {
@@ -12525,7 +13256,7 @@ ${input.slice(result.pos)}
12525
13256
  return result;
12526
13257
  }
12527
13258
  }
12528
- var OpenAngleBracket$0 = $TV($EXPECT($L127, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
13259
+ var OpenAngleBracket$0 = $TV($EXPECT($L128, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
12529
13260
  return { $loc, token: $1 };
12530
13261
  });
12531
13262
  function OpenAngleBracket(state) {
@@ -12550,7 +13281,7 @@ ${input.slice(result.pos)}
12550
13281
  return result;
12551
13282
  }
12552
13283
  }
12553
- var OpenBrace$0 = $TV($EXPECT($L128, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
13284
+ var OpenBrace$0 = $TV($EXPECT($L129, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
12554
13285
  return { $loc, token: $1 };
12555
13286
  });
12556
13287
  function OpenBrace(state) {
@@ -12600,7 +13331,7 @@ ${input.slice(result.pos)}
12600
13331
  return result;
12601
13332
  }
12602
13333
  }
12603
- var OpenParen$0 = $TV($EXPECT($L92, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
13334
+ var OpenParen$0 = $TV($EXPECT($L1, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
12604
13335
  return { $loc, token: $1 };
12605
13336
  });
12606
13337
  function OpenParen(state) {
@@ -12625,7 +13356,32 @@ ${input.slice(result.pos)}
12625
13356
  return result;
12626
13357
  }
12627
13358
  }
12628
- var Public$0 = $TS($S($EXPECT($L129, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13359
+ var Operator$0 = $TS($S($EXPECT($L130, fail, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13360
+ return { $loc, token: $1 };
13361
+ });
13362
+ function Operator(state) {
13363
+ let eventData;
13364
+ if (state.events) {
13365
+ const result = state.events.enter?.("Operator", state);
13366
+ if (result) {
13367
+ if (result.cache)
13368
+ return result.cache;
13369
+ eventData = result.data;
13370
+ }
13371
+ }
13372
+ if (state.tokenize) {
13373
+ const result = $TOKEN("Operator", state, Operator$0(state));
13374
+ if (state.events)
13375
+ state.events.exit?.("Operator", state, result, eventData);
13376
+ return result;
13377
+ } else {
13378
+ const result = Operator$0(state);
13379
+ if (state.events)
13380
+ state.events.exit?.("Operator", state, result, eventData);
13381
+ return result;
13382
+ }
13383
+ }
13384
+ var Public$0 = $TS($S($EXPECT($L131, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12629
13385
  return { $loc, token: $1 };
12630
13386
  });
12631
13387
  function Public(state) {
@@ -12650,7 +13406,7 @@ ${input.slice(result.pos)}
12650
13406
  return result;
12651
13407
  }
12652
13408
  }
12653
- var Private$0 = $TS($S($EXPECT($L130, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13409
+ var Private$0 = $TS($S($EXPECT($L132, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12654
13410
  return { $loc, token: $1 };
12655
13411
  });
12656
13412
  function Private(state) {
@@ -12675,7 +13431,7 @@ ${input.slice(result.pos)}
12675
13431
  return result;
12676
13432
  }
12677
13433
  }
12678
- var Protected$0 = $TS($S($EXPECT($L131, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13434
+ var Protected$0 = $TS($S($EXPECT($L133, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12679
13435
  return { $loc, token: $1 };
12680
13436
  });
12681
13437
  function Protected(state) {
@@ -12700,7 +13456,7 @@ ${input.slice(result.pos)}
12700
13456
  return result;
12701
13457
  }
12702
13458
  }
12703
- var Pipe$0 = $TV($EXPECT($L132, fail, 'Pipe "|>"'), function($skip, $loc, $0, $1) {
13459
+ var Pipe$0 = $TV($EXPECT($L134, fail, 'Pipe "|>"'), function($skip, $loc, $0, $1) {
12704
13460
  return { $loc, token: $1 };
12705
13461
  });
12706
13462
  function Pipe(state) {
@@ -12725,7 +13481,7 @@ ${input.slice(result.pos)}
12725
13481
  return result;
12726
13482
  }
12727
13483
  }
12728
- var QuestionMark$0 = $TV($EXPECT($L1, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
13484
+ var QuestionMark$0 = $TV($EXPECT($L2, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12729
13485
  return { $loc, token: $1 };
12730
13486
  });
12731
13487
  function QuestionMark(state) {
@@ -12750,7 +13506,7 @@ ${input.slice(result.pos)}
12750
13506
  return result;
12751
13507
  }
12752
13508
  }
12753
- var Readonly$0 = $TS($S($EXPECT($L133, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13509
+ var Readonly$0 = $TS($S($EXPECT($L135, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12754
13510
  return { $loc, token: $1, ts: true };
12755
13511
  });
12756
13512
  function Readonly(state) {
@@ -12775,7 +13531,7 @@ ${input.slice(result.pos)}
12775
13531
  return result;
12776
13532
  }
12777
13533
  }
12778
- var Return$0 = $TS($S($EXPECT($L134, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13534
+ var Return$0 = $TS($S($EXPECT($L136, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12779
13535
  return { $loc, token: $1 };
12780
13536
  });
12781
13537
  function Return(state) {
@@ -12800,7 +13556,7 @@ ${input.slice(result.pos)}
12800
13556
  return result;
12801
13557
  }
12802
13558
  }
12803
- var Satisfies$0 = $TS($S($EXPECT($L135, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13559
+ var Satisfies$0 = $TS($S($EXPECT($L137, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12804
13560
  return { $loc, token: $1 };
12805
13561
  });
12806
13562
  function Satisfies(state) {
@@ -12825,7 +13581,7 @@ ${input.slice(result.pos)}
12825
13581
  return result;
12826
13582
  }
12827
13583
  }
12828
- var Semicolon$0 = $TV($EXPECT($L80, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
13584
+ var Semicolon$0 = $TV($EXPECT($L81, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
12829
13585
  return { $loc, token: $1 };
12830
13586
  });
12831
13587
  function Semicolon(state) {
@@ -12850,7 +13606,7 @@ ${input.slice(result.pos)}
12850
13606
  return result;
12851
13607
  }
12852
13608
  }
12853
- var SingleQuote$0 = $TV($EXPECT($L136, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13609
+ var SingleQuote$0 = $TV($EXPECT($L138, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12854
13610
  return { $loc, token: $1 };
12855
13611
  });
12856
13612
  function SingleQuote(state) {
@@ -12875,7 +13631,7 @@ ${input.slice(result.pos)}
12875
13631
  return result;
12876
13632
  }
12877
13633
  }
12878
- var Star$0 = $TV($EXPECT($L51, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
13634
+ var Star$0 = $TV($EXPECT($L52, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12879
13635
  return { $loc, token: $1 };
12880
13636
  });
12881
13637
  function Star(state) {
@@ -12900,10 +13656,10 @@ ${input.slice(result.pos)}
12900
13656
  return result;
12901
13657
  }
12902
13658
  }
12903
- var Static$0 = $TS($S($EXPECT($L137, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13659
+ var Static$0 = $TS($S($EXPECT($L139, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12904
13660
  return { $loc, token: $1 };
12905
13661
  });
12906
- var Static$1 = $TS($S($EXPECT($L97, fail, 'Static "@"'), $N($C($EXPECT($L92, fail, 'Static "("'), $EXPECT($L97, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13662
+ var Static$1 = $TS($S($EXPECT($L97, fail, 'Static "@"'), $N($C($EXPECT($L1, fail, 'Static "("'), $EXPECT($L97, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
12907
13663
  return { $loc, token: "static " };
12908
13664
  });
12909
13665
  function Static(state) {
@@ -12928,7 +13684,7 @@ ${input.slice(result.pos)}
12928
13684
  return result;
12929
13685
  }
12930
13686
  }
12931
- var SubstitutionStart$0 = $TV($EXPECT($L138, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13687
+ var SubstitutionStart$0 = $TV($EXPECT($L140, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12932
13688
  return { $loc, token: $1 };
12933
13689
  });
12934
13690
  function SubstitutionStart(state) {
@@ -12953,7 +13709,7 @@ ${input.slice(result.pos)}
12953
13709
  return result;
12954
13710
  }
12955
13711
  }
12956
- var Switch$0 = $TS($S($EXPECT($L139, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13712
+ var Switch$0 = $TS($S($EXPECT($L141, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12957
13713
  return { $loc, token: $1 };
12958
13714
  });
12959
13715
  function Switch(state) {
@@ -12978,7 +13734,7 @@ ${input.slice(result.pos)}
12978
13734
  return result;
12979
13735
  }
12980
13736
  }
12981
- var Target$0 = $TS($S($EXPECT($L140, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13737
+ var Target$0 = $TS($S($EXPECT($L142, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12982
13738
  return { $loc, token: $1 };
12983
13739
  });
12984
13740
  function Target(state) {
@@ -13003,7 +13759,7 @@ ${input.slice(result.pos)}
13003
13759
  return result;
13004
13760
  }
13005
13761
  }
13006
- var Then$0 = $TS($S(__, $EXPECT($L141, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13762
+ var Then$0 = $TS($S(__, $EXPECT($L143, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13007
13763
  return { $loc, token: "" };
13008
13764
  });
13009
13765
  function Then(state) {
@@ -13028,7 +13784,7 @@ ${input.slice(result.pos)}
13028
13784
  return result;
13029
13785
  }
13030
13786
  }
13031
- var This$0 = $TS($S($EXPECT($L142, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13787
+ var This$0 = $TS($S($EXPECT($L144, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13032
13788
  return { $loc, token: $1 };
13033
13789
  });
13034
13790
  function This(state) {
@@ -13053,7 +13809,7 @@ ${input.slice(result.pos)}
13053
13809
  return result;
13054
13810
  }
13055
13811
  }
13056
- var Throw$0 = $TS($S($EXPECT($L143, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13812
+ var Throw$0 = $TS($S($EXPECT($L145, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13057
13813
  return { $loc, token: $1 };
13058
13814
  });
13059
13815
  function Throw(state) {
@@ -13078,7 +13834,7 @@ ${input.slice(result.pos)}
13078
13834
  return result;
13079
13835
  }
13080
13836
  }
13081
- var TripleDoubleQuote$0 = $TV($EXPECT($L144, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13837
+ var TripleDoubleQuote$0 = $TV($EXPECT($L146, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13082
13838
  return { $loc, token: "`" };
13083
13839
  });
13084
13840
  function TripleDoubleQuote(state) {
@@ -13103,7 +13859,7 @@ ${input.slice(result.pos)}
13103
13859
  return result;
13104
13860
  }
13105
13861
  }
13106
- var TripleSingleQuote$0 = $TV($EXPECT($L145, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13862
+ var TripleSingleQuote$0 = $TV($EXPECT($L147, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13107
13863
  return { $loc, token: "`" };
13108
13864
  });
13109
13865
  function TripleSingleQuote(state) {
@@ -13128,7 +13884,7 @@ ${input.slice(result.pos)}
13128
13884
  return result;
13129
13885
  }
13130
13886
  }
13131
- var TripleSlash$0 = $TV($EXPECT($L146, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13887
+ var TripleSlash$0 = $TV($EXPECT($L148, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13132
13888
  return { $loc, token: "/" };
13133
13889
  });
13134
13890
  function TripleSlash(state) {
@@ -13153,7 +13909,7 @@ ${input.slice(result.pos)}
13153
13909
  return result;
13154
13910
  }
13155
13911
  }
13156
- var TripleTick$0 = $TV($EXPECT($L147, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13912
+ var TripleTick$0 = $TV($EXPECT($L149, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13157
13913
  return { $loc, token: "`" };
13158
13914
  });
13159
13915
  function TripleTick(state) {
@@ -13178,7 +13934,7 @@ ${input.slice(result.pos)}
13178
13934
  return result;
13179
13935
  }
13180
13936
  }
13181
- var Try$0 = $TS($S($EXPECT($L148, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13937
+ var Try$0 = $TS($S($EXPECT($L150, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13182
13938
  return { $loc, token: $1 };
13183
13939
  });
13184
13940
  function Try(state) {
@@ -13203,7 +13959,7 @@ ${input.slice(result.pos)}
13203
13959
  return result;
13204
13960
  }
13205
13961
  }
13206
- var Typeof$0 = $TS($S($EXPECT($L149, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13962
+ var Typeof$0 = $TS($S($EXPECT($L151, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13207
13963
  return { $loc, token: $1 };
13208
13964
  });
13209
13965
  function Typeof(state) {
@@ -13228,7 +13984,7 @@ ${input.slice(result.pos)}
13228
13984
  return result;
13229
13985
  }
13230
13986
  }
13231
- var Unless$0 = $TS($S($EXPECT($L150, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13987
+ var Unless$0 = $TS($S($EXPECT($L152, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13232
13988
  return { $loc, token: $1 };
13233
13989
  });
13234
13990
  function Unless(state) {
@@ -13253,7 +14009,7 @@ ${input.slice(result.pos)}
13253
14009
  return result;
13254
14010
  }
13255
14011
  }
13256
- var Until$0 = $TS($S($EXPECT($L151, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14012
+ var Until$0 = $TS($S($EXPECT($L153, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13257
14013
  return { $loc, token: $1 };
13258
14014
  });
13259
14015
  function Until(state) {
@@ -13278,7 +14034,7 @@ ${input.slice(result.pos)}
13278
14034
  return result;
13279
14035
  }
13280
14036
  }
13281
- var Var$0 = $TS($S($EXPECT($L152, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14037
+ var Var$0 = $TS($S($EXPECT($L154, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13282
14038
  return { $loc, token: $1 };
13283
14039
  });
13284
14040
  function Var(state) {
@@ -13303,7 +14059,7 @@ ${input.slice(result.pos)}
13303
14059
  return result;
13304
14060
  }
13305
14061
  }
13306
- var Void$0 = $TS($S($EXPECT($L153, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14062
+ var Void$0 = $TS($S($EXPECT($L155, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13307
14063
  return { $loc, token: $1 };
13308
14064
  });
13309
14065
  function Void(state) {
@@ -13328,7 +14084,7 @@ ${input.slice(result.pos)}
13328
14084
  return result;
13329
14085
  }
13330
14086
  }
13331
- var When$0 = $TS($S($EXPECT($L154, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14087
+ var When$0 = $TS($S($EXPECT($L156, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13332
14088
  return { $loc, token: "case" };
13333
14089
  });
13334
14090
  function When(state) {
@@ -13353,7 +14109,7 @@ ${input.slice(result.pos)}
13353
14109
  return result;
13354
14110
  }
13355
14111
  }
13356
- var While$0 = $TS($S($EXPECT($L155, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14112
+ var While$0 = $TS($S($EXPECT($L157, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13357
14113
  return { $loc, token: $1 };
13358
14114
  });
13359
14115
  function While(state) {
@@ -13378,7 +14134,7 @@ ${input.slice(result.pos)}
13378
14134
  return result;
13379
14135
  }
13380
14136
  }
13381
- var Yield$0 = $TS($S($EXPECT($L156, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14137
+ var Yield$0 = $TS($S($EXPECT($L158, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13382
14138
  return { $loc, token: $1 };
13383
14139
  });
13384
14140
  function Yield(state) {
@@ -13524,7 +14280,7 @@ ${input.slice(result.pos)}
13524
14280
  return result;
13525
14281
  }
13526
14282
  }
13527
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L127, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L157, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
14283
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L128, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L159, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13528
14284
  return { type: "JSXElement", children: $0, tag: $2 };
13529
14285
  });
13530
14286
  function JSXSelfClosingElement(state) {
@@ -13575,7 +14331,7 @@ ${input.slice(result.pos)}
13575
14331
  return result;
13576
14332
  }
13577
14333
  }
13578
- var JSXOpeningElement$0 = $S($EXPECT($L127, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L29, fail, 'JSXOpeningElement ">"'));
14334
+ var JSXOpeningElement$0 = $S($EXPECT($L128, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L29, fail, 'JSXOpeningElement ">"'));
13579
14335
  function JSXOpeningElement(state) {
13580
14336
  let eventData;
13581
14337
  if (state.events) {
@@ -13604,7 +14360,7 @@ ${input.slice(result.pos)}
13604
14360
  return $skip;
13605
14361
  return $0;
13606
14362
  });
13607
- var JSXOptionalClosingElement$1 = $EXPECT($L16, fail, 'JSXOptionalClosingElement ""');
14363
+ var JSXOptionalClosingElement$1 = $EXPECT($L17, fail, 'JSXOptionalClosingElement ""');
13608
14364
  function JSXOptionalClosingElement(state) {
13609
14365
  let eventData;
13610
14366
  if (state.events) {
@@ -13627,7 +14383,7 @@ ${input.slice(result.pos)}
13627
14383
  return result;
13628
14384
  }
13629
14385
  }
13630
- var JSXClosingElement$0 = $S($EXPECT($L158, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L29, fail, 'JSXClosingElement ">"'));
14386
+ var JSXClosingElement$0 = $S($EXPECT($L160, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L29, fail, 'JSXClosingElement ">"'));
13631
14387
  function JSXClosingElement(state) {
13632
14388
  let eventData;
13633
14389
  if (state.events) {
@@ -13666,7 +14422,7 @@ ${input.slice(result.pos)}
13666
14422
  ];
13667
14423
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13668
14424
  });
13669
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L159, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
14425
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L161, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13670
14426
  var children = $3;
13671
14427
  $0 = $0.slice(1);
13672
14428
  return {
@@ -13697,7 +14453,7 @@ ${input.slice(result.pos)}
13697
14453
  return result;
13698
14454
  }
13699
14455
  }
13700
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L159, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
14456
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L161, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13701
14457
  module.JSXTagStack.push("");
13702
14458
  return $1;
13703
14459
  });
@@ -13728,7 +14484,7 @@ ${input.slice(result.pos)}
13728
14484
  return $skip;
13729
14485
  return $0;
13730
14486
  });
13731
- var JSXOptionalClosingFragment$1 = $EXPECT($L16, fail, 'JSXOptionalClosingFragment ""');
14487
+ var JSXOptionalClosingFragment$1 = $EXPECT($L17, fail, 'JSXOptionalClosingFragment ""');
13732
14488
  function JSXOptionalClosingFragment(state) {
13733
14489
  let eventData;
13734
14490
  if (state.events) {
@@ -13751,7 +14507,7 @@ ${input.slice(result.pos)}
13751
14507
  return result;
13752
14508
  }
13753
14509
  }
13754
- var JSXClosingFragment$0 = $EXPECT($L160, fail, 'JSXClosingFragment "</>"');
14510
+ var JSXClosingFragment$0 = $EXPECT($L162, fail, 'JSXClosingFragment "</>"');
13755
14511
  function JSXClosingFragment(state) {
13756
14512
  let eventData;
13757
14513
  if (state.events) {
@@ -13958,7 +14714,7 @@ ${input.slice(result.pos)}
13958
14714
  }
13959
14715
  return parts;
13960
14716
  });
13961
- var JSXAttribute$1 = $TS($S(JSXAttributeName, $E(JSXAttributeInitializer)), function($skip, $loc, $0, $1, $2) {
14717
+ var JSXAttribute$1 = $TS($S(JSXAttributeName, $C(JSXAttributeInitializer, $Y(JSXAttributeSpace))), function($skip, $loc, $0, $1, $2) {
13962
14718
  var name = $1;
13963
14719
  var value = $2;
13964
14720
  if (name.type === "ComputedPropertyName") {
@@ -13975,8 +14731,8 @@ ${input.slice(result.pos)}
13975
14731
  return $0;
13976
14732
  }
13977
14733
  });
13978
- var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace);
13979
- var JSXAttribute$3 = $TS($S($EXPECT($L9, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
14734
+ var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace, $Y(JSXAttributeSpace));
14735
+ var JSXAttribute$3 = $TS($S($EXPECT($L10, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13980
14736
  return [" ", "id=", $2];
13981
14737
  });
13982
14738
  var JSXAttribute$4 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -14013,19 +14769,36 @@ ${input.slice(result.pos)}
14013
14769
  return result;
14014
14770
  }
14015
14771
  }
14016
- var JSXShorthandString$0 = $TR($EXPECT($R49, fail, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14017
- return module.quoteString($0);
14018
- });
14019
- var JSXShorthandString$1 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
14020
- if (module.isTemplateLiteral($1)) {
14021
- return ["{", $1, "}"];
14772
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R49, fail, "JSXAttributeSpace /[\\s>]/"));
14773
+ function JSXAttributeSpace(state) {
14774
+ let eventData;
14775
+ if (state.events) {
14776
+ const result = state.events.enter?.("JSXAttributeSpace", state);
14777
+ if (result) {
14778
+ if (result.cache)
14779
+ return result.cache;
14780
+ eventData = result.data;
14781
+ }
14782
+ }
14783
+ if (state.tokenize) {
14784
+ const result = $TOKEN("JSXAttributeSpace", state, JSXAttributeSpace$0(state));
14785
+ if (state.events)
14786
+ state.events.exit?.("JSXAttributeSpace", state, result, eventData);
14787
+ return result;
14022
14788
  } else {
14023
- return $1;
14789
+ const result = JSXAttributeSpace$0(state);
14790
+ if (state.events)
14791
+ state.events.exit?.("JSXAttributeSpace", state, result, eventData);
14792
+ return result;
14024
14793
  }
14794
+ }
14795
+ var JSXShorthandString$0 = $TR($EXPECT($R50, fail, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14796
+ return module.quoteString($0);
14025
14797
  });
14026
- var JSXShorthandString$2 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
14798
+ var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
14027
14799
  return ["{", $1, "}"];
14028
14800
  });
14801
+ var JSXShorthandString$2 = StringLiteral;
14029
14802
  var JSXShorthandString$3 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14030
14803
  function JSXShorthandString(state) {
14031
14804
  let eventData;
@@ -14096,15 +14869,16 @@ ${input.slice(result.pos)}
14096
14869
  return result;
14097
14870
  }
14098
14871
  }
14099
- var JSXAttributeValue$0 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
14100
- if (module.isTemplateLiteral($1))
14101
- return $skip;
14102
- return $1;
14872
+ var JSXAttributeValue$0 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14873
+ var JSXAttributeValue$1 = JSXElement;
14874
+ var JSXAttributeValue$2 = JSXFragment;
14875
+ var JSXAttributeValue$3 = $TS($S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3) {
14876
+ if ($2.children?.length === 1 && $2.children[0].type === "StringLiteral") {
14877
+ return $2.children[0];
14878
+ }
14879
+ return $0;
14103
14880
  });
14104
- var JSXAttributeValue$1 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14105
- var JSXAttributeValue$2 = JSXElement;
14106
- var JSXAttributeValue$3 = JSXFragment;
14107
- var JSXAttributeValue$4 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
14881
+ var JSXAttributeValue$4 = StringLiteral;
14108
14882
  function JSXAttributeValue(state) {
14109
14883
  let eventData;
14110
14884
  if (state.events) {
@@ -14154,7 +14928,7 @@ ${input.slice(result.pos)}
14154
14928
  return result;
14155
14929
  }
14156
14930
  }
14157
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R50, fail, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2, $3) {
14931
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R51, fail, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2, $3) {
14158
14932
  var op = $2;
14159
14933
  var rhs = $3;
14160
14934
  return [[], op, [], rhs];
@@ -14285,8 +15059,8 @@ ${input.slice(result.pos)}
14285
15059
  return result;
14286
15060
  }
14287
15061
  }
14288
- var InlineJSXCallExpression$0 = $S($EXPECT($L10, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
14289
- var InlineJSXCallExpression$1 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
15062
+ var InlineJSXCallExpression$0 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
15063
+ var InlineJSXCallExpression$1 = $S($EXPECT($L12, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
14290
15064
  var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
14291
15065
  if ($2.length)
14292
15066
  return $0;
@@ -14404,14 +15178,13 @@ ${input.slice(result.pos)}
14404
15178
  var InlineJSXPrimaryExpression$0 = NullLiteral;
14405
15179
  var InlineJSXPrimaryExpression$1 = BooleanLiteral;
14406
15180
  var InlineJSXPrimaryExpression$2 = NumericLiteral;
14407
- var InlineJSXPrimaryExpression$3 = StringLiteral;
15181
+ var InlineJSXPrimaryExpression$3 = TemplateLiteral;
14408
15182
  var InlineJSXPrimaryExpression$4 = ThisLiteral;
14409
15183
  var InlineJSXPrimaryExpression$5 = ArrayLiteral;
14410
15184
  var InlineJSXPrimaryExpression$6 = BracedObjectLiteral;
14411
15185
  var InlineJSXPrimaryExpression$7 = IdentifierReference;
14412
15186
  var InlineJSXPrimaryExpression$8 = RegularExpressionLiteral;
14413
- var InlineJSXPrimaryExpression$9 = TemplateLiteral;
14414
- var InlineJSXPrimaryExpression$10 = ParenthesizedExpression;
15187
+ var InlineJSXPrimaryExpression$9 = ParenthesizedExpression;
14415
15188
  function InlineJSXPrimaryExpression(state) {
14416
15189
  let eventData;
14417
15190
  if (state.events) {
@@ -14423,12 +15196,12 @@ ${input.slice(result.pos)}
14423
15196
  }
14424
15197
  }
14425
15198
  if (state.tokenize) {
14426
- const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state));
15199
+ const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state));
14427
15200
  if (state.events)
14428
15201
  state.events.exit?.("InlineJSXPrimaryExpression", state, result, eventData);
14429
15202
  return result;
14430
15203
  } else {
14431
- const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state);
15204
+ const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state);
14432
15205
  if (state.events)
14433
15206
  state.events.exit?.("InlineJSXPrimaryExpression", state, result, eventData);
14434
15207
  return result;
@@ -14501,7 +15274,7 @@ ${input.slice(result.pos)}
14501
15274
  }
14502
15275
  return $skip;
14503
15276
  });
14504
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L19, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
15277
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L20, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
14505
15278
  return { children: [], jsxChildren: [] };
14506
15279
  });
14507
15280
  function JSXNestedChildren(state) {
@@ -14630,7 +15403,7 @@ ${input.slice(result.pos)}
14630
15403
  return result;
14631
15404
  }
14632
15405
  }
14633
- var JSXComment$0 = $TS($S($EXPECT($L161, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L162, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
15406
+ var JSXComment$0 = $TS($S($EXPECT($L163, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L164, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
14634
15407
  return ["{/*", $2, "*/}"];
14635
15408
  });
14636
15409
  function JSXComment(state) {
@@ -14655,7 +15428,7 @@ ${input.slice(result.pos)}
14655
15428
  return result;
14656
15429
  }
14657
15430
  }
14658
- var JSXCommentContent$0 = $TR($EXPECT($R51, fail, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15431
+ var JSXCommentContent$0 = $TR($EXPECT($R52, fail, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14659
15432
  return { $loc, token: $0.replace(/\*\//g, "* /") };
14660
15433
  });
14661
15434
  function JSXCommentContent(state) {
@@ -14680,7 +15453,7 @@ ${input.slice(result.pos)}
14680
15453
  return result;
14681
15454
  }
14682
15455
  }
14683
- var JSXText$0 = $TR($EXPECT($R52, fail, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15456
+ var JSXText$0 = $TR($EXPECT($R53, fail, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14684
15457
  return {
14685
15458
  type: "JSXText",
14686
15459
  token: $0,
@@ -14928,7 +15701,7 @@ ${input.slice(result.pos)}
14928
15701
  return result;
14929
15702
  }
14930
15703
  }
14931
- var TypeKeyword$0 = $S($EXPECT($L163, fail, 'TypeKeyword "type"'), NonIdContinue);
15704
+ var TypeKeyword$0 = $S($EXPECT($L165, fail, 'TypeKeyword "type"'), NonIdContinue);
14932
15705
  function TypeKeyword(state) {
14933
15706
  let eventData;
14934
15707
  if (state.events) {
@@ -14951,7 +15724,7 @@ ${input.slice(result.pos)}
14951
15724
  return result;
14952
15725
  }
14953
15726
  }
14954
- var Interface$0 = $S($EXPECT($L164, fail, 'Interface "interface"'), NonIdContinue);
15727
+ var Interface$0 = $S($EXPECT($L166, fail, 'Interface "interface"'), NonIdContinue);
14955
15728
  function Interface(state) {
14956
15729
  let eventData;
14957
15730
  if (state.events) {
@@ -14974,7 +15747,7 @@ ${input.slice(result.pos)}
14974
15747
  return result;
14975
15748
  }
14976
15749
  }
14977
- var Namespace$0 = $S($EXPECT($L165, fail, 'Namespace "namespace"'), NonIdContinue);
15750
+ var Namespace$0 = $S($EXPECT($L167, fail, 'Namespace "namespace"'), NonIdContinue);
14978
15751
  function Namespace(state) {
14979
15752
  let eventData;
14980
15753
  if (state.events) {
@@ -15023,9 +15796,9 @@ ${input.slice(result.pos)}
15023
15796
  }
15024
15797
  }
15025
15798
  var NestedInterfaceProperties$0 = $TS($S(PushIndent, $Q(NestedInterfaceProperty), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15026
- var props = $2;
15027
- if (props.length)
15028
- return props;
15799
+ var props2 = $2;
15800
+ if (props2.length)
15801
+ return props2;
15029
15802
  return $skip;
15030
15803
  });
15031
15804
  function NestedInterfaceProperties(state) {
@@ -15222,7 +15995,7 @@ ${input.slice(result.pos)}
15222
15995
  return result;
15223
15996
  }
15224
15997
  }
15225
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R53, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L133, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R54, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
15998
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R54, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L135, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R55, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
15226
15999
  function TypeIndexSignature(state) {
15227
16000
  let eventData;
15228
16001
  if (state.events) {
@@ -15294,7 +16067,7 @@ ${input.slice(result.pos)}
15294
16067
  return result;
15295
16068
  }
15296
16069
  }
15297
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L166, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
16070
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L168, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
15298
16071
  const children = [...$1, $2];
15299
16072
  if ($3)
15300
16073
  children.push($3);
@@ -15327,7 +16100,7 @@ ${input.slice(result.pos)}
15327
16100
  return result;
15328
16101
  }
15329
16102
  }
15330
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L76, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
16103
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L77, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
15331
16104
  if (!$2)
15332
16105
  return $1;
15333
16106
  return $0;
@@ -15453,10 +16226,10 @@ ${input.slice(result.pos)}
15453
16226
  return result;
15454
16227
  }
15455
16228
  }
15456
- var TypeUnaryOp$0 = $S($EXPECT($L167, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
15457
- var TypeUnaryOp$1 = $S($EXPECT($L149, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
15458
- var TypeUnaryOp$2 = $S($EXPECT($L168, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
15459
- var TypeUnaryOp$3 = $S($EXPECT($L133, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
16229
+ var TypeUnaryOp$0 = $S($EXPECT($L169, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
16230
+ var TypeUnaryOp$1 = $S($EXPECT($L151, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
16231
+ var TypeUnaryOp$2 = $S($EXPECT($L170, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
16232
+ var TypeUnaryOp$3 = $S($EXPECT($L135, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
15460
16233
  function TypeUnaryOp(state) {
15461
16234
  let eventData;
15462
16235
  if (state.events) {
@@ -15532,8 +16305,8 @@ ${input.slice(result.pos)}
15532
16305
  return result;
15533
16306
  }
15534
16307
  }
15535
- var ImportType$0 = $S($EXPECT($L11, fail, 'ImportType "import"'), OpenParen, __, BasicStringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
15536
- var ImportType$1 = $S($EXPECT($L11, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, BasicStringLiteral, InsertCloseParen);
16308
+ var ImportType$0 = $S($EXPECT($L12, fail, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
16309
+ var ImportType$1 = $S($EXPECT($L12, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
15537
16310
  function ImportType(state) {
15538
16311
  let eventData;
15539
16312
  if (state.events) {
@@ -15654,7 +16427,7 @@ ${input.slice(result.pos)}
15654
16427
  return result;
15655
16428
  }
15656
16429
  }
15657
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L116, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
16430
+ var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L117, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
15658
16431
  if ($2)
15659
16432
  return $0;
15660
16433
  return $1;
@@ -15681,12 +16454,12 @@ ${input.slice(result.pos)}
15681
16454
  return result;
15682
16455
  }
15683
16456
  }
15684
- var TypeLiteral$0 = Literal;
15685
- var TypeLiteral$1 = TemplateLiteral;
15686
- var TypeLiteral$2 = $TS($S($EXPECT($L153, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16457
+ var TypeLiteral$0 = TemplateLiteral;
16458
+ var TypeLiteral$1 = Literal;
16459
+ var TypeLiteral$2 = $TS($S($EXPECT($L155, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15687
16460
  return { $loc, token: "void" };
15688
16461
  });
15689
- var TypeLiteral$3 = $TV($EXPECT($L169, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
16462
+ var TypeLiteral$3 = $TV($EXPECT($L171, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
15690
16463
  return { $loc, token: "[]" };
15691
16464
  });
15692
16465
  function TypeLiteral(state) {
@@ -15761,7 +16534,7 @@ ${input.slice(result.pos)}
15761
16534
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
15762
16535
  return value[1];
15763
16536
  });
15764
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L31, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L17, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L30, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L19, fail, 'InlineInterfacePropertyDelimiter "}"'))));
16537
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L31, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L18, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L30, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L20, fail, 'InlineInterfacePropertyDelimiter "}"'))));
15765
16538
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
15766
16539
  function InlineInterfacePropertyDelimiter(state) {
15767
16540
  let eventData;
@@ -15785,10 +16558,10 @@ ${input.slice(result.pos)}
15785
16558
  return result;
15786
16559
  }
15787
16560
  }
15788
- var TypeBinaryOp$0 = $TV($EXPECT($L79, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
16561
+ var TypeBinaryOp$0 = $TV($EXPECT($L80, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
15789
16562
  return { $loc, token: "|" };
15790
16563
  });
15791
- var TypeBinaryOp$1 = $TV($EXPECT($L77, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
16564
+ var TypeBinaryOp$1 = $TV($EXPECT($L78, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
15792
16565
  return { $loc, token: "&" };
15793
16566
  });
15794
16567
  function TypeBinaryOp(state) {
@@ -15813,7 +16586,7 @@ ${input.slice(result.pos)}
15813
16586
  return result;
15814
16587
  }
15815
16588
  }
15816
- var FunctionType$0 = $TS($S(Parameters, __, $EXPECT($L5, fail, 'FunctionType "=>"'), $E(Type)), function($skip, $loc, $0, $1, $2, $3, $4) {
16589
+ var FunctionType$0 = $TS($S(Parameters, __, $EXPECT($L6, fail, 'FunctionType "=>"'), $E(Type)), function($skip, $loc, $0, $1, $2, $3, $4) {
15817
16590
  var type = $4;
15818
16591
  if (type) {
15819
16592
  return $0;
@@ -15842,7 +16615,7 @@ ${input.slice(result.pos)}
15842
16615
  return result;
15843
16616
  }
15844
16617
  }
15845
- var TypeArguments$0 = $TS($S($EXPECT($L127, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L29, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
16618
+ var TypeArguments$0 = $TS($S($EXPECT($L128, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L29, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
15846
16619
  return { ts: true, children: $0 };
15847
16620
  });
15848
16621
  function TypeArguments(state) {
@@ -15913,7 +16686,7 @@ ${input.slice(result.pos)}
15913
16686
  return result;
15914
16687
  }
15915
16688
  }
15916
- var TypeParameters$0 = $TS($S(__, $EXPECT($L127, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L29, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16689
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L128, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L29, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15917
16690
  var parameters = $3;
15918
16691
  return {
15919
16692
  type: "TypeParameters",
@@ -15967,7 +16740,7 @@ ${input.slice(result.pos)}
15967
16740
  return result;
15968
16741
  }
15969
16742
  }
15970
- var TypeConstraint$0 = $S(__, $EXPECT($L116, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
16743
+ var TypeConstraint$0 = $S(__, $EXPECT($L117, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
15971
16744
  function TypeConstraint(state) {
15972
16745
  let eventData;
15973
16746
  if (state.events) {
@@ -16065,7 +16838,7 @@ ${input.slice(result.pos)}
16065
16838
  return result;
16066
16839
  }
16067
16840
  }
16068
- var Shebang$0 = $S($R$0($EXPECT($R55, fail, "Shebang /#![^\\r\\n]*/")), EOL);
16841
+ var Shebang$0 = $S($R$0($EXPECT($R56, fail, "Shebang /#![^\\r\\n]*/")), EOL);
16069
16842
  function Shebang(state) {
16070
16843
  let eventData;
16071
16844
  if (state.events) {
@@ -16088,11 +16861,11 @@ ${input.slice(result.pos)}
16088
16861
  return result;
16089
16862
  }
16090
16863
  }
16091
- var CivetPrologue$0 = $T($S($EXPECT($R56, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16864
+ var CivetPrologue$0 = $T($S($EXPECT($R57, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16092
16865
  var content = value[2];
16093
16866
  return content;
16094
16867
  });
16095
- var CivetPrologue$1 = $T($S($EXPECT($R56, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16868
+ var CivetPrologue$1 = $T($S($EXPECT($R57, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16096
16869
  var content = value[2];
16097
16870
  return content;
16098
16871
  });
@@ -16118,7 +16891,7 @@ ${input.slice(result.pos)}
16118
16891
  return result;
16119
16892
  }
16120
16893
  }
16121
- var CivetPrologueContent$0 = $TS($S($EXPECT($L170, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R57, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16894
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L172, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R58, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16122
16895
  var options = $3;
16123
16896
  return {
16124
16897
  type: "CivetPrologue",
@@ -16148,7 +16921,7 @@ ${input.slice(result.pos)}
16148
16921
  return result;
16149
16922
  }
16150
16923
  }
16151
- var CivetOption$0 = $TR($EXPECT($R58, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16924
+ var CivetOption$0 = $TR($EXPECT($R59, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16152
16925
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
16153
16926
  if (l)
16154
16927
  return l.toUpperCase();
@@ -16184,7 +16957,7 @@ ${input.slice(result.pos)}
16184
16957
  return result;
16185
16958
  }
16186
16959
  }
16187
- var UnknownPrologue$0 = $S($R$0($EXPECT($R56, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
16960
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R57, fail, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
16188
16961
  function UnknownPrologue(state) {
16189
16962
  let eventData;
16190
16963
  if (state.events) {
@@ -16254,7 +17027,7 @@ ${input.slice(result.pos)}
16254
17027
  return result;
16255
17028
  }
16256
17029
  }
16257
- var EOL$0 = $TR($EXPECT($R59, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17030
+ var EOL$0 = $TR($EXPECT($R60, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16258
17031
  return { $loc, token: $0 };
16259
17032
  });
16260
17033
  function EOL(state) {
@@ -16279,7 +17052,7 @@ ${input.slice(result.pos)}
16279
17052
  return result;
16280
17053
  }
16281
17054
  }
16282
- var Debugger$0 = $TV($EXPECT($L16, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
17055
+ var Debugger$0 = $TV($EXPECT($L17, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
16283
17056
  debugger;
16284
17057
  });
16285
17058
  function Debugger(state) {
@@ -16304,7 +17077,7 @@ ${input.slice(result.pos)}
16304
17077
  return result;
16305
17078
  }
16306
17079
  }
16307
- var InsertSemicolon$0 = $TV($EXPECT($L16, fail, 'InsertSemicolon ""'), function($skip, $loc, $0, $1) {
17080
+ var InsertSemicolon$0 = $TV($EXPECT($L17, fail, 'InsertSemicolon ""'), function($skip, $loc, $0, $1) {
16308
17081
  return { $loc, token: ";" };
16309
17082
  });
16310
17083
  function InsertSemicolon(state) {
@@ -16329,7 +17102,7 @@ ${input.slice(result.pos)}
16329
17102
  return result;
16330
17103
  }
16331
17104
  }
16332
- var InsertOpenParen$0 = $TV($EXPECT($L16, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
17105
+ var InsertOpenParen$0 = $TV($EXPECT($L17, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
16333
17106
  return { $loc, token: "(" };
16334
17107
  });
16335
17108
  function InsertOpenParen(state) {
@@ -16354,7 +17127,7 @@ ${input.slice(result.pos)}
16354
17127
  return result;
16355
17128
  }
16356
17129
  }
16357
- var InsertCloseParen$0 = $TV($EXPECT($L16, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
17130
+ var InsertCloseParen$0 = $TV($EXPECT($L17, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
16358
17131
  return { $loc, token: ")" };
16359
17132
  });
16360
17133
  function InsertCloseParen(state) {
@@ -16379,7 +17152,7 @@ ${input.slice(result.pos)}
16379
17152
  return result;
16380
17153
  }
16381
17154
  }
16382
- var InsertOpenBrace$0 = $TV($EXPECT($L16, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
17155
+ var InsertOpenBrace$0 = $TV($EXPECT($L17, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
16383
17156
  return [{ $loc, token: " " }, { $loc, token: "{" }];
16384
17157
  });
16385
17158
  function InsertOpenBrace(state) {
@@ -16404,7 +17177,7 @@ ${input.slice(result.pos)}
16404
17177
  return result;
16405
17178
  }
16406
17179
  }
16407
- var InsertInlineOpenBrace$0 = $TV($EXPECT($L16, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
17180
+ var InsertInlineOpenBrace$0 = $TV($EXPECT($L17, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
16408
17181
  return { $loc, token: "{" };
16409
17182
  });
16410
17183
  function InsertInlineOpenBrace(state) {
@@ -16429,7 +17202,7 @@ ${input.slice(result.pos)}
16429
17202
  return result;
16430
17203
  }
16431
17204
  }
16432
- var InsertCloseBrace$0 = $TV($EXPECT($L16, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
17205
+ var InsertCloseBrace$0 = $TV($EXPECT($L17, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
16433
17206
  return { $loc, token: "}" };
16434
17207
  });
16435
17208
  function InsertCloseBrace(state) {
@@ -16454,7 +17227,57 @@ ${input.slice(result.pos)}
16454
17227
  return result;
16455
17228
  }
16456
17229
  }
16457
- var InsertComma$0 = $TV($EXPECT($L16, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
17230
+ var InsertOpenBracket$0 = $TV($EXPECT($L17, fail, 'InsertOpenBracket ""'), function($skip, $loc, $0, $1) {
17231
+ return { $loc, token: "[" };
17232
+ });
17233
+ function InsertOpenBracket(state) {
17234
+ let eventData;
17235
+ if (state.events) {
17236
+ const result = state.events.enter?.("InsertOpenBracket", state);
17237
+ if (result) {
17238
+ if (result.cache)
17239
+ return result.cache;
17240
+ eventData = result.data;
17241
+ }
17242
+ }
17243
+ if (state.tokenize) {
17244
+ const result = $TOKEN("InsertOpenBracket", state, InsertOpenBracket$0(state));
17245
+ if (state.events)
17246
+ state.events.exit?.("InsertOpenBracket", state, result, eventData);
17247
+ return result;
17248
+ } else {
17249
+ const result = InsertOpenBracket$0(state);
17250
+ if (state.events)
17251
+ state.events.exit?.("InsertOpenBracket", state, result, eventData);
17252
+ return result;
17253
+ }
17254
+ }
17255
+ var InsertCloseBracket$0 = $TV($EXPECT($L17, fail, 'InsertCloseBracket ""'), function($skip, $loc, $0, $1) {
17256
+ return { $loc, token: "]" };
17257
+ });
17258
+ function InsertCloseBracket(state) {
17259
+ let eventData;
17260
+ if (state.events) {
17261
+ const result = state.events.enter?.("InsertCloseBracket", state);
17262
+ if (result) {
17263
+ if (result.cache)
17264
+ return result.cache;
17265
+ eventData = result.data;
17266
+ }
17267
+ }
17268
+ if (state.tokenize) {
17269
+ const result = $TOKEN("InsertCloseBracket", state, InsertCloseBracket$0(state));
17270
+ if (state.events)
17271
+ state.events.exit?.("InsertCloseBracket", state, result, eventData);
17272
+ return result;
17273
+ } else {
17274
+ const result = InsertCloseBracket$0(state);
17275
+ if (state.events)
17276
+ state.events.exit?.("InsertCloseBracket", state, result, eventData);
17277
+ return result;
17278
+ }
17279
+ }
17280
+ var InsertComma$0 = $TV($EXPECT($L17, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
16458
17281
  return { $loc, token: "," };
16459
17282
  });
16460
17283
  function InsertComma(state) {
@@ -16479,7 +17302,7 @@ ${input.slice(result.pos)}
16479
17302
  return result;
16480
17303
  }
16481
17304
  }
16482
- var InsertConst$0 = $TV($EXPECT($L16, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
17305
+ var InsertConst$0 = $TV($EXPECT($L17, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
16483
17306
  return { $loc, token: "const " };
16484
17307
  });
16485
17308
  function InsertConst(state) {
@@ -16504,7 +17327,7 @@ ${input.slice(result.pos)}
16504
17327
  return result;
16505
17328
  }
16506
17329
  }
16507
- var InsertLet$0 = $TV($EXPECT($L16, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
17330
+ var InsertLet$0 = $TV($EXPECT($L17, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
16508
17331
  return { $loc, token: "let " };
16509
17332
  });
16510
17333
  function InsertLet(state) {
@@ -16529,7 +17352,7 @@ ${input.slice(result.pos)}
16529
17352
  return result;
16530
17353
  }
16531
17354
  }
16532
- var InsertReadonly$0 = $TV($EXPECT($L16, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
17355
+ var InsertReadonly$0 = $TV($EXPECT($L17, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
16533
17356
  return { ts: true, children: [{ $loc, token: "readonly " }] };
16534
17357
  });
16535
17358
  function InsertReadonly(state) {
@@ -16554,7 +17377,7 @@ ${input.slice(result.pos)}
16554
17377
  return result;
16555
17378
  }
16556
17379
  }
16557
- var InsertNewline$0 = $TV($EXPECT($L16, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
17380
+ var InsertNewline$0 = $TV($EXPECT($L17, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
16558
17381
  return "\n";
16559
17382
  });
16560
17383
  function InsertNewline(state) {
@@ -16579,7 +17402,7 @@ ${input.slice(result.pos)}
16579
17402
  return result;
16580
17403
  }
16581
17404
  }
16582
- var InsertIndent$0 = $TV($EXPECT($L16, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
17405
+ var InsertIndent$0 = $TV($EXPECT($L17, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
16583
17406
  return module.currentIndent.token;
16584
17407
  });
16585
17408
  function InsertIndent(state) {
@@ -16604,7 +17427,7 @@ ${input.slice(result.pos)}
16604
17427
  return result;
16605
17428
  }
16606
17429
  }
16607
- var InsertSpace$0 = $TV($EXPECT($L16, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
17430
+ var InsertSpace$0 = $TV($EXPECT($L17, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
16608
17431
  return { $loc, token: " " };
16609
17432
  });
16610
17433
  function InsertSpace(state) {
@@ -16629,7 +17452,7 @@ ${input.slice(result.pos)}
16629
17452
  return result;
16630
17453
  }
16631
17454
  }
16632
- var InsertDot$0 = $TV($EXPECT($L16, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
17455
+ var InsertDot$0 = $TV($EXPECT($L17, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
16633
17456
  return { $loc, token: "." };
16634
17457
  });
16635
17458
  function InsertDot(state) {
@@ -16654,7 +17477,7 @@ ${input.slice(result.pos)}
16654
17477
  return result;
16655
17478
  }
16656
17479
  }
16657
- var InsertBreak$0 = $TV($EXPECT($L16, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
17480
+ var InsertBreak$0 = $TV($EXPECT($L17, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
16658
17481
  return { $loc, token: ";break;" };
16659
17482
  });
16660
17483
  function InsertBreak(state) {
@@ -16679,7 +17502,7 @@ ${input.slice(result.pos)}
16679
17502
  return result;
16680
17503
  }
16681
17504
  }
16682
- var InsertVar$0 = $TV($EXPECT($L16, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
17505
+ var InsertVar$0 = $TV($EXPECT($L17, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
16683
17506
  return { $loc, token: "var " };
16684
17507
  });
16685
17508
  function InsertVar(state) {
@@ -16704,7 +17527,7 @@ ${input.slice(result.pos)}
16704
17527
  return result;
16705
17528
  }
16706
17529
  }
16707
- var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
17530
+ var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
16708
17531
  if (module.config.coffeeBinaryExistential)
16709
17532
  return;
16710
17533
  return $skip;
@@ -16731,7 +17554,7 @@ ${input.slice(result.pos)}
16731
17554
  return result;
16732
17555
  }
16733
17556
  }
16734
- var CoffeeBooleansEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
17557
+ var CoffeeBooleansEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
16735
17558
  if (module.config.coffeeBooleans)
16736
17559
  return;
16737
17560
  return $skip;
@@ -16758,7 +17581,7 @@ ${input.slice(result.pos)}
16758
17581
  return result;
16759
17582
  }
16760
17583
  }
16761
- var CoffeeClassesEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
17584
+ var CoffeeClassesEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
16762
17585
  if (module.config.coffeeClasses)
16763
17586
  return;
16764
17587
  return $skip;
@@ -16785,7 +17608,7 @@ ${input.slice(result.pos)}
16785
17608
  return result;
16786
17609
  }
16787
17610
  }
16788
- var CoffeeCommentEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
17611
+ var CoffeeCommentEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
16789
17612
  if (module.config.coffeeComment)
16790
17613
  return;
16791
17614
  return $skip;
@@ -16812,7 +17635,7 @@ ${input.slice(result.pos)}
16812
17635
  return result;
16813
17636
  }
16814
17637
  }
16815
- var CoffeeDoEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
17638
+ var CoffeeDoEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
16816
17639
  if (module.config.coffeeDo)
16817
17640
  return;
16818
17641
  return $skip;
@@ -16839,7 +17662,7 @@ ${input.slice(result.pos)}
16839
17662
  return result;
16840
17663
  }
16841
17664
  }
16842
- var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
17665
+ var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
16843
17666
  if (module.config.coffeeForLoops)
16844
17667
  return;
16845
17668
  return $skip;
@@ -16866,7 +17689,7 @@ ${input.slice(result.pos)}
16866
17689
  return result;
16867
17690
  }
16868
17691
  }
16869
- var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
17692
+ var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
16870
17693
  if (module.config.coffeeInterpolation)
16871
17694
  return;
16872
17695
  return $skip;
@@ -16893,7 +17716,7 @@ ${input.slice(result.pos)}
16893
17716
  return result;
16894
17717
  }
16895
17718
  }
16896
- var CoffeeIsntEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
17719
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
16897
17720
  if (module.config.coffeeIsnt)
16898
17721
  return;
16899
17722
  return $skip;
@@ -16920,7 +17743,7 @@ ${input.slice(result.pos)}
16920
17743
  return result;
16921
17744
  }
16922
17745
  }
16923
- var CoffeeJSXEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
17746
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16924
17747
  if (module.config.coffeeJSX)
16925
17748
  return;
16926
17749
  return $skip;
@@ -16947,7 +17770,7 @@ ${input.slice(result.pos)}
16947
17770
  return result;
16948
17771
  }
16949
17772
  }
16950
- var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
17773
+ var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16951
17774
  if (module.config.coffeeLineContinuation)
16952
17775
  return;
16953
17776
  return $skip;
@@ -16974,7 +17797,7 @@ ${input.slice(result.pos)}
16974
17797
  return result;
16975
17798
  }
16976
17799
  }
16977
- var CoffeeNotEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
17800
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16978
17801
  if (module.config.coffeeNot)
16979
17802
  return;
16980
17803
  return $skip;
@@ -17001,7 +17824,7 @@ ${input.slice(result.pos)}
17001
17824
  return result;
17002
17825
  }
17003
17826
  }
17004
- var CoffeeOfEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
17827
+ var CoffeeOfEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
17005
17828
  if (module.config.coffeeOf)
17006
17829
  return;
17007
17830
  return $skip;
@@ -17028,7 +17851,7 @@ ${input.slice(result.pos)}
17028
17851
  return result;
17029
17852
  }
17030
17853
  }
17031
- var CoffeePrototypeEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
17854
+ var CoffeePrototypeEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
17032
17855
  if (module.config.coffeePrototype)
17033
17856
  return;
17034
17857
  return $skip;
@@ -17055,7 +17878,7 @@ ${input.slice(result.pos)}
17055
17878
  return result;
17056
17879
  }
17057
17880
  }
17058
- var ObjectIsEnabled$0 = $TV($EXPECT($L16, fail, 'ObjectIsEnabled ""'), function($skip, $loc, $0, $1) {
17881
+ var ObjectIsEnabled$0 = $TV($EXPECT($L17, fail, 'ObjectIsEnabled ""'), function($skip, $loc, $0, $1) {
17059
17882
  if (module.config.objectIs)
17060
17883
  return;
17061
17884
  return $skip;
@@ -17082,13 +17905,14 @@ ${input.slice(result.pos)}
17082
17905
  return result;
17083
17906
  }
17084
17907
  }
17085
- var Reset$0 = $TV($EXPECT($L16, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
17908
+ var Reset$0 = $TV($EXPECT($L17, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
17086
17909
  module.indentLevels = [{
17087
17910
  level: 0,
17088
17911
  token: ""
17089
17912
  }];
17090
17913
  module.suppressTrailingMemberProperty = [false];
17091
17914
  module.JSXTagStack = [];
17915
+ module.operators = /* @__PURE__ */ new Set();
17092
17916
  if (!module._init) {
17093
17917
  module._init = true;
17094
17918
  Object.defineProperties(module, {
@@ -17352,7 +18176,7 @@ ${input.slice(result.pos)}
17352
18176
  return result;
17353
18177
  }
17354
18178
  }
17355
- var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L16, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
18179
+ var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L17, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
17356
18180
  var directives = $2;
17357
18181
  directives.forEach((directive) => {
17358
18182
  if (directive.type === "CivetPrologue") {
@@ -17562,11 +18386,11 @@ ${input.slice(result.pos)}
17562
18386
  return;
17563
18387
  case "WhenClause":
17564
18388
  node.children.splice(node.children.indexOf(node.break), 1);
17565
- if (node.block.length === 0) {
17566
- node.block.push(wrapWithReturn());
17567
- return;
18389
+ if (node.block.expressions.length) {
18390
+ insertReturn(node.block);
18391
+ } else {
18392
+ node.block.expressions.push(wrapWithReturn());
17568
18393
  }
17569
- insertReturn(node.block);
17570
18394
  return;
17571
18395
  case "DefaultClause":
17572
18396
  insertReturn(node.block);
@@ -17617,18 +18441,19 @@ ${input.slice(result.pos)}
17617
18441
  const returnStatement = wrapWithReturn(node[1]);
17618
18442
  node.splice(1, 1, returnStatement);
17619
18443
  }
17620
- module.makeLeftHandSideExpression = function(exp) {
17621
- switch (exp.type) {
18444
+ module.makeLeftHandSideExpression = function(expression) {
18445
+ switch (expression.type) {
17622
18446
  case "Identifier":
17623
18447
  case "Literal":
17624
18448
  case "CallExpression":
17625
18449
  case "MemberExpression":
17626
18450
  case "ParenthesizedExpression":
17627
- return exp;
18451
+ return expression;
17628
18452
  default:
17629
18453
  return {
17630
18454
  type: "ParenthesizedExpression",
17631
- children: ["(", exp, ")"]
18455
+ children: ["(", expression, ")"],
18456
+ expression
17632
18457
  };
17633
18458
  }
17634
18459
  };
@@ -17681,7 +18506,9 @@ ${input.slice(result.pos)}
17681
18506
  children = [a, wsOp, ".", op2.method, "(", wsB, b, ")"];
17682
18507
  }
17683
18508
  } else if (op2.token) {
17684
- children = ["(", a, wsOp, op2, wsB, b, ")"];
18509
+ children = [a, wsOp, op2, wsB, b];
18510
+ if (op2.negated)
18511
+ children = ["(", ...children, ")"];
17685
18512
  } else {
17686
18513
  throw new Error("Unknown operator: " + JSON.stringify(op2));
17687
18514
  }
@@ -17833,7 +18660,10 @@ ${input.slice(result.pos)}
17833
18660
  i++;
17834
18661
  }
17835
18662
  results.push(e);
17836
- return results;
18663
+ return {
18664
+ type: "TemplateLiteral",
18665
+ children: results
18666
+ };
17837
18667
  };
17838
18668
  module.dedentBlockString = function({ $loc: $loc2, token: str }, spacing, trim = true) {
17839
18669
  if (spacing == null)
@@ -17853,11 +18683,67 @@ ${input.slice(result.pos)}
17853
18683
  token: str
17854
18684
  };
17855
18685
  };
17856
- module.reorderBindingRestProperty = function(props) {
17857
- const names = props.flatMap((p) => p.names);
18686
+ module.adjustBindingElements = function(elements) {
18687
+ const names = elements.flatMap((p) => p.names || []), { length } = elements;
18688
+ let blockPrefix, restIndex = -1, restCount = 0;
18689
+ elements.forEach(({ rest }, i) => {
18690
+ if (rest) {
18691
+ if (restIndex < 0)
18692
+ restIndex = i;
18693
+ restCount++;
18694
+ }
18695
+ });
18696
+ if (restCount === 0) {
18697
+ return {
18698
+ children: elements,
18699
+ names,
18700
+ blockPrefix,
18701
+ length
18702
+ };
18703
+ } else if (restCount === 1) {
18704
+ const rest = elements[restIndex];
18705
+ const after = elements.slice(restIndex + 1);
18706
+ let restIdentifier;
18707
+ if (rest.ref) {
18708
+ restIdentifier = rest.ref;
18709
+ } else {
18710
+ restIdentifier = rest.names[0];
18711
+ names.push(...rest.names);
18712
+ }
18713
+ if (after.length) {
18714
+ const spliceRef = module.getRef("splice");
18715
+ blockPrefix = {
18716
+ type: "PostRestBindingElements",
18717
+ children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
18718
+ names: after.flatMap((p) => p.names)
18719
+ };
18720
+ }
18721
+ return {
18722
+ names,
18723
+ children: [...elements.slice(0, restIndex), {
18724
+ ...rest,
18725
+ children: rest.children.slice(0, -1)
18726
+ }],
18727
+ blockPrefix,
18728
+ length
18729
+ };
18730
+ }
18731
+ const err = {
18732
+ type: "Error",
18733
+ children: ["Multiple rest elements in array pattern"]
18734
+ };
18735
+ return {
18736
+ names,
18737
+ children: [...elements, err],
18738
+ blockPrefix,
18739
+ length
18740
+ };
18741
+ };
18742
+ module.reorderBindingRestProperty = function(props2) {
18743
+ const names = props2.flatMap((p) => p.names);
17858
18744
  let restIndex = -1;
17859
18745
  let restCount = 0;
17860
- props.forEach(({ type }, i) => {
18746
+ props2.forEach(({ type }, i) => {
17861
18747
  if (type === "BindingRestProperty") {
17862
18748
  if (restIndex < 0)
17863
18749
  restIndex = i;
@@ -17865,21 +18751,20 @@ ${input.slice(result.pos)}
17865
18751
  }
17866
18752
  });
17867
18753
  if (restCount === 0) {
17868
- const children = [...props];
17869
18754
  return {
17870
- children,
18755
+ children: props2,
17871
18756
  names
17872
18757
  };
17873
18758
  } else if (restCount === 1) {
17874
- let after = props.slice(restIndex + 1);
17875
- let rest = props[restIndex];
17876
- props = props.slice(0, restIndex);
18759
+ let after = props2.slice(restIndex + 1);
18760
+ let rest = props2[restIndex];
18761
+ props2 = props2.slice(0, restIndex);
17877
18762
  if (after.length) {
17878
18763
  const [restDelim] = rest.children.slice(-1), lastAfterProp = after[after.length - 1], lastAfterChildren = lastAfterProp.children, [lastDelim] = lastAfterChildren.slice(-1);
17879
18764
  rest = { ...rest, children: [...rest.children.slice(0, -1), lastDelim] };
17880
18765
  after = [...after.slice(0, -1), { ...lastAfterProp, children: [...lastAfterChildren.slice(0, -1), restDelim] }];
17881
18766
  }
17882
- const children = [...props, ...after, rest];
18767
+ const children = [...props2, ...after, rest];
17883
18768
  return {
17884
18769
  children,
17885
18770
  names
@@ -18133,11 +19018,260 @@ ${input.slice(result.pos)}
18133
19018
  block
18134
19019
  };
18135
19020
  };
19021
+ function getPatternConditions(pattern, ref, conditions) {
19022
+ switch (pattern.type) {
19023
+ case "ArrayMatchingPattern": {
19024
+ const { elements, length } = pattern, hasRest = elements.some((e) => e.rest), comparator = hasRest ? " >= " : " === ", l = [comparator, (length - hasRest).toString()];
19025
+ conditions.push(
19026
+ ["Array.isArray(", ref, ")"],
19027
+ [ref, ".length", l]
19028
+ );
19029
+ elements.forEach(({ children: [, e] }, i) => {
19030
+ const subRef = [ref, "[", i.toString(), "]"];
19031
+ switch (e.type) {
19032
+ case "ArrayMatchingPattern":
19033
+ case "ObjectMatchingPattern":
19034
+ case "RegularExpressionLiteral":
19035
+ getPatternConditions(e, subRef, conditions);
19036
+ break;
19037
+ case "BindingMatchElement":
19038
+ getPatternConditions(e.match, subRef, conditions);
19039
+ break;
19040
+ }
19041
+ });
19042
+ const postRest = pattern.children.find((c) => c?.blockPrefix);
19043
+ if (postRest) {
19044
+ const postElements = postRest.blockPrefix.children[1], { length: postLength } = postElements;
19045
+ postElements.forEach(({ children: [, e] }, i) => {
19046
+ const subRef = [ref, "[", ref, ".length - ", (postLength + i).toString(), "]"];
19047
+ switch (e.type) {
19048
+ case "ArrayMatchingPattern":
19049
+ case "ObjectMatchingPattern":
19050
+ case "RegularExpressionLiteral":
19051
+ case "Literal":
19052
+ getPatternConditions(e, subRef, conditions);
19053
+ break;
19054
+ case "BindingMatchElement":
19055
+ getPatternConditions(e.match, subRef, conditions);
19056
+ break;
19057
+ }
19058
+ });
19059
+ }
19060
+ break;
19061
+ }
19062
+ case "ObjectMatchingPattern": {
19063
+ conditions.push(
19064
+ ["typeof ", ref, " === 'object'"],
19065
+ [ref, " != null"]
19066
+ );
19067
+ pattern.properties.forEach((p) => {
19068
+ switch (p.type) {
19069
+ case "BindingMatchProperty": {
19070
+ const { name, match } = p;
19071
+ let subRef;
19072
+ switch (name.type) {
19073
+ case "ComputedPropertyName":
19074
+ conditions.push([name.expression, " in ", ref]);
19075
+ subRef = [ref, name];
19076
+ break;
19077
+ case "Literal":
19078
+ case "StringLiteral":
19079
+ case void 0:
19080
+ conditions.push([name, " in ", ref]);
19081
+ subRef = [ref, "[", name, "]"];
19082
+ break;
19083
+ default:
19084
+ conditions.push(["'", name, "' in ", ref]);
19085
+ subRef = [ref, ".", name];
19086
+ }
19087
+ getPatternConditions(p.match, subRef, conditions);
19088
+ break;
19089
+ }
19090
+ case "BindingProperty":
19091
+ conditions.push(["'", p.identifier, "' in ", ref]);
19092
+ break;
19093
+ }
19094
+ });
19095
+ break;
19096
+ }
19097
+ case "RegularExpressionLiteral": {
19098
+ conditions.push(
19099
+ ["typeof ", ref, " === 'string'"],
19100
+ [pattern, ".test(", ref, ")"]
19101
+ );
19102
+ break;
19103
+ }
19104
+ default: {
19105
+ conditions.push([
19106
+ ref,
19107
+ " === ",
19108
+ pattern
19109
+ ]);
19110
+ }
19111
+ }
19112
+ }
19113
+ function elideMatchersFromArrayBindings(elements) {
19114
+ return elements.map(({ children: [ws, e, sep] }) => {
19115
+ switch (e.type) {
19116
+ case "Literal":
19117
+ case "RegularExpressionLiteral":
19118
+ case "StringLiteral":
19119
+ return sep;
19120
+ default:
19121
+ return [ws, nonMatcherBindings(e), sep];
19122
+ }
19123
+ });
19124
+ }
19125
+ function elideMatchersFromPropertyBindings(properties) {
19126
+ return properties.map((p) => {
19127
+ switch (p.type) {
19128
+ case "BindingMatchProperty": {
19129
+ const { children, name, match } = p;
19130
+ const [ws, , , , , , sep] = children;
19131
+ switch (match.type) {
19132
+ case "ArrayMatchingPattern":
19133
+ case "ObjectMatchingPattern":
19134
+ return {
19135
+ ...p,
19136
+ children: [ws, name, ": ", nonMatcherBindings(match)]
19137
+ };
19138
+ case "Identifier":
19139
+ switch (name.type) {
19140
+ case "ComputedPropertyName":
19141
+ case "Literal":
19142
+ case void 0:
19143
+ return {
19144
+ ...p,
19145
+ children: [ws, name, ": ", match, sep]
19146
+ };
19147
+ }
19148
+ case "Literal":
19149
+ case "RegularExpressionLiteral":
19150
+ case "StringLiteral":
19151
+ default:
19152
+ return {
19153
+ ...p,
19154
+ children: [ws, name, sep]
19155
+ };
19156
+ }
19157
+ }
19158
+ case "BindingProperty":
19159
+ case "BindingRestProperty":
19160
+ default:
19161
+ return p;
19162
+ }
19163
+ });
19164
+ }
19165
+ function nonMatcherBindings(pattern) {
19166
+ switch (pattern.type) {
19167
+ case "ArrayMatchingPattern":
19168
+ return ["[", elideMatchersFromArrayBindings(pattern.elements), "]"];
19169
+ case "PostRestBindingElements": {
19170
+ const els = elideMatchersFromArrayBindings(pattern.children[1]);
19171
+ return {
19172
+ ...pattern,
19173
+ children: [
19174
+ pattern.children[0],
19175
+ els,
19176
+ ...pattern.children.slice(2)
19177
+ ]
19178
+ };
19179
+ }
19180
+ case "ObjectMatchingPattern":
19181
+ return ["{", elideMatchersFromPropertyBindings(pattern.properties), "}"];
19182
+ default:
19183
+ return pattern;
19184
+ }
19185
+ }
19186
+ function processPatternMatching(statements) {
19187
+ gatherRecursiveAll(statements, (n) => n.type === "SwitchStatement").forEach((s) => {
19188
+ const { caseBlock } = s;
19189
+ const { clauses } = caseBlock;
19190
+ let errors = false;
19191
+ let isPattern = false;
19192
+ if (clauses.some((c) => c.type === "PatternClause")) {
19193
+ isPattern = true;
19194
+ clauses.forEach((c) => {
19195
+ if (!(c.type === "PatternClause" || c.type === "DefaultClause")) {
19196
+ errors = true;
19197
+ c.children.push({
19198
+ type: "Error",
19199
+ message: "Can't mix pattern matching and non-pattern matching clauses"
19200
+ });
19201
+ }
19202
+ });
19203
+ }
19204
+ if (errors || !isPattern)
19205
+ return;
19206
+ let { expression } = s;
19207
+ if (expression.type === "ParenthesizedExpression") {
19208
+ expression = expression.expression;
19209
+ }
19210
+ let ref;
19211
+ switch (expression.type) {
19212
+ case "Identifier":
19213
+ case "Literal":
19214
+ ref = expression;
19215
+ break;
19216
+ default:
19217
+ ref = {
19218
+ type: "Ref",
19219
+ base: "m",
19220
+ id: "m"
19221
+ };
19222
+ }
19223
+ let prev = [], root = prev;
19224
+ const l = clauses.length;
19225
+ clauses.forEach((c, i) => {
19226
+ let { pattern, block } = c;
19227
+ const indent = block.expressions[0][0];
19228
+ const conditions = [];
19229
+ getPatternConditions(pattern, ref, conditions);
19230
+ const condition = {
19231
+ type: "ParenthesizedExpression",
19232
+ children: ["(", conditions.map((c2, i2) => {
19233
+ if (i2 === 0)
19234
+ return c2;
19235
+ return [" && ", ...c2];
19236
+ }), ")"],
19237
+ expression: conditions
19238
+ };
19239
+ const prefix = [];
19240
+ switch (pattern.type) {
19241
+ case "ArrayMatchingPattern":
19242
+ case "ObjectMatchingPattern": {
19243
+ let [splices, thisAssignments] = gatherBindingCode(pattern);
19244
+ splices = splices.map((s2) => [", ", nonMatcherBindings(s2)]);
19245
+ thisAssignments = thisAssignments.map((a) => [indent, a, ";\n"]);
19246
+ prefix.push([indent, "const ", nonMatcherBindings(pattern), " = ", ref, splices, ";\n"]);
19247
+ prefix.push(...thisAssignments);
19248
+ break;
19249
+ }
19250
+ }
19251
+ block.expressions.unshift(...prefix);
19252
+ const next = [];
19253
+ if (block.bare) {
19254
+ block.children.unshift(" {");
19255
+ block.children.push("}");
19256
+ block.bare = false;
19257
+ }
19258
+ const e = i < l - 1 ? ["\nelse "] : [];
19259
+ prev.push({
19260
+ type: "IfStatement",
19261
+ children: ["if", condition, block, ...e, next]
19262
+ });
19263
+ prev = next;
19264
+ });
19265
+ s.type = "PatternMatchingStatement";
19266
+ s.children = [root];
19267
+ });
19268
+ }
18136
19269
  module.processProgram = function(statements) {
18137
19270
  processAssignments(statements);
18138
19271
  processFunctions(statements);
18139
19272
  processSwitchExpressions(statements);
18140
19273
  processTryExpressions(statements);
19274
+ processPatternMatching(statements);
18141
19275
  gatherRecursiveAll(statements, (n) => n.type === "IterationExpression").forEach((e) => expressionizeIteration(e));
18142
19276
  checkSpliceRef(statements);
18143
19277
  statements.unshift(...module.prelude);
@@ -18384,7 +19518,7 @@ ${input.slice(result.pos)}
18384
19518
  return result;
18385
19519
  }
18386
19520
  }
18387
- var Indent$0 = $TR($EXPECT($R60, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19521
+ var Indent$0 = $TR($EXPECT($R61, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18388
19522
  let level;
18389
19523
  if (module.config.tab) {
18390
19524
  const tabs = $0.match(/\t/g);
@@ -18539,7 +19673,7 @@ ${input.slice(result.pos)}
18539
19673
  return result;
18540
19674
  }
18541
19675
  }
18542
- var PopIndent$0 = $TV($EXPECT($L16, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
19676
+ var PopIndent$0 = $TV($EXPECT($L17, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
18543
19677
  if (module.config.verbose) {
18544
19678
  console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
18545
19679
  }
@@ -18644,6 +19778,13 @@ ${input.slice(result.pos)}
18644
19778
  }).join("");
18645
19779
  }
18646
19780
  if (typeof node === "object") {
19781
+ if (node.type === "Error") {
19782
+ if (options.errors == null) {
19783
+ options.errors = [];
19784
+ }
19785
+ options.errors.push(node);
19786
+ return "";
19787
+ }
18647
19788
  if (options.js && node.ts) {
18648
19789
  return "";
18649
19790
  }
@@ -18660,13 +19801,17 @@ ${input.slice(result.pos)}
18660
19801
  return token;
18661
19802
  }
18662
19803
  if (!node.children) {
19804
+ switch (node.type) {
19805
+ case "Ref":
19806
+ throw new Error(`Unpopulated ref ${JSON.stringify(node)}`);
19807
+ }
18663
19808
  debugger;
18664
- throw new Error("Unknown node", JSON.stringify(node));
19809
+ throw new Error(`Unknown node ${JSON.stringify(node)}`);
18665
19810
  }
18666
19811
  return gen(node.children, options);
18667
19812
  }
18668
19813
  debugger;
18669
- throw new Error("Unknown node", JSON.stringify(node));
19814
+ throw new Error(`Unknown node ${JSON.stringify(node)}`);
18670
19815
  };
18671
19816
  var prune = function(node) {
18672
19817
  var a;
@@ -19024,16 +20169,19 @@ ${input.slice(result.pos)}
19024
20169
  "civet coffeeCompat";
19025
20170
  var SourceMap2;
19026
20171
  var base64Encode2;
19027
- var defaultOptions;
19028
20172
  var makeCache;
19029
20173
  var parse;
19030
20174
  var uncacheable;
19031
20175
  ({ parse } = import_parser.default);
19032
20176
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
19033
- defaultOptions = {};
19034
20177
  uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "Declaration", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "Samedent", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
19035
- var compile = function(src, options = defaultOptions) {
19036
- var ast, code, events, filename, sm, srcMapJSON;
20178
+ var compile = function(src, options) {
20179
+ var ast, code, events, filename, ref, result, sm, srcMapJSON;
20180
+ if (!options) {
20181
+ options = {};
20182
+ } else {
20183
+ options = { ...options };
20184
+ }
19037
20185
  filename = options.filename || "unknown";
19038
20186
  if (filename.endsWith(".coffee") && !/^(#![^\r\n]*(\r\n|\n|\r))?\s*['"]civet/.test(src)) {
19039
20187
  src = `"civet coffeeCompat"; ${src}`;
@@ -19061,7 +20209,11 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode2(JSON.stri
19061
20209
  };
19062
20210
  }
19063
20211
  }
19064
- return generate_default(ast, options);
20212
+ result = generate_default(ast, options);
20213
+ if ((ref = options.errors) != null ? ref.length : void 0) {
20214
+ throw new Error(`Parse errors: ${options.errors.join("\n")} `);
20215
+ }
20216
+ return result;
19065
20217
  };
19066
20218
  makeCache = function() {
19067
20219
  var caches, events;