@danielx/civet 0.4.19-pre.11 → 0.4.19-pre.13

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
@@ -400,15 +400,14 @@ ${input.slice(result.pos)}
400
400
  ExpressionizedStatement,
401
401
  Expression,
402
402
  Arguments,
403
+ ApplicationStart,
403
404
  ArgumentsWithTrailingCallExpressions,
404
405
  ArgumentList,
405
406
  NestedArgumentList,
406
407
  NestedArgument,
407
408
  InlineArgumentExpressions,
409
+ SingleLineArgumentExpressions,
408
410
  ArgumentPart,
409
- ImplicitApplication,
410
- ApplicationStart,
411
- IndentedApplicationAllowed,
412
411
  BinaryOpExpression,
413
412
  BinaryOpRHS,
414
413
  ParenthesizedAssignment,
@@ -450,6 +449,7 @@ ${input.slice(result.pos)}
450
449
  MemberExpression,
451
450
  MemberExpressionRest,
452
451
  MemberBracketContent,
452
+ SliceParameters,
453
453
  PropertyAccess,
454
454
  SuperProperty,
455
455
  MetaProperty,
@@ -510,7 +510,9 @@ ${input.slice(result.pos)}
510
510
  ObjectLiteral,
511
511
  BracedObjectLiteral,
512
512
  BracedObjectLiteralContent,
513
- NestedObjectLiteral,
513
+ NestedImplicitObjectLiteral,
514
+ NestedImplicitPropertyDefinitions,
515
+ NestedImplicitPropertyDefinition,
514
516
  NestedPropertyDefinitions,
515
517
  NestedPropertyDefinition,
516
518
  InlineObjectLiteral,
@@ -527,6 +529,7 @@ ${input.slice(result.pos)}
527
529
  PrivateIdentifier,
528
530
  AssignmentOp,
529
531
  AssignmentOpSymbol,
532
+ CoffeeWordAssignmentOp,
530
533
  BinaryOp,
531
534
  BinaryOpSymbol,
532
535
  UnaryOp,
@@ -581,8 +584,6 @@ ${input.slice(result.pos)}
581
584
  Finally,
582
585
  CatchParameter,
583
586
  Condition,
584
- ExpressionWithIndentedApplicationSuppressed,
585
- SuppressIndentedApplication,
586
587
  ExpressionStatement,
587
588
  KeywordStatement,
588
589
  DebuggerExpression,
@@ -631,6 +632,12 @@ ${input.slice(result.pos)}
631
632
  CoffeeInterpolatedDoubleQuotedString,
632
633
  CoffeeDoubleQuotedStringCharacters,
633
634
  RegularExpressionLiteral,
635
+ RegularExpressionClass,
636
+ RegularExpressionClassCharacters,
637
+ HeregexLiteral,
638
+ HeregexBody,
639
+ HeregexPart,
640
+ HeregexComment,
634
641
  RegularExpressionBody,
635
642
  RegExpCharacter,
636
643
  RegularExpressionFlags,
@@ -641,6 +648,7 @@ ${input.slice(result.pos)}
641
648
  ReservedWord,
642
649
  Comment,
643
650
  SingleLineComment,
651
+ JSSingleLineComment,
644
652
  MultiLineComment,
645
653
  JSMultiLineComment,
646
654
  CoffeeSingleLineComment,
@@ -711,6 +719,7 @@ ${input.slice(result.pos)}
711
719
  Throw,
712
720
  TripleDoubleQuote,
713
721
  TripleSingleQuote,
722
+ TripleSlash,
714
723
  TripleTick,
715
724
  Try,
716
725
  Typeof,
@@ -807,6 +816,7 @@ ${input.slice(result.pos)}
807
816
  CoffeeLineContinuationEnabled,
808
817
  CoffeeNotEnabled,
809
818
  CoffeeOfEnabled,
819
+ CoffeeWordAssignmentEnabled,
810
820
  Reset,
811
821
  Init,
812
822
  Indent,
@@ -817,31 +827,31 @@ ${input.slice(result.pos)}
817
827
  PopIndent,
818
828
  Nested
819
829
  });
820
- var $L0 = $L(",");
821
- var $L1 = $L("");
822
- var $L2 = $L("++");
823
- var $L3 = $L("--");
824
- var $L4 = $L("=>");
825
- var $L5 = $L(" ");
826
- var $L6 = $L("<");
827
- var $L7 = $L("extends");
828
- var $L8 = $L("this");
829
- var $L9 = $L("#");
830
- var $L10 = $L(".");
831
- var $L11 = $L("super");
832
- var $L12 = $L("import");
833
- var $L13 = $L("!");
834
- var $L14 = $L("super[");
835
- var $L15 = $L("import.meta");
836
- var $L16 = $L(")");
837
- var $L17 = $L("->");
838
- var $L18 = $L("null");
839
- var $L19 = $L("true");
840
- var $L20 = $L("false");
841
- var $L21 = $L("yes");
842
- var $L22 = $L("on");
843
- var $L23 = $L("no");
844
- var $L24 = $L("off");
830
+ var $L0 = $L("++");
831
+ var $L1 = $L("--");
832
+ var $L2 = $L("=>");
833
+ var $L3 = $L(" ");
834
+ var $L4 = $L("<");
835
+ var $L5 = $L("extends");
836
+ var $L6 = $L("this");
837
+ var $L7 = $L("#");
838
+ var $L8 = $L(".");
839
+ var $L9 = $L("super");
840
+ var $L10 = $L("import");
841
+ var $L11 = $L("!");
842
+ var $L12 = $L("super[");
843
+ var $L13 = $L("import.meta");
844
+ var $L14 = $L("");
845
+ var $L15 = $L(")");
846
+ var $L16 = $L("->");
847
+ var $L17 = $L("null");
848
+ var $L18 = $L("true");
849
+ var $L19 = $L("false");
850
+ var $L20 = $L("yes");
851
+ var $L21 = $L("on");
852
+ var $L22 = $L("no");
853
+ var $L23 = $L("off");
854
+ var $L24 = $L(",");
845
855
  var $L25 = $L("]");
846
856
  var $L26 = $L("}");
847
857
  var $L27 = $L("**=");
@@ -861,118 +871,121 @@ ${input.slice(result.pos)}
861
871
  var $L41 = $L("??=");
862
872
  var $L42 = $L("?=");
863
873
  var $L43 = $L("=");
864
- var $L44 = $L("**");
865
- var $L45 = $L("*");
866
- var $L46 = $L("/");
867
- var $L47 = $L("%");
868
- var $L48 = $L("+");
869
- var $L49 = $L("-");
870
- var $L50 = $L("<=");
871
- var $L51 = $L(">=");
872
- var $L52 = $L("<<");
873
- var $L53 = $L(">>>");
874
- var $L54 = $L(">>");
875
- var $L55 = $L(">");
876
- var $L56 = $L("!==");
877
- var $L57 = $L("!=");
878
- var $L58 = $L("isnt");
879
- var $L59 = $L("is");
880
- var $L60 = $L("===");
881
- var $L61 = $L("==");
882
- var $L62 = $L("and");
883
- var $L63 = $L("&&");
884
- var $L64 = $L("of");
885
- var $L65 = $L("or");
886
- var $L66 = $L("||");
887
- var $L67 = $L("??");
888
- var $L68 = $L("?");
889
- var $L69 = $L("instanceof");
890
- var $L70 = $L("in");
891
- var $L71 = $L("not");
892
- var $L72 = $L("&");
893
- var $L73 = $L("^");
894
- var $L74 = $L("|");
895
- var $L75 = $L(";");
896
- var $L76 = $L("own");
897
- var $L77 = $L("finally");
898
- var $L78 = $L("break");
899
- var $L79 = $L("continue");
900
- var $L80 = $L("debugger");
901
- var $L81 = $L("import type");
902
- var $L82 = $L("default");
903
- var $L83 = $L(":=");
904
- var $L84 = $L("/*");
905
- var $L85 = $L("*/");
906
- var $L86 = $L("###");
907
- var $L87 = $L("\\");
908
- var $L88 = $L("as");
909
- var $L89 = $L("@");
910
- var $L90 = $L("async");
911
- var $L91 = $L("await");
912
- var $L92 = $L("`");
913
- var $L93 = $L("by");
914
- var $L94 = $L("case");
915
- var $L95 = $L("catch");
916
- var $L96 = $L("class");
917
- var $L97 = $L("#{");
918
- var $L98 = $L(":");
919
- var $L99 = $L("delete");
920
- var $L100 = $L("do");
921
- var $L101 = $L("..");
922
- var $L102 = $L("...");
923
- var $L103 = $L("::");
924
- var $L104 = $L('"');
925
- var $L105 = $L("else");
926
- var $L106 = $L("export");
927
- var $L107 = $L("for");
928
- var $L108 = $L("from");
929
- var $L109 = $L("function");
930
- var $L110 = $L("get");
931
- var $L111 = $L("set");
932
- var $L112 = $L("if");
933
- var $L113 = $L("let");
934
- var $L114 = $L("const");
935
- var $L115 = $L("loop");
936
- var $L116 = $L("new");
937
- var $L117 = $L("{");
938
- var $L118 = $L("[");
939
- var $L119 = $L("(");
940
- var $L120 = $L("return");
941
- var $L121 = $L("'");
942
- var $L122 = $L("static");
943
- var $L123 = $L("${");
944
- var $L124 = $L("switch");
945
- var $L125 = $L("target");
946
- var $L126 = $L("then");
947
- var $L127 = $L("throw");
948
- var $L128 = $L('"""');
949
- var $L129 = $L("'''");
950
- var $L130 = $L("```");
951
- var $L131 = $L("try");
952
- var $L132 = $L("typeof");
953
- var $L133 = $L("unless");
954
- var $L134 = $L("until");
955
- var $L135 = $L("var");
956
- var $L136 = $L("void");
957
- var $L137 = $L("when");
958
- var $L138 = $L("while");
959
- var $L139 = $L("yield");
960
- var $L140 = $L("/>");
961
- var $L141 = $L("</");
962
- var $L142 = $L("<>");
963
- var $L143 = $L("</>");
964
- var $L144 = $L("declare");
965
- var $L145 = $L("type");
966
- var $L146 = $L("interface");
967
- var $L147 = $L("namespace");
968
- var $L148 = $L("readonly");
969
- var $L149 = $L("asserts");
970
- var $L150 = $L("keyof");
971
- var $L151 = $L("infer");
972
- var $L152 = $L("[]");
973
- var $L153 = $L("civet");
974
- var $L154 = $L(" ");
975
- var $L155 = $L(" ");
874
+ var $L44 = $L("and=");
875
+ var $L45 = $L("or=");
876
+ var $L46 = $L("**");
877
+ var $L47 = $L("*");
878
+ var $L48 = $L("/");
879
+ var $L49 = $L("%");
880
+ var $L50 = $L("+");
881
+ var $L51 = $L("-");
882
+ var $L52 = $L("<=");
883
+ var $L53 = $L(">=");
884
+ var $L54 = $L("<<");
885
+ var $L55 = $L(">>>");
886
+ var $L56 = $L(">>");
887
+ var $L57 = $L(">");
888
+ var $L58 = $L("!==");
889
+ var $L59 = $L("!=");
890
+ var $L60 = $L("isnt");
891
+ var $L61 = $L("is");
892
+ var $L62 = $L("===");
893
+ var $L63 = $L("==");
894
+ var $L64 = $L("and");
895
+ var $L65 = $L("&&");
896
+ var $L66 = $L("of");
897
+ var $L67 = $L("or");
898
+ var $L68 = $L("||");
899
+ var $L69 = $L("??");
900
+ var $L70 = $L("?");
901
+ var $L71 = $L("instanceof");
902
+ var $L72 = $L("in");
903
+ var $L73 = $L("not");
904
+ var $L74 = $L("&");
905
+ var $L75 = $L("^");
906
+ var $L76 = $L("|");
907
+ var $L77 = $L(";");
908
+ var $L78 = $L("own");
909
+ var $L79 = $L("finally");
910
+ var $L80 = $L("break");
911
+ var $L81 = $L("continue");
912
+ var $L82 = $L("debugger");
913
+ var $L83 = $L("import type");
914
+ var $L84 = $L("default");
915
+ var $L85 = $L(":=");
916
+ var $L86 = $L("/*");
917
+ var $L87 = $L("*/");
918
+ var $L88 = $L("###");
919
+ var $L89 = $L("\\");
920
+ var $L90 = $L("as");
921
+ var $L91 = $L("@");
922
+ var $L92 = $L("async");
923
+ var $L93 = $L("await");
924
+ var $L94 = $L("`");
925
+ var $L95 = $L("by");
926
+ var $L96 = $L("case");
927
+ var $L97 = $L("catch");
928
+ var $L98 = $L("class");
929
+ var $L99 = $L("#{");
930
+ var $L100 = $L(":");
931
+ var $L101 = $L("delete");
932
+ var $L102 = $L("do");
933
+ var $L103 = $L("..");
934
+ var $L104 = $L("...");
935
+ var $L105 = $L("::");
936
+ var $L106 = $L('"');
937
+ var $L107 = $L("else");
938
+ var $L108 = $L("export");
939
+ var $L109 = $L("for");
940
+ var $L110 = $L("from");
941
+ var $L111 = $L("function");
942
+ var $L112 = $L("get");
943
+ var $L113 = $L("set");
944
+ var $L114 = $L("if");
945
+ var $L115 = $L("let");
946
+ var $L116 = $L("const");
947
+ var $L117 = $L("loop");
948
+ var $L118 = $L("new");
949
+ var $L119 = $L("{");
950
+ var $L120 = $L("[");
951
+ var $L121 = $L("(");
952
+ var $L122 = $L("return");
953
+ var $L123 = $L("'");
954
+ var $L124 = $L("static");
955
+ var $L125 = $L("${");
956
+ var $L126 = $L("switch");
957
+ var $L127 = $L("target");
958
+ var $L128 = $L("then");
959
+ var $L129 = $L("throw");
960
+ var $L130 = $L('"""');
961
+ var $L131 = $L("'''");
962
+ var $L132 = $L("///");
963
+ var $L133 = $L("```");
964
+ var $L134 = $L("try");
965
+ var $L135 = $L("typeof");
966
+ var $L136 = $L("unless");
967
+ var $L137 = $L("until");
968
+ var $L138 = $L("var");
969
+ var $L139 = $L("void");
970
+ var $L140 = $L("when");
971
+ var $L141 = $L("while");
972
+ var $L142 = $L("yield");
973
+ var $L143 = $L("/>");
974
+ var $L144 = $L("</");
975
+ var $L145 = $L("<>");
976
+ var $L146 = $L("</>");
977
+ var $L147 = $L("declare");
978
+ var $L148 = $L("type");
979
+ var $L149 = $L("interface");
980
+ var $L150 = $L("namespace");
981
+ var $L151 = $L("readonly");
982
+ var $L152 = $L("asserts");
983
+ var $L153 = $L("keyof");
984
+ var $L154 = $L("infer");
985
+ var $L155 = $L("[]");
986
+ var $L156 = $L("civet");
987
+ var $L157 = $L(" ");
988
+ var $L158 = $L(" ");
976
989
  var $R0 = $R(new RegExp("(for|of|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
977
990
  var $R1 = $R(new RegExp("[&]", "suy"));
978
991
  var $R2 = $R(new RegExp("[!~+-]+", "suy"));
@@ -993,34 +1006,38 @@ ${input.slice(result.pos)}
993
1006
  var $R17 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
994
1007
  var $R18 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
995
1008
  var $R19 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
996
- var $R20 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
997
- var $R21 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
998
- var $R22 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
999
- var $R23 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
1000
- var $R24 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
1001
- var $R25 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
1002
- var $R26 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1003
- var $R27 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1004
- var $R28 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1005
- var $R29 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
1006
- var $R30 = $R(new RegExp(".", "suy"));
1007
- var $R31 = $R(new RegExp("#(?!##)([^\\r\\n]*)", "suy"));
1008
- var $R32 = $R(new RegExp("[^\\r\\n]", "suy"));
1009
- var $R33 = $R(new RegExp("[ \\t]+", "suy"));
1010
- var $R34 = $R(new RegExp("[\\s]+", "suy"));
1011
- var $R35 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1012
- var $R36 = $R(new RegExp("\\s", "suy"));
1013
- var $R37 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1014
- var $R38 = $R(new RegExp('"[^"]*"', "suy"));
1015
- var $R39 = $R(new RegExp("'[^']*'", "suy"));
1016
- var $R40 = $R(new RegExp("[^{}<>]+", "suy"));
1017
- var $R41 = $R(new RegExp("[+-]?", "suy"));
1018
- var $R42 = $R(new RegExp("[+-]", "suy"));
1019
- var $R43 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1020
- var $R44 = $R(new RegExp("[\\t ]*", "suy"));
1021
- var $R45 = $R(new RegExp("[\\s]*", "suy"));
1022
- var $R46 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
1023
- var $R47 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1009
+ var $R20 = $R(new RegExp("(?:\\\\.|[^\\]])*", "suy"));
1010
+ var $R21 = $R(new RegExp("(?:\\\\.)", "suy"));
1011
+ var $R22 = $R(new RegExp("[\\s]+", "suy"));
1012
+ var $R23 = $R(new RegExp("\\/(?!\\/\\/)", "suy"));
1013
+ var $R24 = $R(new RegExp("[^\\/\\s#\\\\]+", "suy"));
1014
+ var $R25 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
1015
+ var $R26 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
1016
+ var $R27 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
1017
+ var $R28 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
1018
+ var $R29 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
1019
+ var $R30 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
1020
+ var $R31 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1021
+ var $R32 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1022
+ var $R33 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1023
+ var $R34 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1024
+ var $R35 = $R(new RegExp(".", "suy"));
1025
+ var $R36 = $R(new RegExp("#(?!##)([^\\r\\n]*)", "suy"));
1026
+ var $R37 = $R(new RegExp("[^\\r\\n]", "suy"));
1027
+ var $R38 = $R(new RegExp("[ \\t]+", "suy"));
1028
+ var $R39 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1029
+ var $R40 = $R(new RegExp("\\s", "suy"));
1030
+ var $R41 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1031
+ var $R42 = $R(new RegExp('"[^"]*"', "suy"));
1032
+ var $R43 = $R(new RegExp("'[^']*'", "suy"));
1033
+ var $R44 = $R(new RegExp("[^{}<>]+", "suy"));
1034
+ var $R45 = $R(new RegExp("[+-]?", "suy"));
1035
+ var $R46 = $R(new RegExp("[+-]", "suy"));
1036
+ var $R47 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1037
+ var $R48 = $R(new RegExp("[\\t ]*", "suy"));
1038
+ var $R49 = $R(new RegExp("[\\s]*", "suy"));
1039
+ var $R50 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
1040
+ var $R51 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1024
1041
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1025
1042
  var statements = $4;
1026
1043
  module.processProgram(statements);
@@ -1135,7 +1152,13 @@ ${input.slice(result.pos)}
1135
1152
  }
1136
1153
  }
