@danielx/civet 0.4.15 → 0.4.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -406,6 +406,8 @@ var require_parser = __commonJS({
406
406
  var { parse: parse2 } = parserState({
407
407
  Program,
408
408
  TopLevelStatement,
409
+ ExtendedExpression,
410
+ ExpressionizedStatement,
409
411
  Expression,
410
412
  Arguments,
411
413
  ArgumentsWithTrailingCallExpressions,
@@ -422,10 +424,11 @@ var require_parser = __commonJS({
422
424
  UpdateExpression,
423
425
  UpdateExpressionSymbol,
424
426
  AssignmentExpression,
425
- AssignmentExpressionRest,
426
- AwaitExpression,
427
+ AssignmentExpressionTail,
427
428
  YieldExpression,
429
+ YieldTail,
428
430
  ArrowFunction,
431
+ ArrowFunctionTail,
429
432
  FatArrow,
430
433
  FatArrowBody,
431
434
  ConditionalExpression,
@@ -443,7 +446,6 @@ var require_parser = __commonJS({
443
446
  This,
444
447
  AtAccessor,
445
448
  LeftHandSideExpression,
446
- NewExpression,
447
449
  CallExpression,
448
450
  CallExpressionRest,
449
451
  OptionalShorthand,
@@ -463,10 +465,14 @@ var require_parser = __commonJS({
463
465
  BindingIdentifier,
464
466
  BindingPattern,
465
467
  ObjectBindingPattern,
468
+ ObjectBindingPatternContent,
466
469
  ArrayBindingPattern,
470
+ ArrayBindingPatternContent,
471
+ Elision,
467
472
  NestedBindingProperties,
468
473
  NestedBindingProperty,
469
474
  BindingProperty,
475
+ NestedBindingRestProperty,
470
476
  BindingRestProperty,
471
477
  NestedBindingElements,
472
478
  NestedBindingElement,
@@ -481,10 +487,11 @@ var require_parser = __commonJS({
481
487
  BracedOrEmptyBlock,
482
488
  EmptyBlock,
483
489
  BracedBlock,
484
- SingleNestedExpression,
485
- NestedBlockExpressions,
486
- BlockExpression,
490
+ BracedContent,
491
+ NestedBlockStatements,
492
+ NestedBlockStatement,
487
493
  Literal,
494
+ LiteralContent,
488
495
  NullLiteral,
489
496
  BooleanLiteral,
490
497
  CoffeeScriptBooleanLiteral,
@@ -493,14 +500,16 @@ var require_parser = __commonJS({
493
500
  IdentifierName,
494
501
  IdentifierReference,
495
502
  ArrayLiteral,
503
+ ArrayLiteralContent,
496
504
  NestedElementList,
497
505
  NestedElement,
498
506
  ArrayElementDelimiter,
499
507
  ElementList,
500
- InlineElementList,
508
+ ElementListRest,
501
509
  ArrayElementExpression,
502
- Elision,
503
510
  ObjectLiteral,
511
+ BracedObjectLiteral,
512
+ BracedObjectLiteralContent,
504
513
  NestedObjectLiteral,
505
514
  NestedPropertyDefinitions,
506
515
  NestedPropertyDefinition,
@@ -527,6 +536,10 @@ var require_parser = __commonJS({
527
536
  IfStatement,
528
537
  IfClause,
529
538
  UnlessClause,
539
+ IfExpression,
540
+ ExpressionBlock,
541
+ NestedBlockExpressions,
542
+ NestedBlockExpression,
530
543
  IterationStatement,
531
544
  LoopStatement,
532
545
  LoopClause,
@@ -540,6 +553,7 @@ var require_parser = __commonJS({
540
553
  ForDeclaration,
541
554
  ForBinding,
542
555
  SwitchStatement,
556
+ SwitchExpression,
543
557
  CaseBlock,
544
558
  NestedCaseClauses,
545
559
  NestedCaseClause,
@@ -557,6 +571,8 @@ var require_parser = __commonJS({
557
571
  SuppressIndentedApplication,
558
572
  ExpressionStatement,
559
573
  KeywordStatement,
574
+ DebuggerExpression,
575
+ ThrowExpression,
560
576
  MaybeNestedExpression,
561
577
  ImportDeclaration,
562
578
  ImpliedImport,
@@ -622,6 +638,7 @@ var require_parser = __commonJS({
622
638
  NonNewlineWhitespace,
623
639
  __,
624
640
  Whitespace,
641
+ ExpressionDelimiter,
625
642
  StatementDelimiter,
626
643
  NonIdContinue,
627
644
  Loc,
@@ -658,6 +675,7 @@ var require_parser = __commonJS({
658
675
  LetOrConst,
659
676
  Loop,
660
677
  New,
678
+ Not,
661
679
  Of,
662
680
  OpenBrace,
663
681
  OpenBracket,
@@ -671,6 +689,7 @@ var require_parser = __commonJS({
671
689
  SubstitutionStart,
672
690
  Switch,
673
691
  Target,
692
+ Then,
674
693
  Throw,
675
694
  TripleDoubleQuote,
676
695
  TripleSingleQuote,
@@ -762,6 +781,8 @@ var require_parser = __commonJS({
762
781
  CoffeeCommentEnabled,
763
782
  CoffeeBooleansEnabled,
764
783
  CoffeeInterpolationEnabled,
784
+ CoffeeIsntEnabled,
785
+ CoffeeNotEnabled,
765
786
  Reset,
766
787
  Init,
767
788
  Indent,
@@ -781,149 +802,153 @@ var require_parser = __commonJS({
781
802
  var $L6 = $L("this");
782
803
  var $L7 = $L("#");
783
804
  var $L8 = $L("@");
784
- var $L9 = $L("super");
785
- var $L10 = $L("import");
786
- var $L11 = $L("!");
787
- var $L12 = $L("::");
788
- var $L13 = $L("super[");
789
- var $L14 = $L("import.meta");
790
- var $L15 = $L(")");
791
- var $L16 = $L("->");
792
- var $L17 = $L("null");
793
- var $L18 = $L("true");
794
- var $L19 = $L("false");
795
- var $L20 = $L("yes");
796
- var $L21 = $L("on");
797
- var $L22 = $L("no");
798
- var $L23 = $L("off");
799
- var $L24 = $L(",");
800
- var $L25 = $L("]");
801
- var $L26 = $L("}");
802
- var $L27 = $L("**=");
803
- var $L28 = $L("*=");
804
- var $L29 = $L("/=");
805
- var $L30 = $L("%=");
806
- var $L31 = $L("+=");
807
- var $L32 = $L("-=");
808
- var $L33 = $L("<<=");
809
- var $L34 = $L(">>>=");
810
- var $L35 = $L(">>=");
811
- var $L36 = $L("&&=");
812
- var $L37 = $L("&=");
813
- var $L38 = $L("^=");
814
- var $L39 = $L("||=");
815
- var $L40 = $L("|=");
816
- var $L41 = $L("??=");
817
- var $L42 = $L("?=");
818
- var $L43 = $L("=");
819
- var $L44 = $L("**");
820
- var $L45 = $L("*");
821
- var $L46 = $L("/");
822
- var $L47 = $L("%");
823
- var $L48 = $L("+");
824
- var $L49 = $L("-");
825
- var $L50 = $L("<=");
826
- var $L51 = $L(">=");
827
- var $L52 = $L("<<");
828
- var $L53 = $L(">>>");
829
- var $L54 = $L(">>");
830
- var $L55 = $L(">");
831
- var $L56 = $L("!==");
832
- var $L57 = $L("!=");
833
- var $L58 = $L("is");
834
- var $L59 = $L("===");
835
- var $L60 = $L("==");
836
- var $L61 = $L("and");
837
- var $L62 = $L("&&");
838
- var $L63 = $L("or");
839
- var $L64 = $L("||");
840
- var $L65 = $L("??");
841
- var $L66 = $L("instanceof");
842
- var $L67 = $L("in");
843
- var $L68 = $L("&");
844
- var $L69 = $L("^");
845
- var $L70 = $L("|");
846
- var $L71 = $L(";");
847
- var $L72 = $L("finally");
848
- var $L73 = $L("break");
849
- var $L74 = $L("continue");
850
- var $L75 = $L("debugger");
851
- var $L76 = $L("import type");
852
- var $L77 = $L("default");
853
- var $L78 = $L(":=");
854
- var $L79 = $L("/*");
855
- var $L80 = $L("*/");
856
- var $L81 = $L("###");
857
- var $L82 = $L("as");
858
- var $L83 = $L("async");
859
- var $L84 = $L("await");
860
- var $L85 = $L("`");
861
- var $L86 = $L("case");
862
- var $L87 = $L("catch");
863
- var $L88 = $L("class");
864
- var $L89 = $L("#{");
865
- var $L90 = $L(":");
866
- var $L91 = $L("delete");
867
- var $L92 = $L("do");
868
- var $L93 = $L(".");
869
- var $L94 = $L("..");
870
- var $L95 = $L("...");
871
- var $L96 = $L('"');
872
- var $L97 = $L("else");
873
- var $L98 = $L("export");
874
- var $L99 = $L("for");
875
- var $L100 = $L("from");
876
- var $L101 = $L("function");
877
- var $L102 = $L("get");
878
- var $L103 = $L("set");
879
- var $L104 = $L("if");
880
- var $L105 = $L("let");
881
- var $L106 = $L("const");
882
- var $L107 = $L("loop");
883
- var $L108 = $L("new");
884
- var $L109 = $L("of");
885
- var $L110 = $L("{");
886
- var $L111 = $L("[");
887
- var $L112 = $L("(");
888
- var $L113 = $L("?");
889
- var $L114 = $L("return");
890
- var $L115 = $L("'");
891
- var $L116 = $L("static");
892
- var $L117 = $L("${");
893
- var $L118 = $L("switch");
894
- var $L119 = $L("target");
895
- var $L120 = $L("throw");
896
- var $L121 = $L('"""');
897
- var $L122 = $L("'''");
898
- var $L123 = $L("```");
899
- var $L124 = $L("try");
900
- var $L125 = $L("typeof");
901
- var $L126 = $L("unless");
902
- var $L127 = $L("until");
903
- var $L128 = $L("var");
904
- var $L129 = $L("void");
905
- var $L130 = $L("when");
906
- var $L131 = $L("while");
907
- var $L132 = $L("yield");
908
- var $L133 = $L("/>");
909
- var $L134 = $L("</");
910
- var $L135 = $L("<>");
911
- var $L136 = $L("</>");
912
- var $L137 = $L("declare");
913
- var $L138 = $L("type");
914
- var $L139 = $L("interface");
915
- var $L140 = $L("namespace");
916
- var $L141 = $L("readonly");
917
- var $L142 = $L("asserts");
918
- var $L143 = $L("keyof");
919
- var $L144 = $L("infer");
920
- var $L145 = $L("[]");
921
- var $L146 = $L("civet");
922
- var $L147 = $L(" ");
923
- var $L148 = $L(" ");
924
- var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
805
+ var $L9 = $L(".");
806
+ var $L10 = $L("super");
807
+ var $L11 = $L("import");
808
+ var $L12 = $L("!");
809
+ var $L13 = $L("::");
810
+ var $L14 = $L("super[");
811
+ var $L15 = $L("import.meta");
812
+ var $L16 = $L(")");
813
+ var $L17 = $L("->");
814
+ var $L18 = $L("null");
815
+ var $L19 = $L("true");
816
+ var $L20 = $L("false");
817
+ var $L21 = $L("yes");
818
+ var $L22 = $L("on");
819
+ var $L23 = $L("no");
820
+ var $L24 = $L("off");
821
+ var $L25 = $L(",");
822
+ var $L26 = $L("]");
823
+ var $L27 = $L("}");
824
+ var $L28 = $L("**=");
825
+ var $L29 = $L("*=");
826
+ var $L30 = $L("/=");
827
+ var $L31 = $L("%=");
828
+ var $L32 = $L("+=");
829
+ var $L33 = $L("-=");
830
+ var $L34 = $L("<<=");
831
+ var $L35 = $L(">>>=");
832
+ var $L36 = $L(">>=");
833
+ var $L37 = $L("&&=");
834
+ var $L38 = $L("&=");
835
+ var $L39 = $L("^=");
836
+ var $L40 = $L("||=");
837
+ var $L41 = $L("|=");
838
+ var $L42 = $L("??=");
839
+ var $L43 = $L("?=");
840
+ var $L44 = $L("=");
841
+ var $L45 = $L("**");
842
+ var $L46 = $L("*");
843
+ var $L47 = $L("/");
844
+ var $L48 = $L("%");
845
+ var $L49 = $L("+");
846
+ var $L50 = $L("-");
847
+ var $L51 = $L("<=");
848
+ var $L52 = $L(">=");
849
+ var $L53 = $L("<<");
850
+ var $L54 = $L(">>>");
851
+ var $L55 = $L(">>");
852
+ var $L56 = $L(">");
853
+ var $L57 = $L("!==");
854
+ var $L58 = $L("!=");
855
+ var $L59 = $L("isnt");
856
+ var $L60 = $L("is");
857
+ var $L61 = $L("===");
858
+ var $L62 = $L("==");
859
+ var $L63 = $L("and");
860
+ var $L64 = $L("&&");
861
+ var $L65 = $L("or");
862
+ var $L66 = $L("||");
863
+ var $L67 = $L("??");
864
+ var $L68 = $L("instanceof");
865
+ var $L69 = $L("in");
866
+ var $L70 = $L("&");
867
+ var $L71 = $L("^");
868
+ var $L72 = $L("|");
869
+ var $L73 = $L(";");
870
+ var $L74 = $L("finally");
871
+ var $L75 = $L("break");
872
+ var $L76 = $L("continue");
873
+ var $L77 = $L("debugger");
874
+ var $L78 = $L("import type");
875
+ var $L79 = $L("default");
876
+ var $L80 = $L(":=");
877
+ var $L81 = $L("/*");
878
+ var $L82 = $L("*/");
879
+ var $L83 = $L("###");
880
+ var $L84 = $L("as");
881
+ var $L85 = $L("async");
882
+ var $L86 = $L("await");
883
+ var $L87 = $L("`");
884
+ var $L88 = $L("case");
885
+ var $L89 = $L("catch");
886
+ var $L90 = $L("class");
887
+ var $L91 = $L("#{");
888
+ var $L92 = $L(":");
889
+ var $L93 = $L("delete");
890
+ var $L94 = $L("do");
891
+ var $L95 = $L("..");
892
+ var $L96 = $L("...");
893
+ var $L97 = $L('"');
894
+ var $L98 = $L("else");
895
+ var $L99 = $L("export");
896
+ var $L100 = $L("for");
897
+ var $L101 = $L("from");
898
+ var $L102 = $L("function");
899
+ var $L103 = $L("get");
900
+ var $L104 = $L("set");
901
+ var $L105 = $L("if");
902
+ var $L106 = $L(" ");
903
+ var $L107 = $L("let");
904
+ var $L108 = $L("const");
905
+ var $L109 = $L("loop");
906
+ var $L110 = $L("new");
907
+ var $L111 = $L("not");
908
+ var $L112 = $L("of");
909
+ var $L113 = $L("{");
910
+ var $L114 = $L("[");
911
+ var $L115 = $L("(");
912
+ var $L116 = $L("?");
913
+ var $L117 = $L("return");
914
+ var $L118 = $L("'");
915
+ var $L119 = $L("static");
916
+ var $L120 = $L("${");
917
+ var $L121 = $L("switch");
918
+ var $L122 = $L("target");
919
+ var $L123 = $L("then");
920
+ var $L124 = $L("throw");
921
+ var $L125 = $L('"""');
922
+ var $L126 = $L("'''");
923
+ var $L127 = $L("```");
924
+ var $L128 = $L("try");
925
+ var $L129 = $L("typeof");
926
+ var $L130 = $L("unless");
927
+ var $L131 = $L("until");
928
+ var $L132 = $L("var");
929
+ var $L133 = $L("void");
930
+ var $L134 = $L("when");
931
+ var $L135 = $L("while");
932
+ var $L136 = $L("yield");
933
+ var $L137 = $L("/>");
934
+ var $L138 = $L("</");
935
+ var $L139 = $L("<>");
936
+ var $L140 = $L("</>");
937
+ var $L141 = $L("declare");
938
+ var $L142 = $L("type");
939
+ var $L143 = $L("interface");
940
+ var $L144 = $L("namespace");
941
+ var $L145 = $L("readonly");
942
+ var $L146 = $L("asserts");
943
+ var $L147 = $L("keyof");
944
+ var $L148 = $L("infer");
945
+ var $L149 = $L("[]");
946
+ var $L150 = $L("civet");
947
+ var $L151 = $L(" ");
948
+ var $L152 = $L(" ");
949
+ var $R0 = $R(new RegExp("(of|then)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
925
950
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
926
- var $R2 = $R(new RegExp("[!~+-]", "suy"));
951
+ var $R2 = $R(new RegExp("[!~+-](?!\\s)", "suy"));
927
952
  var $R3 = $R(new RegExp("(?=[\\s\\)])", "suy"));
928
953
  var $R4 = $R(new RegExp('[^;"\\s]+', "suy"));
929
954
  var $R5 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
@@ -945,27 +970,32 @@ var require_parser = __commonJS({
945
970
  var $R21 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
946
971
  var $R22 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
947
972
  var $R23 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
948
- var $R24 = $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"));
949
- var $R25 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
950
- var $R26 = $R(new RegExp(".", "suy"));
951
- var $R27 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
952
- var $R28 = $R(new RegExp("[^\\r\\n]", "suy"));
953
- var $R29 = $R(new RegExp("[ \\t]+", "suy"));
954
- var $R30 = $R(new RegExp("[\\s]+", "suy"));
955
- var $R31 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
956
- var $R32 = $R(new RegExp("\\s", "suy"));
957
- var $R33 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
958
- var $R34 = $R(new RegExp('"[^"]*"', "suy"));
959
- var $R35 = $R(new RegExp("'[^']*'", "suy"));
960
- var $R36 = $R(new RegExp("[^{}<>]+", "suy"));
961
- var $R37 = $R(new RegExp("[+-]?", "suy"));
962
- var $R38 = $R(new RegExp("[+-]", "suy"));
963
- var $R39 = $R(new RegExp("#![^\\r\\n]*", "suy"));
964
- var $R40 = $R(new RegExp("[\\t ]*", "suy"));
965
- var $R41 = $R(new RegExp("[\\s]*", "suy"));
966
- var $R42 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
967
- var $R43 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
968
- var Program$0 = $S(Reset, Init, __, $Q(TopLevelStatement), __);
973
+ var $R24 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
974
+ var $R25 = $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"));
975
+ var $R26 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
976
+ var $R27 = $R(new RegExp(".", "suy"));
977
+ var $R28 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
978
+ var $R29 = $R(new RegExp("[^\\r\\n]", "suy"));
979
+ var $R30 = $R(new RegExp("[ \\t]+", "suy"));
980
+ var $R31 = $R(new RegExp("[\\s]+", "suy"));
981
+ var $R32 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
982
+ var $R33 = $R(new RegExp("\\s", "suy"));
983
+ var $R34 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
984
+ var $R35 = $R(new RegExp('"[^"]*"', "suy"));
985
+ var $R36 = $R(new RegExp("'[^']*'", "suy"));
986
+ var $R37 = $R(new RegExp("[^{}<>]+", "suy"));
987
+ var $R38 = $R(new RegExp("[+-]?", "suy"));
988
+ var $R39 = $R(new RegExp("[+-]", "suy"));
989
+ var $R40 = $R(new RegExp("#![^\\r\\n]*", "suy"));
990
+ var $R41 = $R(new RegExp("[\\t ]*", "suy"));
991
+ var $R42 = $R(new RegExp("[\\s]*", "suy"));
992
+ var $R43 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
993
+ var $R44 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
994
+ var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
995
+ var statements = $4;
996
+ module2.processProgram(statements);
997
+ return $0;
998
+ });
969
999
  function Program(state) {
970
1000
  if (state.verbose)
971
1001
  console.log("ENTER:", "Program");
@@ -985,6 +1015,26 @@ var require_parser = __commonJS({
985
1015
  return TopLevelStatement$0(state);
986
1016
  }
987
1017
  }
1018
+ var ExtendedExpression$0 = $S(__, ExpressionizedStatement);
1019
+ var ExtendedExpression$1 = AssignmentExpression;
1020
+ function ExtendedExpression(state) {
1021
+ if (state.tokenize) {
1022
+ return $TOKEN("ExtendedExpression", state, ExtendedExpression$0(state) || ExtendedExpression$1(state));
1023
+ } else {
1024
+ return ExtendedExpression$0(state) || ExtendedExpression$1(state);
1025
+ }
1026
+ }
1027
+ var ExpressionizedStatement$0 = DebuggerExpression;
1028
+ var ExpressionizedStatement$1 = IfExpression;
1029
+ var ExpressionizedStatement$2 = SwitchExpression;
1030
+ var ExpressionizedStatement$3 = ThrowExpression;
1031
+ function ExpressionizedStatement(state) {
1032
+ if (state.tokenize) {
1033
+ return $TOKEN("ExpressionizedStatement", state, ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state));
1034
+ } else {
1035
+ return ExpressionizedStatement$0(state) || ExpressionizedStatement$1(state) || ExpressionizedStatement$2(state) || ExpressionizedStatement$3(state);
1036
+ }
1037
+ }
988
1038
  var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
989
1039
  if ($2.length == 0)
990
1040
  return $1;
@@ -1056,7 +1106,7 @@ var require_parser = __commonJS({
1056
1106
  return NestedArgument$0(state);
1057
1107
  }
1058
1108
  }
1059
- var InlineArgumentExpressions$0 = $TS($S($S($E(DotDotDot), AssignmentExpressionRest), $Q($S(__, Comma, $Q(TrailingComment), $E(DotDotDot), AssignmentExpressionRest))), function($skip, $loc, $0, $1, $2) {
1109
+ var InlineArgumentExpressions$0 = $TS($S($S($E(DotDotDot), ExtendedExpression), $Q($S(__, Comma, $Q(TrailingComment), $E(DotDotDot), ExtendedExpression))), function($skip, $loc, $0, $1, $2) {
1060
1110
  if ($2.length == 0)
1061
1111
  return $1;
1062
1112
  return $0;
@@ -1184,12 +1234,17 @@ var require_parser = __commonJS({
1184
1234
  return UpdateExpressionSymbol$0(state);
1185
1235
  }
1186
1236
  }
1187
- var AssignmentExpression$0 = $TS($S($Q(TrailingComment), AssignmentExpressionRest), function($skip, $loc, $0, $1, $2) {
1188
- if ($1.length)
1237
+ var AssignmentExpression$0 = $TS($S($Q(TrailingComment), AssignmentExpressionTail), function($skip, $loc, $0, $1, $2) {
1238
+ if ($1.length) {
1239
+ if ($2.children) {
1240
+ $2.children.splice(0, 0, ...$1);
1241
+ return $2;
1242
+ }
1189
1243
  return $0;
1244
+ }
1190
1245
  return $2;
1191
1246
  });
1192
- var AssignmentExpression$1 = $S(__, AssignmentExpressionRest);
1247
+ var AssignmentExpression$1 = $S(__, AssignmentExpressionTail);
1193
1248
  function AssignmentExpression(state) {
1194
1249
  if (state.tokenize) {
1195
1250
  return $TOKEN("AssignmentExpression", state, AssignmentExpression$0(state) || AssignmentExpression$1(state));
@@ -1197,42 +1252,89 @@ var require_parser = __commonJS({
1197
1252
  return AssignmentExpression$0(state) || AssignmentExpression$1(state);
1198
1253
  }
1199
1254
  }
1200
- var AssignmentExpressionRest$0 = AwaitExpression;
1201
- var AssignmentExpressionRest$1 = YieldExpression;
1202
- var AssignmentExpressionRest$2 = $S($E($S(Async, __)), ArrowFunction);
1203
- var AssignmentExpressionRest$3 = $T($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function(value) {
1204
- return { "type": "AssignmentExpression", "children": value };
1255
+ var AssignmentExpressionTail$0 = YieldExpression;
1256
+ var AssignmentExpressionTail$1 = ArrowFunction;
1257
+ var AssignmentExpressionTail$2 = $TS($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), ExtendedExpression), function($skip, $loc, $0, $1, $2) {
1258
+ const lastAssignment = $1[$1.length - 1];
1259
+ let tail = [];
1260
+ if (lastAssignment[3].token === "=") {
1261
+ const lhs = lastAssignment[1];
1262
+ if (lhs.type === "ObjectExpression") {
1263
+ lhs.children.splice(0, 0, "(");
1264
+ tail.push(")");
1265
+ }
1266
+ if (Array.isArray(lhs) && lhs.length > 1) {
1267
+ const props = lhs[lhs.length - 1];
1268
+ if (Array.isArray(props)) {
1269
+ const lastProp = props[props.length - 1];
1270
+ if (lastProp.type === "SliceExpression") {
1271
+ const { start, end, children: c } = lastProp;
1272
+ c[0].token = ".splice(";
1273
+ c[1] = start;
1274
+ c[2] = ", ";
1275
+ if (end)
1276
+ c[3] = [end, " - ", start];
1277
+ else
1278
+ c[3] = ["1/0"];
1279
+ c[4] = [", ...", $2];
1280
+ c[5] = ")";
1281
+ lastAssignment.pop();
1282
+ if (module2.isWhitespaceOrEmpty(lastAssignment[2]))
1283
+ lastAssignment.pop();
1284
+ return $1;
1285
+ }
1286
+ }
1287
+ }
1288
+ }
1289
+ return {
1290
+ type: "AssignmentExpression",
1291
+ children: [...$0, ...tail]
1292
+ };
1205
1293
  });
1206
- var AssignmentExpressionRest$4 = ConditionalExpression;
1207
- function AssignmentExpressionRest(state) {
1294
+ var AssignmentExpressionTail$3 = ConditionalExpression;
1295
+ function AssignmentExpressionTail(state) {
1208
1296
  if (state.tokenize) {
1209
- return $TOKEN("AssignmentExpressionRest", state, AssignmentExpressionRest$0(state) || AssignmentExpressionRest$1(state) || AssignmentExpressionRest$2(state) || AssignmentExpressionRest$3(state) || AssignmentExpressionRest$4(state));
1297
+ return $TOKEN("AssignmentExpressionTail", state, AssignmentExpressionTail$0(state) || AssignmentExpressionTail$1(state) || AssignmentExpressionTail$2(state) || AssignmentExpressionTail$3(state));
1210
1298
  } else {
1211
- return AssignmentExpressionRest$0(state) || AssignmentExpressionRest$1(state) || AssignmentExpressionRest$2(state) || AssignmentExpressionRest$3(state) || AssignmentExpressionRest$4(state);
1299
+ return AssignmentExpressionTail$0(state) || AssignmentExpressionTail$1(state) || AssignmentExpressionTail$2(state) || AssignmentExpressionTail$3(state);
1212
1300
  }
1213
1301
  }
1214
- var AwaitExpression$0 = $S(Await, $Q(TrailingComment), AssignmentExpression);
1215
- function AwaitExpression(state) {
1302
+ var YieldExpression$0 = $S(Yield, YieldTail);
1303
+ function YieldExpression(state) {
1216
1304
  if (state.verbose)
1217
- console.log("ENTER:", "AwaitExpression");
1305
+ console.log("ENTER:", "YieldExpression");
1218
1306
  if (state.tokenize) {
1219
- return $TOKEN("AwaitExpression", state, AwaitExpression$0(state));
1307
+ return $TOKEN("YieldExpression", state, YieldExpression$0(state));
1220
1308
  } else {
1221
- return AwaitExpression$0(state);
1309
+ return YieldExpression$0(state);
1222
1310
  }
1223
1311
  }
1224
- var YieldExpression$0 = $S(Yield, $E($S($Q(TrailingComment), Star)), AssignmentExpression);
1225
- function YieldExpression(state) {
1312
+ var YieldTail$0 = $Y(EOS);
1313
+ var YieldTail$1 = $S($E($S($Q(TrailingComment), Star)), AssignmentExpression);
1314
+ function YieldTail(state) {
1315
+ if (state.tokenize) {
1316
+ return $TOKEN("YieldTail", state, YieldTail$0(state) || YieldTail$1(state));
1317
+ } else {
1318
+ return YieldTail$0(state) || YieldTail$1(state);
1319
+ }
1320
+ }
1321
+ var ArrowFunction$0 = $TS($S($E($S(Async, __)), ArrowFunctionTail), function($skip, $loc, $0, $1, $2) {
1322
+ if ($1)
1323
+ $2.children.unshift($1);
1324
+ return $2;
1325
+ });
1326
+ function ArrowFunction(state) {
1226
1327
  if (state.verbose)
1227
- console.log("ENTER:", "YieldExpression");
1328
+ console.log("ENTER:", "ArrowFunction");
1228
1329
  if (state.tokenize) {
1229
- return $TOKEN("YieldExpression", state, YieldExpression$0(state));
1330
+ return $TOKEN("ArrowFunction", state, ArrowFunction$0(state));
1230
1331
  } else {
1231
- return YieldExpression$0(state);
1332
+ return ArrowFunction$0(state);
1232
1333
  }
1233
1334
  }
1234
- var ArrowFunction$0 = ThinArrowFunction;
1235
- var ArrowFunction$1 = $TS($S(Parameters, $E(ReturnTypeSuffix), FatArrow, FatArrowBody), function($skip, $loc, $0, $1, $2, $3, $4) {
1335
+ var ArrowFunctionTail$0 = ThinArrowFunction;
1336
+ var ArrowFunctionTail$1 = $TS($S(Parameters, $E(ReturnTypeSuffix), FatArrow, FatArrowBody), function($skip, $loc, $0, $1, $2, $3, $4) {
1337
+ var parameters = $1;
1236
1338
  var suffix = $2;
1237
1339
  var expOrBlock = $4;
1238
1340
  const isVoid = suffix?.children?.[1]?.[0]?.[1]?.token === "void";
@@ -1241,15 +1343,19 @@ var require_parser = __commonJS({
1241
1343
  module2.addImplicitReturns(expOrBlock);
1242
1344
  }
1243
1345
  return {
1244
- type: "FunctionExpression",
1346
+ type: "ArrowFunction",
1347
+ parameters,
1348
+ returnType: suffix,
1349
+ ts: false,
1350
+ block: expOrBlock,
1245
1351
  children: $0
1246
1352
  };
1247
1353
  });
1248
- function ArrowFunction(state) {
1354
+ function ArrowFunctionTail(state) {
1249
1355
  if (state.tokenize) {
1250
- return $TOKEN("ArrowFunction", state, ArrowFunction$0(state) || ArrowFunction$1(state));
1356
+ return $TOKEN("ArrowFunctionTail", state, ArrowFunctionTail$0(state) || ArrowFunctionTail$1(state));
1251
1357
  } else {
1252
- return ArrowFunction$0(state) || ArrowFunction$1(state);
1358
+ return ArrowFunctionTail$0(state) || ArrowFunctionTail$1(state);
1253
1359
  }
1254
1360
  }
1255
1361
  var FatArrow$0 = $TS($S(__, $EXPECT($L3, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
@@ -1267,25 +1373,24 @@ var require_parser = __commonJS({
1267
1373
  return FatArrow$0(state);
1268
1374
  }
1269
1375
  }
1270
- var FatArrowBody$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1376
+ var FatArrowBody$0 = $T($S(__, OpenBrace, EOS, NestedBlockStatements, __, CloseBrace), function(value) {
1271
1377
  var exps = value[3];
1272
1378
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1273
1379
  });
1274
- var FatArrowBody$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1380
+ var FatArrowBody$1 = $T($S(InsertOpenBrace, EOS, NestedBlockStatements, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1275
1381
  var exps = value[2];
1276
1382
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1277
1383
  });
1278
1384
  var FatArrowBody$2 = AssignmentExpression;
1279
- var FatArrowBody$3 = $S(__, AssignmentExpression);
1280
- var FatArrowBody$4 = EmptyBlock;
1385
+ var FatArrowBody$3 = EmptyBlock;
1281
1386
  function FatArrowBody(state) {
1282
1387
  if (state.tokenize) {
1283
- return $TOKEN("FatArrowBody", state, FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state) || FatArrowBody$4(state));
1388
+ return $TOKEN("FatArrowBody", state, FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state));
1284
1389
  } else {
1285
- return FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state) || FatArrowBody$4(state);
1390
+ return FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state);
1286
1391
  }
1287
1392
  }
1288
- var ConditionalExpression$0 = $TS($S(ShortCircuitExpression, $E($S(__, QuestionMark, AssignmentExpression, __, Colon, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1393
+ var ConditionalExpression$0 = $TS($S(ShortCircuitExpression, $E($S(__, QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression))), function($skip, $loc, $0, $1, $2) {
1289
1394
  if ($2)
1290
1395
  return $0;
1291
1396
  return $1;
@@ -1318,7 +1423,7 @@ var require_parser = __commonJS({
1318
1423
  var PrimaryExpression$6 = ClassExpression;
1319
1424
  var PrimaryExpression$7 = RegularExpressionLiteral;
1320
1425
  var PrimaryExpression$8 = TemplateLiteral;
1321
- var PrimaryExpression$9 = $S(OpenParen, Expression, __, CloseParen);
1426
+ var PrimaryExpression$9 = $S(OpenParen, ExtendedExpression, __, CloseParen);
1322
1427
  var PrimaryExpression$10 = JSXElement;
1323
1428
  var PrimaryExpression$11 = JSXFragment;
1324
1429
  function PrimaryExpression(state) {
@@ -1414,7 +1519,7 @@ var require_parser = __commonJS({
1414
1519
  return ClassElement$0(state) || ClassElement$1(state);
1415
1520
  }
1416
1521
  }
1417
- var FieldDefinition$0 = $TS($S(InsertReadonly, ClassElementName, $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1522
+ var FieldDefinition$0 = $TS($S(InsertReadonly, ClassElementName, $E(TypeSuffix), __, ConstAssignment, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1418
1523
  var r = $1;
1419
1524
  var ca = $5;
1420
1525
  r.children[0].$loc = {
@@ -1457,27 +1562,22 @@ var require_parser = __commonJS({
1457
1562
  return AtAccessor$0(state);
1458
1563
  }
1459
1564
  }
1460
- var LeftHandSideExpression$0 = NewExpression;
1461
- var LeftHandSideExpression$1 = CallExpression;
1565
+ var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L9, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
1566
+ if ($1.length)
1567
+ return $0;
1568
+ return $2;
1569
+ });
1462
1570
  function LeftHandSideExpression(state) {
1463
- if (state.tokenize) {
1464
- return $TOKEN("LeftHandSideExpression", state, LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state));
1465
- } else {
1466
- return LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state);
1467
- }
1468
- }
1469
- var NewExpression$0 = $S($P($S(New, __)), CallExpression);
1470
- function NewExpression(state) {
1471
1571
  if (state.verbose)
1472
- console.log("ENTER:", "NewExpression");
1572
+ console.log("ENTER:", "LeftHandSideExpression");
1473
1573
  if (state.tokenize) {
1474
- return $TOKEN("NewExpression", state, NewExpression$0(state));
1574
+ return $TOKEN("LeftHandSideExpression", state, LeftHandSideExpression$0(state));
1475
1575
  } else {
1476
- return NewExpression$0(state);
1576
+ return LeftHandSideExpression$0(state);
1477
1577
  }
1478
1578
  }
1479
- var CallExpression$0 = $S($EXPECT($L9, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1480
- var CallExpression$1 = $S($EXPECT($L10, fail, 'CallExpression "import"'), __, OpenParen, AssignmentExpression, __, CloseParen);
1579
+ var CallExpression$0 = $S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1580
+ var CallExpression$1 = $S($EXPECT($L11, fail, 'CallExpression "import"'), __, OpenParen, ExtendedExpression, __, CloseParen);
1481
1581
  var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
1482
1582
  if ($2.length)
1483
1583
  return $0;
@@ -1510,7 +1610,7 @@ var require_parser = __commonJS({
1510
1610
  return OptionalShorthand$0(state);
1511
1611
  }
1512
1612
  }
1513
- var NonNullAssertion$0 = $T($EXPECT($L11, fail, 'NonNullAssertion "!"'), function(value) {
1613
+ var NonNullAssertion$0 = $T($EXPECT($L12, fail, 'NonNullAssertion "!"'), function(value) {
1514
1614
  return { "ts": true, "children": value };
1515
1615
  });
1516
1616
  function NonNullAssertion(state) {
@@ -1522,7 +1622,7 @@ var require_parser = __commonJS({
1522
1622
  return NonNullAssertion$0(state);
1523
1623
  }
1524
1624
  }
1525
- var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(of)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1625
+ var AdditionalReservedWords$0 = $R$0($EXPECT($R0, fail, "AdditionalReservedWords /(of|then)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1526
1626
  function AdditionalReservedWords(state) {
1527
1627
  if (state.verbose)
1528
1628
  console.log("ENTER:", "AdditionalReservedWords");
@@ -1537,8 +1637,8 @@ var require_parser = __commonJS({
1537
1637
  return $0;
1538
1638
  return $1;
1539
1639
  });
1540
- var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1541
- var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1640
+ var MemberExpression$1 = SuperProperty;
1641
+ var MemberExpression$2 = MetaProperty;
1542
1642
  function MemberExpression(state) {
1543
1643
  if (state.tokenize) {
1544
1644
  return $TOKEN("MemberExpression", state, MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state));
@@ -1546,9 +1646,13 @@ var require_parser = __commonJS({
1546
1646
  return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1547
1647
  }
1548
1648
  }
1549
- var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent);
1649
+ var MemberExpressionRest$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
1650
+ if ($1)
1651
+ return $0;
1652
+ return $2;
1653
+ });
1550
1654
  var MemberExpressionRest$1 = $S($E($S($Y(EOS), IndentedFurther)), PropertyAccess);
1551
- var MemberExpressionRest$2 = $TS($S($E($S($Y(EOS), IndentedFurther)), $EXPECT($L12, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
1655
+ var MemberExpressionRest$2 = $TS($S($E($S($Y(EOS), IndentedFurther)), $EXPECT($L13, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
1552
1656
  var id = $3;
1553
1657
  if (id)
1554
1658
  return [".prototype.", id];
@@ -1562,7 +1666,7 @@ var require_parser = __commonJS({
1562
1666
  return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
1563
1667
  }
1564
1668
  }
1565
- var MemberBracketContent$0 = $TS($S(OpenBracket, Expression, $E($S($C(DotDotDot, DotDot), $E(Expression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1669
+ var MemberBracketContent$0 = $TS($S(OpenBracket, ExtendedExpression, $E($S($C(DotDotDot, DotDot), $E(ExtendedExpression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1566
1670
  if ($3) {
1567
1671
  const sep = $3[0];
1568
1672
  const end = $3[1];
@@ -1573,17 +1677,23 @@ var require_parser = __commonJS({
1573
1677
  if (!end) {
1574
1678
  return {
1575
1679
  type: "SliceExpression",
1680
+ start: $2,
1681
+ end: void 0,
1576
1682
  children: [$1, $2, $4, $5]
1577
1683
  };
1578
1684
  }
1579
1685
  if (inclusive) {
1580
1686
  return {
1581
1687
  type: "SliceExpression",
1688
+ start: $2,
1689
+ end: ["1 + ", end],
1582
1690
  children: [$1, $2, sep, ["1 + ", end, " || 1/0"], $4, $5]
1583
1691
  };
1584
1692
  }
1585
1693
  return {
1586
1694
  type: "SliceExpression",
1695
+ start: $2,
1696
+ end,
1587
1697
  children: [$1, $2, sep, end, $4, $5]
1588
1698
  };
1589
1699
  }
@@ -1608,7 +1718,7 @@ var require_parser = __commonJS({
1608
1718
  return PropertyAccess$0(state);
1609
1719
  }
1610
1720
  }
1611
- var SuperProperty$0 = $S($EXPECT($L13, fail, 'SuperProperty "super["'), Expression, __, CloseBracket);
1721
+ var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
1612
1722
  function SuperProperty(state) {
1613
1723
  if (state.verbose)
1614
1724
  console.log("ENTER:", "SuperProperty");
@@ -1619,7 +1729,7 @@ var require_parser = __commonJS({
1619
1729
  }
1620
1730
  }
1621
1731
  var MetaProperty$0 = $S(New, Dot, Target);
1622
- var MetaProperty$1 = $TV($EXPECT($L14, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
1732
+ var MetaProperty$1 = $TV($EXPECT($L15, fail, 'MetaProperty "import.meta"'), function($skip, $loc, $0, $1) {
1623
1733
  return { $loc, token: $1 };
1624
1734
  });
1625
1735
  function MetaProperty(state) {
@@ -1631,7 +1741,11 @@ var require_parser = __commonJS({
1631
1741
  }
1632
1742
  var Parameters$0 = NonEmptyParameters;
1633
1743
  var Parameters$1 = $TV($EXPECT($L0, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
1634
- return { $loc, token: "()" };
1744
+ return {
1745
+ type: "Parameters",
1746
+ children: [{ $loc, token: "()" }],
1747
+ names: []
1748
+ };
1635
1749
  });
1636
1750
  function Parameters(state) {
1637
1751
  if (state.tokenize) {
@@ -1640,7 +1754,13 @@ var require_parser = __commonJS({
1640
1754
  return Parameters$0(state) || Parameters$1(state);
1641
1755
  }
1642
1756
  }
1643
- var NonEmptyParameters$0 = $S($E(TypeParameters), OpenParen, $Q(ParameterElement), $E(FunctionRestParameter), __, CloseParen);
1757
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $Q(ParameterElement), $E(FunctionRestParameter), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1758
+ return {
1759
+ type: "Parameters",
1760
+ children: $0,
1761
+ names: $3.flatMap((p) => p.names)
1762
+ };
1763
+ });
1644
1764
  function NonEmptyParameters(state) {
1645
1765
  if (state.verbose)
1646
1766
  console.log("ENTER:", "NonEmptyParameters");
@@ -1660,7 +1780,13 @@ var require_parser = __commonJS({
1660
1780
  return FunctionRestParameter$0(state);
1661
1781
  }
1662
1782
  }
1663
- var ParameterElement$0 = $S(__, $C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter);
1783
+ var ParameterElement$0 = $TS($S($C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
1784
+ return {
1785
+ type: "Parameter",
1786
+ children: $0,
1787
+ names: $1.names
1788
+ };
1789
+ });
1664
1790
  function ParameterElement(state) {
1665
1791
  if (state.verbose)
1666
1792
  console.log("ENTER:", "ParameterElement");
@@ -1671,7 +1797,7 @@ var require_parser = __commonJS({
1671
1797
  }
1672
1798
  }
1673
1799
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
1674
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L15, fail, 'ParameterElementDelimiter ")"')));
1800
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L16, fail, 'ParameterElementDelimiter ")"')));
1675
1801
  var ParameterElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
1676
1802
  return { $loc, token: "," };
1677
1803
  });
@@ -1682,7 +1808,10 @@ var require_parser = __commonJS({
1682
1808
  return ParameterElementDelimiter$0(state) || ParameterElementDelimiter$1(state) || ParameterElementDelimiter$2(state);
1683
1809
  }
1684
1810
  }
1685
- var BindingIdentifier$0 = $S(__, Identifier);
1811
+ var BindingIdentifier$0 = $TS($S(__, Identifier), function($skip, $loc, $0, $1, $2) {
1812
+ $2.children.unshift($1);
1813
+ return $2;
1814
+ });
1686
1815
  function BindingIdentifier(state) {
1687
1816
  if (state.verbose)
1688
1817
  console.log("ENTER:", "BindingIdentifier");
@@ -1692,8 +1821,16 @@ var require_parser = __commonJS({
1692
1821
  return BindingIdentifier$0(state);
1693
1822
  }
1694
1823
  }
1695
- var BindingPattern$0 = $S(__, ObjectBindingPattern);
1696
- var BindingPattern$1 = $S(__, ArrayBindingPattern);
1824
+ var BindingPattern$0 = $TS($S(__, ObjectBindingPattern), function($skip, $loc, $0, $1, $2) {
1825
+ var p = $2;
1826
+ p.children.unshift($1);
1827
+ return p;
1828
+ });
1829
+ var BindingPattern$1 = $TS($S(__, ArrayBindingPattern), function($skip, $loc, $0, $1, $2) {
1830
+ var p = $2;
1831
+ p.children.unshift($1);
1832
+ return p;
1833
+ });
1697
1834
  function BindingPattern(state) {
1698
1835
  if (state.tokenize) {
1699
1836
  return $TOKEN("BindingPattern", state, BindingPattern$0(state) || BindingPattern$1(state));
@@ -1701,32 +1838,111 @@ var require_parser = __commonJS({
1701
1838
  return BindingPattern$0(state) || BindingPattern$1(state);
1702
1839
  }
1703
1840
  }
1704
- var ObjectBindingPattern$0 = $S(OpenBrace, $Y(EOS), NestedBindingProperties, __, CloseBrace);
1705
- var ObjectBindingPattern$1 = $S(OpenBrace, $Q(BindingProperty), $E($S(__, BindingRestProperty)), __, CloseBrace);
1841
+ var ObjectBindingPattern$0 = $TS($S(OpenBrace, ObjectBindingPatternContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
1842
+ var c = $2;
1843
+ c.children.unshift($1);
1844
+ c.children.push($3, $4);
1845
+ return c;
1846
+ });
1706
1847
  function ObjectBindingPattern(state) {
1848
+ if (state.verbose)
1849
+ console.log("ENTER:", "ObjectBindingPattern");
1707
1850
  if (state.tokenize) {
1708
- return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state));
1851
+ return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state));
1709
1852
  } else {
1710
- return ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state);
1853
+ return ObjectBindingPattern$0(state);
1711
1854
  }
1712
1855
  }
1713
- var ArrayBindingPattern$0 = $S(OpenBracket, $Y(EOS), NestedBindingElements, __, CloseBracket);
1714
- var ArrayBindingPattern$1 = $S(OpenBracket, $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, CloseBracket);
1856
+ var ObjectBindingPatternContent$0 = $T($S($Y(EOS), NestedBindingProperties), function(value) {
1857
+ return value[1];
1858
+ });
1859
+ var ObjectBindingPatternContent$1 = $TS($S($Q(BindingProperty), $E($S(__, BindingRestProperty))), function($skip, $loc, $0, $1, $2) {
1860
+ var props = $1;
1861
+ var rest = $2;
1862
+ const names = props.flatMap((p) => p.names);
1863
+ if (rest) {
1864
+ props.push(...rest);
1865
+ names.push(...rest[1].names);
1866
+ }
1867
+ return {
1868
+ type: "BindingPattern",
1869
+ names,
1870
+ children: props
1871
+ };
1872
+ });
1873
+ function ObjectBindingPatternContent(state) {
1874
+ if (state.tokenize) {
1875
+ return $TOKEN("ObjectBindingPatternContent", state, ObjectBindingPatternContent$0(state) || ObjectBindingPatternContent$1(state));
1876
+ } else {
1877
+ return ObjectBindingPatternContent$0(state) || ObjectBindingPatternContent$1(state);
1878
+ }
1879
+ }
1880
+ var ArrayBindingPattern$0 = $TS($S(OpenBracket, ArrayBindingPatternContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
1881
+ var c = $2;
1882
+ return {
1883
+ type: "BindingPattern",
1884
+ names: c.names,
1885
+ children: $0
1886
+ };
1887
+ });
1715
1888
  function ArrayBindingPattern(state) {
1889
+ if (state.verbose)
1890
+ console.log("ENTER:", "ArrayBindingPattern");
1891
+ if (state.tokenize) {
1892
+ return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state));
1893
+ } else {
1894
+ return ArrayBindingPattern$0(state);
1895
+ }
1896
+ }
1897
+ var ArrayBindingPatternContent$0 = $T($S($Y(EOS), NestedBindingElements), function(value) {
1898
+ return value[1];
1899
+ });
1900
+ var ArrayBindingPatternContent$1 = $TS($S($Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement))), function($skip, $loc, $0, $1, $2) {
1901
+ var props = $1;
1902
+ var rest = $2;
1903
+ const names = props.flatMap((p) => p.names || []);
1904
+ if (rest) {
1905
+ props.push(...rest);
1906
+ names.push(...rest[1].names);
1907
+ }
1908
+ return {
1909
+ type: "BindingPattern",
1910
+ names,
1911
+ children: props
1912
+ };
1913
+ });
1914
+ function ArrayBindingPatternContent(state) {
1716
1915
  if (state.tokenize) {
1717
- return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state));
1916
+ return $TOKEN("ArrayBindingPatternContent", state, ArrayBindingPatternContent$0(state) || ArrayBindingPatternContent$1(state));
1718
1917
  } else {
1719
- return ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state);
1918
+ return ArrayBindingPatternContent$0(state) || ArrayBindingPatternContent$1(state);
1720
1919
  }
1721
1920
  }
1722
- var NestedBindingProperties$0 = $TS($S(PushIndent, $Q(NestedBindingProperty), $E($S(Nested, BindingRestProperty)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1921
+ var Elision$0 = $S(__, Comma);
1922
+ function Elision(state) {
1923
+ if (state.verbose)
1924
+ console.log("ENTER:", "Elision");
1925
+ if (state.tokenize) {
1926
+ return $TOKEN("Elision", state, Elision$0(state));
1927
+ } else {
1928
+ return Elision$0(state);
1929
+ }
1930
+ }
1931
+ var NestedBindingProperties$0 = $TS($S(PushIndent, $Q(NestedBindingProperty), $E(NestedBindingRestProperty), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1723
1932
  var props = $2;
1724
1933
  var rest = $3;
1725
- if (!props.length)
1934
+ if (!(props.length || rest))
1726
1935
  return $skip;
1727
- if (rest)
1936
+ const names = props.flatMap((p) => p.names);
1937
+ if (rest) {
1728
1938
  props.push(rest);
1729
- return props;
1939
+ names.push(...rest.names);
1940
+ }
1941
+ return {
1942
+ type: "BindingPattern",
1943
+ children: props,
1944
+ names
1945
+ };
1730
1946
  });
1731
1947
  function NestedBindingProperties(state) {
1732
1948
  if (state.verbose)
@@ -1737,7 +1953,10 @@ var require_parser = __commonJS({
1737
1953
  return NestedBindingProperties$0(state);
1738
1954
  }
1739
1955
  }
1740
- var NestedBindingProperty$0 = $S(Nested, BindingProperty);
1956
+ var NestedBindingProperty$0 = $TS($S(Nested, BindingProperty), function($skip, $loc, $0, $1, $2) {
1957
+ $2.children.unshift($1);
1958
+ return $2;
1959
+ });
1741
1960
  function NestedBindingProperty(state) {
1742
1961
  if (state.verbose)
1743
1962
  console.log("ENTER:", "NestedBindingProperty");
@@ -1747,8 +1966,22 @@ var require_parser = __commonJS({
1747
1966
  return NestedBindingProperty$0(state);
1748
1967
  }
1749
1968
  }
1750
- var BindingProperty$0 = $S(__, PropertyName, __, Colon, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter);
1751
- var BindingProperty$1 = $S(BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter);
1969
+ var BindingProperty$0 = $TS($S(__, PropertyName, __, Colon, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
1970
+ var b = $5;
1971
+ return {
1972
+ type: "BindingPattern",
1973
+ names: b.names,
1974
+ children: $0
1975
+ };
1976
+ });
1977
+ var BindingProperty$1 = $TS($S(BindingIdentifier, $E(Initializer), ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
1978
+ var b = $1;
1979
+ return {
1980
+ type: "BindingPattern",
1981
+ names: b.names,
1982
+ children: $0
1983
+ };
1984
+ });
1752
1985
  function BindingProperty(state) {
1753
1986
  if (state.tokenize) {
1754
1987
  return $TOKEN("BindingProperty", state, BindingProperty$0(state) || BindingProperty$1(state));
@@ -1756,7 +1989,23 @@ var require_parser = __commonJS({
1756
1989
  return BindingProperty$0(state) || BindingProperty$1(state);
1757
1990
  }
1758
1991
  }
1759
- var BindingRestProperty$0 = $S(DotDotDot, BindingIdentifier);
1992
+ var NestedBindingRestProperty$0 = $TS($S(Nested, BindingRestProperty), function($skip, $loc, $0, $1, $2) {
1993
+ $2.children.unshift($1);
1994
+ return $2;
1995
+ });
1996
+ function NestedBindingRestProperty(state) {
1997
+ if (state.verbose)
1998
+ console.log("ENTER:", "NestedBindingRestProperty");
1999
+ if (state.tokenize) {
2000
+ return $TOKEN("NestedBindingRestProperty", state, NestedBindingRestProperty$0(state));
2001
+ } else {
2002
+ return NestedBindingRestProperty$0(state);
2003
+ }
2004
+ }
2005
+ var BindingRestProperty$0 = $TS($S(DotDotDot, BindingIdentifier), function($skip, $loc, $0, $1, $2) {
2006
+ $2.children.unshift($1);
2007
+ return $2;
2008
+ });
1760
2009
  function BindingRestProperty(state) {
1761
2010
  if (state.verbose)
1762
2011
  console.log("ENTER:", "BindingRestProperty");
@@ -1769,11 +2018,18 @@ var require_parser = __commonJS({
1769
2018
  var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElement), $E($S(Nested, BindingRestElement)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1770
2019
  var props = $2;
1771
2020
  var rest = $3;
1772
- if (!props.length)
2021
+ if (!(props.length || rest))
1773
2022
  return $skip;
1774
- if (rest)
1775
- props.push(rest);
1776
- return props;
2023
+ const names = props.flatMap((p) => p.names);
2024
+ if (rest) {
2025
+ props.push(...rest);
2026
+ names.push(...rest[1].names);
2027
+ }
2028
+ return {
2029
+ type: "BindingPattern",
2030
+ children: props,
2031
+ names
2032
+ };
1777
2033
  });
1778
2034
  function NestedBindingElements(state) {
1779
2035
  if (state.verbose)
@@ -1784,7 +2040,10 @@ var require_parser = __commonJS({
1784
2040
  return NestedBindingElements$0(state);
1785
2041
  }
1786
2042
  }
1787
- var NestedBindingElement$0 = $S(Nested, BindingElement);
2043
+ var NestedBindingElement$0 = $TS($S(Nested, BindingElement), function($skip, $loc, $0, $1, $2) {
2044
+ $2.children.unshift($1);
2045
+ return $2;
2046
+ });
1788
2047
  function NestedBindingElement(state) {
1789
2048
  if (state.verbose)
1790
2049
  console.log("ENTER:", "NestedBindingElement");
@@ -1794,7 +2053,14 @@ var require_parser = __commonJS({
1794
2053
  return NestedBindingElement$0(state);
1795
2054
  }
1796
2055
  }
1797
- var BindingElement$0 = $S(__, $C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter);
2056
+ var BindingElement$0 = $TS($S($C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
2057
+ var binding = $1;
2058
+ return {
2059
+ type: "BindingPattern",
2060
+ names: binding.names,
2061
+ children: $0
2062
+ };
2063
+ });
1798
2064
  function BindingElement(state) {
1799
2065
  if (state.verbose)
1800
2066
  console.log("ENTER:", "BindingElement");
@@ -1804,7 +2070,11 @@ var require_parser = __commonJS({
1804
2070
  return BindingElement$0(state);
1805
2071
  }
1806
2072
  }
1807
- var BindingRestElement$0 = $S(DotDotDot, __, $C(BindingIdentifier, BindingPattern));
2073
+ var BindingRestElement$0 = $TS($S(DotDotDot, $C(BindingIdentifier, BindingPattern)), function($skip, $loc, $0, $1, $2) {
2074
+ var binding = $2;
2075
+ binding.children.unshift($1);
2076
+ return binding;
2077
+ });
1808
2078
  function BindingRestElement(state) {
1809
2079
  if (state.verbose)
1810
2080
  console.log("ENTER:", "BindingRestElement");
@@ -1824,7 +2094,21 @@ var require_parser = __commonJS({
1824
2094
  return FunctionDeclaration$0(state);
1825
2095
  }
1826
2096
  }
1827
- var FunctionSignature$0 = $S($E($S(Async, __)), Function, $E($S(Star, __)), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix));
2097
+ var FunctionSignature$0 = $TS($S($E($S(Async, __)), Function, $E(Star), $E(BindingIdentifier), __, Parameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
2098
+ var id = $4;
2099
+ var parameters = $6;
2100
+ id = id || [];
2101
+ $0[3] = id;
2102
+ return {
2103
+ type: "FunctionSignature",
2104
+ id,
2105
+ parameters,
2106
+ returnType: $7,
2107
+ ts: false,
2108
+ block: null,
2109
+ children: $0
2110
+ };
2111
+ });
1828
2112
  function FunctionSignature(state) {
1829
2113
  if (state.verbose)
1830
2114
  console.log("ENTER:", "FunctionSignature");
@@ -1834,36 +2118,34 @@ var require_parser = __commonJS({
1834
2118
  return FunctionSignature$0(state);
1835
2119
  }
1836
2120
  }
1837
- var FunctionExpression$0 = ThinArrowFunction;
1838
- var FunctionExpression$1 = $TS($S(FunctionSignature, $E(BracedBlock)), function($skip, $loc, $0, $1, $2) {
2121
+ var FunctionExpression$0 = $TS($S(FunctionSignature, $E(BracedBlock)), function($skip, $loc, $0, $1, $2) {
2122
+ var signature = $1;
1839
2123
  var block = $2;
1840
2124
  if (!block) {
1841
- return {
1842
- type: "FunctionDeclaration",
1843
- ts: true,
1844
- children: $1
1845
- };
2125
+ signature.ts = true;
2126
+ return signature;
1846
2127
  }
1847
- const suffix = $1[$1.length - 1];
2128
+ const suffix = signature.returnType;
1848
2129
  const isVoid = suffix?.children?.[1]?.[0]?.[1]?.token === "void";
1849
2130
  if (module2.config.implicitReturns && !isVoid) {
1850
2131
  module2.addImplicitReturns(block);
1851
2132
  }
1852
- $1.push(block);
1853
- return {
1854
- type: "FunctionExpression",
1855
- children: $1
1856
- };
2133
+ $1.block = block;
2134
+ $1.children.push(block);
2135
+ $1.type = "FunctionExpression";
2136
+ return $1;
1857
2137
  });
1858
2138
  function FunctionExpression(state) {
2139
+ if (state.verbose)
2140
+ console.log("ENTER:", "FunctionExpression");
1859
2141
  if (state.tokenize) {
1860
- return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
2142
+ return $TOKEN("FunctionExpression", state, FunctionExpression$0(state));
1861
2143
  } else {
1862
- return FunctionExpression$0(state) || FunctionExpression$1(state);
2144
+ return FunctionExpression$0(state);
1863
2145
  }
1864
2146
  }
1865
2147
  var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), $Q(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1866
- var params = $1;
2148
+ var parameters = $1;
1867
2149
  var suffix = $2;
1868
2150
  var arrow = $4;
1869
2151
  var block = $5;
@@ -1871,11 +2153,18 @@ var require_parser = __commonJS({
1871
2153
  if (module2.config.implicitReturns && !isVoid) {
1872
2154
  block = module2.addImplicitReturns(block);
1873
2155
  }
2156
+ const id = [];
1874
2157
  return {
1875
2158
  type: "FunctionExpression",
2159
+ id,
2160
+ parameters,
2161
+ returnType: suffix,
2162
+ ts: false,
2163
+ block,
1876
2164
  children: [
1877
2165
  { $loc: arrow.$loc, token: "function" },
1878
- params,
2166
+ id,
2167
+ parameters,
1879
2168
  suffix,
1880
2169
  block
1881
2170
  ]
@@ -1890,7 +2179,7 @@ var require_parser = __commonJS({
1890
2179
  return ThinArrowFunction$0(state);
1891
2180
  }
1892
2181
  }
1893
- var Arrow$0 = $TV($EXPECT($L16, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
2182
+ var Arrow$0 = $TV($EXPECT($L17, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
1894
2183
  return { $loc, token: $1 };
1895
2184
  });
1896
2185
  function Arrow(state) {
@@ -1902,16 +2191,20 @@ var require_parser = __commonJS({
1902
2191
  return Arrow$0(state);
1903
2192
  }
1904
2193
  }
1905
- var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
2194
+ var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockStatements, __, CloseBrace), function(value) {
1906
2195
  var exps = value[3];
1907
2196
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1908
2197
  });
1909
- var Block$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
2198
+ var Block$1 = $T($S(InsertOpenBrace, EOS, NestedBlockStatements, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1910
2199
  var exps = value[2];
1911
2200
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1912
2201
  });
1913
- var Block$2 = Statement;
1914
- var Block$3 = $S(__, Statement);
2202
+ var Block$2 = $T($S($E(Then), Statement), function(value) {
2203
+ return value[1];
2204
+ });
2205
+ var Block$3 = $T($S($E(Then), __, Statement), function(value) {
2206
+ return [value[1], value[2]];
2207
+ });
1915
2208
  function Block(state) {
1916
2209
  if (state.tokenize) {
1917
2210
  return $TOKEN("Block", state, Block$0(state) || Block$1(state) || Block$2(state) || Block$3(state));
@@ -1940,11 +2233,11 @@ var require_parser = __commonJS({
1940
2233
  return EmptyBlock$0(state);
1941
2234
  }
1942
2235
  }
1943
- var BracedBlock$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1944
- var exps = value[3];
2236
+ var BracedBlock$0 = $T($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function(value) {
2237
+ var exps = value[2];
1945
2238
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1946
2239
  });
1947
- var BracedBlock$1 = $T($S(InsertOpenBrace, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
2240
+ var BracedBlock$1 = $T($S(InsertOpenBrace, EOS, NestedBlockStatements, InsertNewline, InsertIndent, InsertCloseBrace), function(value) {
1948
2241
  var exps = value[2];
1949
2242
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1950
2243
  });
@@ -1963,58 +2256,69 @@ var require_parser = __commonJS({
1963
2256
  return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state);
1964
2257
  }
1965
2258
  }
1966
- var SingleNestedExpression$0 = $TS($S(PushIndent, $E($S(Nested, Expression, StatementDelimiter)), $C($S($N($S(Nested, Expression)), PopIndent), PopIndent)), function($skip, $loc, $0, $1, $2, $3) {
1967
- var exp = $2;
1968
- if (exp)
1969
- return exp;
1970
- return $skip;
2259
+ var BracedContent$0 = $T($S($Y(EOS), NestedBlockStatements), function(value) {
2260
+ return value[1];
1971
2261
  });
1972
- function SingleNestedExpression(state) {
1973
- if (state.verbose)
1974
- console.log("ENTER:", "SingleNestedExpression");
2262
+ var BracedContent$1 = $S($Q(TrailingComment), Statement);
2263
+ function BracedContent(state) {
1975
2264
  if (state.tokenize) {
1976
- return $TOKEN("SingleNestedExpression", state, SingleNestedExpression$0(state));
2265
+ return $TOKEN("BracedContent", state, BracedContent$0(state) || BracedContent$1(state));
1977
2266
  } else {
1978
- return SingleNestedExpression$0(state);
2267
+ return BracedContent$0(state) || BracedContent$1(state);
1979
2268
  }
1980
2269
  }
1981
- var NestedBlockExpressions$0 = $TS($S(PushIndent, $Q(BlockExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
1982
- var exps = $2;
1983
- if (!exps.length)
2270
+ var NestedBlockStatements$0 = $TS($S(PushIndent, $Q(NestedBlockStatement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2271
+ var statements = $2;
2272
+ if (!statements.length)
1984
2273
  return $skip;
1985
- return exps;
2274
+ return statements;
1986
2275
  });
1987
- function NestedBlockExpressions(state) {
2276
+ function NestedBlockStatements(state) {
1988
2277
  if (state.verbose)
1989
- console.log("ENTER:", "NestedBlockExpressions");
2278
+ console.log("ENTER:", "NestedBlockStatements");
1990
2279
  if (state.tokenize) {
1991
- return $TOKEN("NestedBlockExpressions", state, NestedBlockExpressions$0(state));
2280
+ return $TOKEN("NestedBlockStatements", state, NestedBlockStatements$0(state));
1992
2281
  } else {
1993
- return NestedBlockExpressions$0(state);
2282
+ return NestedBlockStatements$0(state);
1994
2283
  }
1995
2284
  }
1996
- var BlockExpression$0 = $S(Nested, StatementListItem, StatementDelimiter);
1997
- function BlockExpression(state) {
2285
+ var NestedBlockStatement$0 = $S(Nested, StatementListItem, StatementDelimiter);
2286
+ function NestedBlockStatement(state) {
1998
2287
  if (state.verbose)
1999
- console.log("ENTER:", "BlockExpression");
2288
+ console.log("ENTER:", "NestedBlockStatement");
2000
2289
  if (state.tokenize) {
2001
- return $TOKEN("BlockExpression", state, BlockExpression$0(state));
2290
+ return $TOKEN("NestedBlockStatement", state, NestedBlockStatement$0(state));
2002
2291
  } else {
2003
- return BlockExpression$0(state);
2292
+ return NestedBlockStatement$0(state);
2004
2293
  }
2005
2294
  }
2006
- var Literal$0 = NullLiteral;
2007
- var Literal$1 = BooleanLiteral;
2008
- var Literal$2 = NumericLiteral;
2009
- var Literal$3 = StringLiteral;
2295
+ var Literal$0 = $TS($S(LiteralContent), function($skip, $loc, $0, $1) {
2296
+ return {
2297
+ type: "Literal",
2298
+ children: $0
2299
+ };
2300
+ });
2010
2301
  function Literal(state) {
2302
+ if (state.verbose)
2303
+ console.log("ENTER:", "Literal");
2304
+ if (state.tokenize) {
2305
+ return $TOKEN("Literal", state, Literal$0(state));
2306
+ } else {
2307
+ return Literal$0(state);
2308
+ }
2309
+ }
2310
+ var LiteralContent$0 = NullLiteral;
2311
+ var LiteralContent$1 = BooleanLiteral;
2312
+ var LiteralContent$2 = NumericLiteral;
2313
+ var LiteralContent$3 = StringLiteral;
2314
+ function LiteralContent(state) {
2011
2315
  if (state.tokenize) {
2012
- return $TOKEN("Literal", state, Literal$0(state) || Literal$1(state) || Literal$2(state) || Literal$3(state));
2316
+ return $TOKEN("LiteralContent", state, LiteralContent$0(state) || LiteralContent$1(state) || LiteralContent$2(state) || LiteralContent$3(state));
2013
2317
  } else {
2014
- return Literal$0(state) || Literal$1(state) || Literal$2(state) || Literal$3(state);
2318
+ return LiteralContent$0(state) || LiteralContent$1(state) || LiteralContent$2(state) || LiteralContent$3(state);
2015
2319
  }
2016
2320
  }
2017
- var NullLiteral$0 = $TV($EXPECT($L17, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
2321
+ var NullLiteral$0 = $TV($EXPECT($L18, fail, 'NullLiteral "null"'), function($skip, $loc, $0, $1) {
2018
2322
  return { $loc, token: $1 };
2019
2323
  });
2020
2324
  function NullLiteral(state) {
@@ -2027,7 +2331,7 @@ var require_parser = __commonJS({
2027
2331
  }
2028
2332
  }
2029
2333
  var BooleanLiteral$0 = CoffeeScriptBooleanLiteral;
2030
- var BooleanLiteral$1 = $TV($C($EXPECT($L18, fail, 'BooleanLiteral "true"'), $EXPECT($L19, fail, 'BooleanLiteral "false"')), function($skip, $loc, $0, $1) {
2334
+ var BooleanLiteral$1 = $TV($C($EXPECT($L19, fail, 'BooleanLiteral "true"'), $EXPECT($L20, fail, 'BooleanLiteral "false"')), function($skip, $loc, $0, $1) {
2031
2335
  return { $loc, token: $1 };
2032
2336
  });
2033
2337
  function BooleanLiteral(state) {
@@ -2037,10 +2341,10 @@ var require_parser = __commonJS({
2037
2341
  return BooleanLiteral$0(state) || BooleanLiteral$1(state);
2038
2342
  }
2039
2343
  }
2040
- var CoffeeScriptBooleanLiteral$0 = $TV($C($EXPECT($L20, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "on"')), function($skip, $loc, $0, $1) {
2344
+ var CoffeeScriptBooleanLiteral$0 = $TV($C($EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "on"')), function($skip, $loc, $0, $1) {
2041
2345
  return { $loc, token: "true" };
2042
2346
  });
2043
- var CoffeeScriptBooleanLiteral$1 = $TV($C($EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "off"')), function($skip, $loc, $0, $1) {
2347
+ var CoffeeScriptBooleanLiteral$1 = $TV($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "off"')), function($skip, $loc, $0, $1) {
2044
2348
  return { $loc, token: "false" };
2045
2349
  });
2046
2350
  function CoffeeScriptBooleanLiteral(state) {
@@ -2050,7 +2354,7 @@ var require_parser = __commonJS({
2050
2354
  return CoffeeScriptBooleanLiteral$0(state) || CoffeeScriptBooleanLiteral$1(state);
2051
2355
  }
2052
2356
  }
2053
- var Comma$0 = $TV($EXPECT($L24, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
2357
+ var Comma$0 = $TV($EXPECT($L25, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
2054
2358
  return { $loc, token: $1 };
2055
2359
  });
2056
2360
  function Comma(state) {
@@ -2077,8 +2381,12 @@ var require_parser = __commonJS({
2077
2381
  var IdentifierName$0 = $TR($EXPECT($R1, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2078
2382
  return {
2079
2383
  type: "Identifier",
2080
- $loc,
2081
- token: $0
2384
+ name: $0,
2385
+ names: [$0],
2386
+ children: [{
2387
+ $loc,
2388
+ token: $0
2389
+ }]
2082
2390
  };
2083
2391
  });
2084
2392
  function IdentifierName(state) {
@@ -2100,19 +2408,44 @@ var require_parser = __commonJS({
2100
2408
  return IdentifierReference$0(state);
2101
2409
  }
2102
2410
  }
2103
- var ArrayLiteral$0 = $S(OpenBracket, NestedElementList, __, CloseBracket);
2104
- var ArrayLiteral$1 = $S(OpenBracket, ElementList, __, CloseBracket);
2411
+ var ArrayLiteral$0 = $TS($S(OpenBracket, ArrayLiteralContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
2412
+ let children;
2413
+ if (Array.isArray($2)) {
2414
+ children = [$1, ...$2, ...$3, $4];
2415
+ } else {
2416
+ children = [$1, $2, ...$3, $4];
2417
+ }
2418
+ const names = children.flatMap((c) => {
2419
+ return c.names || [];
2420
+ });
2421
+ return {
2422
+ type: "ArrayExpression",
2423
+ children,
2424
+ names
2425
+ };
2426
+ });
2105
2427
  function ArrayLiteral(state) {
2428
+ if (state.verbose)
2429
+ console.log("ENTER:", "ArrayLiteral");
2106
2430
  if (state.tokenize) {
2107
- return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state) || ArrayLiteral$1(state));
2431
+ return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state));
2108
2432
  } else {
2109
- return ArrayLiteral$0(state) || ArrayLiteral$1(state);
2433
+ return ArrayLiteral$0(state);
2434
+ }
2435
+ }
2436
+ var ArrayLiteralContent$0 = NestedElementList;
2437
+ var ArrayLiteralContent$1 = ElementList;
2438
+ function ArrayLiteralContent(state) {
2439
+ if (state.tokenize) {
2440
+ return $TOKEN("ArrayLiteralContent", state, ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state));
2441
+ } else {
2442
+ return ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state);
2110
2443
  }
2111
2444
  }
2112
2445
  var NestedElementList$0 = $TS($S(PushIndent, $Q(NestedElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2113
2446
  var elements = $2;
2114
2447
  if (elements.length)
2115
- return elements;
2448
+ return elements.flat();
2116
2449
  return $skip;
2117
2450
  });
2118
2451
  function NestedElementList(state) {
@@ -2124,7 +2457,13 @@ var require_parser = __commonJS({
2124
2457
  return NestedElementList$0(state);
2125
2458
  }
2126
2459
  }
2127
- var NestedElement$0 = $S(Nested, InlineElementList, ArrayElementDelimiter);
2460
+ var NestedElement$0 = $TS($S(Nested, ElementList, ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
2461
+ const result = [...$1, ...$2];
2462
+ if ($3) {
2463
+ result.push($3);
2464
+ }
2465
+ return result;
2466
+ });
2128
2467
  function NestedElement(state) {
2129
2468
  if (state.verbose)
2130
2469
  console.log("ENTER:", "NestedElement");
@@ -2135,7 +2474,7 @@ var require_parser = __commonJS({
2135
2474
  }
2136
2475
  }
2137
2476
  var ArrayElementDelimiter$0 = $S($Q(_), Comma);
2138
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L25, fail, 'ArrayElementDelimiter "]"')));
2477
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ArrayElementDelimiter "]"')));
2139
2478
  var ArrayElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
2140
2479
  return { $loc, token: "," };
2141
2480
  });
@@ -2146,7 +2485,15 @@ var require_parser = __commonJS({
2146
2485
  return ArrayElementDelimiter$0(state) || ArrayElementDelimiter$1(state) || ArrayElementDelimiter$2(state);
2147
2486
  }
2148
2487
  }
2149
- var ElementList$0 = $S(ArrayElementExpression, $Q($S(__, Comma, __, ArrayElementExpression)));
2488
+ var ElementList$0 = $TS($S(ArrayElementExpression, $Q(ElementListRest)), function($skip, $loc, $0, $1, $2) {
2489
+ if ($2.length) {
2490
+ return [].concat($1 || [], ...$2);
2491
+ }
2492
+ if ($1) {
2493
+ return [].concat($1);
2494
+ }
2495
+ return [];
2496
+ });
2150
2497
  function ElementList(state) {
2151
2498
  if (state.verbose)
2152
2499
  console.log("ENTER:", "ElementList");
@@ -2156,17 +2503,28 @@ var require_parser = __commonJS({
2156
2503
  return ElementList$0(state);
2157
2504
  }
2158
2505
  }
2159
- var InlineElementList$0 = $S(ArrayElementExpression, $Q($S($Q(_), Comma, $Q(_), ArrayElementExpression)));
2160
- function InlineElementList(state) {
2506
+ var ElementListRest$0 = $TS($S(__, Comma, __, ArrayElementExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
2507
+ const result = [...$1, $2, ...$3];
2508
+ if ($4) {
2509
+ result.push($4);
2510
+ }
2511
+ return result;
2512
+ });
2513
+ function ElementListRest(state) {
2161
2514
  if (state.verbose)
2162
- console.log("ENTER:", "InlineElementList");
2515
+ console.log("ENTER:", "ElementListRest");
2163
2516
  if (state.tokenize) {
2164
- return $TOKEN("InlineElementList", state, InlineElementList$0(state));
2517
+ return $TOKEN("ElementListRest", state, ElementListRest$0(state));
2165
2518
  } else {
2166
- return InlineElementList$0(state);
2519
+ return ElementListRest$0(state);
2167
2520
  }
2168
2521
  }
2169
- var ArrayElementExpression$0 = $E($S($E($S(DotDotDot, __)), AssignmentExpression));
2522
+ var ArrayElementExpression$0 = $TV($E($S($E($S(DotDotDot, __)), ExtendedExpression)), function($skip, $loc, $0, $1) {
2523
+ if ($1 && !$1[0]) {
2524
+ return $1[1];
2525
+ }
2526
+ return $1;
2527
+ });
2170
2528
  function ArrayElementExpression(state) {
2171
2529
  if (state.verbose)
2172
2530
  console.log("ENTER:", "ArrayElementExpression");
@@ -2176,28 +2534,69 @@ var require_parser = __commonJS({
2176
2534
  return ArrayElementExpression$0(state);
2177
2535
  }
2178
2536
  }
2179
- var Elision$0 = $S(__, Comma);
2180
- function Elision(state) {
2537
+ var ObjectLiteral$0 = BracedObjectLiteral;
2538
+ var ObjectLiteral$1 = NestedObjectLiteral;
2539
+ function ObjectLiteral(state) {
2540
+ if (state.tokenize) {
2541
+ return $TOKEN("ObjectLiteral", state, ObjectLiteral$0(state) || ObjectLiteral$1(state));
2542
+ } else {
2543
+ return ObjectLiteral$0(state) || ObjectLiteral$1(state);
2544
+ }
2545
+ }
2546
+ var BracedObjectLiteral$0 = $TS($S(OpenBrace, $E(BracedObjectLiteralContent), __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
2547
+ if ($2) {
2548
+ $2.unshift($1);
2549
+ if ($3.length) {
2550
+ $2.push(...$3);
2551
+ }
2552
+ $2.push($4);
2553
+ return {
2554
+ type: "ObjectExpression",
2555
+ children: $2,
2556
+ names: $2.flatMap((c) => {
2557
+ return c.names || [];
2558
+ })
2559
+ };
2560
+ }
2561
+ return {
2562
+ type: "ObjectExpression",
2563
+ children: [$1, ...$3, $4],
2564
+ names: []
2565
+ };
2566
+ });
2567
+ function BracedObjectLiteral(state) {
2181
2568
  if (state.verbose)
2182
- console.log("ENTER:", "Elision");
2569
+ console.log("ENTER:", "BracedObjectLiteral");
2183
2570
  if (state.tokenize) {
2184
- return $TOKEN("Elision", state, Elision$0(state));
2571
+ return $TOKEN("BracedObjectLiteral", state, BracedObjectLiteral$0(state));
2185
2572
  } else {
2186
- return Elision$0(state);
2573
+ return BracedObjectLiteral$0(state);
2187
2574
  }
2188
2575
  }
2189
- var ObjectLiteral$0 = $S(OpenBrace, $Y(EOS), NestedPropertyDefinitions, __, CloseBrace);
2190
- var ObjectLiteral$1 = $S(OpenBrace, __, PropertyDefinitionList, __, $E($S(Comma, __)), CloseBrace);
2191
- var ObjectLiteral$2 = $S(OpenBrace, __, CloseBrace);
2192
- var ObjectLiteral$3 = NestedObjectLiteral;
2193
- function ObjectLiteral(state) {
2576
+ var BracedObjectLiteralContent$0 = $T($S($Y(EOS), NestedPropertyDefinitions), function(value) {
2577
+ return value[1];
2578
+ });
2579
+ var BracedObjectLiteralContent$1 = $TS($S(__, PropertyDefinitionList, $E($S(__, Comma))), function($skip, $loc, $0, $1, $2, $3) {
2580
+ if ($1.length) {
2581
+ $2.splice(0, 0, ...$1);
2582
+ }
2583
+ if ($3) {
2584
+ $2.push($3);
2585
+ }
2586
+ return $2;
2587
+ });
2588
+ function BracedObjectLiteralContent(state) {
2194
2589
  if (state.tokenize) {
2195
- return $TOKEN("ObjectLiteral", state, ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state));
2590
+ return $TOKEN("BracedObjectLiteralContent", state, BracedObjectLiteralContent$0(state) || BracedObjectLiteralContent$1(state));
2196
2591
  } else {
2197
- return ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state);
2592
+ return BracedObjectLiteralContent$0(state) || BracedObjectLiteralContent$1(state);
2198
2593
  }
2199
2594
  }
2200
- var NestedObjectLiteral$0 = $S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace);
2595
+ var NestedObjectLiteral$0 = $TS($S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2596
+ $3.unshift($1);
2597
+ $3.push($4, $5, $6);
2598
+ return $3;
2599
+ });
2201
2600
  function NestedObjectLiteral(state) {
2202
2601
  if (state.verbose)
2203
2602
  console.log("ENTER:", "NestedObjectLiteral");
@@ -2211,7 +2610,7 @@ var require_parser = __commonJS({
2211
2610
  var defs = $2;
2212
2611
  if (!defs.length)
2213
2612
  return $skip;
2214
- return defs;
2613
+ return defs.flat();
2215
2614
  });
2216
2615
  function NestedPropertyDefinitions(state) {
2217
2616
  if (state.verbose)
@@ -2222,7 +2621,13 @@ var require_parser = __commonJS({
2222
2621
  return NestedPropertyDefinitions$0(state);
2223
2622
  }
2224
2623
  }
2225
- var NestedPropertyDefinition$0 = $S(Nested, PropertyDefinition, ObjectPropertyDelimiter);
2624
+ var NestedPropertyDefinition$0 = $TS($S(Nested, PropertyDefinition, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
2625
+ const result = [...$1, $2];
2626
+ if ($3) {
2627
+ result.push($3);
2628
+ }
2629
+ return result;
2630
+ });
2226
2631
  function NestedPropertyDefinition(state) {
2227
2632
  if (state.verbose)
2228
2633
  console.log("ENTER:", "NestedPropertyDefinition");
@@ -2233,7 +2638,7 @@ var require_parser = __commonJS({
2233
2638
  }
2234
2639
  }
2235
2640
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
2236
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ObjectPropertyDelimiter "}"')));
2641
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'ObjectPropertyDelimiter "}"')));
2237
2642
  var ObjectPropertyDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
2238
2643
  return { $loc, token: "," };
2239
2644
  });
@@ -2244,7 +2649,15 @@ var require_parser = __commonJS({
2244
2649
  return ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state);
2245
2650
  }
2246
2651
  }
2247
- var PropertyDefinitionList$0 = $S(PropertyDefinition, $Q($S(__, Comma, __, PropertyDefinition)));
2652
+ var PropertyDefinitionList$0 = $TS($S(PropertyDefinition, $Q($S(__, Comma, __, PropertyDefinition))), function($skip, $loc, $0, $1, $2) {
2653
+ if ($2.length) {
2654
+ return [].concat($1 || [], ...$2);
2655
+ }
2656
+ if ($1) {
2657
+ return [].concat($1);
2658
+ }
2659
+ return [];
2660
+ });
2248
2661
  function PropertyDefinitionList(state) {
2249
2662
  if (state.verbose)
2250
2663
  console.log("ENTER:", "PropertyDefinitionList");
@@ -2254,9 +2667,16 @@ var require_parser = __commonJS({
2254
2667
  return PropertyDefinitionList$0(state);
2255
2668
  }
2256
2669
  }
2257
- var PropertyDefinition$0 = $S(PropertyName, __, Colon, AssignmentExpression);
2670
+ var PropertyDefinition$0 = $TS($S(PropertyName, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
2671
+ var exp = $4;
2672
+ return {
2673
+ type: "Property",
2674
+ children: $0,
2675
+ names: exp.names || []
2676
+ };
2677
+ });
2258
2678
  var PropertyDefinition$1 = MethodDefinition;
2259
- var PropertyDefinition$2 = $S(DotDotDot, AssignmentExpression);
2679
+ var PropertyDefinition$2 = $S(DotDotDot, ExtendedExpression);
2260
2680
  var PropertyDefinition$3 = IdentifierReference;
2261
2681
  function PropertyDefinition(state) {
2262
2682
  if (state.tokenize) {
@@ -2268,7 +2688,7 @@ var require_parser = __commonJS({
2268
2688
  var PropertyName$0 = NumericLiteral;
2269
2689
  var PropertyName$1 = StringLiteral;
2270
2690
  var PropertyName$2 = IdentifierName;
2271
- var PropertyName$3 = $S(OpenBracket, AssignmentExpression, __, $EXPECT($L25, fail, 'PropertyName "]"'));
2691
+ var PropertyName$3 = $S(OpenBracket, ExtendedExpression, __, CloseBracket);
2272
2692
  function PropertyName(state) {
2273
2693
  if (state.tokenize) {
2274
2694
  return $TOKEN("PropertyName", state, PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state));
@@ -2318,7 +2738,11 @@ var require_parser = __commonJS({
2318
2738
  var MethodSignature$1 = $TS($S($E(MethodModifier), ClassElementName, $Q(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2319
2739
  var name = $2;
2320
2740
  var suffix = $5;
2321
- name = name.token.match(/^(?:"|')/) ? name.token.slice(1, -1) : name.token;
2741
+ if (name.name) {
2742
+ name = name.name;
2743
+ } else if (name.token) {
2744
+ name = name.token.match(/^(?:"|')/) ? name.token.slice(1, -1) : name.token;
2745
+ }
2322
2746
  return {
2323
2747
  type: "MethodSignature",
2324
2748
  children: $0,
@@ -2370,25 +2794,25 @@ var require_parser = __commonJS({
2370
2794
  return AssignmentOp$0(state);
2371
2795
  }
2372
2796
  }
2373
- var AssignmentOpSymbol$0 = $EXPECT($L27, fail, 'AssignmentOpSymbol "**="');
2374
- var AssignmentOpSymbol$1 = $EXPECT($L28, fail, 'AssignmentOpSymbol "*="');
2375
- var AssignmentOpSymbol$2 = $EXPECT($L29, fail, 'AssignmentOpSymbol "/="');
2376
- var AssignmentOpSymbol$3 = $EXPECT($L30, fail, 'AssignmentOpSymbol "%="');
2377
- var AssignmentOpSymbol$4 = $EXPECT($L31, fail, 'AssignmentOpSymbol "+="');
2378
- var AssignmentOpSymbol$5 = $EXPECT($L32, fail, 'AssignmentOpSymbol "-="');
2379
- var AssignmentOpSymbol$6 = $EXPECT($L33, fail, 'AssignmentOpSymbol "<<="');
2380
- var AssignmentOpSymbol$7 = $EXPECT($L34, fail, 'AssignmentOpSymbol ">>>="');
2381
- var AssignmentOpSymbol$8 = $EXPECT($L35, fail, 'AssignmentOpSymbol ">>="');
2382
- var AssignmentOpSymbol$9 = $EXPECT($L36, fail, 'AssignmentOpSymbol "&&="');
2383
- var AssignmentOpSymbol$10 = $EXPECT($L37, fail, 'AssignmentOpSymbol "&="');
2384
- var AssignmentOpSymbol$11 = $EXPECT($L38, fail, 'AssignmentOpSymbol "^="');
2385
- var AssignmentOpSymbol$12 = $EXPECT($L39, fail, 'AssignmentOpSymbol "||="');
2386
- var AssignmentOpSymbol$13 = $EXPECT($L40, fail, 'AssignmentOpSymbol "|="');
2387
- var AssignmentOpSymbol$14 = $EXPECT($L41, fail, 'AssignmentOpSymbol "??="');
2388
- var AssignmentOpSymbol$15 = $T($EXPECT($L42, fail, 'AssignmentOpSymbol "?="'), function(value) {
2797
+ var AssignmentOpSymbol$0 = $EXPECT($L28, fail, 'AssignmentOpSymbol "**="');
2798
+ var AssignmentOpSymbol$1 = $EXPECT($L29, fail, 'AssignmentOpSymbol "*="');
2799
+ var AssignmentOpSymbol$2 = $EXPECT($L30, fail, 'AssignmentOpSymbol "/="');
2800
+ var AssignmentOpSymbol$3 = $EXPECT($L31, fail, 'AssignmentOpSymbol "%="');
2801
+ var AssignmentOpSymbol$4 = $EXPECT($L32, fail, 'AssignmentOpSymbol "+="');
2802
+ var AssignmentOpSymbol$5 = $EXPECT($L33, fail, 'AssignmentOpSymbol "-="');
2803
+ var AssignmentOpSymbol$6 = $EXPECT($L34, fail, 'AssignmentOpSymbol "<<="');
2804
+ var AssignmentOpSymbol$7 = $EXPECT($L35, fail, 'AssignmentOpSymbol ">>>="');
2805
+ var AssignmentOpSymbol$8 = $EXPECT($L36, fail, 'AssignmentOpSymbol ">>="');
2806
+ var AssignmentOpSymbol$9 = $EXPECT($L37, fail, 'AssignmentOpSymbol "&&="');
2807
+ var AssignmentOpSymbol$10 = $EXPECT($L38, fail, 'AssignmentOpSymbol "&="');
2808
+ var AssignmentOpSymbol$11 = $EXPECT($L39, fail, 'AssignmentOpSymbol "^="');
2809
+ var AssignmentOpSymbol$12 = $EXPECT($L40, fail, 'AssignmentOpSymbol "||="');
2810
+ var AssignmentOpSymbol$13 = $EXPECT($L41, fail, 'AssignmentOpSymbol "|="');
2811
+ var AssignmentOpSymbol$14 = $EXPECT($L42, fail, 'AssignmentOpSymbol "??="');
2812
+ var AssignmentOpSymbol$15 = $T($EXPECT($L43, fail, 'AssignmentOpSymbol "?="'), function(value) {
2389
2813
  return "??=";
2390
2814
  });
2391
- var AssignmentOpSymbol$16 = $EXPECT($L43, fail, 'AssignmentOpSymbol "="');
2815
+ var AssignmentOpSymbol$16 = $EXPECT($L44, fail, 'AssignmentOpSymbol "="');
2392
2816
  function AssignmentOpSymbol(state) {
2393
2817
  if (state.tokenize) {
2394
2818
  return $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));
@@ -2408,68 +2832,74 @@ var require_parser = __commonJS({
2408
2832
  return BinaryOp$0(state);
2409
2833
  }
2410
2834
  }
2411
- var BinaryOpSymbol$0 = $EXPECT($L44, fail, 'BinaryOpSymbol "**"');
2412
- var BinaryOpSymbol$1 = $EXPECT($L45, fail, 'BinaryOpSymbol "*"');
2413
- var BinaryOpSymbol$2 = $EXPECT($L46, fail, 'BinaryOpSymbol "/"');
2414
- var BinaryOpSymbol$3 = $EXPECT($L47, fail, 'BinaryOpSymbol "%"');
2415
- var BinaryOpSymbol$4 = $EXPECT($L48, fail, 'BinaryOpSymbol "+"');
2416
- var BinaryOpSymbol$5 = $EXPECT($L49, fail, 'BinaryOpSymbol "-"');
2417
- var BinaryOpSymbol$6 = $EXPECT($L50, fail, 'BinaryOpSymbol "<="');
2418
- var BinaryOpSymbol$7 = $EXPECT($L51, fail, 'BinaryOpSymbol ">="');
2419
- var BinaryOpSymbol$8 = $EXPECT($L52, fail, 'BinaryOpSymbol "<<"');
2835
+ var BinaryOpSymbol$0 = $EXPECT($L45, fail, 'BinaryOpSymbol "**"');
2836
+ var BinaryOpSymbol$1 = $EXPECT($L46, fail, 'BinaryOpSymbol "*"');
2837
+ var BinaryOpSymbol$2 = $EXPECT($L47, fail, 'BinaryOpSymbol "/"');
2838
+ var BinaryOpSymbol$3 = $EXPECT($L48, fail, 'BinaryOpSymbol "%"');
2839
+ var BinaryOpSymbol$4 = $EXPECT($L49, fail, 'BinaryOpSymbol "+"');
2840
+ var BinaryOpSymbol$5 = $EXPECT($L50, fail, 'BinaryOpSymbol "-"');
2841
+ var BinaryOpSymbol$6 = $EXPECT($L51, fail, 'BinaryOpSymbol "<="');
2842
+ var BinaryOpSymbol$7 = $EXPECT($L52, fail, 'BinaryOpSymbol ">="');
2843
+ var BinaryOpSymbol$8 = $EXPECT($L53, fail, 'BinaryOpSymbol "<<"');
2420
2844
  var BinaryOpSymbol$9 = $EXPECT($L4, fail, 'BinaryOpSymbol "<"');
2421
- var BinaryOpSymbol$10 = $EXPECT($L53, fail, 'BinaryOpSymbol ">>>"');
2422
- var BinaryOpSymbol$11 = $EXPECT($L54, fail, 'BinaryOpSymbol ">>"');
2423
- var BinaryOpSymbol$12 = $EXPECT($L55, fail, 'BinaryOpSymbol ">"');
2424
- var BinaryOpSymbol$13 = $EXPECT($L56, fail, 'BinaryOpSymbol "!=="');
2425
- var BinaryOpSymbol$14 = $TV($EXPECT($L57, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
2845
+ var BinaryOpSymbol$10 = $EXPECT($L54, fail, 'BinaryOpSymbol ">>>"');
2846
+ var BinaryOpSymbol$11 = $EXPECT($L55, fail, 'BinaryOpSymbol ">>"');
2847
+ var BinaryOpSymbol$12 = $EXPECT($L56, fail, 'BinaryOpSymbol ">"');
2848
+ var BinaryOpSymbol$13 = $EXPECT($L57, fail, 'BinaryOpSymbol "!=="');
2849
+ var BinaryOpSymbol$14 = $TV($EXPECT($L58, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
2426
2850
  if (module2.config.coffeeEq)
2427
2851
  return "!==";
2428
2852
  return $1;
2429
2853
  });
2430
- var BinaryOpSymbol$15 = $T($S($EXPECT($L58, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function(value) {
2854
+ var BinaryOpSymbol$15 = $TS($S($EXPECT($L59, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2855
+ if (module2.config.coffeeIsnt)
2856
+ return "!==";
2857
+ return $skip;
2858
+ });
2859
+ var BinaryOpSymbol$16 = $T($S($EXPECT($L60, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function(value) {
2431
2860
  return "===";
2432
2861
  });
2433
- var BinaryOpSymbol$16 = $EXPECT($L59, fail, 'BinaryOpSymbol "==="');
2434
- var BinaryOpSymbol$17 = $TV($EXPECT($L60, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
2862
+ var BinaryOpSymbol$17 = $EXPECT($L61, fail, 'BinaryOpSymbol "==="');
2863
+ var BinaryOpSymbol$18 = $TV($EXPECT($L62, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
2435
2864
  if (module2.config.coffeeEq)
2436
2865
  return "===";
2437
2866
  return $1;
2438
2867
  });
2439
- var BinaryOpSymbol$18 = $T($S($EXPECT($L61, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
2868
+ var BinaryOpSymbol$19 = $T($S($EXPECT($L63, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
2440
2869
  return "&&";
2441
2870
  });
2442
- var BinaryOpSymbol$19 = $EXPECT($L62, fail, 'BinaryOpSymbol "&&"');
2443
- var BinaryOpSymbol$20 = $T($S($EXPECT($L63, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
2871
+ var BinaryOpSymbol$20 = $EXPECT($L64, fail, 'BinaryOpSymbol "&&"');
2872
+ var BinaryOpSymbol$21 = $T($S($EXPECT($L65, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
2444
2873
  return "||";
2445
2874
  });
2446
- var BinaryOpSymbol$21 = $EXPECT($L64, fail, 'BinaryOpSymbol "||"');
2447
- var BinaryOpSymbol$22 = $EXPECT($L65, fail, 'BinaryOpSymbol "??"');
2448
- var BinaryOpSymbol$23 = $TS($S($EXPECT($L66, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2875
+ var BinaryOpSymbol$22 = $EXPECT($L66, fail, 'BinaryOpSymbol "||"');
2876
+ var BinaryOpSymbol$23 = $EXPECT($L67, fail, 'BinaryOpSymbol "??"');
2877
+ var BinaryOpSymbol$24 = $TS($S($EXPECT($L68, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2449
2878
  return $1;
2450
2879
  });
2451
- var BinaryOpSymbol$24 = $TS($S($EXPECT($L67, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2880
+ var BinaryOpSymbol$25 = $TS($S($EXPECT($L69, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
2452
2881
  return $1;
2453
2882
  });
2454
- var BinaryOpSymbol$25 = $EXPECT($L68, fail, 'BinaryOpSymbol "&"');
2455
- var BinaryOpSymbol$26 = $EXPECT($L69, fail, 'BinaryOpSymbol "^"');
2456
- var BinaryOpSymbol$27 = $EXPECT($L70, fail, 'BinaryOpSymbol "|"');
2883
+ var BinaryOpSymbol$26 = $EXPECT($L70, fail, 'BinaryOpSymbol "&"');
2884
+ var BinaryOpSymbol$27 = $EXPECT($L71, fail, 'BinaryOpSymbol "^"');
2885
+ var BinaryOpSymbol$28 = $EXPECT($L72, fail, 'BinaryOpSymbol "|"');
2457
2886
  function BinaryOpSymbol(state) {
2458
2887
  if (state.tokenize) {
2459
- return $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state));
2888
+ return $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state));
2460
2889
  } else {
2461
- return BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state);
2890
+ return BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state);
2462
2891
  }
2463
2892
  }
2464
- var UnaryOp$0 = $TR($EXPECT($R2, fail, "UnaryOp /[!~+-]/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2893
+ var UnaryOp$0 = $TR($EXPECT($R2, fail, "UnaryOp /[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2465
2894
  return { $loc, token: $0 };
2466
2895
  });
2467
- var UnaryOp$1 = $S($C(Delete, Void, Typeof), __);
2896
+ var UnaryOp$1 = $S($C(Await, Delete, Void, Typeof), __);
2897
+ var UnaryOp$2 = Not;
2468
2898
  function UnaryOp(state) {
2469
2899
  if (state.tokenize) {
2470
- return $TOKEN("UnaryOp", state, UnaryOp$0(state) || UnaryOp$1(state));
2900
+ return $TOKEN("UnaryOp", state, UnaryOp$0(state) || UnaryOp$1(state) || UnaryOp$2(state));
2471
2901
  } else {
2472
- return UnaryOp$0(state) || UnaryOp$1(state);
2902
+ return UnaryOp$0(state) || UnaryOp$1(state) || UnaryOp$2(state);
2473
2903
  }
2474
2904
  }
2475
2905
  var ModuleItem$0 = ImportDeclaration;
@@ -2530,7 +2960,7 @@ var require_parser = __commonJS({
2530
2960
  return Statement$0(state) || Statement$1(state) || Statement$2(state) || Statement$3(state) || Statement$4(state) || Statement$5(state) || Statement$6(state) || Statement$7(state) || Statement$8(state);
2531
2961
  }
2532
2962
  }
2533
- var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L71, fail, 'EmptyStatement ";"'))), function(value) {
2963
+ var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L73, fail, 'EmptyStatement ";"'))), function(value) {
2534
2964
  return { "type": "EmptyStatement", "children": value[0] };
2535
2965
  });
2536
2966
  function EmptyStatement(state) {
@@ -2542,7 +2972,7 @@ var require_parser = __commonJS({
2542
2972
  return EmptyStatement$0(state);
2543
2973
  }
2544
2974
  }
2545
- var BlockStatement$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
2975
+ var BlockStatement$0 = $T($S(__, OpenBrace, EOS, NestedBlockStatements, __, CloseBrace, $N($S(__, $EXPECT($L44, fail, 'BlockStatement "="')))), function(value) {
2546
2976
  var exps = value[3];
2547
2977
  return { "type": "BlockStatement", "children": value, "expressions": exps };
2548
2978
  });
@@ -2555,7 +2985,7 @@ var require_parser = __commonJS({
2555
2985
  return BlockStatement$0(state);
2556
2986
  }
2557
2987
  }
2558
- var IfStatement$0 = $TS($S(IfClause, Block, $E($S(__, Else, Block))), function($skip, $loc, $0, $1, $2, $3) {
2988
+ var IfStatement$0 = $TS($S($C(IfClause, UnlessClause), Block, $E($S(__, Else, Block))), function($skip, $loc, $0, $1, $2, $3) {
2559
2989
  var clause = $1;
2560
2990
  var block = $2;
2561
2991
  var e = $3;
@@ -2564,17 +2994,13 @@ var require_parser = __commonJS({
2564
2994
  clause.children.push(e);
2565
2995
  return clause;
2566
2996
  });
2567
- var IfStatement$1 = $TS($S(UnlessClause, Block), function($skip, $loc, $0, $1, $2) {
2568
- var clause = $1;
2569
- var block = $2;
2570
- clause.children.push(block);
2571
- return clause;
2572
- });
2573
2997
  function IfStatement(state) {
2998
+ if (state.verbose)
2999
+ console.log("ENTER:", "IfStatement");
2574
3000
  if (state.tokenize) {
2575
- return $TOKEN("IfStatement", state, IfStatement$0(state) || IfStatement$1(state));
3001
+ return $TOKEN("IfStatement", state, IfStatement$0(state));
2576
3002
  } else {
2577
- return IfStatement$0(state) || IfStatement$1(state);
3003
+ return IfStatement$0(state);
2578
3004
  }
2579
3005
  }
2580
3006
  var IfClause$0 = $T($S(If, Condition), function(value) {
@@ -2615,6 +3041,72 @@ var require_parser = __commonJS({
2615
3041
  return UnlessClause$0(state);
2616
3042
  }
2617
3043
  }
3044
+ var IfExpression$0 = $TS($S(IfClause, ExpressionBlock, $E($S(__, Else, ExpressionBlock))), function($skip, $loc, $0, $1, $2, $3) {
3045
+ var clause = $1;
3046
+ var b = $2;
3047
+ var e = $3;
3048
+ clause.children.shift();
3049
+ clause.children.push("?", b, ":");
3050
+ if (e) {
3051
+ e.splice(1, 1);
3052
+ clause.children.push(e);
3053
+ } else {
3054
+ clause.children.push("void 0");
3055
+ }
3056
+ clause.type = "IfExpression";
3057
+ return clause;
3058
+ });
3059
+ function IfExpression(state) {
3060
+ if (state.verbose)
3061
+ console.log("ENTER:", "IfExpression");
3062
+ if (state.tokenize) {
3063
+ return $TOKEN("IfExpression", state, IfExpression$0(state));
3064
+ } else {
3065
+ return IfExpression$0(state);
3066
+ }
3067
+ }
3068
+ var ExpressionBlock$0 = $TS($S(InsertOpenParen, EOS, NestedBlockExpressions, InsertNewline, InsertIndent, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3069
+ var exps = $3;
3070
+ exps[exps.length - 1].pop();
3071
+ return {
3072
+ type: "BlockExpressions",
3073
+ expressions: exps,
3074
+ children: $0
3075
+ };
3076
+ });
3077
+ var ExpressionBlock$1 = $S($E(Then), ExtendedExpression);
3078
+ function ExpressionBlock(state) {
3079
+ if (state.tokenize) {
3080
+ return $TOKEN("ExpressionBlock", state, ExpressionBlock$0(state) || ExpressionBlock$1(state));
3081
+ } else {
3082
+ return ExpressionBlock$0(state) || ExpressionBlock$1(state);
3083
+ }
3084
+ }
3085
+ var NestedBlockExpressions$0 = $TS($S(PushIndent, $Q(NestedBlockExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
3086
+ var exps = $2;
3087
+ if (!exps.length)
3088
+ return $skip;
3089
+ return exps;
3090
+ });
3091
+ function NestedBlockExpressions(state) {
3092
+ if (state.verbose)
3093
+ console.log("ENTER:", "NestedBlockExpressions");
3094
+ if (state.tokenize) {
3095
+ return $TOKEN("NestedBlockExpressions", state, NestedBlockExpressions$0(state));
3096
+ } else {
3097
+ return NestedBlockExpressions$0(state);
3098
+ }
3099
+ }
3100
+ var NestedBlockExpression$0 = $S(Nested, ExtendedExpression, ExpressionDelimiter);
3101
+ function NestedBlockExpression(state) {
3102
+ if (state.verbose)
3103
+ console.log("ENTER:", "NestedBlockExpression");
3104
+ if (state.tokenize) {
3105
+ return $TOKEN("NestedBlockExpression", state, NestedBlockExpression$0(state));
3106
+ } else {
3107
+ return NestedBlockExpression$0(state);
3108
+ }
3109
+ }
2618
3110
  var IterationStatement$0 = LoopStatement;
2619
3111
  var IterationStatement$1 = DoWhileStatement;
2620
3112
  var IterationStatement$2 = WhileStatement;
@@ -2707,6 +3199,7 @@ var require_parser = __commonJS({
2707
3199
  var clause = $1;
2708
3200
  var block = $2;
2709
3201
  clause.children.push(block);
3202
+ clause.block = block;
2710
3203
  return clause;
2711
3204
  });
2712
3205
  function ForStatement(state) {
@@ -2718,8 +3211,16 @@ var require_parser = __commonJS({
2718
3211
  return ForStatement$0(state);
2719
3212
  }
2720
3213
  }
2721
- var ForClause$0 = $T($S(For, __, ForStatementControl), function(value) {
2722
- return { "type": "IterationStatement", "children": value };
3214
+ var ForClause$0 = $TS($S(For, __, ForStatementControl), function($skip, $loc, $0, $1, $2, $3) {
3215
+ var c = $3;
3216
+ const { children, declaration } = c;
3217
+ children.splice(0, 0, $1, ...$2);
3218
+ return {
3219
+ type: "ForStatement",
3220
+ children,
3221
+ declaration,
3222
+ block: null
3223
+ };
2723
3224
  });
2724
3225
  function ForClause(state) {
2725
3226
  if (state.verbose)
@@ -2730,20 +3231,49 @@ var require_parser = __commonJS({
2730
3231
  return ForClause$0(state);
2731
3232
  }
2732
3233
  }
2733
- var ForStatementControl$0 = $S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), __, CloseParen);
2734
- var ForStatementControl$1 = $S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), Expression)), InsertCloseParen);
2735
- var ForStatementControl$2 = $S(OpenParen, __, ForInOfDeclaration, __, In, Expression, __, CloseParen);
2736
- var ForStatementControl$3 = $S(InsertOpenParen, ForInOfDeclaration, __, In, Expression, InsertCloseParen);
2737
- var ForStatementControl$4 = $S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, Of, AssignmentExpression, __, CloseParen);
2738
- var ForStatementControl$5 = $S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, Of, AssignmentExpression, InsertCloseParen);
3234
+ var ForStatementControl$0 = $TS($S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
3235
+ var declaration = $3;
3236
+ return {
3237
+ declaration,
3238
+ children: $0
3239
+ };
3240
+ });
3241
+ var ForStatementControl$1 = $TS($S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), Expression)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3242
+ var declaration = $3;
3243
+ return {
3244
+ declaration,
3245
+ children: $0
3246
+ };
3247
+ });
3248
+ var ForStatementControl$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) {
3249
+ var declaration = $4;
3250
+ return {
3251
+ declaration,
3252
+ children: $0
3253
+ };
3254
+ });
3255
+ var ForStatementControl$3 = $TS($S($E($S(Await, __)), InsertOpenParen, ForInOfDeclaration, __, $C(In, Of), ExtendedExpression, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
3256
+ var declaration = $3;
3257
+ return {
3258
+ declaration,
3259
+ children: $0
3260
+ };
3261
+ });
2739
3262
  function ForStatementControl(state) {
2740
3263
  if (state.tokenize) {
2741
- return $TOKEN("ForStatementControl", state, ForStatementControl$0(state) || ForStatementControl$1(state) || ForStatementControl$2(state) || ForStatementControl$3(state) || ForStatementControl$4(state) || ForStatementControl$5(state));
3264
+ return $TOKEN("ForStatementControl", state, ForStatementControl$0(state) || ForStatementControl$1(state) || ForStatementControl$2(state) || ForStatementControl$3(state));
2742
3265
  } else {
2743
- return ForStatementControl$0(state) || ForStatementControl$1(state) || ForStatementControl$2(state) || ForStatementControl$3(state) || ForStatementControl$4(state) || ForStatementControl$5(state);
3266
+ return ForStatementControl$0(state) || ForStatementControl$1(state) || ForStatementControl$2(state) || ForStatementControl$3(state);
2744
3267
  }
2745
3268
  }
2746
- var ForInOfDeclaration$0 = $S(Var, ForBinding);
3269
+ var ForInOfDeclaration$0 = $TS($S(Var, ForBinding), function($skip, $loc, $0, $1, $2) {
3270
+ var binding = $2;
3271
+ return {
3272
+ type: "ForDeclaration",
3273
+ children: $0,
3274
+ names: binding.names
3275
+ };
3276
+ });
2747
3277
  var ForInOfDeclaration$1 = ForDeclaration;
2748
3278
  var ForInOfDeclaration$2 = LeftHandSideExpression;
2749
3279
  function ForInOfDeclaration(state) {
@@ -2753,8 +3283,24 @@ var require_parser = __commonJS({
2753
3283
  return ForInOfDeclaration$0(state) || ForInOfDeclaration$1(state) || ForInOfDeclaration$2(state);
2754
3284
  }
2755
3285
  }
2756
- var ForDeclaration$0 = $S(LetOrConst, NonIdContinue, ForBinding);
2757
- var ForDeclaration$1 = $S(InsertConst, ForBinding, $R$0($EXPECT($R3, fail, "ForDeclaration /(?=[\\s\\)])/")));
3286
+ var ForDeclaration$0 = $TS($S(LetOrConst, NonIdContinue, ForBinding), function($skip, $loc, $0, $1, $2, $3) {
3287
+ var c = $1;
3288
+ var binding = $3;
3289
+ return {
3290
+ type: "ForDeclaration",
3291
+ children: [c, binding],
3292
+ names: binding.names
3293
+ };
3294
+ });
3295
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R3, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
3296
+ var c = $1;
3297
+ var binding = $2;
3298
+ return {
3299
+ type: "ForDeclaration",
3300
+ children: [c, binding],
3301
+ names: binding.names
3302
+ };
3303
+ });
2758
3304
  function ForDeclaration(state) {
2759
3305
  if (state.tokenize) {
2760
3306
  return $TOKEN("ForDeclaration", state, ForDeclaration$0(state) || ForDeclaration$1(state));
@@ -2783,6 +3329,22 @@ var require_parser = __commonJS({
2783
3329
  return SwitchStatement$0(state);
2784
3330
  }
2785
3331
  }
3332
+ var SwitchExpression$0 = $TV(SwitchStatement, function($skip, $loc, $0, $1) {
3333
+ var e = $0;
3334
+ module2.addImplicitReturns(e.children[2]);
3335
+ e.type = "SwitchExpression";
3336
+ e.children = ["($=>{", e.children, "})()"];
3337
+ return e;
3338
+ });
3339
+ function SwitchExpression(state) {
3340
+ if (state.verbose)
3341
+ console.log("ENTER:", "SwitchExpression");
3342
+ if (state.tokenize) {
3343
+ return $TOKEN("SwitchExpression", state, SwitchExpression$0(state));
3344
+ } else {
3345
+ return SwitchExpression$0(state);
3346
+ }
3347
+ }
2786
3348
  var CaseBlock$0 = $TS($S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2787
3349
  var clauses = $4;
2788
3350
  $0.splice(2, 1);
@@ -2836,19 +3398,19 @@ var require_parser = __commonJS({
2836
3398
  return NestedCaseClause$0(state);
2837
3399
  }
2838
3400
  }
2839
- var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockExpressions, NoExpressions)), function(value) {
3401
+ var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, NoExpressions)), function(value) {
2840
3402
  var exps = value[2];
2841
3403
  return { "type": "CaseClause", "expressions": exps, "children": value };
2842
3404
  });
2843
- var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak), function(value) {
3405
+ var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockStatements, InsertBreak), function(value) {
2844
3406
  var exps = value[2];
2845
3407
  return { "type": "WhenClause", "expressions": exps, "children": value };
2846
3408
  });
2847
- var CaseClause$2 = $T($S(Default, ImpliedColon, $C(NestedBlockExpressions, NoExpressions)), function(value) {
3409
+ var CaseClause$2 = $T($S(Default, ImpliedColon, $C(NestedBlockStatements, NoExpressions)), function(value) {
2848
3410
  var exps = value[2];
2849
3411
  return { "type": "DefaultClause", "expressions": exps, "children": value };
2850
3412
  });
2851
- var CaseClause$3 = $TS($S(Else, ImpliedColon, NestedBlockExpressions), function($skip, $loc, $0, $1, $2, $3) {
3413
+ var CaseClause$3 = $TS($S(Else, ImpliedColon, NestedBlockStatements), function($skip, $loc, $0, $1, $2, $3) {
2852
3414
  var exps = $3;
2853
3415
  $1.token = "default";
2854
3416
  return {
@@ -2950,7 +3512,7 @@ var require_parser = __commonJS({
2950
3512
  return CatchBind$0(state) || CatchBind$1(state);
2951
3513
  }
2952
3514
  }
2953
- var Finally$0 = $S(__, $EXPECT($L72, fail, 'Finally "finally"'), BracedBlock);
3515
+ var Finally$0 = $S(__, $EXPECT($L74, fail, 'Finally "finally"'), BracedBlock);
2954
3516
  function Finally(state) {
2955
3517
  if (state.verbose)
2956
3518
  console.log("ENTER:", "Finally");
@@ -2969,7 +3531,7 @@ var require_parser = __commonJS({
2969
3531
  return CatchParameter$0(state) || CatchParameter$1(state);
2970
3532
  }
2971
3533
  }
2972
- var Condition$0 = $S(__, OpenParen, Expression, __, CloseParen);
3534
+ var Condition$0 = $S(__, OpenParen, ExtendedExpression, __, CloseParen);
2973
3535
  var Condition$1 = $TS($S($N(EOS), __, InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2974
3536
  $0.shift();
2975
3537
  return $0;
@@ -2981,7 +3543,7 @@ var require_parser = __commonJS({
2981
3543
  return Condition$0(state) || Condition$1(state);
2982
3544
  }
2983
3545
  }
2984
- var ExpressionWithIndentedApplicationSuppressed$0 = $TS($S(SuppressIndentedApplication, $E(AssignmentExpression)), function($skip, $loc, $0, $1, $2) {
3546
+ var ExpressionWithIndentedApplicationSuppressed$0 = $TS($S(SuppressIndentedApplication, $E(ExtendedExpression)), function($skip, $loc, $0, $1, $2) {
2985
3547
  var exp = $2;
2986
3548
  module2.suppressIndentedApplication = false;
2987
3549
  if (exp)
@@ -3019,19 +3581,19 @@ var require_parser = __commonJS({
3019
3581
  return ExpressionStatement$0(state);
3020
3582
  }
3021
3583
  }
3022
- var KeywordStatement$0 = $T($S($EXPECT($L73, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
3584
+ var KeywordStatement$0 = $T($S($EXPECT($L75, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
3023
3585
  return { "type": "BreakStatement", "children": value };
3024
3586
  });
3025
- var KeywordStatement$1 = $T($S($EXPECT($L74, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
3587
+ var KeywordStatement$1 = $T($S($EXPECT($L76, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
3026
3588
  return { "type": "ContinueStatement", "children": value };
3027
3589
  });
3028
- var KeywordStatement$2 = $T($S($EXPECT($L75, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
3590
+ var KeywordStatement$2 = $T($S($EXPECT($L77, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
3029
3591
  return { "type": "DebuggerStatement", "children": value };
3030
3592
  });
3031
3593
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
3032
3594
  return { "type": "ReturnStatement", "children": value };
3033
3595
  });
3034
- var KeywordStatement$4 = $T($S(Throw, Expression), function(value) {
3596
+ var KeywordStatement$4 = $T($S(Throw, ExtendedExpression), function(value) {
3035
3597
  return { "type": "ThrowStatement", "children": value };
3036
3598
  });
3037
3599
  function KeywordStatement(state) {
@@ -3041,8 +3603,42 @@ var require_parser = __commonJS({
3041
3603
  return KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state);
3042
3604
  }
3043
3605
  }
3044
- var MaybeNestedExpression$0 = $S($N(EOS), $Q(TrailingComment), Expression);
3045
- var MaybeNestedExpression$1 = $S($Y(EOS), ObjectLiteral);
3606
+ var DebuggerExpression$0 = $TS($S($EXPECT($L77, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3607
+ return {
3608
+ type: "DebuggerExpression",
3609
+ children: ["($=>{", $1, "})()"]
3610
+ };
3611
+ });
3612
+ function DebuggerExpression(state) {
3613
+ if (state.verbose)
3614
+ console.log("ENTER:", "DebuggerExpression");
3615
+ if (state.tokenize) {
3616
+ return $TOKEN("DebuggerExpression", state, DebuggerExpression$0(state));
3617
+ } else {
3618
+ return DebuggerExpression$0(state);
3619
+ }
3620
+ }
3621
+ var ThrowExpression$0 = $TS($S(Throw, ExtendedExpression), function($skip, $loc, $0, $1, $2) {
3622
+ return {
3623
+ type: "ThrowExpression",
3624
+ children: ["($=>{", ...$0, "})()"]
3625
+ };
3626
+ });
3627
+ function ThrowExpression(state) {
3628
+ if (state.verbose)
3629
+ console.log("ENTER:", "ThrowExpression");
3630
+ if (state.tokenize) {
3631
+ return $TOKEN("ThrowExpression", state, ThrowExpression$0(state));
3632
+ } else {
3633
+ return ThrowExpression$0(state);
3634
+ }
3635
+ }
3636
+ var MaybeNestedExpression$0 = $TS($S($N(EOS), $Q(TrailingComment), AssignmentExpression), function($skip, $loc, $0, $1, $2, $3) {
3637
+ return [...$2, $3];
3638
+ });
3639
+ var MaybeNestedExpression$1 = $T($S($Y(EOS), ObjectLiteral), function(value) {
3640
+ return value[1];
3641
+ });
3046
3642
  function MaybeNestedExpression(state) {
3047
3643
  if (state.tokenize) {
3048
3644
  return $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state));
@@ -3050,7 +3646,7 @@ var require_parser = __commonJS({
3050
3646
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
3051
3647
  }
3052
3648
  }
3053
- var ImportDeclaration$0 = $T($S($EXPECT($L76, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
3649
+ var ImportDeclaration$0 = $T($S($EXPECT($L78, fail, 'ImportDeclaration "import type"'), NonIdContinue, __, ImportClause, __, FromClause), function(value) {
3054
3650
  return { "ts": true, "children": value };
3055
3651
  });
3056
3652
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -3085,7 +3681,19 @@ var require_parser = __commonJS({
3085
3681
  return ImpliedImport$0(state);
3086
3682
  }
3087
3683
  }
3088
- var ImportClause$0 = $S(ImportedBinding, $E($S(__, Comma, __, $C(NameSpaceImport, NamedImports))));
3684
+ var ImportClause$0 = $TS($S(ImportedBinding, $E($S(__, Comma, __, $C(NameSpaceImport, NamedImports)))), function($skip, $loc, $0, $1, $2) {
3685
+ var binding = $1;
3686
+ var rest = $2;
3687
+ if (rest) {
3688
+ return {
3689
+ type: "Declaration",
3690
+ children: $0,
3691
+ names: [...binding.names, ...rest[3].names]
3692
+ };
3693
+ }
3694
+ $1.type = "Declaration";
3695
+ return $1;
3696
+ });
3089
3697
  var ImportClause$1 = NameSpaceImport;
3090
3698
  var ImportClause$2 = NamedImports;
3091
3699
  function ImportClause(state) {
@@ -3095,7 +3703,14 @@ var require_parser = __commonJS({
3095
3703
  return ImportClause$0(state) || ImportClause$1(state) || ImportClause$2(state);
3096
3704
  }
3097
3705
  }
3098
- var NameSpaceImport$0 = $S(Star, __, As, NonIdContinue, __, ImportedBinding);
3706
+ var NameSpaceImport$0 = $TS($S(Star, __, As, __, ImportedBinding), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
3707
+ var binding = $5;
3708
+ return {
3709
+ type: "Declaration",
3710
+ children: $0,
3711
+ names: binding.names
3712
+ };
3713
+ });
3099
3714
  function NameSpaceImport(state) {
3100
3715
  if (state.verbose)
3101
3716
  console.log("ENTER:", "NameSpaceImport");
@@ -3105,7 +3720,17 @@ var require_parser = __commonJS({
3105
3720
  return NameSpaceImport$0(state);
3106
3721
  }
3107
3722
  }
3108
- var NamedImports$0 = $S(OpenBrace, $Q(ImportSpecifier), $E($S(__, Comma)), __, CloseBrace);
3723
+ var NamedImports$0 = $TS($S(OpenBrace, $Q(ImportSpecifier), $E($S(__, Comma)), __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
3724
+ var specifiers = $2;
3725
+ const names = specifiers.flatMap(({ binding }) => {
3726
+ return binding.names;
3727
+ });
3728
+ return {
3729
+ type: "Declaration",
3730
+ children: $0,
3731
+ names
3732
+ };
3733
+ });
3109
3734
  function NamedImports(state) {
3110
3735
  if (state.verbose)
3111
3736
  console.log("ENTER:", "NamedImports");
@@ -3125,8 +3750,20 @@ var require_parser = __commonJS({
3125
3750
  return FromClause$0(state);
3126
3751
  }
3127
3752
  }
3128
- var ImportSpecifier$0 = $S(__, ModuleExportName, __, As, NonIdContinue, __, ImportedBinding, ObjectPropertyDelimiter);
3129
- var ImportSpecifier$1 = $S(__, ImportedBinding, ObjectPropertyDelimiter);
3753
+ var ImportSpecifier$0 = $TS($S(__, ModuleExportName, __, As, __, ImportedBinding, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
3754
+ var binding = $6;
3755
+ return {
3756
+ binding,
3757
+ children: $0
3758
+ };
3759
+ });
3760
+ var ImportSpecifier$1 = $TS($S(__, ImportedBinding, ObjectPropertyDelimiter), function($skip, $loc, $0, $1, $2, $3) {
3761
+ var binding = $2;
3762
+ return {
3763
+ binding,
3764
+ children: $0
3765
+ };
3766
+ });
3130
3767
  function ImportSpecifier(state) {
3131
3768
  if (state.tokenize) {
3132
3769
  return $TOKEN("ImportSpecifier", state, ImportSpecifier$0(state) || ImportSpecifier$1(state));
@@ -3188,7 +3825,7 @@ var require_parser = __commonJS({
3188
3825
  return ImportedBinding$0(state);
3189
3826
  }
3190
3827
  }
3191
- var ExportDeclaration$0 = $S(Export, __, $EXPECT($L77, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, AssignmentExpression));
3828
+ var ExportDeclaration$0 = $S(Export, __, $EXPECT($L79, fail, 'ExportDeclaration "default"'), NonIdContinue, __, $C(HoistableDeclaration, ClassDeclaration, ExtendedExpression));
3192
3829
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
3193
3830
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
3194
3831
  function ExportDeclaration(state) {
@@ -3198,7 +3835,7 @@ var require_parser = __commonJS({
3198
3835
  return ExportDeclaration$0(state) || ExportDeclaration$1(state) || ExportDeclaration$2(state);
3199
3836
  }
3200
3837
  }
3201
- var ExportFromClause$0 = $S(Star, $E($S(__, As, NonIdContinue, __, ModuleExportName)));
3838
+ var ExportFromClause$0 = $S(Star, $E($S(__, As, __, ModuleExportName)));
3202
3839
  var ExportFromClause$1 = NamedExports;
3203
3840
  function ExportFromClause(state) {
3204
3841
  if (state.tokenize) {
@@ -3248,18 +3885,43 @@ var require_parser = __commonJS({
3248
3885
  return HoistableDeclaration$0(state);
3249
3886
  }
3250
3887
  }
3251
- var LexicalDeclaration$0 = $T($S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding))), function(value) {
3252
- return { "type": "VariableDeclaration", "children": value };
3888
+ var LexicalDeclaration$0 = $TS($S(LetOrConst, LexicalBinding, $Q($S(__, Comma, LexicalBinding))), function($skip, $loc, $0, $1, $2, $3) {
3889
+ var binding = $2;
3890
+ var tail = $3;
3891
+ return {
3892
+ type: "Declaration",
3893
+ children: $0,
3894
+ names: [...binding.names].concat(tail.flatMap(([, , b]) => b.names))
3895
+ };
3253
3896
  });
3254
- var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, AssignmentExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3897
+ var LexicalDeclaration$1 = $TS($S(InsertConst, $C(BindingPattern, BindingIdentifier), $E(TypeSuffix), __, ConstAssignment, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3255
3898
  var c = $1;
3899
+ var id = $2;
3256
3900
  var ca = $5;
3901
+ var e = $6;
3257
3902
  c.$loc = {
3258
3903
  pos: ca.$loc.pos - 1,
3259
3904
  length: ca.$loc.length + 1
3260
3905
  };
3906
+ let exp;
3907
+ if (e.type === "FunctionExpression") {
3908
+ exp = e;
3909
+ } else {
3910
+ exp = e[1];
3911
+ }
3912
+ if (exp?.children?.[0]?.token?.match(/^\s+$/))
3913
+ exp.children.shift();
3914
+ if (id.type === "Identifier" && exp?.type === "FunctionExpression") {
3915
+ if (exp.id.length === 0) {
3916
+ exp.id.push(" ", id, $3, $4);
3917
+ }
3918
+ exp.type = "Declaration";
3919
+ exp.names = id.names;
3920
+ return exp;
3921
+ }
3261
3922
  return {
3262
- type: "VariableDeclaration",
3923
+ type: "Declaration",
3924
+ names: id.names,
3263
3925
  children: $0
3264
3926
  };
3265
3927
  });
@@ -3270,7 +3932,7 @@ var require_parser = __commonJS({
3270
3932
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
3271
3933
  }
3272
3934
  }
3273
- var ConstAssignment$0 = $TV($EXPECT($L78, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
3935
+ var ConstAssignment$0 = $TV($EXPECT($L80, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
3274
3936
  return { $loc, token: "=" };
3275
3937
  });
3276
3938
  function ConstAssignment(state) {
@@ -3282,8 +3944,19 @@ var require_parser = __commonJS({
3282
3944
  return ConstAssignment$0(state);
3283
3945
  }
3284
3946
  }
3285
- var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
3286
- var LexicalBinding$1 = $S(BindingIdentifier, $E(TypeSuffix), $E(Initializer));
3947
+ var LexicalBinding$0 = $TS($S(BindingPattern, $E(TypeSuffix), Initializer), function($skip, $loc, $0, $1, $2, $3) {
3948
+ if ($2)
3949
+ $1.children.push($2);
3950
+ $1.children.push($3);
3951
+ return $1;
3952
+ });
3953
+ var LexicalBinding$1 = $TS($S(BindingIdentifier, $E(TypeSuffix), $E(Initializer)), function($skip, $loc, $0, $1, $2, $3) {
3954
+ if ($2)
3955
+ $1.children.push($2);
3956
+ if ($3)
3957
+ $1.children.push($3);
3958
+ return $1;
3959
+ });
3287
3960
  function LexicalBinding(state) {
3288
3961
  if (state.tokenize) {
3289
3962
  return $TOKEN("LexicalBinding", state, LexicalBinding$0(state) || LexicalBinding$1(state));
@@ -3291,7 +3964,7 @@ var require_parser = __commonJS({
3291
3964
  return LexicalBinding$0(state) || LexicalBinding$1(state);
3292
3965
  }
3293
3966
  }
3294
- var Initializer$0 = $S(__, Equals, AssignmentExpression);
3967
+ var Initializer$0 = $S(__, Equals, ExtendedExpression);
3295
3968
  function Initializer(state) {
3296
3969
  if (state.verbose)
3297
3970
  console.log("ENTER:", "Initializer");
@@ -3301,8 +3974,9 @@ var require_parser = __commonJS({
3301
3974
  return Initializer$0(state);
3302
3975
  }
3303
3976
  }
3304
- var VariableStatement$0 = $T($S(Var, __, VariableDeclarationList), function(value) {
3305
- return { "type": "VariableDeclaration", "children": value };
3977
+ var VariableStatement$0 = $TS($S(Var, __, VariableDeclarationList), function($skip, $loc, $0, $1, $2, $3) {
3978
+ $3.children.splice(0, 0, $1, ...$2);
3979
+ return $3;
3306
3980
  });
3307
3981
  function VariableStatement(state) {
3308
3982
  if (state.verbose)
@@ -3313,7 +3987,20 @@ var require_parser = __commonJS({
3313
3987
  return VariableStatement$0(state);
3314
3988
  }
3315
3989
  }
3316
- var VariableDeclarationList$0 = $S(VariableDeclaration, $Q($S(__, Comma, __, VariableDeclaration)));
3990
+ var VariableDeclarationList$0 = $TS($S(VariableDeclaration, $Q($S(__, Comma, __, VariableDeclaration))), function($skip, $loc, $0, $1, $2) {
3991
+ let children;
3992
+ if ($2.length) {
3993
+ children = [$1, ...$2];
3994
+ } else {
3995
+ children = [$1];
3996
+ }
3997
+ const names = children.flatMap((c) => c.names || []);
3998
+ return {
3999
+ type: "Declaration",
4000
+ children,
4001
+ names
4002
+ };
4003
+ });
3317
4004
  function VariableDeclarationList(state) {
3318
4005
  if (state.verbose)
3319
4006
  console.log("ENTER:", "VariableDeclarationList");
@@ -3323,8 +4010,19 @@ var require_parser = __commonJS({
3323
4010
  return VariableDeclarationList$0(state);
3324
4011
  }
3325
4012
  }
3326
- var VariableDeclaration$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
3327
- var VariableDeclaration$1 = $S(BindingIdentifier, $E(TypeSuffix), $E(Initializer));
4013
+ var VariableDeclaration$0 = $TS($S(BindingPattern, $E(TypeSuffix), Initializer), function($skip, $loc, $0, $1, $2, $3) {
4014
+ if ($2)
4015
+ $1.children.push($2);
4016
+ $1.children.push($3);
4017
+ return $1;
4018
+ });
4019
+ var VariableDeclaration$1 = $TS($S(BindingIdentifier, $E(TypeSuffix), $E(Initializer)), function($skip, $loc, $0, $1, $2, $3) {
4020
+ if ($2)
4021
+ $1.children.push($2);
4022
+ if ($3)
4023
+ $1.children.push($3);
4024
+ return $1;
4025
+ });
3328
4026
  function VariableDeclaration(state) {
3329
4027
  if (state.tokenize) {
3330
4028
  return $TOKEN("VariableDeclaration", state, VariableDeclaration$0(state) || VariableDeclaration$1(state));
@@ -3505,7 +4203,7 @@ var require_parser = __commonJS({
3505
4203
  return TripleSingleStringCharacters$0(state);
3506
4204
  }
3507
4205
  }
3508
- var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, Expression, __, CloseBrace);
4206
+ var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, ExtendedExpression, __, CloseBrace);
3509
4207
  function CoffeeStringSubstitution(state) {
3510
4208
  if (state.verbose)
3511
4209
  console.log("ENTER:", "CoffeeStringSubstitution");
@@ -3556,7 +4254,7 @@ var require_parser = __commonJS({
3556
4254
  return CoffeeDoubleQuotedStringCharacters$0(state);
3557
4255
  }
3558
4256
  }
3559
- var RegularExpressionLiteral$0 = $TV($TEXT($S($EXPECT($L46, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L46, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
4257
+ var RegularExpressionLiteral$0 = $TV($TEXT($S($EXPECT($L47, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L47, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
3560
4258
  return { $loc, token: $1 };
3561
4259
  });
3562
4260
  function RegularExpressionLiteral(state) {
@@ -3609,7 +4307,7 @@ var require_parser = __commonJS({
3609
4307
  return TemplateLiteral$0(state) || TemplateLiteral$1(state);
3610
4308
  }
3611
4309
  }
3612
- var TemplateSubstitution$0 = $S(SubstitutionStart, Expression, __, CloseBrace);
4310
+ var TemplateSubstitution$0 = $S(SubstitutionStart, ExtendedExpression, __, CloseBrace);
3613
4311
  function TemplateSubstitution(state) {
3614
4312
  if (state.verbose)
3615
4313
  console.log("ENTER:", "TemplateSubstitution");
@@ -3644,12 +4342,13 @@ var require_parser = __commonJS({
3644
4342
  }
3645
4343
  }
3646
4344
  var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R23, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
3647
- var ReservedWord$1 = $R$0($EXPECT($R24, 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})/"));
4345
+ var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R24, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
4346
+ var ReservedWord$2 = $R$0($EXPECT($R25, 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})/"));
3648
4347
  function ReservedWord(state) {
3649
4348
  if (state.tokenize) {
3650
- return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state));
4349
+ return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state));
3651
4350
  } else {
3652
- return ReservedWord$0(state) || ReservedWord$1(state);
4351
+ return ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state);
3653
4352
  }
3654
4353
  }
3655
4354
  var Comment$0 = MultiLineComment;
@@ -3661,7 +4360,7 @@ var require_parser = __commonJS({
3661
4360
  return Comment$0(state) || Comment$1(state);
3662
4361
  }
3663
4362
  }
3664
- var SingleLineComment$0 = $TR($EXPECT($R25, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4363
+ var SingleLineComment$0 = $TR($EXPECT($R26, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3665
4364
  return { $loc, token: $0 };
3666
4365
  });
3667
4366
  var SingleLineComment$1 = $S(CoffeeCommentEnabled, CoffeeSingleLineComment);
@@ -3681,7 +4380,7 @@ var require_parser = __commonJS({
3681
4380
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3682
4381
  }
3683
4382
  }
3684
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L79, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L80, fail, 'JSMultiLineComment "*/"')), $EXPECT($R26, fail, "JSMultiLineComment /./"))), $EXPECT($L80, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
4383
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L81, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L82, fail, 'JSMultiLineComment "*/"')), $EXPECT($R27, fail, "JSMultiLineComment /./"))), $EXPECT($L82, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3685
4384
  return { $loc, token: $1 };
3686
4385
  });
3687
4386
  function JSMultiLineComment(state) {
@@ -3693,7 +4392,7 @@ var require_parser = __commonJS({
3693
4392
  return JSMultiLineComment$0(state);
3694
4393
  }
3695
4394
  }
3696
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R27, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4395
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R28, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3697
4396
  return { $loc, token: `//${$1}` };
3698
4397
  });
3699
4398
  function CoffeeSingleLineComment(state) {
@@ -3705,7 +4404,7 @@ var require_parser = __commonJS({
3705
4404
  return CoffeeSingleLineComment$0(state);
3706
4405
  }
3707
4406
  }
3708
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L81, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L81, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L80, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R26, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L81, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
4407
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L83, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L83, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L82, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R27, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L83, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3709
4408
  return { $loc, token: `/*${$2}*/` };
3710
4409
  });
3711
4410
  function CoffeeMultiLineComment(state) {
@@ -3717,7 +4416,7 @@ var require_parser = __commonJS({
3717
4416
  return CoffeeMultiLineComment$0(state);
3718
4417
  }
3719
4418
  }
3720
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L79, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L80, fail, 'InlineComment "*/"')), $EXPECT($R28, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L80, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
4419
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L81, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L82, fail, 'InlineComment "*/"')), $EXPECT($R29, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L82, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3721
4420
  return { $loc, token: $1 };
3722
4421
  });
3723
4422
  function InlineComment(state) {
@@ -3759,7 +4458,7 @@ var require_parser = __commonJS({
3759
4458
  return _$0(state);
3760
4459
  }
3761
4460
  }
3762
- var NonNewlineWhitespace$0 = $TR($EXPECT($R29, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4461
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R30, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3763
4462
  return { $loc, token: $0 };
3764
4463
  });
3765
4464
  function NonNewlineWhitespace(state) {
@@ -3781,7 +4480,7 @@ var require_parser = __commonJS({
3781
4480
  return __$0(state);
3782
4481
  }
3783
4482
  }
3784
- var Whitespace$0 = $TR($EXPECT($R30, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4483
+ var Whitespace$0 = $TR($EXPECT($R31, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3785
4484
  return { $loc, token: $0 };
3786
4485
  });
3787
4486
  function Whitespace(state) {
@@ -3793,6 +4492,20 @@ var require_parser = __commonJS({
3793
4492
  return Whitespace$0(state);
3794
4493
  }
3795
4494
  }
4495
+ var ExpressionDelimiter$0 = $TS($S($Q(TrailingComment), Semicolon, $Q(TrailingComment)), function($skip, $loc, $0, $1, $2, $3) {
4496
+ $2.token = ",";
4497
+ return $0;
4498
+ });
4499
+ var ExpressionDelimiter$1 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
4500
+ return { $loc, token: "," };
4501
+ });
4502
+ function ExpressionDelimiter(state) {
4503
+ if (state.tokenize) {
4504
+ return $TOKEN("ExpressionDelimiter", state, ExpressionDelimiter$0(state) || ExpressionDelimiter$1(state));
4505
+ } else {
4506
+ return ExpressionDelimiter$0(state) || ExpressionDelimiter$1(state);
4507
+ }
4508
+ }
3796
4509
  var StatementDelimiter$0 = $S($Q(TrailingComment), Semicolon, $Q(TrailingComment));
3797
4510
  var StatementDelimiter$1 = $Y(EOS);
3798
4511
  function StatementDelimiter(state) {
@@ -3802,7 +4515,7 @@ var require_parser = __commonJS({
3802
4515
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
3803
4516
  }
3804
4517
  }
3805
- var NonIdContinue$0 = $R$0($EXPECT($R31, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
4518
+ var NonIdContinue$0 = $R$0($EXPECT($R32, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
3806
4519
  function NonIdContinue(state) {
3807
4520
  if (state.verbose)
3808
4521
  console.log("ENTER:", "NonIdContinue");
@@ -3824,7 +4537,7 @@ var require_parser = __commonJS({
3824
4537
  return Loc$0(state);
3825
4538
  }
3826
4539
  }
3827
- var As$0 = $TS($S($EXPECT($L82, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4540
+ var As$0 = $TS($S($EXPECT($L84, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3828
4541
  return { $loc, token: $1 };
3829
4542
  });
3830
4543
  function As(state) {
@@ -3836,7 +4549,7 @@ var require_parser = __commonJS({
3836
4549
  return As$0(state);
3837
4550
  }
3838
4551
  }
3839
- var Async$0 = $TV($EXPECT($L83, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
4552
+ var Async$0 = $TV($EXPECT($L85, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3840
4553
  return { $loc, token: $1 };
3841
4554
  });
3842
4555
  function Async(state) {
@@ -3848,7 +4561,7 @@ var require_parser = __commonJS({
3848
4561
  return Async$0(state);
3849
4562
  }
3850
4563
  }
3851
- var Await$0 = $TS($S($EXPECT($L84, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4564
+ var Await$0 = $TS($S($EXPECT($L86, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3852
4565
  return { $loc, token: $1 };
3853
4566
  });
3854
4567
  function Await(state) {
@@ -3860,7 +4573,7 @@ var require_parser = __commonJS({
3860
4573
  return Await$0(state);
3861
4574
  }
3862
4575
  }
3863
- var Backtick$0 = $TV($EXPECT($L85, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
4576
+ var Backtick$0 = $TV($EXPECT($L87, fail, 'Backtick "`"'), function($skip, $loc, $0, $1) {
3864
4577
  return { $loc, token: $1 };
3865
4578
  });
3866
4579
  function Backtick(state) {
@@ -3872,7 +4585,7 @@ var require_parser = __commonJS({
3872
4585
  return Backtick$0(state);
3873
4586
  }
3874
4587
  }
3875
- var Case$0 = $TS($S($EXPECT($L86, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4588
+ var Case$0 = $TS($S($EXPECT($L88, fail, 'Case "case"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3876
4589
  return { $loc, token: $1 };
3877
4590
  });
3878
4591
  function Case(state) {
@@ -3884,7 +4597,7 @@ var require_parser = __commonJS({
3884
4597
  return Case$0(state);
3885
4598
  }
3886
4599
  }
3887
- var Catch$0 = $TV($EXPECT($L87, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
4600
+ var Catch$0 = $TV($EXPECT($L89, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3888
4601
  return { $loc, token: $1 };
3889
4602
  });
3890
4603
  function Catch(state) {
@@ -3896,7 +4609,7 @@ var require_parser = __commonJS({
3896
4609
  return Catch$0(state);
3897
4610
  }
3898
4611
  }
3899
- var Class$0 = $TV($EXPECT($L88, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
4612
+ var Class$0 = $TV($EXPECT($L90, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3900
4613
  return { $loc, token: $1 };
3901
4614
  });
3902
4615
  function Class(state) {
@@ -3908,7 +4621,7 @@ var require_parser = __commonJS({
3908
4621
  return Class$0(state);
3909
4622
  }
3910
4623
  }
3911
- var CloseBrace$0 = $TV($EXPECT($L26, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
4624
+ var CloseBrace$0 = $TV($EXPECT($L27, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
3912
4625
  return { $loc, token: $1 };
3913
4626
  });
3914
4627
  function CloseBrace(state) {
@@ -3920,7 +4633,7 @@ var require_parser = __commonJS({
3920
4633
  return CloseBrace$0(state);
3921
4634
  }
3922
4635
  }
3923
- var CloseBracket$0 = $TV($EXPECT($L25, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
4636
+ var CloseBracket$0 = $TV($EXPECT($L26, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
3924
4637
  return { $loc, token: $1 };
3925
4638
  });
3926
4639
  function CloseBracket(state) {
@@ -3932,7 +4645,7 @@ var require_parser = __commonJS({
3932
4645
  return CloseBracket$0(state);
3933
4646
  }
3934
4647
  }
3935
- var CloseParen$0 = $TV($EXPECT($L15, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
4648
+ var CloseParen$0 = $TV($EXPECT($L16, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
3936
4649
  return { $loc, token: $1 };
3937
4650
  });
3938
4651
  function CloseParen(state) {
@@ -3944,7 +4657,7 @@ var require_parser = __commonJS({
3944
4657
  return CloseParen$0(state);
3945
4658
  }
3946
4659
  }
3947
- var CoffeeSubstitutionStart$0 = $TV($EXPECT($L89, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
4660
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L91, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3948
4661
  return { $loc, token: "${" };
3949
4662
  });
3950
4663
  function CoffeeSubstitutionStart(state) {
@@ -3956,7 +4669,7 @@ var require_parser = __commonJS({
3956
4669
  return CoffeeSubstitutionStart$0(state);
3957
4670
  }
3958
4671
  }
3959
- var Colon$0 = $TV($EXPECT($L90, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
4672
+ var Colon$0 = $TV($EXPECT($L92, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3960
4673
  return { $loc, token: $1 };
3961
4674
  });
3962
4675
  function Colon(state) {
@@ -3980,7 +4693,7 @@ var require_parser = __commonJS({
3980
4693
  return ConstructorShorthand$0(state);
3981
4694
  }
3982
4695
  }
3983
- var Default$0 = $TS($S($EXPECT($L77, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4696
+ var Default$0 = $TS($S($EXPECT($L79, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3984
4697
  return { $loc, token: $1 };
3985
4698
  });
3986
4699
  function Default(state) {
@@ -3992,7 +4705,7 @@ var require_parser = __commonJS({
3992
4705
  return Default$0(state);
3993
4706
  }
3994
4707
  }
3995
- var Delete$0 = $TS($S($EXPECT($L91, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4708
+ var Delete$0 = $TS($S($EXPECT($L93, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3996
4709
  return { $loc, token: $1 };
3997
4710
  });
3998
4711
  function Delete(state) {
@@ -4004,7 +4717,7 @@ var require_parser = __commonJS({
4004
4717
  return Delete$0(state);
4005
4718
  }
4006
4719
  }
4007
- var Do$0 = $TS($S($EXPECT($L92, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4720
+ var Do$0 = $TS($S($EXPECT($L94, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4008
4721
  return { $loc, token: $1 };
4009
4722
  });
4010
4723
  function Do(state) {
@@ -4016,7 +4729,7 @@ var require_parser = __commonJS({
4016
4729
  return Do$0(state);
4017
4730
  }
4018
4731
  }
4019
- var Dot$0 = $TV($EXPECT($L93, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
4732
+ var Dot$0 = $TV($EXPECT($L9, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
4020
4733
  return { $loc, token: $1 };
4021
4734
  });
4022
4735
  function Dot(state) {
@@ -4028,7 +4741,7 @@ var require_parser = __commonJS({
4028
4741
  return Dot$0(state);
4029
4742
  }
4030
4743
  }
4031
- var DotDot$0 = $TV($EXPECT($L94, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
4744
+ var DotDot$0 = $TV($EXPECT($L95, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
4032
4745
  return { $loc, token: $1 };
4033
4746
  });
4034
4747
  function DotDot(state) {
@@ -4040,7 +4753,7 @@ var require_parser = __commonJS({
4040
4753
  return DotDot$0(state);
4041
4754
  }
4042
4755
  }
4043
- var DotDotDot$0 = $TV($EXPECT($L95, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
4756
+ var DotDotDot$0 = $TV($EXPECT($L96, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
4044
4757
  return { $loc, token: $1 };
4045
4758
  });
4046
4759
  function DotDotDot(state) {
@@ -4052,7 +4765,7 @@ var require_parser = __commonJS({
4052
4765
  return DotDotDot$0(state);
4053
4766
  }
4054
4767
  }
4055
- var DoubleQuote$0 = $TV($EXPECT($L96, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
4768
+ var DoubleQuote$0 = $TV($EXPECT($L97, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
4056
4769
  return { $loc, token: $1 };
4057
4770
  });
4058
4771
  function DoubleQuote(state) {
@@ -4064,7 +4777,7 @@ var require_parser = __commonJS({
4064
4777
  return DoubleQuote$0(state);
4065
4778
  }
4066
4779
  }
4067
- var Else$0 = $TV($EXPECT($L97, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
4780
+ var Else$0 = $TV($EXPECT($L98, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
4068
4781
  return { $loc, token: $1 };
4069
4782
  });
4070
4783
  function Else(state) {
@@ -4076,7 +4789,7 @@ var require_parser = __commonJS({
4076
4789
  return Else$0(state);
4077
4790
  }
4078
4791
  }
4079
- var Equals$0 = $TV($EXPECT($L43, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
4792
+ var Equals$0 = $TV($EXPECT($L44, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
4080
4793
  return { $loc, token: $1 };
4081
4794
  });
4082
4795
  function Equals(state) {
@@ -4088,7 +4801,7 @@ var require_parser = __commonJS({
4088
4801
  return Equals$0(state);
4089
4802
  }
4090
4803
  }
4091
- var Export$0 = $TS($S($EXPECT($L98, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4804
+ var Export$0 = $TS($S($EXPECT($L99, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4092
4805
  return { $loc, token: $1 };
4093
4806
  });
4094
4807
  function Export(state) {
@@ -4100,7 +4813,7 @@ var require_parser = __commonJS({
4100
4813
  return Export$0(state);
4101
4814
  }
4102
4815
  }
4103
- var For$0 = $TS($S($EXPECT($L99, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4816
+ var For$0 = $TS($S($EXPECT($L100, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4104
4817
  return { $loc, token: $1 };
4105
4818
  });
4106
4819
  function For(state) {
@@ -4112,7 +4825,7 @@ var require_parser = __commonJS({
4112
4825
  return For$0(state);
4113
4826
  }
4114
4827
  }
4115
- var From$0 = $TS($S($EXPECT($L100, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4828
+ var From$0 = $TS($S($EXPECT($L101, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4116
4829
  return { $loc, token: $1 };
4117
4830
  });
4118
4831
  function From(state) {
@@ -4124,7 +4837,7 @@ var require_parser = __commonJS({
4124
4837
  return From$0(state);
4125
4838
  }
4126
4839
  }
4127
- var Function$0 = $TV($EXPECT($L101, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
4840
+ var Function$0 = $TV($EXPECT($L102, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
4128
4841
  return { $loc, token: $1 };
4129
4842
  });
4130
4843
  function Function(state) {
@@ -4136,7 +4849,7 @@ var require_parser = __commonJS({
4136
4849
  return Function$0(state);
4137
4850
  }
4138
4851
  }
4139
- var GetOrSet$0 = $TS($S($C($EXPECT($L102, fail, 'GetOrSet "get"'), $EXPECT($L103, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4852
+ var GetOrSet$0 = $TS($S($C($EXPECT($L103, fail, 'GetOrSet "get"'), $EXPECT($L104, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4140
4853
  return { $loc, token: $1 };
4141
4854
  });
4142
4855
  function GetOrSet(state) {
@@ -4148,7 +4861,7 @@ var require_parser = __commonJS({
4148
4861
  return GetOrSet$0(state);
4149
4862
  }
4150
4863
  }
4151
- var If$0 = $TV($EXPECT($L104, fail, 'If "if"'), function($skip, $loc, $0, $1) {
4864
+ var If$0 = $TV($TEXT($S($EXPECT($L105, fail, 'If "if"'), $E($EXPECT($L106, fail, 'If " "')))), function($skip, $loc, $0, $1) {
4152
4865
  return { $loc, token: $1 };
4153
4866
  });
4154
4867
  function If(state) {
@@ -4160,7 +4873,7 @@ var require_parser = __commonJS({
4160
4873
  return If$0(state);
4161
4874
  }
4162
4875
  }
4163
- var Import$0 = $TS($S($EXPECT($L10, fail, 'Import "import"'), $Y($EXPECT($R32, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
4876
+ var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R33, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
4164
4877
  return { $loc, token: $1 };
4165
4878
  });
4166
4879
  function Import(state) {
@@ -4172,7 +4885,7 @@ var require_parser = __commonJS({
4172
4885
  return Import$0(state);
4173
4886
  }
4174
4887
  }
4175
- var In$0 = $TV($EXPECT($L67, fail, 'In "in"'), function($skip, $loc, $0, $1) {
4888
+ var In$0 = $TV($EXPECT($L69, fail, 'In "in"'), function($skip, $loc, $0, $1) {
4176
4889
  return { $loc, token: $1 };
4177
4890
  });
4178
4891
  function In(state) {
@@ -4184,7 +4897,7 @@ var require_parser = __commonJS({
4184
4897
  return In$0(state);
4185
4898
  }
4186
4899
  }
4187
- var LetOrConst$0 = $TV($C($EXPECT($L105, fail, 'LetOrConst "let"'), $EXPECT($L106, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4900
+ var LetOrConst$0 = $TV($C($EXPECT($L107, fail, 'LetOrConst "let"'), $EXPECT($L108, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4188
4901
  return { $loc, token: $1 };
4189
4902
  });
4190
4903
  function LetOrConst(state) {
@@ -4196,7 +4909,7 @@ var require_parser = __commonJS({
4196
4909
  return LetOrConst$0(state);
4197
4910
  }
4198
4911
  }
4199
- var Loop$0 = $TS($S($EXPECT($L107, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4912
+ var Loop$0 = $TS($S($EXPECT($L109, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4200
4913
  return { $loc, token: "while(true)" };
4201
4914
  });
4202
4915
  function Loop(state) {
@@ -4208,7 +4921,7 @@ var require_parser = __commonJS({
4208
4921
  return Loop$0(state);
4209
4922
  }
4210
4923
  }
4211
- var New$0 = $TV($EXPECT($L108, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4924
+ var New$0 = $TV($EXPECT($L110, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4212
4925
  return { $loc, token: $1 };
4213
4926
  });
4214
4927
  function New(state) {
@@ -4220,7 +4933,19 @@ var require_parser = __commonJS({
4220
4933
  return New$0(state);
4221
4934
  }
4222
4935
  }
4223
- var Of$0 = $TV($EXPECT($L109, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4936
+ var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L111, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L106, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
4937
+ return { $loc, token: "!" };
4938
+ });
4939
+ function Not(state) {
4940
+ if (state.verbose)
4941
+ console.log("ENTER:", "Not");
4942
+ if (state.tokenize) {
4943
+ return $TOKEN("Not", state, Not$0(state));
4944
+ } else {
4945
+ return Not$0(state);
4946
+ }
4947
+ }
4948
+ var Of$0 = $TV($EXPECT($L112, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4224
4949
  return { $loc, token: $1 };
4225
4950
  });
4226
4951
  function Of(state) {
@@ -4232,7 +4957,7 @@ var require_parser = __commonJS({
4232
4957
  return Of$0(state);
4233
4958
  }
4234
4959
  }
4235
- var OpenBrace$0 = $TV($EXPECT($L110, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4960
+ var OpenBrace$0 = $TV($EXPECT($L113, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4236
4961
  return { $loc, token: $1 };
4237
4962
  });
4238
4963
  function OpenBrace(state) {
@@ -4244,7 +4969,7 @@ var require_parser = __commonJS({
4244
4969
  return OpenBrace$0(state);
4245
4970
  }
4246
4971
  }
4247
- var OpenBracket$0 = $TV($EXPECT($L111, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4972
+ var OpenBracket$0 = $TV($EXPECT($L114, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4248
4973
  return { $loc, token: $1 };
4249
4974
  });
4250
4975
  function OpenBracket(state) {
@@ -4256,7 +4981,7 @@ var require_parser = __commonJS({
4256
4981
  return OpenBracket$0(state);
4257
4982
  }
4258
4983
  }
4259
- var OpenParen$0 = $TV($EXPECT($L112, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4984
+ var OpenParen$0 = $TV($EXPECT($L115, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4260
4985
  return { $loc, token: $1 };
4261
4986
  });
4262
4987
  function OpenParen(state) {
@@ -4268,7 +4993,7 @@ var require_parser = __commonJS({
4268
4993
  return OpenParen$0(state);
4269
4994
  }
4270
4995
  }
4271
- var QuestionMark$0 = $TV($EXPECT($L113, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4996
+ var QuestionMark$0 = $TV($EXPECT($L116, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4272
4997
  return { $loc, token: $1 };
4273
4998
  });
4274
4999
  function QuestionMark(state) {
@@ -4280,7 +5005,7 @@ var require_parser = __commonJS({
4280
5005
  return QuestionMark$0(state);
4281
5006
  }
4282
5007
  }
4283
- var Return$0 = $TS($S($EXPECT($L114, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5008
+ var Return$0 = $TS($S($EXPECT($L117, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4284
5009
  return { $loc, token: $1 };
4285
5010
  });
4286
5011
  function Return(state) {
@@ -4292,7 +5017,7 @@ var require_parser = __commonJS({
4292
5017
  return Return$0(state);
4293
5018
  }
4294
5019
  }
4295
- var Semicolon$0 = $TV($EXPECT($L71, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
5020
+ var Semicolon$0 = $TV($EXPECT($L73, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
4296
5021
  return { $loc, token: $1 };
4297
5022
  });
4298
5023
  function Semicolon(state) {
@@ -4304,7 +5029,7 @@ var require_parser = __commonJS({
4304
5029
  return Semicolon$0(state);
4305
5030
  }
4306
5031
  }
4307
- var SingleQuote$0 = $TV($EXPECT($L115, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
5032
+ var SingleQuote$0 = $TV($EXPECT($L118, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
4308
5033
  return { $loc, token: $1 };
4309
5034
  });
4310
5035
  function SingleQuote(state) {
@@ -4316,7 +5041,7 @@ var require_parser = __commonJS({
4316
5041
  return SingleQuote$0(state);
4317
5042
  }
4318
5043
  }
4319
- var Star$0 = $TV($EXPECT($L45, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
5044
+ var Star$0 = $TV($EXPECT($L46, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
4320
5045
  return { $loc, token: $1 };
4321
5046
  });
4322
5047
  function Star(state) {
@@ -4328,10 +5053,10 @@ var require_parser = __commonJS({
4328
5053
  return Star$0(state);
4329
5054
  }
4330
5055
  }
4331
- var Static$0 = $TV($EXPECT($L116, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
5056
+ var Static$0 = $TV($EXPECT($L119, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
4332
5057
  return { $loc, token: $1 };
4333
5058
  });
4334
- var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L112, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
5059
+ var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L115, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
4335
5060
  return { $loc, token: "static " };
4336
5061
  });
4337
5062
  function Static(state) {
@@ -4341,7 +5066,7 @@ var require_parser = __commonJS({
4341
5066
  return Static$0(state) || Static$1(state);
4342
5067
  }
4343
5068
  }
4344
- var SubstitutionStart$0 = $TV($EXPECT($L117, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
5069
+ var SubstitutionStart$0 = $TV($EXPECT($L120, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4345
5070
  return { $loc, token: $1 };
4346
5071
  });
4347
5072
  function SubstitutionStart(state) {
@@ -4353,7 +5078,7 @@ var require_parser = __commonJS({
4353
5078
  return SubstitutionStart$0(state);
4354
5079
  }
4355
5080
  }
4356
- var Switch$0 = $TS($S($EXPECT($L118, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5081
+ var Switch$0 = $TS($S($EXPECT($L121, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4357
5082
  return { $loc, token: $1 };
4358
5083
  });
4359
5084
  function Switch(state) {
@@ -4365,7 +5090,7 @@ var require_parser = __commonJS({
4365
5090
  return Switch$0(state);
4366
5091
  }
4367
5092
  }
4368
- var Target$0 = $TV($EXPECT($L119, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
5093
+ var Target$0 = $TV($EXPECT($L122, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4369
5094
  return { $loc, token: $1 };
4370
5095
  });
4371
5096
  function Target(state) {
@@ -4377,7 +5102,19 @@ var require_parser = __commonJS({
4377
5102
  return Target$0(state);
4378
5103
  }
4379
5104
  }
4380
- var Throw$0 = $TS($S($EXPECT($L120, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5105
+ var Then$0 = $TS($S(__, $EXPECT($L123, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
5106
+ return { $loc, token: "" };
5107
+ });
5108
+ function Then(state) {
5109
+ if (state.verbose)
5110
+ console.log("ENTER:", "Then");
5111
+ if (state.tokenize) {
5112
+ return $TOKEN("Then", state, Then$0(state));
5113
+ } else {
5114
+ return Then$0(state);
5115
+ }
5116
+ }
5117
+ var Throw$0 = $TS($S($EXPECT($L124, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4381
5118
  return { $loc, token: $1 };
4382
5119
  });
4383
5120
  function Throw(state) {
@@ -4389,7 +5126,7 @@ var require_parser = __commonJS({
4389
5126
  return Throw$0(state);
4390
5127
  }
4391
5128
  }
4392
- var TripleDoubleQuote$0 = $TV($EXPECT($L121, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
5129
+ var TripleDoubleQuote$0 = $TV($EXPECT($L125, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
4393
5130
  return { $loc, token: "`" };
4394
5131
  });
4395
5132
  function TripleDoubleQuote(state) {
@@ -4401,7 +5138,7 @@ var require_parser = __commonJS({
4401
5138
  return TripleDoubleQuote$0(state);
4402
5139
  }
4403
5140
  }
4404
- var TripleSingleQuote$0 = $TV($EXPECT($L122, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
5141
+ var TripleSingleQuote$0 = $TV($EXPECT($L126, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
4405
5142
  return { $loc, token: "`" };
4406
5143
  });
4407
5144
  function TripleSingleQuote(state) {
@@ -4413,7 +5150,7 @@ var require_parser = __commonJS({
4413
5150
  return TripleSingleQuote$0(state);
4414
5151
  }
4415
5152
  }
4416
- var TripleTick$0 = $TV($EXPECT($L123, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
5153
+ var TripleTick$0 = $TV($EXPECT($L127, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
4417
5154
  return { $loc, token: "`" };
4418
5155
  });
4419
5156
  function TripleTick(state) {
@@ -4425,7 +5162,7 @@ var require_parser = __commonJS({
4425
5162
  return TripleTick$0(state);
4426
5163
  }
4427
5164
  }
4428
- var Try$0 = $TV($EXPECT($L124, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
5165
+ var Try$0 = $TV($EXPECT($L128, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
4429
5166
  return { $loc, token: $1 };
4430
5167
  });
4431
5168
  function Try(state) {
@@ -4437,7 +5174,7 @@ var require_parser = __commonJS({
4437
5174
  return Try$0(state);
4438
5175
  }
4439
5176
  }
4440
- var Typeof$0 = $TS($S($EXPECT($L125, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5177
+ var Typeof$0 = $TS($S($EXPECT($L129, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4441
5178
  return { $loc, token: $1 };
4442
5179
  });
4443
5180
  function Typeof(state) {
@@ -4449,7 +5186,7 @@ var require_parser = __commonJS({
4449
5186
  return Typeof$0(state);
4450
5187
  }
4451
5188
  }
4452
- var Unless$0 = $TV($EXPECT($L126, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
5189
+ var Unless$0 = $TV($EXPECT($L130, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
4453
5190
  return { $loc, token: $1 };
4454
5191
  });
4455
5192
  function Unless(state) {
@@ -4461,7 +5198,7 @@ var require_parser = __commonJS({
4461
5198
  return Unless$0(state);
4462
5199
  }
4463
5200
  }
4464
- var Until$0 = $TS($S($EXPECT($L127, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5201
+ var Until$0 = $TS($S($EXPECT($L131, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4465
5202
  return { $loc, token: $1 };
4466
5203
  });
4467
5204
  function Until(state) {
@@ -4473,7 +5210,7 @@ var require_parser = __commonJS({
4473
5210
  return Until$0(state);
4474
5211
  }
4475
5212
  }
4476
- var Var$0 = $TV($EXPECT($L128, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
5213
+ var Var$0 = $TV($EXPECT($L132, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
4477
5214
  return { $loc, token: $1 };
4478
5215
  });
4479
5216
  function Var(state) {
@@ -4485,7 +5222,7 @@ var require_parser = __commonJS({
4485
5222
  return Var$0(state);
4486
5223
  }
4487
5224
  }
4488
- var Void$0 = $TS($S($EXPECT($L129, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5225
+ var Void$0 = $TS($S($EXPECT($L133, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4489
5226
  return { $loc, token: $1 };
4490
5227
  });
4491
5228
  function Void(state) {
@@ -4497,7 +5234,7 @@ var require_parser = __commonJS({
4497
5234
  return Void$0(state);
4498
5235
  }
4499
5236
  }
4500
- var When$0 = $TS($S($EXPECT($L130, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5237
+ var When$0 = $TS($S($EXPECT($L134, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4501
5238
  return { $loc, token: "case" };
4502
5239
  });
4503
5240
  function When(state) {
@@ -4509,7 +5246,7 @@ var require_parser = __commonJS({
4509
5246
  return When$0(state);
4510
5247
  }
4511
5248
  }
4512
- var While$0 = $TS($S($EXPECT($L131, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5249
+ var While$0 = $TS($S($EXPECT($L135, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4513
5250
  return { $loc, token: $1 };
4514
5251
  });
4515
5252
  function While(state) {
@@ -4521,7 +5258,7 @@ var require_parser = __commonJS({
4521
5258
  return While$0(state);
4522
5259
  }
4523
5260
  }
4524
- var Yield$0 = $TS($S($EXPECT($L132, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5261
+ var Yield$0 = $TS($S($EXPECT($L136, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4525
5262
  return { $loc, token: $1 };
4526
5263
  });
4527
5264
  function Yield(state) {
@@ -4547,7 +5284,7 @@ var require_parser = __commonJS({
4547
5284
  return JSXElement$0(state) || JSXElement$1(state);
4548
5285
  }
4549
5286
  }
4550
- var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L133, fail, 'JSXSelfClosingElement "/>"'));
5287
+ var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L137, fail, 'JSXSelfClosingElement "/>"'));
4551
5288
  function JSXSelfClosingElement(state) {
4552
5289
  if (state.verbose)
4553
5290
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -4557,7 +5294,7 @@ var require_parser = __commonJS({
4557
5294
  return JSXSelfClosingElement$0(state);
4558
5295
  }
4559
5296
  }
4560
- var JSXOpeningElement$0 = $S($EXPECT($L4, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L55, fail, 'JSXOpeningElement ">"'));
5297
+ var JSXOpeningElement$0 = $S($EXPECT($L4, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L56, fail, 'JSXOpeningElement ">"'));
4561
5298
  function JSXOpeningElement(state) {
4562
5299
  if (state.verbose)
4563
5300
  console.log("ENTER:", "JSXOpeningElement");
@@ -4567,7 +5304,7 @@ var require_parser = __commonJS({
4567
5304
  return JSXOpeningElement$0(state);
4568
5305
  }
4569
5306
  }
4570
- var JSXClosingElement$0 = $S($EXPECT($L134, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
5307
+ var JSXClosingElement$0 = $S($EXPECT($L138, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L56, fail, 'JSXClosingElement ">"'));
4571
5308
  function JSXClosingElement(state) {
4572
5309
  if (state.verbose)
4573
5310
  console.log("ENTER:", "JSXClosingElement");
@@ -4577,7 +5314,7 @@ var require_parser = __commonJS({
4577
5314
  return JSXClosingElement$0(state);
4578
5315
  }
4579
5316
  }
4580
- var JSXFragment$0 = $S($EXPECT($L135, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L136, fail, 'JSXFragment "</>"'));
5317
+ var JSXFragment$0 = $S($EXPECT($L139, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L140, fail, 'JSXFragment "</>"'));
4581
5318
  function JSXFragment(state) {
4582
5319
  if (state.verbose)
4583
5320
  console.log("ENTER:", "JSXFragment");
@@ -4597,7 +5334,7 @@ var require_parser = __commonJS({
4597
5334
  return JSXElementName$0(state);
4598
5335
  }
4599
5336
  }
4600
- var JSXIdentifierName$0 = $R$0($EXPECT($R33, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
5337
+ var JSXIdentifierName$0 = $R$0($EXPECT($R34, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
4601
5338
  function JSXIdentifierName(state) {
4602
5339
  if (state.verbose)
4603
5340
  console.log("ENTER:", "JSXIdentifierName");
@@ -4617,7 +5354,7 @@ var require_parser = __commonJS({
4617
5354
  return JSXAttributes$0(state);
4618
5355
  }
4619
5356
  }
4620
- var JSXAttribute$0 = $S(OpenBrace, __, DotDotDot, __, AssignmentExpression, __, CloseBrace);
5357
+ var JSXAttribute$0 = $S(OpenBrace, __, DotDotDot, ExtendedExpression, __, CloseBrace);
4621
5358
  var JSXAttribute$1 = $S(JSXAttributeName, $E(JSXAttributeInitializer));
4622
5359
  function JSXAttribute(state) {
4623
5360
  if (state.tokenize) {
@@ -4646,9 +5383,9 @@ var require_parser = __commonJS({
4646
5383
  return JSXAttributeInitializer$0(state);
4647
5384
  }
4648
5385
  }
4649
- var JSXAttributeValue$0 = $R$0($EXPECT($R34, fail, 'JSXAttributeValue /"[^"]*"/'));
4650
- var JSXAttributeValue$1 = $R$0($EXPECT($R35, fail, "JSXAttributeValue /'[^']*'/"));
4651
- var JSXAttributeValue$2 = $S(OpenBrace, __, AssignmentExpression, __, CloseBrace);
5386
+ var JSXAttributeValue$0 = $R$0($EXPECT($R35, fail, 'JSXAttributeValue /"[^"]*"/'));
5387
+ var JSXAttributeValue$1 = $R$0($EXPECT($R36, fail, "JSXAttributeValue /'[^']*'/"));
5388
+ var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
4652
5389
  var JSXAttributeValue$3 = JSXElement;
4653
5390
  var JSXAttributeValue$4 = JSXFragment;
4654
5391
  function JSXAttributeValue(state) {
@@ -4679,7 +5416,7 @@ var require_parser = __commonJS({
4679
5416
  return JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state);
4680
5417
  }
4681
5418
  }
4682
- var JSXText$0 = $R$0($EXPECT($R36, fail, "JSXText /[^{}<>]+/"));
5419
+ var JSXText$0 = $R$0($EXPECT($R37, fail, "JSXText /[^{}<>]+/"));
4683
5420
  function JSXText(state) {
4684
5421
  if (state.verbose)
4685
5422
  console.log("ENTER:", "JSXText");
@@ -4689,7 +5426,7 @@ var require_parser = __commonJS({
4689
5426
  return JSXText$0(state);
4690
5427
  }
4691
5428
  }
4692
- var JSXChildExpression$0 = $S(__, $E($S(DotDotDot, __)), AssignmentExpression);
5429
+ var JSXChildExpression$0 = $S(__, $E($S(DotDotDot, __)), ExtendedExpression);
4693
5430
  function JSXChildExpression(state) {
4694
5431
  if (state.verbose)
4695
5432
  console.log("ENTER:", "JSXChildExpression");
@@ -4711,7 +5448,7 @@ var require_parser = __commonJS({
4711
5448
  return TypeDeclaration$0(state);
4712
5449
  }
4713
5450
  }
4714
- var TypeDeclarationModifier$0 = $S($EXPECT($L137, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
5451
+ var TypeDeclarationModifier$0 = $S($EXPECT($L141, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4715
5452
  var TypeDeclarationModifier$1 = Export;
4716
5453
  function TypeDeclarationModifier(state) {
4717
5454
  if (state.tokenize) {
@@ -4731,7 +5468,7 @@ var require_parser = __commonJS({
4731
5468
  return TypeDeclarationRest$0(state) || TypeDeclarationRest$1(state) || TypeDeclarationRest$2(state) || TypeDeclarationRest$3(state);
4732
5469
  }
4733
5470
  }
4734
- var TypeKeyword$0 = $S($EXPECT($L138, fail, 'TypeKeyword "type"'), NonIdContinue);
5471
+ var TypeKeyword$0 = $S($EXPECT($L142, fail, 'TypeKeyword "type"'), NonIdContinue);
4735
5472
  function TypeKeyword(state) {
4736
5473
  if (state.verbose)
4737
5474
  console.log("ENTER:", "TypeKeyword");
@@ -4741,7 +5478,7 @@ var require_parser = __commonJS({
4741
5478
  return TypeKeyword$0(state);
4742
5479
  }
4743
5480
  }
4744
- var Interface$0 = $S($EXPECT($L139, fail, 'Interface "interface"'), NonIdContinue);
5481
+ var Interface$0 = $S($EXPECT($L143, fail, 'Interface "interface"'), NonIdContinue);
4745
5482
  function Interface(state) {
4746
5483
  if (state.verbose)
4747
5484
  console.log("ENTER:", "Interface");
@@ -4751,7 +5488,7 @@ var require_parser = __commonJS({
4751
5488
  return Interface$0(state);
4752
5489
  }
4753
5490
  }
4754
- var Namespace$0 = $S($EXPECT($L140, fail, 'Namespace "namespace"'), NonIdContinue);
5491
+ var Namespace$0 = $S($EXPECT($L144, fail, 'Namespace "namespace"'), NonIdContinue);
4755
5492
  function Namespace(state) {
4756
5493
  if (state.verbose)
4757
5494
  console.log("ENTER:", "Namespace");
@@ -4851,7 +5588,7 @@ var require_parser = __commonJS({
4851
5588
  return NestedTypeDeclaration$0(state);
4852
5589
  }
4853
5590
  }
4854
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R37, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L141, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
5591
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L145, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R39, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4855
5592
  function TypeIndexSignature(state) {
4856
5593
  if (state.verbose)
4857
5594
  console.log("ENTER:", "TypeIndexSignature");
@@ -4882,7 +5619,7 @@ var require_parser = __commonJS({
4882
5619
  return TypeSuffix$0(state);
4883
5620
  }
4884
5621
  }
4885
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L142, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
5622
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L146, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
4886
5623
  if (!$3)
4887
5624
  $0.splice(2, 1);
4888
5625
  if ($1.length === 0)
@@ -4902,7 +5639,7 @@ var require_parser = __commonJS({
4902
5639
  return ReturnTypeSuffix$0(state);
4903
5640
  }
4904
5641
  }
4905
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L58, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
5642
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L60, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
4906
5643
  if (!$2)
4907
5644
  return $1;
4908
5645
  return $0;
@@ -4965,9 +5702,9 @@ var require_parser = __commonJS({
4965
5702
  return TypeUnarySuffix$0(state) || TypeUnarySuffix$1(state);
4966
5703
  }
4967
5704
  }
4968
- var TypeUnaryOp$0 = $EXPECT($L143, fail, 'TypeUnaryOp "keyof"');
4969
- var TypeUnaryOp$1 = $EXPECT($L125, fail, 'TypeUnaryOp "typeof"');
4970
- var TypeUnaryOp$2 = $EXPECT($L144, fail, 'TypeUnaryOp "infer"');
5705
+ var TypeUnaryOp$0 = $EXPECT($L147, fail, 'TypeUnaryOp "keyof"');
5706
+ var TypeUnaryOp$1 = $EXPECT($L129, fail, 'TypeUnaryOp "typeof"');
5707
+ var TypeUnaryOp$2 = $EXPECT($L148, fail, 'TypeUnaryOp "infer"');
4971
5708
  function TypeUnaryOp(state) {
4972
5709
  if (state.tokenize) {
4973
5710
  return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state));
@@ -5057,10 +5794,10 @@ var require_parser = __commonJS({
5057
5794
  }
5058
5795
  }
5059
5796
  var TypeLiteral$0 = Literal;
5060
- var TypeLiteral$1 = $TV($EXPECT($L129, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
5797
+ var TypeLiteral$1 = $TV($EXPECT($L133, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
5061
5798
  return { $loc, token: "void" };
5062
5799
  });
5063
- var TypeLiteral$2 = $TV($EXPECT($L145, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
5800
+ var TypeLiteral$2 = $TV($EXPECT($L149, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
5064
5801
  return { $loc, token: "[]" };
5065
5802
  });
5066
5803
  function TypeLiteral(state) {
@@ -5070,10 +5807,10 @@ var require_parser = __commonJS({
5070
5807
  return TypeLiteral$0(state) || TypeLiteral$1(state) || TypeLiteral$2(state);
5071
5808
  }
5072
5809
  }
5073
- var TypeBinaryOp$0 = $TV($EXPECT($L70, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
5810
+ var TypeBinaryOp$0 = $TV($EXPECT($L72, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
5074
5811
  return { $loc, token: "|" };
5075
5812
  });
5076
- var TypeBinaryOp$1 = $TV($EXPECT($L68, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
5813
+ var TypeBinaryOp$1 = $TV($EXPECT($L70, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
5077
5814
  return { $loc, token: "&" };
5078
5815
  });
5079
5816
  function TypeBinaryOp(state) {
@@ -5093,7 +5830,7 @@ var require_parser = __commonJS({
5093
5830
  return FunctionType$0(state);
5094
5831
  }
5095
5832
  }
5096
- var TypeArguments$0 = $S(__, $EXPECT($L4, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L55, fail, 'TypeArguments ">"'));
5833
+ var TypeArguments$0 = $S(__, $EXPECT($L4, fail, 'TypeArguments "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L56, fail, 'TypeArguments ">"'));
5097
5834
  function TypeArguments(state) {
5098
5835
  if (state.verbose)
5099
5836
  console.log("ENTER:", "TypeArguments");
@@ -5103,7 +5840,7 @@ var require_parser = __commonJS({
5103
5840
  return TypeArguments$0(state);
5104
5841
  }
5105
5842
  }
5106
- var TypeParameters$0 = $TS($S(__, $EXPECT($L4, 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) {
5843
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L4, fail, 'TypeParameters "<"'), __, Type, $Q($S(__, Comma, __, Type)), $E($S(__, Comma)), __, $EXPECT($L56, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
5107
5844
  return { ts: true, children: $0 };
5108
5845
  });
5109
5846
  function TypeParameters(state) {
@@ -5136,8 +5873,8 @@ var require_parser = __commonJS({
5136
5873
  }
5137
5874
  }
5138
5875
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
5139
- var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L55, fail, 'TypeParameterDelimiter ">"')));
5140
- var TypeParameterDelimiter$2 = $TV($Y($S(__, $EXPECT($L55, fail, 'TypeParameterDelimiter ">"'))), function($skip, $loc, $0, $1) {
5876
+ var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L56, fail, 'TypeParameterDelimiter ">"')));
5877
+ var TypeParameterDelimiter$2 = $TV($Y($S(__, $EXPECT($L56, fail, 'TypeParameterDelimiter ">"'))), function($skip, $loc, $0, $1) {
5141
5878
  return { $loc, token: "," };
5142
5879
  });
5143
5880
  var TypeParameterDelimiter$3 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
@@ -5150,7 +5887,7 @@ var require_parser = __commonJS({
5150
5887
  return TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
5151
5888
  }
5152
5889
  }
5153
- var Shebang$0 = $S($R$0($EXPECT($R39, fail, "Shebang /#![^\\r\\n]*/")), EOL);
5890
+ var Shebang$0 = $S($R$0($EXPECT($R40, fail, "Shebang /#![^\\r\\n]*/")), EOL);
5154
5891
  function Shebang(state) {
5155
5892
  if (state.verbose)
5156
5893
  console.log("ENTER:", "Shebang");
@@ -5160,11 +5897,11 @@ var require_parser = __commonJS({
5160
5897
  return Shebang$0(state);
5161
5898
  }
5162
5899
  }
5163
- var CivetPrologue$0 = $T($S($EXPECT($R40, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
5900
+ var CivetPrologue$0 = $T($S($EXPECT($R41, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
5164
5901
  var content = value[2];
5165
5902
  return content;
5166
5903
  });
5167
- var CivetPrologue$1 = $T($S($EXPECT($R40, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
5904
+ var CivetPrologue$1 = $T($S($EXPECT($R41, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
5168
5905
  var content = value[2];
5169
5906
  return content;
5170
5907
  });
@@ -5175,7 +5912,7 @@ var require_parser = __commonJS({
5175
5912
  return CivetPrologue$0(state) || CivetPrologue$1(state);
5176
5913
  }
5177
5914
  }
5178
- var CivetPrologueContent$0 = $TS($S($EXPECT($L146, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R41, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5915
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L150, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R42, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5179
5916
  var options = $2;
5180
5917
  return {
5181
5918
  type: "CivetPrologue",
@@ -5192,7 +5929,7 @@ var require_parser = __commonJS({
5192
5929
  return CivetPrologueContent$0(state);
5193
5930
  }
5194
5931
  }
5195
- var CivetOption$0 = $TR($EXPECT($R42, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5932
+ var CivetOption$0 = $TR($EXPECT($R43, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5196
5933
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
5197
5934
  if (l)
5198
5935
  return l.toUpperCase();
@@ -5210,7 +5947,7 @@ var require_parser = __commonJS({
5210
5947
  return CivetOption$0(state);
5211
5948
  }
5212
5949
  }
5213
- var UnknownPrologue$0 = $S($R$0($EXPECT($R40, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
5950
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R41, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
5214
5951
  function UnknownPrologue(state) {
5215
5952
  if (state.verbose)
5216
5953
  console.log("ENTER:", "UnknownPrologue");
@@ -5239,7 +5976,7 @@ var require_parser = __commonJS({
5239
5976
  return EOS$0(state);
5240
5977
  }
5241
5978
  }
5242
- var EOL$0 = $TR($EXPECT($R43, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5979
+ var EOL$0 = $TR($EXPECT($R44, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
5243
5980
  return { $loc, token: $0 };
5244
5981
  });
5245
5982
  function EOL(state) {
@@ -5437,6 +6174,34 @@ var require_parser = __commonJS({
5437
6174
  return CoffeeInterpolationEnabled$0(state);
5438
6175
  }
5439
6176
  }
6177
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L0, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
6178
+ if (module2.config.coffeeIsnt)
6179
+ return;
6180
+ return $skip;
6181
+ });
6182
+ function CoffeeIsntEnabled(state) {
6183
+ if (state.verbose)
6184
+ console.log("ENTER:", "CoffeeIsntEnabled");
6185
+ if (state.tokenize) {
6186
+ return $TOKEN("CoffeeIsntEnabled", state, CoffeeIsntEnabled$0(state));
6187
+ } else {
6188
+ return CoffeeIsntEnabled$0(state);
6189
+ }
6190
+ }
6191
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L0, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
6192
+ if (module2.config.coffeeNot)
6193
+ return;
6194
+ return $skip;
6195
+ });
6196
+ function CoffeeNotEnabled(state) {
6197
+ if (state.verbose)
6198
+ console.log("ENTER:", "CoffeeNotEnabled");
6199
+ if (state.tokenize) {
6200
+ return $TOKEN("CoffeeNotEnabled", state, CoffeeNotEnabled$0(state));
6201
+ } else {
6202
+ return CoffeeNotEnabled$0(state);
6203
+ }
6204
+ }
5440
6205
  var Reset$0 = $TV($EXPECT($L0, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
5441
6206
  module2.currentIndent = 0;
5442
6207
  module2.indentLevels = [0];
@@ -5447,6 +6212,8 @@ var require_parser = __commonJS({
5447
6212
  coffeeComment: false,
5448
6213
  coffeeEq: false,
5449
6214
  coffeeInterpolation: false,
6215
+ coffeeIsnt: false,
6216
+ coffeeNot: false,
5450
6217
  implicitReturns: true
5451
6218
  };
5452
6219
  Object.defineProperty(module2.config, "coffeeCompat", {
@@ -5457,14 +6224,16 @@ var require_parser = __commonJS({
5457
6224
  this.coffeeComment = true;
5458
6225
  this.coffeeEq = true;
5459
6226
  this.coffeeInterpolation = true;
5460
- this.implicitReturns = true;
6227
+ this.coffeeIsnt = true;
6228
+ this.coffeeNot = true;
5461
6229
  } else {
5462
6230
  this.autoVar = false;
5463
6231
  this.coffeeBooleans = false;
5464
6232
  this.coffeeComment = false;
5465
6233
  this.coffeeEq = false;
5466
6234
  this.coffeeInterpolation = false;
5467
- this.implicitReturns = false;
6235
+ this.coffeeIsnt = false;
6236
+ this.coffeeNot = false;
5468
6237
  }
5469
6238
  }
5470
6239
  });
@@ -5496,7 +6265,7 @@ var require_parser = __commonJS({
5496
6265
  node.children.unshift("return ");
5497
6266
  return;
5498
6267
  case "Identifier":
5499
- node.token = "return " + node.token;
6268
+ node.children.unshift("return ");
5500
6269
  return;
5501
6270
  case "BlockStatement":
5502
6271
  insertReturn(node.expressions[node.expressions.length - 1]);
@@ -5529,10 +6298,11 @@ var require_parser = __commonJS({
5529
6298
  case "ContinueStatement":
5530
6299
  case "DebuggerStatement":
5531
6300
  case "EmptyStatement":
6301
+ case "ForStatement":
5532
6302
  case "IterationStatement":
5533
6303
  case "ReturnStatement":
5534
6304
  case "ThrowStatement":
5535
- case "VariableDeclaration":
6305
+ case "Declaration":
5536
6306
  return;
5537
6307
  case "BlockStatement":
5538
6308
  insertReturn(exp.expressions[exp.expressions.length - 1]);
@@ -5640,9 +6410,10 @@ var require_parser = __commonJS({
5640
6410
  };
5641
6411
  module2.insertTrimmingSpace = function(spacing, c) {
5642
6412
  let target = spacing;
5643
- while (Array.isArray(target)) {
5644
- target = target[0];
5645
- }
6413
+ if (Array.isArray(target))
6414
+ return module2.insertTrimmingSpace(target[0], c);
6415
+ if (target.children)
6416
+ return module2.insertTrimmingSpace(target.children[0], c);
5646
6417
  if (target.token) {
5647
6418
  target.token = target.token.replace(/^ ?/, c);
5648
6419
  }
@@ -5698,6 +6469,91 @@ var require_parser = __commonJS({
5698
6469
  token: str
5699
6470
  };
5700
6471
  };
6472
+ function gatherNodes(node, predicate) {
6473
+ if (node == null)
6474
+ return [];
6475
+ if (Array.isArray(node)) {
6476
+ return node.flatMap((n) => gatherNodes(n, predicate));
6477
+ }
6478
+ if (predicate(node)) {
6479
+ return [node];
6480
+ }
6481
+ switch (node.type) {
6482
+ case "BlockStatement":
6483
+ return [];
6484
+ case "ForStatement":
6485
+ if (node.declaration.type === "Declaration")
6486
+ return [];
6487
+ return gatherNodes(node.declaration, predicate);
6488
+ default:
6489
+ return gatherNodes(node.children, predicate);
6490
+ }
6491
+ return [];
6492
+ }
6493
+ module2.processProgram = function(statements) {
6494
+ if (module2.config.autoVar) {
6495
+ module2.autoVar(statements, []);
6496
+ }
6497
+ };
6498
+ function findDecs(statements) {
6499
+ const declarationNames = gatherNodes(statements, (node) => {
6500
+ if (node.type === "Declaration") {
6501
+ return true;
6502
+ }
6503
+ }).flatMap((d) => d.names);
6504
+ return new Set(declarationNames);
6505
+ }
6506
+ module2.autoVar = function(statements, scopes, pushVar) {
6507
+ function hasDec(name) {
6508
+ return scopes.some((s) => s.has(name));
6509
+ }
6510
+ function findAssignments(statements2, decs2) {
6511
+ const assignmentStatements = gatherNodes(statements2, (node) => {
6512
+ return node.type === "AssignmentExpression";
6513
+ });
6514
+ const undeclaredIdentifiers = assignmentStatements.flatMap((a) => {
6515
+ return a.children[0].flatMap((x) => {
6516
+ return x[1].names || [];
6517
+ });
6518
+ });
6519
+ return undeclaredIdentifiers.filter((x, i, a) => {
6520
+ if (!hasDec(x))
6521
+ return a.indexOf(x) === i;
6522
+ });
6523
+ }
6524
+ if (!pushVar) {
6525
+ pushVar = function(name) {
6526
+ varIds.push(name);
6527
+ decs.add(name);
6528
+ };
6529
+ }
6530
+ const decs = findDecs(statements);
6531
+ scopes.push(decs);
6532
+ const varIds = [];
6533
+ findAssignments(statements, scopes).forEach(pushVar);
6534
+ const fnNodes = gatherNodes(statements, (s) => s.type === "FunctionExpression");
6535
+ const forNodes = gatherNodes(statements, (s) => s.type === "ForStatement");
6536
+ const blockNodes = new Set(gatherNodes(statements, (s) => s.type === "BlockStatement"));
6537
+ fnNodes.forEach(({ block }) => blockNodes.delete(block));
6538
+ forNodes.forEach(({ block }) => blockNodes.delete(block));
6539
+ blockNodes.forEach((block) => {
6540
+ module2.autoVar(block.expressions, scopes, pushVar);
6541
+ });
6542
+ forNodes.forEach(({ block, declaration }) => {
6543
+ scopes.push(new Set(declaration.names));
6544
+ module2.autoVar(block.expressions, scopes, pushVar);
6545
+ scopes.pop();
6546
+ });
6547
+ fnNodes.forEach(({ block, parameters }) => {
6548
+ scopes.push(new Set(parameters.names));
6549
+ module2.autoVar(block.expressions, scopes);
6550
+ scopes.pop();
6551
+ });
6552
+ if (varIds.length) {
6553
+ const indent = statements[0][0];
6554
+ statements.unshift([indent, "var ", varIds.join(", "), "\n"]);
6555
+ }
6556
+ };
5701
6557
  return $0;
5702
6558
  });
5703
6559
  function Init(state) {
@@ -5709,7 +6565,7 @@ var require_parser = __commonJS({
5709
6565
  return Init$0(state);
5710
6566
  }
5711
6567
  }
5712
- var Indent$0 = $TV($Q($C($EXPECT($L147, fail, 'Indent " "'), $EXPECT($L148, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
6568
+ var Indent$0 = $TV($Q($C($EXPECT($L151, fail, 'Indent " "'), $EXPECT($L152, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
5713
6569
  const level = $1.length;
5714
6570
  return {
5715
6571
  $loc,