1137
1154
  var Arguments$0 = $S(OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1138
- var Arguments$1 = ImplicitApplication;
1155
+ var Arguments$1 = $TS($S(ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1156
+ var open = $2;
1157
+ var ws = $3;
1158
+ var args = $4;
1159
+ var close = $5;
1160
+ return [open, module.insertTrimmingSpace(ws, ""), args, close];
1161
+ });
1139
1162
  function Arguments(state) {
1140
1163
  if (state.events) {
1141
1164
  const result = state.events.enter?.("Arguments", state);
@@ -1154,6 +1177,26 @@ ${input.slice(result.pos)}
1154
1177
  return result;
1155
1178
  }
1156
1179
  }
1180
+ var ApplicationStart$0 = $Y(NestedImplicitObjectLiteral);
1181
+ var ApplicationStart$1 = $S($N(EOS), $Y($S($P(_), $N(AdditionalReservedWords))));
1182
+ function ApplicationStart(state) {
1183
+ if (state.events) {
1184
+ const result = state.events.enter?.("ApplicationStart", state);
1185
+ if (result)
1186
+ return result.cache;
1187
+ }
1188
+ if (state.tokenize) {
1189
+ const result = $TOKEN("ApplicationStart", state, ApplicationStart$0(state) || ApplicationStart$1(state));
1190
+ if (state.events)
1191
+ state.events.exit?.("ApplicationStart", state, result);
1192
+ return result;
1193
+ } else {
1194
+ const result = ApplicationStart$0(state) || ApplicationStart$1(state);
1195
+ if (state.events)
1196
+ state.events.exit?.("ApplicationStart", state, result);
1197
+ return result;
1198
+ }
1199
+ }
1157
1200
  var ArgumentsWithTrailingCallExpressions$0 = $S(Arguments, $Q($S(Samedent, $N(Backtick), CallExpressionRest)));
1158
1201
  function ArgumentsWithTrailingCallExpressions(state) {
1159
1202
  if (state.events) {
@@ -1173,8 +1216,9 @@ ${input.slice(result.pos)}
1173
1216
  return result;
1174
1217
  }
1175
1218
  }
1176
- var ArgumentList$0 = NestedArgumentList;
1177
- var ArgumentList$1 = InlineArgumentExpressions;
1219
+ var ArgumentList$0 = $S(ArgumentPart, $P($S(__, Comma, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1220
+ var ArgumentList$1 = NestedArgumentList;
1221
+ var ArgumentList$2 = InlineArgumentExpressions;
1178
1222
  function ArgumentList(state) {
1179
1223
  if (state.events) {
1180
1224
  const result = state.events.enter?.("ArgumentList", state);
@@ -1182,12 +1226,12 @@ ${input.slice(result.pos)}
1182
1226
  return result.cache;
1183
1227
  }
1184
1228
  if (state.tokenize) {
1185
- const result = $TOKEN("ArgumentList", state, ArgumentList$0(state) || ArgumentList$1(state));
1229
+ const result = $TOKEN("ArgumentList", state, ArgumentList$0(state) || ArgumentList$1(state) || ArgumentList$2(state));
1186
1230
  if (state.events)
1187
1231
  state.events.exit?.("ArgumentList", state, result);
1188
1232
  return result;
1189
1233
  } else {
1190
- const result = ArgumentList$0(state) || ArgumentList$1(state);
1234
+ const result = ArgumentList$0(state) || ArgumentList$1(state) || ArgumentList$2(state);
1191
1235
  if (state.events)
1192
1236
  state.events.exit?.("ArgumentList", state, result);
1193
1237
  return result;
@@ -1217,7 +1261,7 @@ ${input.slice(result.pos)}
1217
1261
  return result;
1218
1262
  }
1219
1263
  }
1220
- var NestedArgument$0 = $S(Nested, InlineArgumentExpressions, ParameterElementDelimiter);
1264
+ var NestedArgument$0 = $S(Nested, SingleLineArgumentExpressions, ParameterElementDelimiter);
1221
1265
  function NestedArgument(state) {
1222
1266
  if (state.events) {
1223
1267
  const result = state.events.enter?.("NestedArgument", state);
@@ -1236,10 +1280,8 @@ ${input.slice(result.pos)}
1236
1280
  return result;
1237
1281
  }
1238
1282
  }
1239
- var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), $C(NestedObjectLiteral, ArgumentList)))), function($skip, $loc, $0, $1, $2, $3) {
1240
- if ($2.length == 0)
1241
- return $1;
1242
- return $0;
1283
+ var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1284
+ return [...$1, $2, ...$3];
1243
1285
  });
1244
1286
  function InlineArgumentExpressions(state) {
1245
1287
  if (state.events) {
@@ -1259,93 +1301,47 @@ ${input.slice(result.pos)}
1259
1301
  return result;
1260
1302
  }
1261
1303
  }
1262
- var ArgumentPart$0 = $S(DotDotDot, ExtendedExpression);
1263
- var ArgumentPart$1 = $TS($S(ExtendedExpression, $E(DotDotDot)), function($skip, $loc, $0, $1, $2) {
1264
- if ($2) {
1265
- return [$2, $1];
1266
- }
1267
- return $1;
1268
- });
1269
- function ArgumentPart(state) {
1270
- if (state.events) {
1271
- const result = state.events.enter?.("ArgumentPart", state);
1272
- if (result)
1273
- return result.cache;
1274
- }
1275
- if (state.tokenize) {
1276
- const result = $TOKEN("ArgumentPart", state, ArgumentPart$0(state) || ArgumentPart$1(state));
1277
- if (state.events)
1278
- state.events.exit?.("ArgumentPart", state, result);
1279
- return result;
1280
- } else {
1281
- const result = ArgumentPart$0(state) || ArgumentPart$1(state);
1282
- if (state.events)
1283
- state.events.exit?.("ArgumentPart", state, result);
1284
- return result;
1285
- }
1286
- }
1287
- var ImplicitApplication$0 = $S(ApplicationStart, ArgumentList, InsertCloseParen);
1288
- var ImplicitApplication$1 = $S(IndentedApplicationAllowed, InsertOpenParen, NestedObjectLiteral, $Q($S(__, $EXPECT($L0, fail, 'ImplicitApplication ","'), NestedObjectLiteral)), InsertCloseParen);
1289
- function ImplicitApplication(state) {
1304
+ var SingleLineArgumentExpressions$0 = $S($Q(TrailingComment), ArgumentPart, $Q($S($Q(TrailingComment), Comma, $Q(TrailingComment), ArgumentPart)));
1305
+ function SingleLineArgumentExpressions(state) {
1290
1306
  if (state.events) {
1291
- const result = state.events.enter?.("ImplicitApplication", state);
1307
+ const result = state.events.enter?.("SingleLineArgumentExpressions", state);
1292
1308
  if (result)
1293
1309
  return result.cache;
1294
1310
  }
1295
1311
  if (state.tokenize) {
1296
- const result = $TOKEN("ImplicitApplication", state, ImplicitApplication$0(state) || ImplicitApplication$1(state));
1312
+ const result = $TOKEN("SingleLineArgumentExpressions", state, SingleLineArgumentExpressions$0(state));
1297
1313
  if (state.events)
1298
- state.events.exit?.("ImplicitApplication", state, result);
1314
+ state.events.exit?.("SingleLineArgumentExpressions", state, result);
1299
1315
  return result;
1300
1316
  } else {
1301
- const result = ImplicitApplication$0(state) || ImplicitApplication$1(state);
1317
+ const result = SingleLineArgumentExpressions$0(state);
1302
1318
  if (state.events)
1303
- state.events.exit?.("ImplicitApplication", state, result);
1319
+ state.events.exit?.("SingleLineArgumentExpressions", state, result);
1304
1320
  return result;
1305
1321
  }
1306
1322
  }
1307
- var ApplicationStart$0 = $TS($S($N(EOS), _, $N(AdditionalReservedWords)), function($skip, $loc, $0, $1, $2, $3) {
1308
- var spacing = $2;
1309
- return module.insertTrimmingSpace(spacing, "(");
1310
- });
1311
- function ApplicationStart(state) {
1312
- if (state.events) {
1313
- const result = state.events.enter?.("ApplicationStart", state);
1314
- if (result)
1315
- return result.cache;
1316
- }
1317
- if (state.tokenize) {
1318
- const result = $TOKEN("ApplicationStart", state, ApplicationStart$0(state));
1319
- if (state.events)
1320
- state.events.exit?.("ApplicationStart", state, result);
1321
- return result;
1322
- } else {
1323
- const result = ApplicationStart$0(state);
1324
- if (state.events)
1325
- state.events.exit?.("ApplicationStart", state, result);
1326
- return result;
1323
+ var ArgumentPart$0 = $S(DotDotDot, ExtendedExpression);
1324
+ var ArgumentPart$1 = $TS($S(ExtendedExpression, $E(DotDotDot)), function($skip, $loc, $0, $1, $2) {
1325
+ if ($2) {
1326
+ return [$2, $1];
1327
1327
  }
1328
- }
1329
- var IndentedApplicationAllowed$0 = $TV($EXPECT($L1, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
1330
- if (module.suppressIndentedApplication)
1331
- return $skip;
1332
- return;
1328
+ return $1;
1333
1329
  });
1334
- function IndentedApplicationAllowed(state) {
1330
+ function ArgumentPart(state) {
1335
1331
  if (state.events) {
1336
- const result = state.events.enter?.("IndentedApplicationAllowed", state);
1332
+ const result = state.events.enter?.("ArgumentPart", state);
1337
1333
  if (result)
1338
1334
  return result.cache;
1339
1335
  }
1340
1336
  if (state.tokenize) {
1341
- const result = $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
1337
+ const result = $TOKEN("ArgumentPart", state, ArgumentPart$0(state) || ArgumentPart$1(state));
1342
1338
  if (state.events)
1343
- state.events.exit?.("IndentedApplicationAllowed", state, result);
1339
+ state.events.exit?.("ArgumentPart", state, result);
1344
1340
  return result;
1345
1341
  } else {
1346
- const result = IndentedApplicationAllowed$0(state);
1342
+ const result = ArgumentPart$0(state) || ArgumentPart$1(state);
1347
1343
  if (state.events)
1348
- state.events.exit?.("IndentedApplicationAllowed", state, result);
1344
+ state.events.exit?.("ArgumentPart", state, result);
1349
1345
  return result;
1350
1346
  }
1351
1347
  }
@@ -1532,7 +1528,7 @@ ${input.slice(result.pos)}
1532
1528
  return result;
1533
1529
  }
1534
1530
  }
1535
- var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L2, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L3, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1531
+ var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L0, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L1, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1536
1532
  return { $loc, token: $1 };
1537
1533
  });
1538
1534
  function UpdateExpressionSymbol(state) {
@@ -1774,7 +1770,7 @@ ${input.slice(result.pos)}
1774
1770
  return result;
1775
1771
  }
1776
1772
  }
1777
- var FatArrow$0 = $TS($S(__, $EXPECT($L4, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
1773
+ var FatArrow$0 = $TS($S(__, $EXPECT($L2, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
1778
1774
  var ws = $1;
1779
1775
  if (!ws.length)
1780
1776
  return " =>";
@@ -1845,7 +1841,7 @@ ${input.slice(result.pos)}
1845
1841
  }
1846
1842
  }
1847
1843
  var TernaryRest$0 = NestedTernaryRest;
1848
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L5, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
1844
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L3, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
1849
1845
  return $0.slice(2);
1850
1846
  });
1851
1847
  function TernaryRest(state) {
@@ -2038,10 +2034,10 @@ ${input.slice(result.pos)}
2038
2034
  return result;
2039
2035
  }
2040
2036
  }
2041
- var ExtendsToken$0 = $TV($EXPECT($L6, fail, 'ExtendsToken "<"'), function($skip, $loc, $0, $1) {
2037
+ var ExtendsToken$0 = $TV($EXPECT($L4, fail, 'ExtendsToken "<"'), function($skip, $loc, $0, $1) {
2042
2038
  return { $loc, token: "extends" };
2043
2039
  });
2044
- var ExtendsToken$1 = $TV($EXPECT($L7, fail, 'ExtendsToken "extends"'), function($skip, $loc, $0, $1) {
2040
+ var ExtendsToken$1 = $TV($EXPECT($L5, fail, 'ExtendsToken "extends"'), function($skip, $loc, $0, $1) {
2045
2041
  return { $loc, token: $1 };
2046
2042
  });
2047
2043
  function ExtendsToken(state) {
@@ -2186,10 +2182,10 @@ ${input.slice(result.pos)}
2186
2182
  return result;
2187
2183
  }
2188
2184
  }
2189
- var This$0 = $TV($EXPECT($L8, fail, 'This "this"'), function($skip, $loc, $0, $1) {
2185
+ var This$0 = $TV($EXPECT($L6, fail, 'This "this"'), function($skip, $loc, $0, $1) {
2190
2186
  return { $loc, token: $1 };
2191
2187
  });
2192
- var This$1 = $TS($S(At, $S($E($EXPECT($L9, fail, 'This "#"')), IdentifierName)), function($skip, $loc, $0, $1, $2) {
2188
+ var This$1 = $TS($S(At, $S($E($EXPECT($L7, fail, 'This "#"')), IdentifierName)), function($skip, $loc, $0, $1, $2) {
2193
2189
  $1.token = "this.";
2194
2190
  return $0;
2195
2191
  });
@@ -2215,7 +2211,7 @@ ${input.slice(result.pos)}
2215
2211
  return result;
2216
2212
  }
2217
2213
  }
2218
- var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L10, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2214
+ var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L8, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2219
2215
  if ($1.length)
2220
2216
  return $0;
2221
2217
  return $2;
@@ -2238,8 +2234,8 @@ ${input.slice(result.pos)}
2238
2234
  return result;
2239
2235
  }
2240
2236
  }
2241
- var CallExpression$0 = $S($EXPECT($L11, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
2242
- var CallExpression$1 = $S($EXPECT($L12, fail, 'CallExpression "import"'), __, OpenParen, ExtendedExpression, __, CloseParen);
2237
+ var CallExpression$0 = $S($EXPECT($L9, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
2238
+ var CallExpression$1 = $S($EXPECT($L10, fail, 'CallExpression "import"'), __, OpenParen, ExtendedExpression, __, CloseParen);
2243
2239
  var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
2244
2240
  if ($2.length)
2245
2241
  return $0;
@@ -2303,7 +2299,7 @@ ${input.slice(result.pos)}
2303
2299
  return result;
2304
2300
  }
2305
2301
  }
2306
- var NonNullAssertion$0 = $T($EXPECT($L13, fail, 'NonNullAssertion "!"'), function(value) {
2302
+ var NonNullAssertion$0 = $T($EXPECT($L11, fail, 'NonNullAssertion "!"'), function(value) {
2307
2303
  return { "ts": true, "children": value };
2308
2304
  });
2309
2305
  function NonNullAssertion(state) {
@@ -2403,36 +2399,22 @@ ${input.slice(result.pos)}
2403
2399
  return result;
2404
2400
  }
2405
2401
  }
2406
- var MemberBracketContent$0 = $TS($S(OpenBracket, ExtendedExpression, $E($S(__, $C(DotDotDot, DotDot), $E(ExtendedExpression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2407
- if ($3) {
2408
- const sep = $3[1];
2409
- let end = $3[2];
2410
- const inclusive = sep.token === "..";
2411
- sep.token = ", ";
2412
- $1.token = ".slice(";
2413
- $5.token = ")";
2414
- if (!end) {
2415
- return {
2416
- type: "SliceExpression",
2417
- start: $2,
2418
- end: void 0,
2419
- children: [$1, $2, $4, $5]
2420
- };
2421
- }
2422
- if (inclusive) {
2423
- end = module.insertTrimmingSpace(end, "");
2424
- return {
2425
- type: "SliceExpression",
2426
- start: $2,
2427
- end: ["1 + ", end],
2428
- children: [$1, $2, sep, ["1 + ", end, " || 1/0"], $4, $5]
2429
- };
2430
- }
2402
+ var MemberBracketContent$0 = $TS($S(OpenBracket, $C(SliceParameters, ExtendedExpression), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
2403
+ var open = $1;
2404
+ var exp = $2;
2405
+ var ws = $3;
2406
+ var close = $4;
2407
+ if (exp.type === "SliceParameters") {
2408
+ const { start, end, children } = exp;
2431
2409
  return {
2432
2410
  type: "SliceExpression",
2433
- start: $2,
2411
+ start,
2434
2412
  end,
2435
- children: [$1, $2, sep, end, $4, $5]
2413
+ children: [
2414
+ { ...open, token: ".slice(" },
2415
+ ...children,
2416
+ [...ws, { ...close, token: ")" }]
2417
+ ]
2436
2418
  };
2437
2419
  }
2438
2420
  return $0;
@@ -2455,6 +2437,70 @@ ${input.slice(result.pos)}
2455
2437
  return result;
2456
2438
  }
2457
2439
  }
2440
+ var SliceParameters$0 = $TS($S(ExtendedExpression, __, $C(DotDotDot, DotDot), $E(ExtendedExpression)), function($skip, $loc, $0, $1, $2, $3, $4) {
2441
+ var start = $1;
2442
+ var ws = $2;
2443
+ var sep = $3;
2444
+ var end = $4;
2445
+ const inclusive = sep.token === "..";
2446
+ let children;
2447
+ if (end) {
2448
+ const inc = [];
2449
+ if (inclusive) {
2450
+ end = ["1 + ", end];
2451
+ inc.push(" || 1/0");
2452
+ }
2453
+ children = [start, [...ws, { ...sep, token: ", " }], [end, ...inc]];
2454
+ } else {
2455
+ children = [start, ws];
2456
+ }
2457
+ return {
2458
+ type: "SliceParameters",
2459
+ start,
2460
+ end,
2461
+ children
2462
+ };
2463
+ });
2464
+ var SliceParameters$1 = $TS($S(Loc, __, $C(DotDotDot, DotDot), ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
2465
+ var l = $1;
2466
+ var ws = $2;
2467
+ var sep = $3;
2468
+ var end = $4;
2469
+ const inclusive = sep.token === "..";
2470
+ const inc = [];
2471
+ if (inclusive) {
2472
+ end = ["1 + ", end];
2473
+ inc.push(" || 1/0");
2474
+ }
2475
+ const start = {
2476
+ $loc: l.$loc,
2477
+ token: "0"
2478
+ };
2479
+ return {
2480
+ type: "SliceParameters",
2481
+ start,
2482
+ end,
2483
+ children: [start, [...ws, { ...sep, token: ", " }], [end, ...inc]]
2484
+ };
2485
+ });
2486
+ function SliceParameters(state) {
2487
+ if (state.events) {
2488
+ const result = state.events.enter?.("SliceParameters", state);
2489
+ if (result)
2490
+ return result.cache;
2491
+ }
2492
+ if (state.tokenize) {
2493
+ const result = $TOKEN("SliceParameters", state, SliceParameters$0(state) || SliceParameters$1(state));
2494
+ if (state.events)
2495
+ state.events.exit?.("SliceParameters", state, result);
2496
+ return result;
2497
+ } else {
2498
+ const result = SliceParameters$0(state) || SliceParameters$1(state);
2499
+ if (state.events)
2500
+ state.events.exit?.("SliceParameters", state, result);
2501
+ return result;
2502
+ }
2503
+ }
2458
2504
  var PropertyAccess$0 = $TS($S($E($C(QuestionMark, NonNullAssertion)), Dot, $C(IdentifierName, PrivateIdentifier)), function($skip, $loc, $0, $1, $2, $3) {
2459
2505
  var id = $3;
2460
2506
  const children = [$2, ...id.children];
@@ -2493,7 +2539,7 @@ ${input.slice(result.pos)}
2493
2539
  return result;
2494
2540
  }
2495
2541
  }
2496
- var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
2542
+ var SuperProperty$0 = $S($EXPECT($L12, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
2497
2543
  function SuperProperty(state) {
2498
2544
  if (state.events) {
2499
2545
  const result = state.events.enter?.("SuperProperty", state);
@@ -2513,7 +2559,7 @@ ${input.slice(result.pos)}
2513
2559
  }
2514
2560
  }
2515
2561
  var MetaProperty$0 = $S(New, Dot, Target);
2516
- var MetaProperty$1 = $TV($EXPECT($L15, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
2562
+ var MetaProperty$1 = $TV($EXPECT($L13, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
2517
2563
  return { $loc, token: $1 };
2518
2564
  });
2519
2565
  function MetaProperty(state) {
@@ -2535,7 +2581,7 @@ ${input.slice(result.pos)}
2535
2581
  }
2536
2582
  }
2537
2583
  var Parameters$0 = NonEmptyParameters;
2538
- var Parameters$1 = $TV($EXPECT($L1, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
2584
+ var Parameters$1 = $TV($EXPECT($L14, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
2539
2585
  return {
2540
2586
  type: "Parameters",
2541
2587
  children: [{ $loc, token: "()" }],
@@ -2630,7 +2676,7 @@ ${input.slice(result.pos)}
2630
2676
  }
2631
2677
  }
2632
2678
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
2633
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L16, fail, 'ParameterElementDelimiter ")"')));
2679
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L15, fail, 'ParameterElementDelimiter ")"')));
2634
2680
  var ParameterElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
2635
2681
  return { $loc, token: "," };
2636
2682
  });
@@ -2652,10 +2698,25 @@ ${input.slice(result.pos)}
2652
2698
  return result;
2653
2699
  }
2654
2700
  }
2655
- var BindingIdentifier$0 = $TS($S(__, Identifier), function($skip, $loc, $0, $1, $2) {
2656
- return Object.assign({}, $2, {
2657
- children: [...$1, ...$2.children]
2658
- });
2701
+ var BindingIdentifier$0 = $TS($S(__, $E(At), Identifier), function($skip, $loc, $0, $1, $2, $3) {
2702
+ var ws = $1;
2703
+ var at = $2;
2704
+ var id = $3;
2705
+ if (at) {
2706
+ const ref = {
2707
+ type: "Ref",
2708
+ base: id.name
2709
+ };
2710
+ return {
2711
+ type: "AtBinding",
2712
+ children: [...ws, ref],
2713
+ ref
2714
+ };
2715
+ }
2716
+ return {
2717
+ ...id,
2718
+ children: [...ws, ...id.children]
2719
+ };
2659
2720
  });
2660
2721
  function BindingIdentifier(state) {
2661
2722
  if (state.events) {
@@ -2876,13 +2937,7 @@ ${input.slice(result.pos)}
2876
2937
  return result;
2877
2938
  }
2878
2939
  }
2879
- var NestedBindingProperty$0 = $TS($S(Nested, BindingProperty), function($skip, $loc, $0, $1, $2) {
2880
- var indent = $1;
2881
- var prop = $2;
2882
- return Object.assign({}, prop, {
2883
- children: [indent, ...prop.children]
2884
- });
2885
- });
2940
+ var NestedBindingProperty$0 = $S(Nested, BindingProperty);
2886
2941
  function NestedBindingProperty(state) {
2887
2942
  if (state.events) {
2888
2943
  const result = state.events.enter?.("NestedBindingProperty", state);
@@ -2910,6 +2965,14 @@ ${input.slice(result.pos)}
2910
2965
  });
2911
2966
  var BindingProperty$1 = $TS($S(BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
2912
2967
  var b = $1;
2968
+ if (b.type === "AtBinding") {
2969
+ return {
2970
+ type: "AtBindingProperty",
2971
+ ref: b.ref,
2972
+ names: [],
2973
+ children: $0
2974
+ };
2975
+ }
2913
2976
  return {
2914
2977
  names: b.names,
2915
2978
  children: $0
@@ -2936,9 +2999,10 @@ ${input.slice(result.pos)}
2936
2999
  var NestedBindingRestProperty$0 = $TS($S(Nested, BindingRestProperty), function($skip, $loc, $0, $1, $2) {
2937
3000
  var indent = $1;
2938
3001
  var prop = $2;
2939
- return Object.assign({}, prop, {
3002
+ return {
3003
+ ...prop,
2940
3004
  children: [indent, ...prop.children]
2941
- });
3005
+ };
2942
3006
  });
2943
3007
  function NestedBindingRestProperty(state) {
2944
3008
  if (state.events) {
@@ -2961,9 +3025,10 @@ ${input.slice(result.pos)}
2961
3025
  var BindingRestProperty$0 = $TS($S(DotDotDot, BindingIdentifier), function($skip, $loc, $0, $1, $2) {
2962
3026
  var d = $1;
2963
3027
  var id = $2;
2964
- return Object.assign({}, id, {
3028
+ return {
3029
+ ...id,
2965
3030
  children: [d, ...id.children]
2966
- });
3031
+ };
2967
3032
  });
2968
3033
  function BindingRestProperty(state) {
2969
3034
  if (state.events) {
@@ -3164,10 +3229,9 @@ ${input.slice(result.pos)}
3164
3229
  children: [$1, $3]
3165
3230
  };
3166
3231
  });
3167
- var FunctionExpression$2 = $TS($S(Ampersand, $N($EXPECT($R1, fail, "FunctionExpression /[&]/")), $P($S(__, BinaryOp, __, UnaryExpression))), function($skip, $loc, $0, $1, $2, $3) {
3168
- $0.splice(1, 1);
3232
+ var FunctionExpression$2 = $TS($S(Ampersand, $N($EXPECT($R1, fail, "FunctionExpression /[&]/")), $P(BinaryOpRHS)), function($skip, $loc, $0, $1, $2, $3) {
3169
3233
  $1.token = "$ => $";
3170
- const exp = module.processBinaryOpExpression($0);
3234
+ const exp = module.processBinaryOpExpression([$1, $3]);
3171
3235
  return {
3172
3236
  type: "ArrowFunction",
3173
3237
  children: exp
@@ -3235,7 +3299,7 @@ ${input.slice(result.pos)}
3235
3299
  return result;
3236
3300
  }
3237
3301
  }
3238
- var Arrow$0 = $TV($EXPECT($L17, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
3302
+ var Arrow$0 = $TV($EXPECT($L16, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
3239
3303
  return { $loc, token: $1 };
3240
3304
  });
3241
3305
  function Arrow(state) {
@@ -3387,8 +3451,14 @@ ${input.slice(result.pos)}
3387
3451
  return result;
3388
3452
  }
3389
3453
  }
3390
- var EmptyBlock$0 = $T($S(InsertOpenBrace, InsertCloseBrace), function(value) {
3391
- return { "type": "BlockStatement", "expressions": [], "children": value, "bare": false };
3454
+ var EmptyBlock$0 = $TS($S(InsertOpenBrace, InsertCloseBrace), function($skip, $loc, $0, $1, $2) {
3455
+ const expressions = [];
3456
+ return {
3457
+ type: "BlockStatement",
3458
+ expressions,
3459
+ children: [$1, expressions, $2],
3460
+ bare: false
3461
+ };
3392
3462
  });
3393
3463
  function EmptyBlock(state) {
3394
3464
  if (state.events) {
@@ -3609,7 +3679,7 @@ ${input.slice(result.pos)}
3609
3679
  return result;
3610
3680
  }
3611
3681
  }
3612
- var NullLiteral$0 = $TV($EXPECT($L18, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
3682
+ var NullLiteral$0 = $TV($EXPECT($L17, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
3613
3683
  return { $loc, token: $1 };
3614
3684
  });
3615
3685
  function NullLiteral(state) {
@@ -3633,7 +3703,7 @@ ${input.slice(result.pos)}
3633
3703
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
3634
3704
  return value[1];
3635
3705
  });
3636
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L19, fail, 'BooleanLiteral "true"'), $EXPECT($L20, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3706
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L18, fail, 'BooleanLiteral "true"'), $EXPECT($L19, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3637
3707
  return { $loc, token: $1 };
3638
3708
  });
3639
3709
  function BooleanLiteral(state) {
@@ -3654,10 +3724,10 @@ ${input.slice(result.pos)}
3654
3724
  return result;
3655
3725
  }
3656
3726
  }
3657
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3727
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L20, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3658
3728
  return { $loc, token: "true" };
3659
3729
  });
3660
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3730
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3661
3731
  return { $loc, token: "false" };
3662
3732
  });
3663
3733
  function CoffeeScriptBooleanLiteral(state) {
@@ -3678,7 +3748,7 @@ ${input.slice(result.pos)}
3678
3748
  return result;
3679
3749
  }
3680
3750
  }
3681
- var Comma$0 = $TV($EXPECT($L0, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
3751
+ var Comma$0 = $TV($EXPECT($L24, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
3682
3752
  return { $loc, token: $1 };
3683
3753
  });
3684
3754
  function Comma(state) {
@@ -4025,7 +4095,13 @@ ${input.slice(result.pos)}
4025
4095
  return result;
4026
4096
  }
4027
4097
  }
4028
- var ArrayElementExpression$0 = $TV($E($S($E($S(DotDotDot, __)), ExtendedExpression)), function($skip, $loc, $0, $1) {
4098
+ var ArrayElementExpression$0 = $TS($S(ExtendedExpression, __, DotDotDot, $Y(ArrayElementDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
4099
+ var exp = $1;
4100
+ var ws = $2;
4101
+ var dots = $3;
4102
+ return [...ws, dots, exp];
4103
+ });
4104
+ var ArrayElementExpression$1 = $TV($E($S($E($S(DotDotDot, __)), ExtendedExpression)), function($skip, $loc, $0, $1) {
4029
4105
  if ($1 && !$1[0]) {
4030
4106
  return $1[1];
4031
4107
  }
@@ -4038,19 +4114,19 @@ ${input.slice(result.pos)}
4038
4114
  return result.cache;
4039
4115
  }
4040
4116
  if (state.tokenize) {
4041
- const result = $TOKEN("ArrayElementExpression", state, ArrayElementExpression$0(state));
4117
+ const result = $TOKEN("ArrayElementExpression", state, ArrayElementExpression$0(state) || ArrayElementExpression$1(state));
4042
4118
  if (state.events)
4043
4119
  state.events.exit?.("ArrayElementExpression", state, result);
4044
4120
  return result;
4045
4121
  } else {
4046
- const result = ArrayElementExpression$0(state);
4122
+ const result = ArrayElementExpression$0(state) || ArrayElementExpression$1(state);
4047
4123
  if (state.events)
4048
4124
  state.events.exit?.("ArrayElementExpression", state, result);
4049
4125
  return result;
4050
4126
  }
4051
4127
  }
4052
4128
  var ObjectLiteral$0 = BracedObjectLiteral;
4053
- var ObjectLiteral$1 = NestedObjectLiteral;
4129
+ var ObjectLiteral$1 = NestedImplicitObjectLiteral;
4054
4130
  var ObjectLiteral$2 = InlineObjectLiteral;
4055
4131
  function ObjectLiteral(state) {
4056
4132
  if (state.events) {
@@ -4131,27 +4207,76 @@ ${input.slice(result.pos)}
4131
4207
  return result;
4132
4208
  }
4133
4209
  }
4134
- var NestedObjectLiteral$0 = $TS($S(InsertOpenBrace, NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4210
+ var NestedImplicitObjectLiteral$0 = $TS($S(InsertOpenBrace, NestedImplicitPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4135
4211
  return {
4136
4212
  type: "ObjectExpression",
4137
4213
  children: [$1, ...$2, $3, $4, $5]
4138
4214
  };
4139
4215
  });
4140
- function NestedObjectLiteral(state) {
4216
+ function NestedImplicitObjectLiteral(state) {
4141
4217
  if (state.events) {
4142
- const result = state.events.enter?.("NestedObjectLiteral", state);
4218
+ const result = state.events.enter?.("NestedImplicitObjectLiteral", state);
4143
4219
  if (result)
4144
4220
  return result.cache;
4145
4221
  }
4146
4222
  if (state.tokenize) {
4147
- const result = $TOKEN("NestedObjectLiteral", state, NestedObjectLiteral$0(state));
4223
+ const result = $TOKEN("NestedImplicitObjectLiteral", state, NestedImplicitObjectLiteral$0(state));
4148
4224
  if (state.events)
4149
- state.events.exit?.("NestedObjectLiteral", state, result);
4225
+ state.events.exit?.("NestedImplicitObjectLiteral", state, result);
4150
4226
  return result;
4151
4227
  } else {
4152
- const result = NestedObjectLiteral$0(state);
4228
+ const result = NestedImplicitObjectLiteral$0(state);
4153
4229
  if (state.events)
4154
- state.events.exit?.("NestedObjectLiteral", state, result);
4230
+ state.events.exit?.("NestedImplicitObjectLiteral", state, result);
4231
+ return result;
4232
+ }
4233
+ }
4234
+ var NestedImplicitPropertyDefinitions$0 = $TS($S(PushIndent, $Q(NestedImplicitPropertyDefinition), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4235
+ var defs = $2;
4236
+ if (!defs.length)
4237
+ return $skip;
4238
+ return defs.flat();
4239
+ });
4240
+ function NestedImplicitPropertyDefinitions(state) {
4241
+ if (state.events) {
4242
+ const result = state.events.enter?.("NestedImplicitPropertyDefinitions", state);
4243
+ if (result)
4244
+ return result.cache;
4245
+ }
4246
+ if (state.tokenize) {
4247
+ const result = $TOKEN("NestedImplicitPropertyDefinitions", state, NestedImplicitPropertyDefinitions$0(state));
4248
+ if (state.events)
4249
+ state.events.exit?.("NestedImplicitPropertyDefinitions", state, result);
4250
+ return result;
4251
+ } else {
4252
+ const result = NestedImplicitPropertyDefinitions$0(state);
4253
+ if (state.events)
4254
+ state.events.exit?.("NestedImplicitPropertyDefinitions", state, result);
4255
+ return result;
4256
+ }
4257
+ }
4258
+ var NestedImplicitPropertyDefinition$0 = $TS($S(Nested, NamedProperty, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
4259
+ const result = [...$1, $2];
4260
+ if ($3) {
4261
+ result.push($3);
4262
+ }
4263
+ return result;
4264
+ });
4265
+ function NestedImplicitPropertyDefinition(state) {
4266
+ if (state.events) {
4267
+ const result = state.events.enter?.("NestedImplicitPropertyDefinition", state);
4268
+ if (result)
4269
+ return result.cache;
4270
+ }
4271
+ if (state.tokenize) {
4272
+ const result = $TOKEN("NestedImplicitPropertyDefinition", state, NestedImplicitPropertyDefinition$0(state));
4273
+ if (state.events)
4274
+ state.events.exit?.("NestedImplicitPropertyDefinition", state, result);
4275
+ return result;
4276
+ } else {
4277
+ const result = NestedImplicitPropertyDefinition$0(state);
4278
+ if (state.events)
4279
+ state.events.exit?.("NestedImplicitPropertyDefinition", state, result);
4155
4280
  return result;
4156
4281
  }
4157
4282
  }
@@ -4278,10 +4403,9 @@ ${input.slice(result.pos)}
4278
4403
  var PropertyDefinition$0 = $TS($S(At, IdentifierReference, $Y(ObjectPropertyDelimiter)), function($skip, $loc, $0, $1, $2, $3) {
4279
4404
  var at = $1;
4280
4405
  var id = $2;
4281
- at.token = "this.";
4282
4406
  return {
4283
4407
  type: "Property",
4284
- children: [id, ": ", at, id],
4408
+ children: [id, ": ", { ...at, token: "this." }, id],
4285
4409
  names: id.names
4286
4410
  };
4287
4411
  });
@@ -4491,7 +4615,7 @@ ${input.slice(result.pos)}
4491
4615
  return result;
4492
4616
  }
4493
4617
  }
4494
- var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L9, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
4618
+ var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L7, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
4495
4619
  return {
4496
4620
  type: "Identifier",
4497
4621
  name: $0,
@@ -4566,6 +4690,9 @@ ${input.slice(result.pos)}
4566
4690
  return "??=";
4567
4691
  });
4568
4692
  var AssignmentOpSymbol$16 = $EXPECT($L43, fail, 'AssignmentOpSymbol "="');
4693
+ var AssignmentOpSymbol$17 = $T($S(CoffeeWordAssignmentEnabled, CoffeeWordAssignmentOp), function(value) {
4694
+ return value[1];
4695
+ });
4569
4696
  function AssignmentOpSymbol(state) {
4570
4697
  if (state.events) {
4571
4698
  const result = state.events.enter?.("AssignmentOpSymbol", state);
@@ -4573,17 +4700,41 @@ ${input.slice(result.pos)}
4573
4700
  return result.cache;
4574
4701
  }
4575
4702
  if (state.tokenize) {
4576
- const result = $TOKEN("AssignmentOpSymbol", state, AssignmentOpSymbol$0(state) || AssignmentOpSymbol$1(state) || AssignmentOpSymbol$2(state) || AssignmentOpSymbol$3(state) || AssignmentOpSymbol$4(state) || AssignmentOpSymbol$5(state) || AssignmentOpSymbol$6(state) || AssignmentOpSymbol$7(state) || AssignmentOpSymbol$8(state) || AssignmentOpSymbol$9(state) || AssignmentOpSymbol$10(state) || AssignmentOpSymbol$11(state) || AssignmentOpSymbol$12(state) || AssignmentOpSymbol$13(state) || AssignmentOpSymbol$14(state) || AssignmentOpSymbol$15(state) || AssignmentOpSymbol$16(state));
4703
+ const result = $TOKEN("AssignmentOpSymbol", state, AssignmentOpSymbol$0(state) || AssignmentOpSymbol$1(state) || AssignmentOpSymbol$2(state) || AssignmentOpSymbol$3(state) || AssignmentOpSymbol$4(state) || AssignmentOpSymbol$5(state) || AssignmentOpSymbol$6(state) || AssignmentOpSymbol$7(state) || AssignmentOpSymbol$8(state) || AssignmentOpSymbol$9(state) || AssignmentOpSymbol$10(state) || AssignmentOpSymbol$11(state) || AssignmentOpSymbol$12(state) || AssignmentOpSymbol$13(state) || AssignmentOpSymbol$14(state) || AssignmentOpSymbol$15(state) || AssignmentOpSymbol$16(state) || AssignmentOpSymbol$17(state));
4577
4704
  if (state.events)
4578
4705
  state.events.exit?.("AssignmentOpSymbol", state, result);
4579
4706
  return result;
4580
4707
  } else {
4581
- const result = AssignmentOpSymbol$0(state) || AssignmentOpSymbol$1(state) || AssignmentOpSymbol$2(state) || AssignmentOpSymbol$3(state) || AssignmentOpSymbol$4(state) || AssignmentOpSymbol$5(state) || AssignmentOpSymbol$6(state) || AssignmentOpSymbol$7(state) || AssignmentOpSymbol$8(state) || AssignmentOpSymbol$9(state) || AssignmentOpSymbol$10(state) || AssignmentOpSymbol$11(state) || AssignmentOpSymbol$12(state) || AssignmentOpSymbol$13(state) || AssignmentOpSymbol$14(state) || AssignmentOpSymbol$15(state) || AssignmentOpSymbol$16(state);
4708
+ const result = AssignmentOpSymbol$0(state) || AssignmentOpSymbol$1(state) || AssignmentOpSymbol$2(state) || AssignmentOpSymbol$3(state) || AssignmentOpSymbol$4(state) || AssignmentOpSymbol$5(state) || AssignmentOpSymbol$6(state) || AssignmentOpSymbol$7(state) || AssignmentOpSymbol$8(state) || AssignmentOpSymbol$9(state) || AssignmentOpSymbol$10(state) || AssignmentOpSymbol$11(state) || AssignmentOpSymbol$12(state) || AssignmentOpSymbol$13(state) || AssignmentOpSymbol$14(state) || AssignmentOpSymbol$15(state) || AssignmentOpSymbol$16(state) || AssignmentOpSymbol$17(state);
4582
4709
  if (state.events)
4583
4710
  state.events.exit?.("AssignmentOpSymbol", state, result);
4584
4711
  return result;
4585
4712
  }
4586
4713
  }
4714
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L44, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
4715
+ return "&&=";
4716
+ });
4717
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L45, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
4718
+ return "||=";
4719
+ });
4720
+ function CoffeeWordAssignmentOp(state) {
4721
+ if (state.events) {
4722
+ const result = state.events.enter?.("CoffeeWordAssignmentOp", state);
4723
+ if (result)
4724
+ return result.cache;
4725
+ }
4726
+ if (state.tokenize) {
4727
+ const result = $TOKEN("CoffeeWordAssignmentOp", state, CoffeeWordAssignmentOp$0(state) || CoffeeWordAssignmentOp$1(state));
4728
+ if (state.events)
4729
+ state.events.exit?.("CoffeeWordAssignmentOp", state, result);
4730
+ return result;
4731
+ } else {
4732
+ const result = CoffeeWordAssignmentOp$0(state) || CoffeeWordAssignmentOp$1(state);
4733
+ if (state.events)
4734
+ state.events.exit?.("CoffeeWordAssignmentOp", state, result);
4735
+ return result;
4736
+ }
4737
+ }
4587
4738
  var BinaryOp$0 = $TS($S(BinaryOpSymbol), function($skip, $loc, $0, $1) {
4588
4739
  if (typeof $1 === "string")
4589
4740
  return { $loc, token: $1 };
@@ -4607,75 +4758,75 @@ ${input.slice(result.pos)}
4607
4758
  return result;
4608
4759
  }
4609
4760
  }
4610
- var BinaryOpSymbol$0 = $EXPECT($L44, fail, 'BinaryOpSymbol "**"');
4611
- var BinaryOpSymbol$1 = $EXPECT($L45, fail, 'BinaryOpSymbol "*"');
4612
- var BinaryOpSymbol$2 = $EXPECT($L46, fail, 'BinaryOpSymbol "/"');
4613
- var BinaryOpSymbol$3 = $EXPECT($L47, fail, 'BinaryOpSymbol "%"');
4614
- var BinaryOpSymbol$4 = $EXPECT($L48, fail, 'BinaryOpSymbol "+"');
4615
- var BinaryOpSymbol$5 = $EXPECT($L49, fail, 'BinaryOpSymbol "-"');
4616
- var BinaryOpSymbol$6 = $EXPECT($L50, fail, 'BinaryOpSymbol "<="');
4617
- var BinaryOpSymbol$7 = $EXPECT($L51, fail, 'BinaryOpSymbol ">="');
4618
- var BinaryOpSymbol$8 = $EXPECT($L52, fail, 'BinaryOpSymbol "<<"');
4619
- var BinaryOpSymbol$9 = $EXPECT($L6, fail, 'BinaryOpSymbol "<"');
4620
- var BinaryOpSymbol$10 = $EXPECT($L53, fail, 'BinaryOpSymbol ">>>"');
4621
- var BinaryOpSymbol$11 = $EXPECT($L54, fail, 'BinaryOpSymbol ">>"');
4622
- var BinaryOpSymbol$12 = $EXPECT($L55, fail, 'BinaryOpSymbol ">"');
4623
- var BinaryOpSymbol$13 = $EXPECT($L56, fail, 'BinaryOpSymbol "!=="');
4624
- var BinaryOpSymbol$14 = $TV($EXPECT($L57, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
4761
+ var BinaryOpSymbol$0 = $EXPECT($L46, fail, 'BinaryOpSymbol "**"');
4762
+ var BinaryOpSymbol$1 = $EXPECT($L47, fail, 'BinaryOpSymbol "*"');
4763
+ var BinaryOpSymbol$2 = $EXPECT($L48, fail, 'BinaryOpSymbol "/"');
4764
+ var BinaryOpSymbol$3 = $EXPECT($L49, fail, 'BinaryOpSymbol "%"');
4765
+ var BinaryOpSymbol$4 = $EXPECT($L50, fail, 'BinaryOpSymbol "+"');
4766
+ var BinaryOpSymbol$5 = $EXPECT($L51, fail, 'BinaryOpSymbol "-"');
4767
+ var BinaryOpSymbol$6 = $EXPECT($L52, fail, 'BinaryOpSymbol "<="');
4768
+ var BinaryOpSymbol$7 = $EXPECT($L53, fail, 'BinaryOpSymbol ">="');
4769
+ var BinaryOpSymbol$8 = $EXPECT($L54, fail, 'BinaryOpSymbol "<<"');
4770
+ var BinaryOpSymbol$9 = $EXPECT($L4, fail, 'BinaryOpSymbol "<"');
4771
+ var BinaryOpSymbol$10 = $EXPECT($L55, fail, 'BinaryOpSymbol ">>>"');
4772
+ var BinaryOpSymbol$11 = $EXPECT($L56, fail, 'BinaryOpSymbol ">>"');
4773
+ var BinaryOpSymbol$12 = $EXPECT($L57, fail, 'BinaryOpSymbol ">"');
4774
+ var BinaryOpSymbol$13 = $EXPECT($L58, fail, 'BinaryOpSymbol "!=="');
4775
+ var BinaryOpSymbol$14 = $TV($EXPECT($L59, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
4625
4776
  if (module.config.coffeeEq)
4626
4777
  return "!==";
4627
4778
  return $1;
4628
4779
  });
4629
- var BinaryOpSymbol$15 = $TS($S($EXPECT($L58, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4780
+ var BinaryOpSymbol$15 = $TS($S($EXPECT($L60, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4630
4781
  if (module.config.coffeeIsnt)
4631
4782
  return "!==";
4632
4783
  return $skip;
4633
4784
  });
4634
- var BinaryOpSymbol$16 = $T($S($EXPECT($L59, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function(value) {
4785
+ var BinaryOpSymbol$16 = $T($S($EXPECT($L61, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function(value) {
4635
4786
  return "===";
4636
4787
  });
4637
- var BinaryOpSymbol$17 = $EXPECT($L60, fail, 'BinaryOpSymbol "==="');
4638
- var BinaryOpSymbol$18 = $TV($EXPECT($L61, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
4788
+ var BinaryOpSymbol$17 = $EXPECT($L62, fail, 'BinaryOpSymbol "==="');
4789
+ var BinaryOpSymbol$18 = $TV($EXPECT($L63, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
4639
4790
  if (module.config.coffeeEq)
4640
4791
  return "===";
4641
4792
  return $1;
4642
4793
  });
4643
- var BinaryOpSymbol$19 = $T($S($EXPECT($L62, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
4794
+ var BinaryOpSymbol$19 = $T($S($EXPECT($L64, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
4644
4795
  return "&&";
4645
4796
  });
4646
- var BinaryOpSymbol$20 = $EXPECT($L63, fail, 'BinaryOpSymbol "&&"');
4647
- var BinaryOpSymbol$21 = $T($S(CoffeeOfEnabled, $EXPECT($L64, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
4797
+ var BinaryOpSymbol$20 = $EXPECT($L65, fail, 'BinaryOpSymbol "&&"');
4798
+ var BinaryOpSymbol$21 = $T($S(CoffeeOfEnabled, $EXPECT($L66, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
4648
4799
  return "in";
4649
4800
  });
4650
- var BinaryOpSymbol$22 = $T($S($EXPECT($L65, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
4801
+ var BinaryOpSymbol$22 = $T($S($EXPECT($L67, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
4651
4802
  return "||";
4652
4803
  });
4653
- var BinaryOpSymbol$23 = $EXPECT($L66, fail, 'BinaryOpSymbol "||"');
4654
- var BinaryOpSymbol$24 = $EXPECT($L67, fail, 'BinaryOpSymbol "??"');
4655
- var BinaryOpSymbol$25 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L68, fail, 'BinaryOpSymbol "?"')), function(value) {
4804
+ var BinaryOpSymbol$23 = $EXPECT($L68, fail, 'BinaryOpSymbol "||"');
4805
+ var BinaryOpSymbol$24 = $EXPECT($L69, fail, 'BinaryOpSymbol "??"');
4806
+ var BinaryOpSymbol$25 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L70, fail, 'BinaryOpSymbol "?"')), function(value) {
4656
4807
  return "??";
4657
4808
  });
4658
- var BinaryOpSymbol$26 = $TS($S($EXPECT($L69, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4809
+ var BinaryOpSymbol$26 = $TS($S($EXPECT($L71, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4659
4810
  return $1;
4660
4811
  });
4661
- var BinaryOpSymbol$27 = $TS($S(CoffeeOfEnabled, $EXPECT($L70, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
4812
+ var BinaryOpSymbol$27 = $TS($S(CoffeeOfEnabled, $EXPECT($L72, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
4662
4813
  return {
4663
4814
  ref: module.getIndexOfRef(),
4664
4815
  suffix: " >= 0"
4665
4816
  };
4666
4817
  });
4667
- var BinaryOpSymbol$28 = $TS($S(CoffeeOfEnabled, $EXPECT($L71, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L70, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4818
+ var BinaryOpSymbol$28 = $TS($S(CoffeeOfEnabled, $EXPECT($L73, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L72, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4668
4819
  return {
4669
4820
  ref: module.getIndexOfRef(),
4670
4821
  suffix: " < 0"
4671
4822
  };
4672
4823
  });
4673
- var BinaryOpSymbol$29 = $TS($S($EXPECT($L70, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4824
+ var BinaryOpSymbol$29 = $TS($S($EXPECT($L72, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4674
4825
  return $1;
4675
4826
  });
4676
- var BinaryOpSymbol$30 = $EXPECT($L72, fail, 'BinaryOpSymbol "&"');
4677
- var BinaryOpSymbol$31 = $EXPECT($L73, fail, 'BinaryOpSymbol "^"');
4678
- var BinaryOpSymbol$32 = $EXPECT($L74, fail, 'BinaryOpSymbol "|"');
4827
+ var BinaryOpSymbol$30 = $EXPECT($L74, fail, 'BinaryOpSymbol "&"');
4828
+ var BinaryOpSymbol$31 = $EXPECT($L75, fail, 'BinaryOpSymbol "^"');
4829
+ var BinaryOpSymbol$32 = $EXPECT($L76, fail, 'BinaryOpSymbol "|"');
4679
4830
  function BinaryOpSymbol(state) {
4680
4831
  if (state.events) {
4681
4832
  const result = state.events.enter?.("BinaryOpSymbol", state);
@@ -4814,7 +4965,7 @@ ${input.slice(result.pos)}
4814
4965
  return result;
4815
4966
  }
4816
4967
  }
4817
- var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L75, fail, 'EmptyStatement ";"'))), function(value) {
4968
+ var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L77, fail, 'EmptyStatement ";"'))), function(value) {
4818
4969
  return { "type": "EmptyStatement", "children": value[0] };
4819
4970
  });
4820
4971
  function EmptyStatement(state) {
@@ -5612,7 +5763,7 @@ ${input.slice(result.pos)}
5612
5763
  return result;
5613
5764
  }
5614
5765
  }
5615
- var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L76, fail, 'CoffeeForDeclaration "own"'))), ForBinding), function($skip, $loc, $0, $1, $2) {
5766
+ var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L78, fail, 'CoffeeForDeclaration "own"'))), ForBinding), function($skip, $loc, $0, $1, $2) {
5616
5767
  var own = $1;
5617
5768
  var binding = $2;
5618
5769
  if (own) {
@@ -5653,14 +5804,14 @@ ${input.slice(result.pos)}
5653
5804
  children: $0
5654
5805
  };
5655
5806
  });
5656
- var ForStatementParameters$2 = $TS($S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, $C(In, Of), ExpressionWithIndentedApplicationSuppressed, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5807
+ var ForStatementParameters$2 = $TS($S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, $C(In, Of), ExtendedExpression, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5657
5808
  var declaration = $4;
5658
5809
  return {
5659
5810
  declaration,
5660
5811
  children: $0
5661
5812
  };
5662
5813
  });
5663
- var ForStatementParameters$3 = $TS($S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, $C(In, Of), ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
5814
+ var ForStatementParameters$3 = $TS($S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, $C(In, Of), ExtendedExpression, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
5664
5815
  var declaration = $3;
5665
5816
  return {
5666
5817
  declaration,
@@ -6005,7 +6156,7 @@ ${input.slice(result.pos)}
6005
6156
  return result;
6006
6157
  }
6007
6158
  }
6008
- var CaseExpressionList$0 = $TS($S($S($Q(_), ExpressionWithIndentedApplicationSuppressed, ImpliedColon), $Q($S(__, Comma, ExpressionWithIndentedApplicationSuppressed, ImpliedColon))), function($skip, $loc, $0, $1, $2) {
6159
+ var CaseExpressionList$0 = $TS($S($S($Q(_), ExtendedExpression, ImpliedColon), $Q($S(__, Comma, ExtendedExpression, ImpliedColon))), function($skip, $loc, $0, $1, $2) {
6009
6160
  const result = $2.map(([ws, _comma, exp, col]) => {
6010
6161
  exp = module.insertTrimmingSpace(exp, "");
6011
6162
  if (ws.length)
@@ -6033,7 +6184,7 @@ ${input.slice(result.pos)}
6033
6184
  return result;
6034
6185
  }
6035
6186
  }
6036
- var NoExpressions$0 = $T($EXPECT($L1, fail, 'NoExpressions ""'), function(value) {
6187
+ var NoExpressions$0 = $T($EXPECT($L14, fail, 'NoExpressions ""'), function(value) {
6037
6188
  return [];
6038
6189
  });
6039
6190
  function NoExpressions(state) {
@@ -6055,7 +6206,7 @@ ${input.slice(result.pos)}
6055
6206
  }
6056
6207
  }
6057
6208
  var ImpliedColon$0 = $S(__, Colon);
6058
- var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
6209
+ var ImpliedColon$1 = $TV($EXPECT($L14, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
6059
6210
  return { $loc, token: ":" };
6060
6211
  });
6061
6212
  function ImpliedColon(state) {
@@ -6149,7 +6300,7 @@ ${input.slice(result.pos)}
6149
6300
  return result;
6150
6301
  }
6151
6302
  }
6152
- var Finally$0 = $S(__, $EXPECT($L77, fail, 'Finally "finally"'), BracedBlock);
6303
+ var Finally$0 = $S(__, $EXPECT($L79, fail, 'Finally "finally"'), BracedBlock);
6153
6304
  function Finally(state) {
6154
6305
  if (state.events) {
6155
6306
  const result = state.events.enter?.("Finally", state);
@@ -6191,7 +6342,7 @@ ${input.slice(result.pos)}
6191
6342
  var Condition$0 = $T($S(ParenthesizedExpression, $N($S($Q(TrailingComment), $C(BinaryOp, AssignmentOp)))), function(value) {
6192
6343
  return value[0];
6193
6344
  });
6194
- var Condition$1 = $TS($S(InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
6345
+ var Condition$1 = $TS($S(InsertOpenParen, ExtendedExpression, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
6195
6346
  var open = $1;
6196
6347
  var exp = $2;
6197
6348
  var close = $3;
@@ -6220,52 +6371,6 @@ ${input.slice(result.pos)}
6220
6371
  return result;
6221
6372
  }
6222
6373
  }
6223
- var ExpressionWithIndentedApplicationSuppressed$0 = $TS($S(SuppressIndentedApplication, $E(ExtendedExpression)), function($skip, $loc, $0, $1, $2) {
6224
- var exp = $2;
6225
- module.suppressIndentedApplication = false;
6226
- if (exp)
6227
- return exp;
6228
- return $skip;
6229
- });
6230
- function ExpressionWithIndentedApplicationSuppressed(state) {
6231
- if (state.events) {
6232
- const result = state.events.enter?.("ExpressionWithIndentedApplicationSuppressed", state);
6233
- if (result)
6234
- return result.cache;
6235
- }
6236
- if (state.tokenize) {
6237
- const result = $TOKEN("ExpressionWithIndentedApplicationSuppressed", state, ExpressionWithIndentedApplicationSuppressed$0(state));
6238
- if (state.events)
6239
- state.events.exit?.("ExpressionWithIndentedApplicationSuppressed", state, result);
6240
- return result;
6241
- } else {
6242
- const result = ExpressionWithIndentedApplicationSuppressed$0(state);
6243
- if (state.events)
6244
- state.events.exit?.("ExpressionWithIndentedApplicationSuppressed", state, result);
6245
- return result;
6246
- }
6247
- }
6248
- var SuppressIndentedApplication$0 = $TV($EXPECT($L1, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
6249
- module.suppressIndentedApplication = true;
6250
- });
6251
- function SuppressIndentedApplication(state) {
6252
- if (state.events) {
6253
- const result = state.events.enter?.("SuppressIndentedApplication", state);
6254
- if (result)
6255
- return result.cache;
6256
- }
6257
- if (state.tokenize) {
6258
- const result = $TOKEN("SuppressIndentedApplication", state, SuppressIndentedApplication$0(state));
6259
- if (state.events)
6260
- state.events.exit?.("SuppressIndentedApplication", state, result);
6261
- return result;
6262
- } else {
6263
- const result = SuppressIndentedApplication$0(state);
6264
- if (state.events)
6265
- state.events.exit?.("SuppressIndentedApplication", state, result);
6266
- return result;
6267
- }
6268
- }
6269
6374
  var ExpressionStatement$0 = Expression;
6270
6375
  function ExpressionStatement(state) {
6271
6376
  if (state.events) {
@@ -6285,13 +6390,13 @@ ${input.slice(result.pos)}
6285
6390
  return result;
6286
6391
  }
6287
6392
  }
6288
- var KeywordStatement$0 = $T($S($EXPECT($L78, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
6393
+ var KeywordStatement$0 = $T($S($EXPECT($L80, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
6289
6394
  return { "type": "BreakStatement", "children": value };
6290
6395
  });
6291
- var KeywordStatement$1 = $T($S($EXPECT($L79, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
6396
+ var KeywordStatement$1 = $T($S($EXPECT($L81, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
6292
6397
  return { "type": "ContinueStatement", "children": value };
6293
6398
  });
6294
- var KeywordStatement$2 = $T($S($EXPECT($L80, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
6399
+ var KeywordStatement$2 = $T($S($EXPECT($L82, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
6295
6400
  return { "type": "DebuggerStatement", "children": value };
6296
6401
  });
6297
6402
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
@@ -6318,7 +6423,7 @@ ${input.slice(result.pos)}
6318
6423
  return result;
6319
6424
  }
6320
6425
  }
6321
- var DebuggerExpression$0 = $TS($S($EXPECT($L80, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6426
+ var DebuggerExpression$0 = $TS($S($EXPECT($L82, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6322
6427
  return {
6323
6428
  type: "DebuggerExpression",
6324
6429
  children: ["(()=>{", $1, "})()"]
@@ -6390,7 +6495,7 @@ ${input.slice(result.pos)}
6390
6495
  return result;
6391
6496
  }
6392
6497
  }
6393
- var ImportDeclaration$0 = $T($S($EXPECT($L81, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
6498
+ var ImportDeclaration$0 = $T($S($EXPECT($L83, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
6394
6499
  return { "ts": true, "children": value };
6395
6500
  });
6396
6501
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -6424,7 +6529,7 @@ ${input.slice(result.pos)}
6424
6529
  return result;
6425
6530
  }
6426
6531
  }
6427
- var ImpliedImport$0 = $TV($EXPECT($L1, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
6532
+ var ImpliedImport$0 = $TV($EXPECT($L14, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
6428
6533
  return { $loc, token: "import " };
6429
6534
  });
6430
6535
  function ImpliedImport(state) {
@@ -6690,7 +6795,7 @@ ${input.slice(result.pos)}
6690
6795
  return result;
6691
6796
  }
6692
6797
  }
6693
- var ExportDeclaration$0 = $S(Export, __, $EXPECT($L82, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, ExtendedExpression));
6798
+ var ExportDeclaration$0 = $S(Export, __, $EXPECT($L84, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, ExtendedExpression));
6694
6799
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
6695
6800
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
6696
6801
  function ExportDeclaration(state) {
@@ -6875,7 +6980,7 @@ ${input.slice(result.pos)}
6875
6980
  return result;
6876
6981
  }
6877
6982
  }
6878
- var ConstAssignment$0 = $TV($EXPECT($L83, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
6983
+ var ConstAssignment$0 = $TV($EXPECT($L85, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
6879
6984
  return { $loc, token: "=" };
6880
6985
  });
6881
6986
  function ConstAssignment(state) {
@@ -7433,7 +7538,8 @@ ${input.slice(result.pos)}
7433
7538
  return result;
7434
7539
  }
7435
7540
  }
7436
- var RegularExpressionLiteral$0 = $TV($TEXT($S($EXPECT($L46, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L46, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
7541
+ var RegularExpressionLiteral$0 = HeregexLiteral;
7542
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L48, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L48, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
7437
7543
  return { $loc, token: $1 };
7438
7544
  });
7439
7545
  function RegularExpressionLiteral(state) {
@@ -7443,18 +7549,199 @@ ${input.slice(result.pos)}
7443
7549
  return result.cache;
7444
7550
  }
7445
7551
  if (state.tokenize) {
7446
- const result = $TOKEN("RegularExpressionLiteral", state, RegularExpressionLiteral$0(state));
7552
+ const result = $TOKEN("RegularExpressionLiteral", state, RegularExpressionLiteral$0(state) || RegularExpressionLiteral$1(state));
7447
7553
  if (state.events)
7448
7554
  state.events.exit?.("RegularExpressionLiteral", state, result);
7449
7555
  return result;
7450
7556
  } else {
7451
- const result = RegularExpressionLiteral$0(state);
7557
+ const result = RegularExpressionLiteral$0(state) || RegularExpressionLiteral$1(state);
7452
7558
  if (state.events)
7453
7559
  state.events.exit?.("RegularExpressionLiteral", state, result);
7454
7560
  return result;
7455
7561
  }
7456
7562
  }
7457
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R20, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
7563
+ var RegularExpressionClass$0 = $TV($TEXT($S(OpenBracket, RegularExpressionClassCharacters, CloseBracket)), function($skip, $loc, $0, $1) {
7564
+ return { $loc, token: $1 };
7565
+ });
7566
+ function RegularExpressionClass(state) {
7567
+ if (state.events) {
7568
+ const result = state.events.enter?.("RegularExpressionClass", state);
7569
+ if (result)
7570
+ return result.cache;
7571
+ }
7572
+ if (state.tokenize) {
7573
+ const result = $TOKEN("RegularExpressionClass", state, RegularExpressionClass$0(state));
7574
+ if (state.events)
7575
+ state.events.exit?.("RegularExpressionClass", state, result);
7576
+ return result;
7577
+ } else {
7578
+ const result = RegularExpressionClass$0(state);
7579
+ if (state.events)
7580
+ state.events.exit?.("RegularExpressionClass", state, result);
7581
+ return result;
7582
+ }
7583
+ }
7584
+ var RegularExpressionClassCharacters$0 = $TR($EXPECT($R20, fail, "RegularExpressionClassCharacters /(?:\\\\.|[^\\]])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7585
+ return { $loc, token: $0 };
7586
+ });
7587
+ function RegularExpressionClassCharacters(state) {
7588
+ if (state.events) {
7589
+ const result = state.events.enter?.("RegularExpressionClassCharacters", state);
7590
+ if (result)
7591
+ return result.cache;
7592
+ }
7593
+ if (state.tokenize) {
7594
+ const result = $TOKEN("RegularExpressionClassCharacters", state, RegularExpressionClassCharacters$0(state));
7595
+ if (state.events)
7596
+ state.events.exit?.("RegularExpressionClassCharacters", state, result);
7597
+ return result;
7598
+ } else {
7599
+ const result = RegularExpressionClassCharacters$0(state);
7600
+ if (state.events)
7601
+ state.events.exit?.("RegularExpressionClassCharacters", state, result);
7602
+ return result;
7603
+ }
7604
+ }
7605
+ var HeregexLiteral$0 = $TS($S(TripleSlash, HeregexBody, TripleSlash, RegularExpressionFlags), function($skip, $loc, $0, $1, $2, $3, $4) {
7606
+ var open = $1;
7607
+ var body = $2;
7608
+ var close = $3;
7609
+ var flags = $4;
7610
+ let hasSubstitutions = body.some((part) => part.type === "Substitution");
7611
+ if (hasSubstitutions) {
7612
+ const result = [
7613
+ { ...open, token: "RegExp(`" },
7614
+ body.map(
7615
+ (e) => e.type === "Substitution" ? e : {
7616
+ ...e,
7617
+ token: e.token.replace(/`|\\|\$/g, "\\$&")
7618
+ }
7619
+ ),
7620
+ "`"
7621
+ ];
7622
+ if (flags.length) {
7623
+ result.push(
7624
+ ", ",
7625
+ JSON.stringify(flags)
7626
+ );
7627
+ }
7628
+ result.push({ ...close, token: ")" });
7629
+ return result;
7630
+ }
7631
+ return $0;
7632
+ });
7633
+ function HeregexLiteral(state) {
7634
+ if (state.events) {
7635
+ const result = state.events.enter?.("HeregexLiteral", state);
7636
+ if (result)
7637
+ return result.cache;
7638
+ }
7639
+ if (state.tokenize) {
7640
+ const result = $TOKEN("HeregexLiteral", state, HeregexLiteral$0(state));
7641
+ if (state.events)
7642
+ state.events.exit?.("HeregexLiteral", state, result);
7643
+ return result;
7644
+ } else {
7645
+ const result = HeregexLiteral$0(state);
7646
+ if (state.events)
7647
+ state.events.exit?.("HeregexLiteral", state, result);
7648
+ return result;
7649
+ }
7650
+ }
7651
+ var HeregexBody$0 = $T($S($N(TripleSlash), $Q(HeregexPart)), function(value) {
7652
+ return value[1];
7653
+ });
7654
+ function HeregexBody(state) {
7655
+ if (state.events) {
7656
+ const result = state.events.enter?.("HeregexBody", state);
7657
+ if (result)
7658
+ return result.cache;
7659
+ }
7660
+ if (state.tokenize) {
7661
+ const result = $TOKEN("HeregexBody", state, HeregexBody$0(state));
7662
+ if (state.events)
7663
+ state.events.exit?.("HeregexBody", state, result);
7664
+ return result;
7665
+ } else {
7666
+ const result = HeregexBody$0(state);
7667
+ if (state.events)
7668
+ state.events.exit?.("HeregexBody", state, result);
7669
+ return result;
7670
+ }
7671
+ }
7672
+ var HeregexPart$0 = RegularExpressionClass;
7673
+ var HeregexPart$1 = $T($S(CoffeeStringSubstitution), function(value) {
7674
+ return { "type": "Substitution", "children": value[0] };
7675
+ });
7676
+ var HeregexPart$2 = $T($S(TemplateSubstitution), function(value) {
7677
+ return { "type": "Substitution", "children": value[0] };
7678
+ });
7679
+ var HeregexPart$3 = $TR($EXPECT($R21, fail, "HeregexPart /(?:\\\\.)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7680
+ let token = $0;
7681
+ switch ($0[1]) {
7682
+ case "\n":
7683
+ token = "\\n";
7684
+ break;
7685
+ case "\r":
7686
+ token = "\\r";
7687
+ break;
7688
+ case " ":
7689
+ token = " ";
7690
+ break;
7691
+ }
7692
+ return { $loc, token };
7693
+ });
7694
+ var HeregexPart$4 = $TS($S(HeregexComment), function($skip, $loc, $0, $1) {
7695
+ return { $loc, token: "" };
7696
+ });
7697
+ var HeregexPart$5 = $TR($EXPECT($R22, fail, "HeregexPart /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7698
+ return { $loc, token: "" };
7699
+ });
7700
+ var HeregexPart$6 = $TR($EXPECT($R23, fail, "HeregexPart /\\/(?!\\/\\/)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7701
+ return { $loc, token: "\\/" };
7702
+ });
7703
+ var HeregexPart$7 = $TR($EXPECT($R24, fail, "HeregexPart /[^\\/\\s#\\\\]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7704
+ return { $loc, token: $0 };
7705
+ });
7706
+ function HeregexPart(state) {
7707
+ if (state.events) {
7708
+ const result = state.events.enter?.("HeregexPart", state);
7709
+ if (result)
7710
+ return result.cache;
7711
+ }
7712
+ if (state.tokenize) {
7713
+ const result = $TOKEN("HeregexPart", state, HeregexPart$0(state) || HeregexPart$1(state) || HeregexPart$2(state) || HeregexPart$3(state) || HeregexPart$4(state) || HeregexPart$5(state) || HeregexPart$6(state) || HeregexPart$7(state));
7714
+ if (state.events)
7715
+ state.events.exit?.("HeregexPart", state, result);
7716
+ return result;
7717
+ } else {
7718
+ const result = HeregexPart$0(state) || HeregexPart$1(state) || HeregexPart$2(state) || HeregexPart$3(state) || HeregexPart$4(state) || HeregexPart$5(state) || HeregexPart$6(state) || HeregexPart$7(state);
7719
+ if (state.events)
7720
+ state.events.exit?.("HeregexPart", state, result);
7721
+ return result;
7722
+ }
7723
+ }
7724
+ var HeregexComment$0 = JSSingleLineComment;
7725
+ var HeregexComment$1 = CoffeeSingleLineComment;
7726
+ function HeregexComment(state) {
7727
+ if (state.events) {
7728
+ const result = state.events.enter?.("HeregexComment", state);
7729
+ if (result)
7730
+ return result.cache;
7731
+ }
7732
+ if (state.tokenize) {
7733
+ const result = $TOKEN("HeregexComment", state, HeregexComment$0(state) || HeregexComment$1(state));
7734
+ if (state.events)
7735
+ state.events.exit?.("HeregexComment", state, result);
7736
+ return result;
7737
+ } else {
7738
+ const result = HeregexComment$0(state) || HeregexComment$1(state);
7739
+ if (state.events)
7740
+ state.events.exit?.("HeregexComment", state, result);
7741
+ return result;
7742
+ }
7743
+ }
7744
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R25, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
7458
7745
  function RegularExpressionBody(state) {
7459
7746
  if (state.events) {
7460
7747
  const result = state.events.enter?.("RegularExpressionBody", state);
@@ -7473,7 +7760,7 @@ ${input.slice(result.pos)}
7473
7760
  return result;
7474
7761
  }
7475
7762
  }
7476
- var RegExpCharacter$0 = $R$0($EXPECT($R21, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
7763
+ var RegExpCharacter$0 = $R$0($EXPECT($R26, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
7477
7764
  function RegExpCharacter(state) {
7478
7765
  if (state.events) {
7479
7766
  const result = state.events.enter?.("RegExpCharacter", state);
@@ -7492,7 +7779,7 @@ ${input.slice(result.pos)}
7492
7779
  return result;
7493
7780
  }
7494
7781
  }
7495
- var RegularExpressionFlags$0 = $R$0($EXPECT($R22, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
7782
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R27, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
7496
7783
  function RegularExpressionFlags(state) {
7497
7784
  if (state.events) {
7498
7785
  const result = state.events.enter?.("RegularExpressionFlags", state);
@@ -7552,7 +7839,7 @@ ${input.slice(result.pos)}
7552
7839
  return result;
7553
7840
  }
7554
7841
  }
7555
- var TemplateCharacters$0 = $TR($EXPECT($R23, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7842
+ var TemplateCharacters$0 = $TR($EXPECT($R28, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7556
7843
  return { $loc, token: $0 };
7557
7844
  });
7558
7845
  function TemplateCharacters(state) {
@@ -7573,7 +7860,7 @@ ${input.slice(result.pos)}
7573
7860
  return result;
7574
7861
  }
7575
7862
  }
7576
- var TemplateBlockCharacters$0 = $TR($EXPECT($R24, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7863
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R29, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7577
7864
  return { $loc, token: $0 };
7578
7865
  });
7579
7866
  function TemplateBlockCharacters(state) {
@@ -7594,10 +7881,10 @@ ${input.slice(result.pos)}
7594
7881
  return result;
7595
7882
  }
7596
7883
  }
7597
- var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R25, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
7598
- var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R26, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
7599
- var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R27, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
7600
- var ReservedWord$3 = $R$0($EXPECT($R28, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
7884
+ var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R30, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
7885
+ var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R31, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
7886
+ var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R32, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
7887
+ var ReservedWord$3 = $R$0($EXPECT($R33, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
7601
7888
  function ReservedWord(state) {
7602
7889
  if (state.events) {
7603
7890
  const result = state.events.enter?.("ReservedWord", state);
@@ -7636,9 +7923,7 @@ ${input.slice(result.pos)}
7636
7923
  return result;
7637
7924
  }
7638
7925
  }
7639
- var SingleLineComment$0 = $TR($EXPECT($R29, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7640
- return { $loc, token: $0 };
7641
- });
7926
+ var SingleLineComment$0 = JSSingleLineComment;
7642
7927
  var SingleLineComment$1 = $S(CoffeeCommentEnabled, CoffeeSingleLineComment);
7643
7928
  function SingleLineComment(state) {
7644
7929
  if (state.events) {
@@ -7658,6 +7943,27 @@ ${input.slice(result.pos)}
7658
7943
  return result;
7659
7944
  }
7660
7945
  }
7946
+ var JSSingleLineComment$0 = $TR($EXPECT($R34, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7947
+ return { $loc, token: $0 };
7948
+ });
7949
+ function JSSingleLineComment(state) {
7950
+ if (state.events) {
7951
+ const result = state.events.enter?.("JSSingleLineComment", state);
7952
+ if (result)
7953
+ return result.cache;
7954
+ }
7955
+ if (state.tokenize) {
7956
+ const result = $TOKEN("JSSingleLineComment", state, JSSingleLineComment$0(state));
7957
+ if (state.events)
7958
+ state.events.exit?.("JSSingleLineComment", state, result);
7959
+ return result;
7960
+ } else {
7961
+ const result = JSSingleLineComment$0(state);
7962
+ if (state.events)
7963
+ state.events.exit?.("JSSingleLineComment", state, result);
7964
+ return result;
7965
+ }
7966
+ }
7661
7967
  var MultiLineComment$0 = JSMultiLineComment;
7662
7968
  var MultiLineComment$1 = CoffeeMultiLineComment;
7663
7969
  function MultiLineComment(state) {
@@ -7678,7 +7984,7 @@ ${input.slice(result.pos)}
7678
7984
  return result;
7679
7985
  }
7680
7986
  }
7681
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L85, fail, 'JSMultiLineComment "*/"')), $EXPECT($R30, fail, "JSMultiLineComment /./"))), $EXPECT($L85, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
7987
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L87, fail, 'JSMultiLineComment "*/"')), $EXPECT($R35, fail, "JSMultiLineComment /./"))), $EXPECT($L87, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
7682
7988
  return { $loc, token: $1 };
7683
7989
  });
7684
7990
  function JSMultiLineComment(state) {
@@ -7699,7 +8005,7 @@ ${input.slice(result.pos)}
7699
8005
  return result;
7700
8006
  }
7701
8007
  }
7702
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R31, fail, "CoffeeSingleLineComment /#(?!##)([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8008
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R36, fail, "CoffeeSingleLineComment /#(?!##)([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7703
8009
  return { $loc, token: `//${$1}` };
7704
8010
  });
7705
8011
  function CoffeeSingleLineComment(state) {
@@ -7720,7 +8026,7 @@ ${input.slice(result.pos)}
7720
8026
  return result;
7721
8027
  }
7722
8028
  }
7723
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L86, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L85, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R30, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L86, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
8029
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L88, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L88, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L87, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R35, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L88, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
7724
8030
  return { $loc, token: `/*${$2}*/` };
7725
8031
  });
7726
8032
  function CoffeeMultiLineComment(state) {
@@ -7741,7 +8047,7 @@ ${input.slice(result.pos)}
7741
8047
  return result;
7742
8048
  }
7743
8049
  }
7744
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L84, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L85, fail, 'InlineComment "*/"')), $EXPECT($R32, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L85, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
8050
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L86, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L87, fail, 'InlineComment "*/"')), $EXPECT($R37, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L87, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
7745
8051
  return { $loc, token: $1 };
7746
8052
  });
7747
8053
  function InlineComment(state) {
@@ -7821,10 +8127,10 @@ ${input.slice(result.pos)}
7821
8127
  return result;
7822
8128
  }
7823
8129
  }
7824
- var NonNewlineWhitespace$0 = $TR($EXPECT($R33, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8130
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R38, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7825
8131
  return { $loc, token: $0 };
7826
8132
  });
7827
- var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L87, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
8133
+ var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L89, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
7828
8134
  return "";
7829
8135
  });
7830
8136
  function NonNewlineWhitespace(state) {
@@ -7864,7 +8170,7 @@ ${input.slice(result.pos)}
7864
8170
  return result;
7865
8171
  }
7866
8172
  }
7867
- var Whitespace$0 = $TR($EXPECT($R34, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
8173
+ var Whitespace$0 = $TR($EXPECT($R22, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7868
8174
  return { $loc, token: $0 };
7869
8175
  });
7870
8176
  function Whitespace(state) {
@@ -7930,7 +8236,7 @@ ${input.slice(result.pos)}
7930
8236
  return result;
7931
8237
  }
7932
8238
  }
7933
- var NonIdContinue$0 = $R$0($EXPECT($R35, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
8239
+ var NonIdContinue$0 = $R$0($EXPECT($R39, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
7934
8240
  function NonIdContinue(state) {
7935
8241
  if (state.events) {
7936
8242
  const result = state.events.enter?.("NonIdContinue", state);
@@ -7949,7 +8255,7 @@ ${input.slice(result.pos)}
7949
8255
  return result;
7950
8256
  }
7951
8257
  }
7952
- var Loc$0 = $TV($EXPECT($L1, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
8258
+ var Loc$0 = $TV($EXPECT($L14, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
7953
8259
  return { $loc, token: "" };
7954
8260
  });
7955
8261
  function Loc(state) {
@@ -7970,7 +8276,7 @@ ${input.slice(result.pos)}
7970
8276
  return result;
7971
8277
  }
7972
8278
  }
7973
- var Ampersand$0 = $TV($EXPECT($L72, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
8279
+ var Ampersand$0 = $TV($EXPECT($L74, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
7974
8280
  return { $loc, token: $1 };
7975
8281
  });
7976
8282
  function Ampersand(state) {
@@ -7991,7 +8297,7 @@ ${input.slice(result.pos)}
7991
8297
  return result;
7992
8298
  }
7993
8299
  }
7994
- var As$0 = $TS($S($EXPECT($L88, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8300
+ var As$0 = $TS($S($EXPECT($L90, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7995
8301
  return { $loc, token: $1 };
7996
8302
  });
7997
8303
  function As(state) {
@@ -8012,7 +8318,7 @@ ${input.slice(result.pos)}
8012
8318
  return result;
8013
8319
  }
8014
8320
  }
8015
- var At$0 = $TV($EXPECT($L89, fail, 'At "@"'), function($skip, $loc, $0, $1) {
8321
+ var At$0 = $TV($EXPECT($L91, fail, 'At "@"'), function($skip, $loc, $0, $1) {
8016
8322
  return { $loc, token: $1 };
8017
8323
  });
8018
8324
  function At(state) {
@@ -8033,7 +8339,7 @@ ${input.slice(result.pos)}
8033
8339
  return result;
8034
8340
  }
8035
8341
  }
8036
- var Async$0 = $TV($EXPECT($L90, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
8342
+ var Async$0 = $TV($EXPECT($L92, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
8037
8343
  return { $loc, token: $1 };
8038
8344
  });
8039
8345
  function Async(state) {
@@ -8054,7 +8360,7 @@ ${input.slice(result.pos)}
8054
8360
  return result;
8055
8361
  }
8056
8362
  }
8057
- var Await$0 = $TS($S($EXPECT($L91, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8363
+ var Await$0 = $TS($S($EXPECT($L93, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8058
8364
  return { $loc, token: $1 };
8059
8365
  });
8060
8366
  function Await(state) {
@@ -8075,7 +8381,7 @@ ${input.slice(result.pos)}
8075
8381
  return result;
8076
8382
  }
8077
8383
  }
8078
- var Backtick$0 = $TV($EXPECT($L92, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
8384
+ var Backtick$0 = $TV($EXPECT($L94, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
8079
8385
  return { $loc, token: $1 };
8080
8386
  });
8081
8387
  function Backtick(state) {
@@ -8096,7 +8402,7 @@ ${input.slice(result.pos)}
8096
8402
  return result;
8097
8403
  }
8098
8404
  }
8099
- var By$0 = $TS($S($EXPECT($L93, fail, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8405
+ var By$0 = $TS($S($EXPECT($L95, fail, 'By "by"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8100
8406
  return { $loc, token: $1 };
8101
8407
  });
8102
8408
  function By(state) {
@@ -8117,7 +8423,7 @@ ${input.slice(result.pos)}
8117
8423
  return result;
8118
8424
  }
8119
8425
  }
8120
- var Case$0 = $TS($S($EXPECT($L94, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8426
+ var Case$0 = $TS($S($EXPECT($L96, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8121
8427
  return { $loc, token: $1 };
8122
8428
  });
8123
8429
  function Case(state) {
@@ -8138,7 +8444,7 @@ ${input.slice(result.pos)}
8138
8444
  return result;
8139
8445
  }
8140
8446
  }
8141
- var Catch$0 = $TV($EXPECT($L95, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
8447
+ var Catch$0 = $TV($EXPECT($L97, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
8142
8448
  return { $loc, token: $1 };
8143
8449
  });
8144
8450
  function Catch(state) {
@@ -8159,7 +8465,7 @@ ${input.slice(result.pos)}
8159
8465
  return result;
8160
8466
  }
8161
8467
  }
8162
- var Class$0 = $TV($EXPECT($L96, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
8468
+ var Class$0 = $TV($EXPECT($L98, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
8163
8469
  return { $loc, token: $1 };
8164
8470
  });
8165
8471
  function Class(state) {
@@ -8222,7 +8528,7 @@ ${input.slice(result.pos)}
8222
8528
  return result;
8223
8529
  }
8224
8530
  }
8225
- var CloseParen$0 = $TV($EXPECT($L16, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
8531
+ var CloseParen$0 = $TV($EXPECT($L15, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
8226
8532
  return { $loc, token: $1 };
8227
8533
  });
8228
8534
  function CloseParen(state) {
@@ -8243,7 +8549,7 @@ ${input.slice(result.pos)}
8243
8549
  return result;
8244
8550
  }
8245
8551
  }
8246
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L97, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
8552
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L99, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
8247
8553
  return { $loc, token: "${" };
8248
8554
  });
8249
8555
  function CoffeeSubstitutionStart(state) {
@@ -8264,7 +8570,7 @@ ${input.slice(result.pos)}
8264
8570
  return result;
8265
8571
  }
8266
8572
  }
8267
- var Colon$0 = $TV($EXPECT($L98, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
8573
+ var Colon$0 = $TV($EXPECT($L100, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
8268
8574
  return { $loc, token: $1 };
8269
8575
  });
8270
8576
  function Colon(state) {
@@ -8285,7 +8591,7 @@ ${input.slice(result.pos)}
8285
8591
  return result;
8286
8592
  }
8287
8593
  }
8288
- var ConstructorShorthand$0 = $TV($EXPECT($L89, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
8594
+ var ConstructorShorthand$0 = $TV($EXPECT($L91, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
8289
8595
  return { $loc, token: "constructor" };
8290
8596
  });
8291
8597
  function ConstructorShorthand(state) {
@@ -8306,7 +8612,7 @@ ${input.slice(result.pos)}
8306
8612
  return result;
8307
8613
  }
8308
8614
  }
8309
- var Default$0 = $TS($S($EXPECT($L82, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8615
+ var Default$0 = $TS($S($EXPECT($L84, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8310
8616
  return { $loc, token: $1 };
8311
8617
  });
8312
8618
  function Default(state) {
@@ -8327,7 +8633,7 @@ ${input.slice(result.pos)}
8327
8633
  return result;
8328
8634
  }
8329
8635
  }
8330
- var Delete$0 = $TS($S($EXPECT($L99, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8636
+ var Delete$0 = $TS($S($EXPECT($L101, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8331
8637
  return { $loc, token: $1 };
8332
8638
  });
8333
8639
  function Delete(state) {
@@ -8348,7 +8654,7 @@ ${input.slice(result.pos)}
8348
8654
  return result;
8349
8655
  }
8350
8656
  }
8351
- var Do$0 = $TS($S($EXPECT($L100, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8657
+ var Do$0 = $TS($S($EXPECT($L102, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8352
8658
  return { $loc, token: $1 };
8353
8659
  });
8354
8660
  function Do(state) {
@@ -8369,7 +8675,7 @@ ${input.slice(result.pos)}
8369
8675
  return result;
8370
8676
  }
8371
8677
  }
8372
- var Dot$0 = $TV($EXPECT($L10, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
8678
+ var Dot$0 = $TV($EXPECT($L8, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
8373
8679
  return { $loc, token: $1 };
8374
8680
  });
8375
8681
  function Dot(state) {
@@ -8390,7 +8696,7 @@ ${input.slice(result.pos)}
8390
8696
  return result;
8391
8697
  }
8392
8698
  }
8393
- var DotDot$0 = $TV($EXPECT($L101, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
8699
+ var DotDot$0 = $TV($EXPECT($L103, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
8394
8700
  return { $loc, token: $1 };
8395
8701
  });
8396
8702
  function DotDot(state) {
@@ -8411,7 +8717,7 @@ ${input.slice(result.pos)}
8411
8717
  return result;
8412
8718
  }
8413
8719
  }
8414
- var DotDotDot$0 = $TV($EXPECT($L102, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
8720
+ var DotDotDot$0 = $TV($EXPECT($L104, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
8415
8721
  return { $loc, token: $1 };
8416
8722
  });
8417
8723
  function DotDotDot(state) {
@@ -8432,7 +8738,7 @@ ${input.slice(result.pos)}
8432
8738
  return result;
8433
8739
  }
8434
8740
  }
8435
- var DoubleColon$0 = $TV($EXPECT($L103, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
8741
+ var DoubleColon$0 = $TV($EXPECT($L105, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
8436
8742
  return { $loc, token: $1 };
8437
8743
  });
8438
8744
  function DoubleColon(state) {
@@ -8453,7 +8759,7 @@ ${input.slice(result.pos)}
8453
8759
  return result;
8454
8760
  }
8455
8761
  }
8456
- var DoubleQuote$0 = $TV($EXPECT($L104, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
8762
+ var DoubleQuote$0 = $TV($EXPECT($L106, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
8457
8763
  return { $loc, token: $1 };
8458
8764
  });
8459
8765
  function DoubleQuote(state) {
@@ -8474,7 +8780,7 @@ ${input.slice(result.pos)}
8474
8780
  return result;
8475
8781
  }
8476
8782
  }
8477
- var Else$0 = $TV($EXPECT($L105, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
8783
+ var Else$0 = $TV($EXPECT($L107, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
8478
8784
  return { $loc, token: $1 };
8479
8785
  });
8480
8786
  function Else(state) {
@@ -8516,7 +8822,7 @@ ${input.slice(result.pos)}
8516
8822
  return result;
8517
8823
  }
8518
8824
  }
8519
- var Export$0 = $TS($S($EXPECT($L106, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8825
+ var Export$0 = $TS($S($EXPECT($L108, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8520
8826
  return { $loc, token: $1 };
8521
8827
  });
8522
8828
  function Export(state) {
@@ -8537,7 +8843,7 @@ ${input.slice(result.pos)}
8537
8843
  return result;
8538
8844
  }
8539
8845
  }
8540
- var For$0 = $TS($S($EXPECT($L107, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8846
+ var For$0 = $TS($S($EXPECT($L109, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8541
8847
  return { $loc, token: $1 };
8542
8848
  });
8543
8849
  function For(state) {
@@ -8558,7 +8864,7 @@ ${input.slice(result.pos)}
8558
8864
  return result;
8559
8865
  }
8560
8866
  }
8561
- var From$0 = $TS($S($EXPECT($L108, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8867
+ var From$0 = $TS($S($EXPECT($L110, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8562
8868
  return { $loc, token: $1 };
8563
8869
  });
8564
8870
  function From(state) {
@@ -8579,7 +8885,7 @@ ${input.slice(result.pos)}
8579
8885
  return result;
8580
8886
  }
8581
8887
  }
8582
- var Function$0 = $TV($EXPECT($L109, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
8888
+ var Function$0 = $TV($EXPECT($L111, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
8583
8889
  return { $loc, token: $1 };
8584
8890
  });
8585
8891
  function Function(state) {
@@ -8600,7 +8906,7 @@ ${input.slice(result.pos)}
8600
8906
  return result;
8601
8907
  }
8602
8908
  }
8603
- var GetOrSet$0 = $TS($S($C($EXPECT($L110, fail, 'GetOrSet "get"'), $EXPECT($L111, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8909
+ var GetOrSet$0 = $TS($S($C($EXPECT($L112, fail, 'GetOrSet "get"'), $EXPECT($L113, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8604
8910
  return { $loc, token: $1 };
8605
8911
  });
8606
8912
  function GetOrSet(state) {
@@ -8621,7 +8927,7 @@ ${input.slice(result.pos)}
8621
8927
  return result;
8622
8928
  }
8623
8929
  }
8624
- var If$0 = $TV($TEXT($S($EXPECT($L112, fail, 'If "if"'), $E($EXPECT($L5, fail, 'If " "')))), function($skip, $loc, $0, $1) {
8930
+ var If$0 = $TV($TEXT($S($EXPECT($L114, fail, 'If "if"'), $E($EXPECT($L3, fail, 'If " "')))), function($skip, $loc, $0, $1) {
8625
8931
  return { $loc, token: $1 };
8626
8932
  });
8627
8933
  function If(state) {
@@ -8642,7 +8948,7 @@ ${input.slice(result.pos)}
8642
8948
  return result;
8643
8949
  }
8644
8950
  }
8645
- var Import$0 = $TS($S($EXPECT($L12, fail, 'Import "import"'), $Y($EXPECT($R36, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
8951
+ var Import$0 = $TS($S($EXPECT($L10, fail, 'Import "import"'), $Y($EXPECT($R40, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
8646
8952
  return { $loc, token: $1 };
8647
8953
  });
8648
8954
  function Import(state) {
@@ -8663,7 +8969,7 @@ ${input.slice(result.pos)}
8663
8969
  return result;
8664
8970
  }
8665
8971
  }
8666
- var In$0 = $TV($EXPECT($L70, fail, 'In "in"'), function($skip, $loc, $0, $1) {
8972
+ var In$0 = $TV($EXPECT($L72, fail, 'In "in"'), function($skip, $loc, $0, $1) {
8667
8973
  return { $loc, token: $1 };
8668
8974
  });
8669
8975
  function In(state) {
@@ -8684,7 +8990,7 @@ ${input.slice(result.pos)}
8684
8990
  return result;
8685
8991
  }
8686
8992
  }
8687
- var LetOrConst$0 = $TV($C($EXPECT($L113, fail, 'LetOrConst "let"'), $EXPECT($L114, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
8993
+ var LetOrConst$0 = $TV($C($EXPECT($L115, fail, 'LetOrConst "let"'), $EXPECT($L116, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
8688
8994
  return { $loc, token: $1 };
8689
8995
  });
8690
8996
  function LetOrConst(state) {
@@ -8705,7 +9011,7 @@ ${input.slice(result.pos)}
8705
9011
  return result;
8706
9012
  }
8707
9013
  }
8708
- var Loop$0 = $TS($S($EXPECT($L115, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9014
+ var Loop$0 = $TS($S($EXPECT($L117, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8709
9015
  return { $loc, token: "while(true)" };
8710
9016
  });
8711
9017
  function Loop(state) {
@@ -8726,7 +9032,7 @@ ${input.slice(result.pos)}
8726
9032
  return result;
8727
9033
  }
8728
9034
  }
8729
- var New$0 = $TV($EXPECT($L116, fail, 'New "new"'), function($skip, $loc, $0, $1) {
9035
+ var New$0 = $TV($EXPECT($L118, fail, 'New "new"'), function($skip, $loc, $0, $1) {
8730
9036
  return { $loc, token: $1 };
8731
9037
  });
8732
9038
  function New(state) {
@@ -8747,7 +9053,7 @@ ${input.slice(result.pos)}
8747
9053
  return result;
8748
9054
  }
8749
9055
  }
8750
- var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L71, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L5, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9056
+ var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L73, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L3, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
8751
9057
  return { $loc, token: "!" };
8752
9058
  });
8753
9059
  function Not(state) {
@@ -8768,7 +9074,7 @@ ${input.slice(result.pos)}
8768
9074
  return result;
8769
9075
  }
8770
9076
  }
8771
- var Of$0 = $TV($EXPECT($L64, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
9077
+ var Of$0 = $TV($EXPECT($L66, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
8772
9078
  return { $loc, token: $1 };
8773
9079
  });
8774
9080
  function Of(state) {
@@ -8789,7 +9095,7 @@ ${input.slice(result.pos)}
8789
9095
  return result;
8790
9096
  }
8791
9097
  }
8792
- var OpenBrace$0 = $TV($EXPECT($L117, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
9098
+ var OpenBrace$0 = $TV($EXPECT($L119, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
8793
9099
  return { $loc, token: $1 };
8794
9100
  });
8795
9101
  function OpenBrace(state) {
@@ -8810,7 +9116,7 @@ ${input.slice(result.pos)}
8810
9116
  return result;
8811
9117
  }
8812
9118
  }
8813
- var OpenBracket$0 = $TV($EXPECT($L118, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
9119
+ var OpenBracket$0 = $TV($EXPECT($L120, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
8814
9120
  return { $loc, token: $1 };
8815
9121
  });
8816
9122
  function OpenBracket(state) {
@@ -8831,7 +9137,7 @@ ${input.slice(result.pos)}
8831
9137
  return result;
8832
9138
  }
8833
9139
  }
8834
- var OpenParen$0 = $TV($EXPECT($L119, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
9140
+ var OpenParen$0 = $TV($EXPECT($L121, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
8835
9141
  return { $loc, token: $1 };
8836
9142
  });
8837
9143
  function OpenParen(state) {
@@ -8852,7 +9158,7 @@ ${input.slice(result.pos)}
8852
9158
  return result;
8853
9159
  }
8854
9160
  }
8855
- var QuestionMark$0 = $TV($EXPECT($L68, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
9161
+ var QuestionMark$0 = $TV($EXPECT($L70, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
8856
9162
  return { $loc, token: $1 };
8857
9163
  });
8858
9164
  function QuestionMark(state) {
@@ -8873,7 +9179,7 @@ ${input.slice(result.pos)}
8873
9179
  return result;
8874
9180
  }
8875
9181
  }
8876
- var Return$0 = $TS($S($EXPECT($L120, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9182
+ var Return$0 = $TS($S($EXPECT($L122, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8877
9183
  return { $loc, token: $1 };
8878
9184
  });
8879
9185
  function Return(state) {
@@ -8894,7 +9200,7 @@ ${input.slice(result.pos)}
8894
9200
  return result;
8895
9201
  }
8896
9202
  }
8897
- var Semicolon$0 = $TV($EXPECT($L75, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
9203
+ var Semicolon$0 = $TV($EXPECT($L77, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
8898
9204
  return { $loc, token: $1 };
8899
9205
  });
8900
9206
  function Semicolon(state) {
@@ -8915,7 +9221,7 @@ ${input.slice(result.pos)}
8915
9221
  return result;
8916
9222
  }
8917
9223
  }
8918
- var SingleQuote$0 = $TV($EXPECT($L121, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
9224
+ var SingleQuote$0 = $TV($EXPECT($L123, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
8919
9225
  return { $loc, token: $1 };
8920
9226
  });
8921
9227
  function SingleQuote(state) {
@@ -8936,7 +9242,7 @@ ${input.slice(result.pos)}
8936
9242
  return result;
8937
9243
  }
8938
9244
  }
8939
- var Star$0 = $TV($EXPECT($L45, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
9245
+ var Star$0 = $TV($EXPECT($L47, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
8940
9246
  return { $loc, token: $1 };
8941
9247
  });
8942
9248
  function Star(state) {
@@ -8957,10 +9263,10 @@ ${input.slice(result.pos)}
8957
9263
  return result;
8958
9264
  }
8959
9265
  }
8960
- var Static$0 = $TV($EXPECT($L122, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
9266
+ var Static$0 = $TV($EXPECT($L124, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
8961
9267
  return { $loc, token: $1 };
8962
9268
  });
8963
- var Static$1 = $TS($S($EXPECT($L89, fail, 'Static "@"'), $N($EXPECT($L119, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
9269
+ var Static$1 = $TS($S($EXPECT($L91, fail, 'Static "@"'), $N($EXPECT($L121, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
8964
9270
  return { $loc, token: "static " };
8965
9271
  });
8966
9272
  function Static(state) {
@@ -8981,7 +9287,7 @@ ${input.slice(result.pos)}
8981
9287
  return result;
8982
9288
  }
8983
9289
  }
8984
- var SubstitutionStart$0 = $TV($EXPECT($L123, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
9290
+ var SubstitutionStart$0 = $TV($EXPECT($L125, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
8985
9291
  return { $loc, token: $1 };
8986
9292
  });
8987
9293
  function SubstitutionStart(state) {
@@ -9002,7 +9308,7 @@ ${input.slice(result.pos)}
9002
9308
  return result;
9003
9309
  }
9004
9310
  }
9005
- var Switch$0 = $TS($S($EXPECT($L124, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9311
+ var Switch$0 = $TS($S($EXPECT($L126, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9006
9312
  return { $loc, token: $1 };
9007
9313
  });
9008
9314
  function Switch(state) {
@@ -9023,7 +9329,7 @@ ${input.slice(result.pos)}
9023
9329
  return result;
9024
9330
  }
9025
9331
  }
9026
- var Target$0 = $TV($EXPECT($L125, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
9332
+ var Target$0 = $TV($EXPECT($L127, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
9027
9333
  return { $loc, token: $1 };
9028
9334
  });
9029
9335
  function Target(state) {
@@ -9044,7 +9350,7 @@ ${input.slice(result.pos)}
9044
9350
  return result;
9045
9351
  }
9046
9352
  }
9047
- var Then$0 = $TS($S(__, $EXPECT($L126, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
9353
+ var Then$0 = $TS($S(__, $EXPECT($L128, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
9048
9354
  return { $loc, token: "" };
9049
9355
  });
9050
9356
  function Then(state) {
@@ -9065,7 +9371,7 @@ ${input.slice(result.pos)}
9065
9371
  return result;
9066
9372
  }
9067
9373
  }
9068
- var Throw$0 = $TS($S($EXPECT($L127, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9374
+ var Throw$0 = $TS($S($EXPECT($L129, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9069
9375
  return { $loc, token: $1 };
9070
9376
  });
9071
9377
  function Throw(state) {
@@ -9086,7 +9392,7 @@ ${input.slice(result.pos)}
9086
9392
  return result;
9087
9393
  }
9088
9394
  }
9089
- var TripleDoubleQuote$0 = $TV($EXPECT($L128, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
9395
+ var TripleDoubleQuote$0 = $TV($EXPECT($L130, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
9090
9396
  return { $loc, token: "`" };
9091
9397
  });
9092
9398
  function TripleDoubleQuote(state) {
@@ -9107,7 +9413,7 @@ ${input.slice(result.pos)}
9107
9413
  return result;
9108
9414
  }
9109
9415
  }
9110
- var TripleSingleQuote$0 = $TV($EXPECT($L129, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
9416
+ var TripleSingleQuote$0 = $TV($EXPECT($L131, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
9111
9417
  return { $loc, token: "`" };
9112
9418
  });
9113
9419
  function TripleSingleQuote(state) {
@@ -9128,7 +9434,28 @@ ${input.slice(result.pos)}
9128
9434
  return result;
9129
9435
  }
9130
9436
  }
9131
- var TripleTick$0 = $TV($EXPECT($L130, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
9437
+ var TripleSlash$0 = $TV($EXPECT($L132, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
9438
+ return { $loc, token: "/" };
9439
+ });
9440
+ function TripleSlash(state) {
9441
+ if (state.events) {
9442
+ const result = state.events.enter?.("TripleSlash", state);
9443
+ if (result)
9444
+ return result.cache;
9445
+ }
9446
+ if (state.tokenize) {
9447
+ const result = $TOKEN("TripleSlash", state, TripleSlash$0(state));
9448
+ if (state.events)
9449
+ state.events.exit?.("TripleSlash", state, result);
9450
+ return result;
9451
+ } else {
9452
+ const result = TripleSlash$0(state);
9453
+ if (state.events)
9454
+ state.events.exit?.("TripleSlash", state, result);
9455
+ return result;
9456
+ }
9457
+ }
9458
+ var TripleTick$0 = $TV($EXPECT($L133, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
9132
9459
  return { $loc, token: "`" };
9133
9460
  });
9134
9461
  function TripleTick(state) {
@@ -9149,7 +9476,7 @@ ${input.slice(result.pos)}
9149
9476
  return result;
9150
9477
  }
9151
9478
  }
9152
- var Try$0 = $TV($EXPECT($L131, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
9479
+ var Try$0 = $TV($EXPECT($L134, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
9153
9480
  return { $loc, token: $1 };
9154
9481
  });
9155
9482
  function Try(state) {
@@ -9170,7 +9497,7 @@ ${input.slice(result.pos)}
9170
9497
  return result;
9171
9498
  }
9172
9499
  }
9173
- var Typeof$0 = $TS($S($EXPECT($L132, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9500
+ var Typeof$0 = $TS($S($EXPECT($L135, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9174
9501
  return { $loc, token: $1 };
9175
9502
  });
9176
9503
  function Typeof(state) {
@@ -9191,7 +9518,7 @@ ${input.slice(result.pos)}
9191
9518
  return result;
9192
9519
  }
9193
9520
  }
9194
- var Unless$0 = $TV($EXPECT($L133, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
9521
+ var Unless$0 = $TV($EXPECT($L136, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
9195
9522
  return { $loc, token: $1 };
9196
9523
  });
9197
9524
  function Unless(state) {
@@ -9212,7 +9539,7 @@ ${input.slice(result.pos)}
9212
9539
  return result;
9213
9540
  }
9214
9541
  }
9215
- var Until$0 = $TS($S($EXPECT($L134, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9542
+ var Until$0 = $TS($S($EXPECT($L137, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9216
9543
  return { $loc, token: $1 };
9217
9544
  });
9218
9545
  function Until(state) {
@@ -9233,7 +9560,7 @@ ${input.slice(result.pos)}
9233
9560
  return result;
9234
9561
  }
9235
9562
  }
9236
- var Var$0 = $TV($EXPECT($L135, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
9563
+ var Var$0 = $TV($EXPECT($L138, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
9237
9564
  return { $loc, token: $1 };
9238
9565
  });
9239
9566
  function Var(state) {
@@ -9254,7 +9581,7 @@ ${input.slice(result.pos)}
9254
9581
  return result;
9255
9582
  }
9256
9583
  }
9257
- var Void$0 = $TS($S($EXPECT($L136, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9584
+ var Void$0 = $TS($S($EXPECT($L139, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9258
9585
  return { $loc, token: $1 };
9259
9586
  });
9260
9587
  function Void(state) {
@@ -9275,7 +9602,7 @@ ${input.slice(result.pos)}
9275
9602
  return result;
9276
9603
  }
9277
9604
  }
9278
- var When$0 = $TS($S($EXPECT($L137, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9605
+ var When$0 = $TS($S($EXPECT($L140, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9279
9606
  return { $loc, token: "case" };
9280
9607
  });
9281
9608
  function When(state) {
@@ -9296,7 +9623,7 @@ ${input.slice(result.pos)}
9296
9623
  return result;
9297
9624
  }
9298
9625
  }
9299
- var While$0 = $TS($S($EXPECT($L138, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9626
+ var While$0 = $TS($S($EXPECT($L141, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9300
9627
  return { $loc, token: $1 };
9301
9628
  });
9302
9629
  function While(state) {
@@ -9317,7 +9644,7 @@ ${input.slice(result.pos)}
9317
9644
  return result;
9318
9645
  }
9319
9646
  }
9320
- var Yield$0 = $TS($S($EXPECT($L139, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9647
+ var Yield$0 = $TS($S($EXPECT($L142, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9321
9648
  return { $loc, token: $1 };
9322
9649
  });
9323
9650
  function Yield(state) {
@@ -9363,7 +9690,7 @@ ${input.slice(result.pos)}
9363
9690
  return result;
9364
9691
  }
9365
9692
  }
9366
- var JSXSelfClosingElement$0 = $S($EXPECT($L6, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L140, fail, 'JSXSelfClosingElement "/>"'));
9693
+ var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L143, fail, 'JSXSelfClosingElement "/>"'));
9367
9694
  function JSXSelfClosingElement(state) {
9368
9695
  if (state.events) {
9369
9696
  const result = state.events.enter?.("JSXSelfClosingElement", state);
@@ -9382,7 +9709,7 @@ ${input.slice(result.pos)}
9382
9709
  return result;
9383
9710
  }
9384
9711
  }
9385
- var JSXOpeningElement$0 = $S($EXPECT($L6, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L55, fail, 'JSXOpeningElement ">"'));
9712
+ var JSXOpeningElement$0 = $S($EXPECT($L4, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L57, fail, 'JSXOpeningElement ">"'));
9386
9713
  function JSXOpeningElement(state) {
9387
9714
  if (state.events) {
9388
9715
  const result = state.events.enter?.("JSXOpeningElement", state);
@@ -9401,7 +9728,7 @@ ${input.slice(result.pos)}
9401
9728
  return result;
9402
9729
  }
9403
9730
  }
9404
- var JSXClosingElement$0 = $S($EXPECT($L141, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
9731
+ var JSXClosingElement$0 = $S($EXPECT($L144, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L57, fail, 'JSXClosingElement ">"'));
9405
9732
  function JSXClosingElement(state) {
9406
9733
  if (state.events) {
9407
9734
  const result = state.events.enter?.("JSXClosingElement", state);
@@ -9420,7 +9747,7 @@ ${input.slice(result.pos)}
9420
9747
  return result;
9421
9748
  }
9422
9749
  }
9423
- var JSXFragment$0 = $S($EXPECT($L142, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L143, fail, 'JSXFragment "</>"'));
9750
+ var JSXFragment$0 = $S($EXPECT($L145, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L146, fail, 'JSXFragment "</>"'));
9424
9751
  function JSXFragment(state) {
9425
9752
  if (state.events) {
9426
9753
  const result = state.events.enter?.("JSXFragment", state);
@@ -9458,7 +9785,7 @@ ${input.slice(result.pos)}
9458
9785
  return result;
9459
9786
  }
9460
9787
  }
9461
- var JSXIdentifierName$0 = $R$0($EXPECT($R37, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
9788
+ var JSXIdentifierName$0 = $R$0($EXPECT($R41, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
9462
9789
  function JSXIdentifierName(state) {
9463
9790
  if (state.events) {
9464
9791
  const result = state.events.enter?.("JSXIdentifierName", state);
@@ -9554,8 +9881,8 @@ ${input.slice(result.pos)}
9554
9881
  return result;
9555
9882
  }
9556
9883
  }
9557
- var JSXAttributeValue$0 = $R$0($EXPECT($R38, fail, 'JSXAttributeValue /"[^"]*"/'));
9558
- var JSXAttributeValue$1 = $R$0($EXPECT($R39, fail, "JSXAttributeValue /'[^']*'/"));
9884
+ var JSXAttributeValue$0 = $R$0($EXPECT($R42, fail, 'JSXAttributeValue /"[^"]*"/'));
9885
+ var JSXAttributeValue$1 = $R$0($EXPECT($R43, fail, "JSXAttributeValue /'[^']*'/"));
9559
9886
  var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
9560
9887
  var JSXAttributeValue$3 = JSXElement;
9561
9888
  var JSXAttributeValue$4 = JSXFragment;
@@ -9618,7 +9945,7 @@ ${input.slice(result.pos)}
9618
9945
  return result;
9619
9946
  }
9620
9947
  }
9621
- var JSXText$0 = $R$0($EXPECT($R40, fail, "JSXText /[^{}<>]+/"));
9948
+ var JSXText$0 = $R$0($EXPECT($R44, fail, "JSXText /[^{}<>]+/"));
9622
9949
  function JSXText(state) {
9623
9950
  if (state.events) {
9624
9951
  const result = state.events.enter?.("JSXText", state);
@@ -9677,7 +10004,7 @@ ${input.slice(result.pos)}
9677
10004
  return result;
9678
10005
  }
9679
10006
  }
9680
- var TypeDeclarationModifier$0 = $S($EXPECT($L144, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
10007
+ var TypeDeclarationModifier$0 = $S($EXPECT($L147, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
9681
10008
  var TypeDeclarationModifier$1 = Export;
9682
10009
  function TypeDeclarationModifier(state) {
9683
10010
  if (state.events) {
@@ -9719,7 +10046,7 @@ ${input.slice(result.pos)}
9719
10046
  return result;
9720
10047
  }
9721
10048
  }
9722
- var TypeKeyword$0 = $S($EXPECT($L145, fail, 'TypeKeyword "type"'), NonIdContinue);
10049
+ var TypeKeyword$0 = $S($EXPECT($L148, fail, 'TypeKeyword "type"'), NonIdContinue);
9723
10050
  function TypeKeyword(state) {
9724
10051
  if (state.events) {
9725
10052
  const result = state.events.enter?.("TypeKeyword", state);
@@ -9738,7 +10065,7 @@ ${input.slice(result.pos)}
9738
10065
  return result;
9739
10066
  }
9740
10067
  }
9741
- var Interface$0 = $S($EXPECT($L146, fail, 'Interface "interface"'), NonIdContinue);
10068
+ var Interface$0 = $S($EXPECT($L149, fail, 'Interface "interface"'), NonIdContinue);
9742
10069
  function Interface(state) {
9743
10070
  if (state.events) {
9744
10071
  const result = state.events.enter?.("Interface", state);
@@ -9757,7 +10084,7 @@ ${input.slice(result.pos)}
9757
10084
  return result;
9758
10085
  }
9759
10086
  }
9760
- var Namespace$0 = $S($EXPECT($L147, fail, 'Namespace "namespace"'), NonIdContinue);
10087
+ var Namespace$0 = $S($EXPECT($L150, fail, 'Namespace "namespace"'), NonIdContinue);
9761
10088
  function Namespace(state) {
9762
10089
  if (state.events) {
9763
10090
  const result = state.events.enter?.("Namespace", state);
@@ -9946,7 +10273,7 @@ ${input.slice(result.pos)}
9946
10273
  return result;
9947
10274
  }
9948
10275
  }
9949
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R41, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L148, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R42, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
10276
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R45, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L151, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R46, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
9950
10277
  function TypeIndexSignature(state) {
9951
10278
  if (state.events) {
9952
10279
  const result = state.events.enter?.("TypeIndexSignature", state);
@@ -10006,7 +10333,7 @@ ${input.slice(result.pos)}
10006
10333
  return result;
10007
10334
  }
10008
10335
  }
10009
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L149, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
10336
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L152, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
10010
10337
  const children = [...$1, $2];
10011
10338
  if ($3)
10012
10339
  children.push($3);
@@ -10035,7 +10362,7 @@ ${input.slice(result.pos)}
10035
10362
  return result;
10036
10363
  }
10037
10364
  }
10038
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L59, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
10365
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L61, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
10039
10366
  if (!$2)
10040
10367
  return $1;
10041
10368
  return $0;
@@ -10141,9 +10468,9 @@ ${input.slice(result.pos)}
10141
10468
  return result;
10142
10469
  }
10143
10470
  }
10144
- var TypeUnaryOp$0 = $EXPECT($L150, fail, 'TypeUnaryOp "keyof"');
10145
- var TypeUnaryOp$1 = $EXPECT($L132, fail, 'TypeUnaryOp "typeof"');
10146
- var TypeUnaryOp$2 = $EXPECT($L151, fail, 'TypeUnaryOp "infer"');
10471
+ var TypeUnaryOp$0 = $EXPECT($L153, fail, 'TypeUnaryOp "keyof"');
10472
+ var TypeUnaryOp$1 = $EXPECT($L135, fail, 'TypeUnaryOp "typeof"');
10473
+ var TypeUnaryOp$2 = $EXPECT($L154, fail, 'TypeUnaryOp "infer"');
10147
10474
  function TypeUnaryOp(state) {
10148
10475
  if (state.events) {
10149
10476
  const result = state.events.enter?.("TypeUnaryOp", state);
@@ -10287,7 +10614,7 @@ ${input.slice(result.pos)}
10287
10614
  return result;
10288
10615
  }
10289
10616
  }
10290
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L7, fail, 'TypeConditional "extends"'), Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
10617
+ var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L5, fail, 'TypeConditional "extends"'), Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
10291
10618
  if ($2)
10292
10619
  return $0;
10293
10620
  return $1;
@@ -10311,10 +10638,10 @@ ${input.slice(result.pos)}
10311
10638
  }
10312
10639
  }
10313
10640
  var TypeLiteral$0 = Literal;
10314
- var TypeLiteral$1 = $TV($EXPECT($L136, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
10641
+ var TypeLiteral$1 = $TV($EXPECT($L139, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
10315
10642
  return { $loc, token: "void" };
10316
10643
  });
10317
- var TypeLiteral$2 = $TV($EXPECT($L152, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
10644
+ var TypeLiteral$2 = $TV($EXPECT($L155, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
10318
10645
  return { $loc, token: "[]" };
10319
10646
  });
10320
10647
  function TypeLiteral(state) {
@@ -10335,10 +10662,10 @@ ${input.slice(result.pos)}
10335
10662
  return result;
10336
10663
  }
10337
10664
  }
10338
- var TypeBinaryOp$0 = $TV($EXPECT($L74, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
10665
+ var TypeBinaryOp$0 = $TV($EXPECT($L76, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
10339
10666
  return { $loc, token: "|" };
10340
10667
  });
10341
- var TypeBinaryOp$1 = $TV($EXPECT($L72, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
10668
+ var TypeBinaryOp$1 = $TV($EXPECT($L74, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
10342
10669
  return { $loc, token: "&" };
10343
10670
  });
10344
10671
  function TypeBinaryOp(state) {
@@ -10359,7 +10686,7 @@ ${input.slice(result.pos)}
10359
10686
  return result;
10360
10687
  }
10361
10688
  }
10362
- var FunctionType$0 = $S(Parameters, __, $EXPECT($L4, fail, 'FunctionType "=>"'), Type);
10689
+ var FunctionType$0 = $S(Parameters, __, $EXPECT($L2, fail, 'FunctionType "=>"'), Type);
10363
10690
  function FunctionType(state) {
10364
10691
  if (state.events) {
10365
10692
  const result = state.events.enter?.("FunctionType", state);
@@ -10378,7 +10705,7 @@ ${input.slice(result.pos)}
10378
10705
  return result;
10379
10706
  }
10380
10707
  }
10381
- var TypeArguments$0 = $S(__, $EXPECT($L6, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L55, fail, 'TypeArguments ">"'));
10708
+ var TypeArguments$0 = $S(__, $EXPECT($L4, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L57, fail, 'TypeArguments ">"'));
10382
10709
  function TypeArguments(state) {
10383
10710
  if (state.events) {
10384
10711
  const result = state.events.enter?.("TypeArguments", state);
@@ -10397,7 +10724,7 @@ ${input.slice(result.pos)}
10397
10724
  return result;
10398
10725
  }
10399
10726
  }
10400
- var TypeParameters$0 = $TS($S(__, $EXPECT($L6, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L55, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
10727
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L4, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L57, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
10401
10728
  return { ts: true, children: $0 };
10402
10729
  });
10403
10730
  function TypeParameters(state) {
@@ -10437,7 +10764,7 @@ ${input.slice(result.pos)}
10437
10764
  return result;
10438
10765
  }
10439
10766
  }
10440
- var TypeConstraint$0 = $S(__, $EXPECT($L7, fail, 'TypeConstraint "extends"'), Type);
10767
+ var TypeConstraint$0 = $S(__, $EXPECT($L5, fail, 'TypeConstraint "extends"'), Type);
10441
10768
  function TypeConstraint(state) {
10442
10769
  if (state.events) {
10443
10770
  const result = state.events.enter?.("TypeConstraint", state);
@@ -10457,8 +10784,8 @@ ${input.slice(result.pos)}
10457
10784
  }
10458
10785
  }
10459
10786
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
10460
- var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L55, fail, 'TypeParameterDelimiter ">"')));
10461
- var TypeParameterDelimiter$2 = $TV($Y($S(__, $EXPECT($L55, fail, 'TypeParameterDelimiter ">"'))), function($skip, $loc, $0, $1) {
10787
+ var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L57, fail, 'TypeParameterDelimiter ">"')));
10788
+ var TypeParameterDelimiter$2 = $TV($Y($S(__, $EXPECT($L57, fail, 'TypeParameterDelimiter ">"'))), function($skip, $loc, $0, $1) {
10462
10789
  return { $loc, token: "," };
10463
10790
  });
10464
10791
  var TypeParameterDelimiter$3 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
@@ -10482,7 +10809,7 @@ ${input.slice(result.pos)}
10482
10809
  return result;
10483
10810
  }
10484
10811
  }
10485
- var Shebang$0 = $S($R$0($EXPECT($R43, fail, "Shebang /#![^\\r\\n]*/")), EOL);
10812
+ var Shebang$0 = $S($R$0($EXPECT($R47, fail, "Shebang /#![^\\r\\n]*/")), EOL);
10486
10813
  function Shebang(state) {
10487
10814
  if (state.events) {
10488
10815
  const result = state.events.enter?.("Shebang", state);
@@ -10501,11 +10828,11 @@ ${input.slice(result.pos)}
10501
10828
  return result;
10502
10829
  }
10503
10830
  }
10504
- var CivetPrologue$0 = $T($S($EXPECT($R44, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
10831
+ var CivetPrologue$0 = $T($S($EXPECT($R48, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
10505
10832
  var content = value[2];
10506
10833
  return content;
10507
10834
  });
10508
- var CivetPrologue$1 = $T($S($EXPECT($R44, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
10835
+ var CivetPrologue$1 = $T($S($EXPECT($R48, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
10509
10836
  var content = value[2];
10510
10837
  return content;
10511
10838
  });
@@ -10527,7 +10854,7 @@ ${input.slice(result.pos)}
10527
10854
  return result;
10528
10855
  }
10529
10856
  }
10530
- var CivetPrologueContent$0 = $TS($S($EXPECT($L153, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R45, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
10857
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L156, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R49, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
10531
10858
  var options = $2;
10532
10859
  return {
10533
10860
  type: "CivetPrologue",
@@ -10553,7 +10880,7 @@ ${input.slice(result.pos)}
10553
10880
  return result;
10554
10881
  }
10555
10882
  }
10556
- var CivetOption$0 = $TR($EXPECT($R46, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10883
+ var CivetOption$0 = $TR($EXPECT($R50, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10557
10884
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
10558
10885
  if (l)
10559
10886
  return l.toUpperCase();
@@ -10580,7 +10907,7 @@ ${input.slice(result.pos)}
10580
10907
  return result;
10581
10908
  }
10582
10909
  }
10583
- var UnknownPrologue$0 = $S($R$0($EXPECT($R44, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
10910
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R48, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
10584
10911
  function UnknownPrologue(state) {
10585
10912
  if (state.events) {
10586
10913
  const result = state.events.enter?.("UnknownPrologue", state);
@@ -10638,7 +10965,7 @@ ${input.slice(result.pos)}
10638
10965
  return result;
10639
10966
  }
10640
10967
  }
10641
- var EOL$0 = $TR($EXPECT($R47, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10968
+ var EOL$0 = $TR($EXPECT($R51, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10642
10969
  return { $loc, token: $0 };
10643
10970
  });
10644
10971
  function EOL(state) {
@@ -10659,7 +10986,7 @@ ${input.slice(result.pos)}
10659
10986
  return result;
10660
10987
  }
10661
10988
  }
10662
- var Debugger$0 = $TV($EXPECT($L1, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
10989
+ var Debugger$0 = $TV($EXPECT($L14, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
10663
10990
  debugger;
10664
10991
  });
10665
10992
  function Debugger(state) {
@@ -10680,7 +11007,7 @@ ${input.slice(result.pos)}
10680
11007
  return result;
10681
11008
  }
10682
11009
  }
10683
- var InsertOpenParen$0 = $TV($EXPECT($L1, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
11010
+ var InsertOpenParen$0 = $TV($EXPECT($L14, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
10684
11011
  return { $loc, token: "(" };
10685
11012
  });
10686
11013
  function InsertOpenParen(state) {
@@ -10701,7 +11028,7 @@ ${input.slice(result.pos)}
10701
11028
  return result;
10702
11029
  }
10703
11030
  }
10704
- var InsertCloseParen$0 = $TV($EXPECT($L1, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
11031
+ var InsertCloseParen$0 = $TV($EXPECT($L14, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
10705
11032
  return { $loc, token: ")" };
10706
11033
  });
10707
11034
  function InsertCloseParen(state) {
@@ -10722,7 +11049,7 @@ ${input.slice(result.pos)}
10722
11049
  return result;
10723
11050
  }
10724
11051
  }
10725
- var InsertOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
11052
+ var InsertOpenBrace$0 = $TV($EXPECT($L14, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
10726
11053
  return [{ $loc, token: " " }, { $loc, token: "{" }];
10727
11054
  });
10728
11055
  function InsertOpenBrace(state) {
@@ -10743,7 +11070,7 @@ ${input.slice(result.pos)}
10743
11070
  return result;
10744
11071
  }
10745
11072
  }
10746
- var InsertCloseBrace$0 = $TV($EXPECT($L1, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
11073
+ var InsertCloseBrace$0 = $TV($EXPECT($L14, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
10747
11074
  return { $loc, token: "}" };
10748
11075
  });
10749
11076
  function InsertCloseBrace(state) {
@@ -10764,7 +11091,7 @@ ${input.slice(result.pos)}
10764
11091
  return result;
10765
11092
  }
10766
11093
  }
10767
- var InsertConst$0 = $TV($EXPECT($L1, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
11094
+ var InsertConst$0 = $TV($EXPECT($L14, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
10768
11095
  return { $loc, token: "const " };
10769
11096
  });
10770
11097
  function InsertConst(state) {
@@ -10785,7 +11112,7 @@ ${input.slice(result.pos)}
10785
11112
  return result;
10786
11113
  }
10787
11114
  }
10788
- var InsertReadonly$0 = $TV($EXPECT($L1, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
11115
+ var InsertReadonly$0 = $TV($EXPECT($L14, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
10789
11116
  return { ts: true, children: [{ $loc, token: "readonly " }] };
10790
11117
  });
10791
11118
  function InsertReadonly(state) {
@@ -10806,7 +11133,7 @@ ${input.slice(result.pos)}
10806
11133
  return result;
10807
11134
  }
10808
11135
  }
10809
- var InsertNewline$0 = $TV($EXPECT($L1, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
11136
+ var InsertNewline$0 = $TV($EXPECT($L14, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
10810
11137
  return "\n";
10811
11138
  });
10812
11139
  function InsertNewline(state) {
@@ -10827,7 +11154,7 @@ ${input.slice(result.pos)}
10827
11154
  return result;
10828
11155
  }
10829
11156
  }
10830
- var InsertIndent$0 = $TV($EXPECT($L1, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
11157
+ var InsertIndent$0 = $TV($EXPECT($L14, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
10831
11158
  return module.currentIndent.token;
10832
11159
  });
10833
11160
  function InsertIndent(state) {
@@ -10848,7 +11175,7 @@ ${input.slice(result.pos)}
10848
11175
  return result;
10849
11176
  }
10850
11177
  }
10851
- var InsertSpace$0 = $TV($EXPECT($L1, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
11178
+ var InsertSpace$0 = $TV($EXPECT($L14, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
10852
11179
  return { $loc, token: " " };
10853
11180
  });
10854
11181
  function InsertSpace(state) {
@@ -10869,7 +11196,7 @@ ${input.slice(result.pos)}
10869
11196
  return result;
10870
11197
  }
10871
11198
  }
10872
- var InsertDot$0 = $TV($EXPECT($L1, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
11199
+ var InsertDot$0 = $TV($EXPECT($L14, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
10873
11200
  return { $loc, token: "." };
10874
11201
  });
10875
11202
  function InsertDot(state) {
@@ -10890,7 +11217,7 @@ ${input.slice(result.pos)}
10890
11217
  return result;
10891
11218
  }
10892
11219
  }
10893
- var InsertBreak$0 = $TV($EXPECT($L1, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
11220
+ var InsertBreak$0 = $TV($EXPECT($L14, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
10894
11221
  return { $loc, token: ";break;" };
10895
11222
  });
10896
11223
  function InsertBreak(state) {
@@ -10911,7 +11238,7 @@ ${input.slice(result.pos)}
10911
11238
  return result;
10912
11239
  }
10913
11240
  }
10914
- var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
11241
+ var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
10915
11242
  if (module.config.coffeeBinaryExistential)
10916
11243
  return;
10917
11244
  return $skip;
@@ -10934,7 +11261,7 @@ ${input.slice(result.pos)}
10934
11261
  return result;
10935
11262
  }
10936
11263
  }
10937
- var CoffeeBooleansEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
11264
+ var CoffeeBooleansEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
10938
11265
  if (module.config.coffeeBooleans)
10939
11266
  return;
10940
11267
  return $skip;
@@ -10957,7 +11284,7 @@ ${input.slice(result.pos)}
10957
11284
  return result;
10958
11285
  }
10959
11286
  }
10960
- var CoffeeClassesEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
11287
+ var CoffeeClassesEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
10961
11288
  if (module.config.coffeeClasses)
10962
11289
  return;
10963
11290
  return $skip;
@@ -10980,7 +11307,7 @@ ${input.slice(result.pos)}
10980
11307
  return result;
10981
11308
  }
10982
11309
  }
10983
- var CoffeeCommentEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
11310
+ var CoffeeCommentEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
10984
11311
  if (module.config.coffeeComment)
10985
11312
  return;
10986
11313
  return $skip;
@@ -11003,7 +11330,7 @@ ${input.slice(result.pos)}
11003
11330
  return result;
11004
11331
  }
11005
11332
  }
11006
- var CoffeeDoEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
11333
+ var CoffeeDoEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
11007
11334
  if (module.config.coffeeDo)
11008
11335
  return;
11009
11336
  return $skip;
@@ -11026,7 +11353,7 @@ ${input.slice(result.pos)}
11026
11353
  return result;
11027
11354
  }
11028
11355
  }
11029
- var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
11356
+ var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
11030
11357
  if (module.config.coffeeForLoops)
11031
11358
  return;
11032
11359
  return $skip;
@@ -11049,7 +11376,7 @@ ${input.slice(result.pos)}
11049
11376
  return result;
11050
11377
  }
11051
11378
  }
11052
- var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
11379
+ var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
11053
11380
  if (module.config.coffeeInterpolation)
11054
11381
  return;
11055
11382
  return $skip;
@@ -11072,7 +11399,7 @@ ${input.slice(result.pos)}
11072
11399
  return result;
11073
11400
  }
11074
11401
  }
11075
- var CoffeeIsntEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
11402
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
11076
11403
  if (module.config.coffeeIsnt)
11077
11404
  return;
11078
11405
  return $skip;
@@ -11095,7 +11422,7 @@ ${input.slice(result.pos)}
11095
11422
  return result;
11096
11423
  }
11097
11424
  }
11098
- var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
11425
+ var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
11099
11426
  if (module.config.coffeeLineContinuation)
11100
11427
  return;
11101
11428
  return $skip;
@@ -11118,7 +11445,7 @@ ${input.slice(result.pos)}
11118
11445
  return result;
11119
11446
  }
11120
11447
  }
11121
- var CoffeeNotEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
11448
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
11122
11449
  if (module.config.coffeeNot)
11123
11450
  return;
11124
11451
  return $skip;
@@ -11141,7 +11468,7 @@ ${input.slice(result.pos)}
11141
11468
  return result;
11142
11469
  }
11143
11470
  }
11144
- var CoffeeOfEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
11471
+ var CoffeeOfEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
11145
11472
  if (module.config.coffeeOf)
11146
11473
  return;
11147
11474
  return $skip;
@@ -11164,7 +11491,30 @@ ${input.slice(result.pos)}
11164
11491
  return result;
11165
11492
  }
11166
11493
  }
11167
- var Reset$0 = $TV($EXPECT($L1, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
11494
+ var CoffeeWordAssignmentEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeWordAssignmentEnabled ""'), function($skip, $loc, $0, $1) {
11495
+ if (module.config.coffeeWordAssignment)
11496
+ return;
11497
+ return $skip;
11498
+ });
11499
+ function CoffeeWordAssignmentEnabled(state) {
11500
+ if (state.events) {
11501
+ const result = state.events.enter?.("CoffeeWordAssignmentEnabled", state);
11502
+ if (result)
11503
+ return result.cache;
11504
+ }
11505
+ if (state.tokenize) {
11506
+ const result = $TOKEN("CoffeeWordAssignmentEnabled", state, CoffeeWordAssignmentEnabled$0(state));
11507
+ if (state.events)
11508
+ state.events.exit?.("CoffeeWordAssignmentEnabled", state, result);
11509
+ return result;
11510
+ } else {
11511
+ const result = CoffeeWordAssignmentEnabled$0(state);
11512
+ if (state.events)
11513
+ state.events.exit?.("CoffeeWordAssignmentEnabled", state, result);
11514
+ return result;
11515
+ }
11516
+ }
11517
+ var Reset$0 = $TV($EXPECT($L14, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
11168
11518
  module.indentLevels = [{
11169
11519
  level: 0,
11170
11520
  token: ""
@@ -11194,6 +11544,7 @@ ${input.slice(result.pos)}
11194
11544
  coffeeLineContinuation: false,
11195
11545
  coffeeNot: false,
11196
11546
  coffeeOf: false,
11547
+ coffeeWordAssignment: false,
11197
11548
  implicitReturns: true
11198
11549
  };
11199
11550
  let indexOfRef, hasPropRef;
@@ -11250,6 +11601,7 @@ ${input.slice(result.pos)}
11250
11601
  this.coffeeLineContinuation = true;
11251
11602
  this.coffeeNot = true;
11252
11603
  this.coffeeOf = true;
11604
+ this.coffeeWordAssignment = true;
11253
11605
  } else {
11254
11606
  this.autoVar = false;
11255
11607
  this.coffeeBinaryExistential = false;
@@ -11264,6 +11616,7 @@ ${input.slice(result.pos)}
11264
11616
  this.coffeeLineContinuation = false;
11265
11617
  this.coffeeNot = false;
11266
11618
  this.coffeeOf = false;
11619
+ this.coffeeWordAssignment = false;
11267
11620
  }
11268
11621
  }
11269
11622
  });
@@ -11289,7 +11642,7 @@ ${input.slice(result.pos)}
11289
11642
  return result;
11290
11643
  }
11291
11644
  }
11292
- var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
11645
+ var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L14, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
11293
11646
  var directives = $2;
11294
11647
  directives.forEach((directive) => {
11295
11648
  if (directive.type === "CivetPrologue") {
@@ -11726,39 +12079,77 @@ ${input.slice(result.pos)}
11726
12079
  }
11727
12080
  return nodes;
11728
12081
  }
11729
- function addImplicitReturns(statements) {
11730
- let fns = gatherRecursiveAll(statements, (n) => {
11731
- return n.type === "FunctionExpression" || n.type === "ArrowFunction";
12082
+ function processAtParams(f) {
12083
+ const { parameters, block } = f;
12084
+ if (!block)
12085
+ return;
12086
+ const { expressions } = block;
12087
+ if (!expressions)
12088
+ return;
12089
+ let indent;
12090
+ if (expressions.length === 0) {
12091
+ indent = "";
12092
+ } else {
12093
+ indent = expressions[0][0];
12094
+ }
12095
+ const thisAssignments = gatherRecursiveAll(parameters, (n) => n.type === "Ref").map((ref) => {
12096
+ const { base: name } = ref;
12097
+ return [indent, [`this.${name} = `, ref], ";\n"];
11732
12098
  });
11733
- fns.forEach(({ block, returnType }) => {
11734
- const isVoid = returnType === "void";
11735
- const isBlock = block?.type === "BlockStatement";
11736
- if (!isVoid && isBlock) {
11737
- insertReturn(block);
12099
+ block.expressions.unshift(...thisAssignments);
12100
+ }
12101
+ function adjustAtBindings(statements) {
12102
+ gatherRecursiveAll(statements, (n) => n.type === "AtBindingProperty").forEach((binding) => {
12103
+ const { ref } = binding;
12104
+ if (ref.names[0] !== ref.base) {
12105
+ binding.children.unshift(ref.base, ": ");
11738
12106
  }
11739
12107
  });
11740
- gatherRecursiveAll(statements, (n) => n.type === "MethodDefinition").forEach(({ children: [sig, block] }) => {
11741
- const isConstructor = sig.name === "constructor";
11742
- const isVoid = sig.returnType === "void";
11743
- const isSet = sig.modifier === "set";
11744
- if (!isConstructor && !isSet && !isVoid) {
11745
- insertReturn(block);
12108
+ }
12109
+ function processFunctions(statements) {
12110
+ gatherRecursiveAll(statements, (n) => {
12111
+ return n.type === "FunctionExpression" || n.type === "ArrowFunction";
12112
+ }).forEach((f) => {
12113
+ processAtParams(f);
12114
+ const { block, returnType } = f;
12115
+ if (module.config.implicitReturns) {
12116
+ const isVoid = returnType === "void";
12117
+ const isBlock = block?.type === "BlockStatement";
12118
+ if (!isVoid && isBlock) {
12119
+ insertReturn(block);
12120
+ }
11746
12121
  }
11747
12122
  });
11748
- gatherRecursiveAll(statements, (n) => n.type === "SwitchExpression").forEach(({ block }) => {
11749
- insertReturn(block);
12123
+ gatherRecursiveAll(statements, (n) => n.type === "MethodDefinition").forEach((f) => {
12124
+ processAtParams(f);
12125
+ const { children: [sig, block] } = f;
12126
+ if (module.config.implicitReturns) {
12127
+ const isConstructor = sig.name === "constructor";
12128
+ const isVoid = sig.returnType === "void";
12129
+ const isSet = sig.modifier === "set";
12130
+ if (!isConstructor && !isSet && !isVoid) {
12131
+ insertReturn(block);
12132
+ }
12133
+ }
11750
12134
  });
11751
12135
  }
11752
- module.processProgram = function(statements) {
12136
+ function processSwitchExpressions(statements) {
11753
12137
  if (module.config.implicitReturns) {
11754
- addImplicitReturns(statements);
12138
+ gatherRecursiveAll(statements, (n) => n.type === "SwitchExpression").forEach(({ block }) => {
12139
+ insertReturn(block);
12140
+ });
11755
12141
  }
12142
+ }
12143
+ module.processProgram = function(statements) {
12144
+ processFunctions(statements);
12145
+ processSwitchExpressions(statements);
11756
12146
  gatherRecursiveAll(statements, (n) => n.type === "IterationExpression").forEach((e) => expressionizeIteration(e));
11757
12147
  statements.unshift(...module.prelude);
11758
12148
  if (module.config.autoVar) {
11759
12149
  createVarDecs(statements, []);
11760
12150
  }
11761
12151
  populateRefs(statements);
12152
+ adjustAtBindings(statements);
11762
12153
  };
11763
12154
  function findDecs(statements) {
11764
12155
  const declarationNames = gatherNodes(statements, (node) => {
@@ -11871,7 +12262,7 @@ ${input.slice(result.pos)}
11871
12262
  return result;
11872
12263
  }
11873
12264
  }
11874
- var Indent$0 = $TV($Q($C($EXPECT($L154, fail, 'Indent " "'), $EXPECT($L155, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
12265
+ var Indent$0 = $TV($Q($C($EXPECT($L157, fail, 'Indent " "'), $EXPECT($L158, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
11875
12266
  const level = $1.length;
11876
12267
  return {
11877
12268
  $loc,
@@ -11996,7 +12387,7 @@ ${input.slice(result.pos)}
11996
12387
  return result;
11997
12388
  }
11998
12389
  }
11999
- var PopIndent$0 = $TV($EXPECT($L1, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
12390
+ var PopIndent$0 = $TV($EXPECT($L14, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
12000
12391
  if (module.verbose) {
12001
12392
  console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
12002
12393
  }
@@ -12097,10 +12488,12 @@ ${input.slice(result.pos)}
12097
12488
  return token;
12098
12489
  }
12099
12490
  if (!node.children) {
12491
+ debugger;
12100
12492
  throw new Error("Unknown node", JSON.stringify(node));
12101
12493
  }
12102
12494
  return gen(node.children, options);
12103
12495
  }
12496
+ debugger;
12104
12497
  throw new Error("Unknown node", JSON.stringify(node));
12105
12498
  };
12106
12499
  module.exports = gen;
@@ -12541,8 +12934,6 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
12541
12934
  case "InsertIndent":
12542
12935
  case "Arguments":
12543
12936
  case "ArgumentsWithTrailingCallExpressions":
12544
- case "ImplicitApplication":
12545
- case "IndentedApplicationAllowed":
12546
12937
  case "ApplicationStart":
12547
12938
  case "CallExpression":
12548
12939
  case "CallExpressionRest":
@@ -12556,7 +12947,8 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
12556
12947
  case "ShortCircuitExpression":
12557
12948
  case "NestedPropertyDefinitions":
12558
12949
  case "NestedObject":
12559
- case "NestedObjectLiteral":
12950
+ case "NestedImplicitObjectLiteral":
12951
+ case "NestedImplicitPropertyDefinitions":
12560
12952
  case "NestedBlockStatement":
12561
12953
  case "NestedInterfaceProperty":
12562
12954
  case "AssignmentExpressionTail":
@@ -12566,6 +12958,7 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode(JSON.strin
12566
12958
  case "ElseClause":
12567
12959
  case "CoffeeCommentEnabled":
12568
12960
  case "SingleLineComment":
12961
+ case "Debugger":
12569
12962
  break;
12570
12963
  default:
12571
12964
  cache = /* @__PURE__ */ new Map();