@danielx/civet 0.4.16 → 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,13 +1252,17 @@ 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 = $TS($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function($skip, $loc, $0, $1, $2) {
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) {
1204
1258
  const lastAssignment = $1[$1.length - 1];
1259
+ let tail = [];
1205
1260
  if (lastAssignment[3].token === "=") {
1206
1261
  const lhs = lastAssignment[1];
1262
+ if (lhs.type === "ObjectExpression") {
1263
+ lhs.children.splice(0, 0, "(");
1264
+ tail.push(")");
1265
+ }
1207
1266
  if (Array.isArray(lhs) && lhs.length > 1) {
1208
1267
  const props = lhs[lhs.length - 1];
1209
1268
  if (Array.isArray(props)) {
@@ -1229,39 +1288,53 @@ var require_parser = __commonJS({
1229
1288
  }
1230
1289
  return {
1231
1290
  type: "AssignmentExpression",
1232
- children: $0
1291
+ children: [...$0, ...tail]
1233
1292
  };
1234
1293
  });
1235
- var AssignmentExpressionRest$4 = ConditionalExpression;
1236
- function AssignmentExpressionRest(state) {
1294
+ var AssignmentExpressionTail$3 = ConditionalExpression;
1295
+ function AssignmentExpressionTail(state) {
1237
1296
  if (state.tokenize) {
1238
- 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));
1239
1298
  } else {
1240
- 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);
1241
1300
  }
1242
1301
  }
1243
- var AwaitExpression$0 = $S(Await, $Q(TrailingComment), AssignmentExpression);
1244
- function AwaitExpression(state) {
1302
+ var YieldExpression$0 = $S(Yield, YieldTail);
1303
+ function YieldExpression(state) {
1245
1304
  if (state.verbose)
1246
- console.log("ENTER:", "AwaitExpression");
1305
+ console.log("ENTER:", "YieldExpression");
1306
+ if (state.tokenize) {
1307
+ return $TOKEN("YieldExpression", state, YieldExpression$0(state));
1308
+ } else {
1309
+ return YieldExpression$0(state);
1310
+ }
1311
+ }
1312
+ var YieldTail$0 = $Y(EOS);
1313
+ var YieldTail$1 = $S($E($S($Q(TrailingComment), Star)), AssignmentExpression);
1314
+ function YieldTail(state) {
1247
1315
  if (state.tokenize) {
1248
- return $TOKEN("AwaitExpression", state, AwaitExpression$0(state));
1316
+ return $TOKEN("YieldTail", state, YieldTail$0(state) || YieldTail$1(state));
1249
1317
  } else {
1250
- return AwaitExpression$0(state);
1318
+ return YieldTail$0(state) || YieldTail$1(state);
1251
1319
  }
1252
1320
  }
1253
- var YieldExpression$0 = $S(Yield, $E($S($Q(TrailingComment), Star)), AssignmentExpression);
1254
- function YieldExpression(state) {
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) {
1255
1327
  if (state.verbose)
1256
- console.log("ENTER:", "YieldExpression");
1328
+ console.log("ENTER:", "ArrowFunction");
1257
1329
  if (state.tokenize) {
1258
- return $TOKEN("YieldExpression", state, YieldExpression$0(state));
1330
+ return $TOKEN("ArrowFunction", state, ArrowFunction$0(state));
1259
1331
  } else {
1260
- return YieldExpression$0(state);
1332
+ return ArrowFunction$0(state);
1261
1333
  }
1262
1334
  }
1263
- var ArrowFunction$0 = ThinArrowFunction;
1264
- 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;
1265
1338
  var suffix = $2;
1266
1339
  var expOrBlock = $4;
1267
1340
  const isVoid = suffix?.children?.[1]?.[0]?.[1]?.token === "void";
@@ -1270,15 +1343,19 @@ var require_parser = __commonJS({
1270
1343
  module2.addImplicitReturns(expOrBlock);
1271
1344
  }
1272
1345
  return {
1273
- type: "FunctionExpression",
1346
+ type: "ArrowFunction",
1347
+ parameters,
1348
+ returnType: suffix,
1349
+ ts: false,
1350
+ block: expOrBlock,
1274
1351
  children: $0
1275
1352
  };
1276
1353
  });
1277
- function ArrowFunction(state) {
1354
+ function ArrowFunctionTail(state) {
1278
1355
  if (state.tokenize) {
1279
- return $TOKEN("ArrowFunction", state, ArrowFunction$0(state) || ArrowFunction$1(state));
1356
+ return $TOKEN("ArrowFunctionTail", state, ArrowFunctionTail$0(state) || ArrowFunctionTail$1(state));
1280
1357
  } else {
1281
- return ArrowFunction$0(state) || ArrowFunction$1(state);
1358
+ return ArrowFunctionTail$0(state) || ArrowFunctionTail$1(state);
1282
1359
  }
1283
1360
  }
1284
1361
  var FatArrow$0 = $TS($S(__, $EXPECT($L3, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
@@ -1296,25 +1373,24 @@ var require_parser = __commonJS({
1296
1373
  return FatArrow$0(state);
1297
1374
  }
1298
1375
  }
1299
- var FatArrowBody$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1376
+ var FatArrowBody$0 = $T($S(__, OpenBrace, EOS, NestedBlockStatements, __, CloseBrace), function(value) {
1300
1377
  var exps = value[3];
1301
1378
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1302
1379
  });
1303
- 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) {
1304
1381
  var exps = value[2];
1305
1382
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1306
1383
  });
1307
1384
  var FatArrowBody$2 = AssignmentExpression;
1308
- var FatArrowBody$3 = $S(__, AssignmentExpression);
1309
- var FatArrowBody$4 = EmptyBlock;
1385
+ var FatArrowBody$3 = EmptyBlock;
1310
1386
  function FatArrowBody(state) {
1311
1387
  if (state.tokenize) {
1312
- 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));
1313
1389
  } else {
1314
- 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);
1315
1391
  }
1316
1392
  }
1317
- 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) {
1318
1394
  if ($2)
1319
1395
  return $0;
1320
1396
  return $1;
@@ -1347,7 +1423,7 @@ var require_parser = __commonJS({
1347
1423
  var PrimaryExpression$6 = ClassExpression;
1348
1424
  var PrimaryExpression$7 = RegularExpressionLiteral;
1349
1425
  var PrimaryExpression$8 = TemplateLiteral;
1350
- var PrimaryExpression$9 = $S(OpenParen, Expression, __, CloseParen);
1426
+ var PrimaryExpression$9 = $S(OpenParen, ExtendedExpression, __, CloseParen);
1351
1427
  var PrimaryExpression$10 = JSXElement;
1352
1428
  var PrimaryExpression$11 = JSXFragment;
1353
1429
  function PrimaryExpression(state) {
@@ -1443,7 +1519,7 @@ var require_parser = __commonJS({
1443
1519
  return ClassElement$0(state) || ClassElement$1(state);
1444
1520
  }
1445
1521
  }
1446
- 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) {
1447
1523
  var r = $1;
1448
1524
  var ca = $5;
1449
1525
  r.children[0].$loc = {
@@ -1486,27 +1562,22 @@ var require_parser = __commonJS({
1486
1562
  return AtAccessor$0(state);
1487
1563
  }
1488
1564
  }
1489
- var LeftHandSideExpression$0 = NewExpression;
1490
- 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
+ });
1491
1570
  function LeftHandSideExpression(state) {
1492
- if (state.tokenize) {
1493
- return $TOKEN("LeftHandSideExpression", state, LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state));
1494
- } else {
1495
- return LeftHandSideExpression$0(state) || LeftHandSideExpression$1(state);
1496
- }
1497
- }
1498
- var NewExpression$0 = $S($P($S(New, __)), CallExpression);
1499
- function NewExpression(state) {
1500
1571
  if (state.verbose)
1501
- console.log("ENTER:", "NewExpression");
1572
+ console.log("ENTER:", "LeftHandSideExpression");
1502
1573
  if (state.tokenize) {
1503
- return $TOKEN("NewExpression", state, NewExpression$0(state));
1574
+ return $TOKEN("LeftHandSideExpression", state, LeftHandSideExpression$0(state));
1504
1575
  } else {
1505
- return NewExpression$0(state);
1576
+ return LeftHandSideExpression$0(state);
1506
1577
  }
1507
1578
  }
1508
- var CallExpression$0 = $S($EXPECT($L9, fail, 'CallExpression "super"'), ArgumentsWithTrailingCallExpressions);
1509
- 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);
1510
1581
  var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
1511
1582
  if ($2.length)
1512
1583
  return $0;
@@ -1539,7 +1610,7 @@ var require_parser = __commonJS({
1539
1610
  return OptionalShorthand$0(state);
1540
1611
  }
1541
1612
  }
1542
- var NonNullAssertion$0 = $T($EXPECT($L11, fail, 'NonNullAssertion "!"'), function(value) {
1613
+ var NonNullAssertion$0 = $T($EXPECT($L12, fail, 'NonNullAssertion "!"'), function(value) {
1543
1614
  return { "ts": true, "children": value };
1544
1615
  });
1545
1616
  function NonNullAssertion(state) {
@@ -1551,7 +1622,7 @@ var require_parser = __commonJS({
1551
1622
  return NonNullAssertion$0(state);
1552
1623
  }
1553
1624
  }
1554
- 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$])/"));
1555
1626
  function AdditionalReservedWords(state) {
1556
1627
  if (state.verbose)
1557
1628
  console.log("ENTER:", "AdditionalReservedWords");
@@ -1566,8 +1637,8 @@ var require_parser = __commonJS({
1566
1637
  return $0;
1567
1638
  return $1;
1568
1639
  });
1569
- var MemberExpression$1 = $S($Q(TrailingComment), SuperProperty);
1570
- var MemberExpression$2 = $S($Q(TrailingComment), MetaProperty);
1640
+ var MemberExpression$1 = SuperProperty;
1641
+ var MemberExpression$2 = MetaProperty;
1571
1642
  function MemberExpression(state) {
1572
1643
  if (state.tokenize) {
1573
1644
  return $TOKEN("MemberExpression", state, MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state));
@@ -1581,7 +1652,7 @@ var require_parser = __commonJS({
1581
1652
  return $2;
1582
1653
  });
1583
1654
  var MemberExpressionRest$1 = $S($E($S($Y(EOS), IndentedFurther)), PropertyAccess);
1584
- 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) {
1585
1656
  var id = $3;
1586
1657
  if (id)
1587
1658
  return [".prototype.", id];
@@ -1595,7 +1666,7 @@ var require_parser = __commonJS({
1595
1666
  return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
1596
1667
  }
1597
1668
  }
1598
- 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) {
1599
1670
  if ($3) {
1600
1671
  const sep = $3[0];
1601
1672
  const end = $3[1];
@@ -1647,7 +1718,7 @@ var require_parser = __commonJS({
1647
1718
  return PropertyAccess$0(state);
1648
1719
  }
1649
1720
  }
1650
- var SuperProperty$0 = $S($EXPECT($L13, fail, 'SuperProperty "super["'), Expression, __, CloseBracket);
1721
+ var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
1651
1722
  function SuperProperty(state) {
1652
1723
  if (state.verbose)
1653
1724
  console.log("ENTER:", "SuperProperty");
@@ -1658,7 +1729,7 @@ var require_parser = __commonJS({
1658
1729
  }
1659
1730
  }
1660
1731
  var MetaProperty$0 = $S(New, Dot, Target);
1661
- 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) {
1662
1733
  return { $loc, token: $1 };
1663
1734
  });
1664
1735
  function MetaProperty(state) {
@@ -1670,7 +1741,11 @@ var require_parser = __commonJS({
1670
1741
  }
1671
1742
  var Parameters$0 = NonEmptyParameters;
1672
1743
  var Parameters$1 = $TV($EXPECT($L0, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
1673
- return { $loc, token: "()" };
1744
+ return {
1745
+ type: "Parameters",
1746
+ children: [{ $loc, token: "()" }],
1747
+ names: []
1748
+ };
1674
1749
  });
1675
1750
  function Parameters(state) {
1676
1751
  if (state.tokenize) {
@@ -1679,7 +1754,13 @@ var require_parser = __commonJS({
1679
1754
  return Parameters$0(state) || Parameters$1(state);
1680
1755
  }
1681
1756
  }
1682
- 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
+ });
1683
1764
  function NonEmptyParameters(state) {
1684
1765
  if (state.verbose)
1685
1766
  console.log("ENTER:", "NonEmptyParameters");
@@ -1699,7 +1780,13 @@ var require_parser = __commonJS({
1699
1780
  return FunctionRestParameter$0(state);
1700
1781
  }
1701
1782
  }
1702
- 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
+ });
1703
1790
  function ParameterElement(state) {
1704
1791
  if (state.verbose)
1705
1792
  console.log("ENTER:", "ParameterElement");
@@ -1710,7 +1797,7 @@ var require_parser = __commonJS({
1710
1797
  }
1711
1798
  }
1712
1799
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
1713
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L15, fail, 'ParameterElementDelimiter ")"')));
1800
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L16, fail, 'ParameterElementDelimiter ")"')));
1714
1801
  var ParameterElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
1715
1802
  return { $loc, token: "," };
1716
1803
  });
@@ -1721,7 +1808,10 @@ var require_parser = __commonJS({
1721
1808
  return ParameterElementDelimiter$0(state) || ParameterElementDelimiter$1(state) || ParameterElementDelimiter$2(state);
1722
1809
  }
1723
1810
  }
1724
- 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
+ });
1725
1815
  function BindingIdentifier(state) {
1726
1816
  if (state.verbose)
1727
1817
  console.log("ENTER:", "BindingIdentifier");
@@ -1731,8 +1821,16 @@ var require_parser = __commonJS({
1731
1821
  return BindingIdentifier$0(state);
1732
1822
  }
1733
1823
  }
1734
- var BindingPattern$0 = $S(__, ObjectBindingPattern);
1735
- 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
+ });
1736
1834
  function BindingPattern(state) {
1737
1835
  if (state.tokenize) {
1738
1836
  return $TOKEN("BindingPattern", state, BindingPattern$0(state) || BindingPattern$1(state));
@@ -1740,32 +1838,111 @@ var require_parser = __commonJS({
1740
1838
  return BindingPattern$0(state) || BindingPattern$1(state);
1741
1839
  }
1742
1840
  }
1743
- var ObjectBindingPattern$0 = $S(OpenBrace, $Y(EOS), NestedBindingProperties, __, CloseBrace);
1744
- 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
+ });
1745
1847
  function ObjectBindingPattern(state) {
1848
+ if (state.verbose)
1849
+ console.log("ENTER:", "ObjectBindingPattern");
1850
+ if (state.tokenize) {
1851
+ return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state));
1852
+ } else {
1853
+ return ObjectBindingPattern$0(state);
1854
+ }
1855
+ }
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) {
1746
1874
  if (state.tokenize) {
1747
- return $TOKEN("ObjectBindingPattern", state, ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state));
1875
+ return $TOKEN("ObjectBindingPatternContent", state, ObjectBindingPatternContent$0(state) || ObjectBindingPatternContent$1(state));
1748
1876
  } else {
1749
- return ObjectBindingPattern$0(state) || ObjectBindingPattern$1(state);
1877
+ return ObjectBindingPatternContent$0(state) || ObjectBindingPatternContent$1(state);
1750
1878
  }
1751
1879
  }
1752
- var ArrayBindingPattern$0 = $S(OpenBracket, $Y(EOS), NestedBindingElements, __, CloseBracket);
1753
- var ArrayBindingPattern$1 = $S(OpenBracket, $Q($C(BindingElement, Elision)), $E($S(__, BindingRestElement)), __, CloseBracket);
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
+ });
1754
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) {
1755
1915
  if (state.tokenize) {
1756
- return $TOKEN("ArrayBindingPattern", state, ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state));
1916
+ return $TOKEN("ArrayBindingPatternContent", state, ArrayBindingPatternContent$0(state) || ArrayBindingPatternContent$1(state));
1757
1917
  } else {
1758
- return ArrayBindingPattern$0(state) || ArrayBindingPattern$1(state);
1918
+ return ArrayBindingPatternContent$0(state) || ArrayBindingPatternContent$1(state);
1759
1919
  }
1760
1920
  }
1761
- 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) {
1762
1932
  var props = $2;
1763
1933
  var rest = $3;
1764
- if (!props.length)
1934
+ if (!(props.length || rest))
1765
1935
  return $skip;
1766
- if (rest)
1936
+ const names = props.flatMap((p) => p.names);
1937
+ if (rest) {
1767
1938
  props.push(rest);
1768
- return props;
1939
+ names.push(...rest.names);
1940
+ }
1941
+ return {
1942
+ type: "BindingPattern",
1943
+ children: props,
1944
+ names
1945
+ };
1769
1946
  });
1770
1947
  function NestedBindingProperties(state) {
1771
1948
  if (state.verbose)
@@ -1776,7 +1953,10 @@ var require_parser = __commonJS({
1776
1953
  return NestedBindingProperties$0(state);
1777
1954
  }
1778
1955
  }
1779
- 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
+ });
1780
1960
  function NestedBindingProperty(state) {
1781
1961
  if (state.verbose)
1782
1962
  console.log("ENTER:", "NestedBindingProperty");
@@ -1786,8 +1966,22 @@ var require_parser = __commonJS({
1786
1966
  return NestedBindingProperty$0(state);
1787
1967
  }
1788
1968
  }
1789
- var BindingProperty$0 = $S(__, PropertyName, __, Colon, $C(BindingIdentifier, BindingPattern), $E(Initializer), ObjectPropertyDelimiter);
1790
- 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
+ });
1791
1985
  function BindingProperty(state) {
1792
1986
  if (state.tokenize) {
1793
1987
  return $TOKEN("BindingProperty", state, BindingProperty$0(state) || BindingProperty$1(state));
@@ -1795,7 +1989,23 @@ var require_parser = __commonJS({
1795
1989
  return BindingProperty$0(state) || BindingProperty$1(state);
1796
1990
  }
1797
1991
  }
1798
- 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
+ });
1799
2009
  function BindingRestProperty(state) {
1800
2010
  if (state.verbose)
1801
2011
  console.log("ENTER:", "BindingRestProperty");
@@ -1808,11 +2018,18 @@ var require_parser = __commonJS({
1808
2018
  var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElement), $E($S(Nested, BindingRestElement)), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
1809
2019
  var props = $2;
1810
2020
  var rest = $3;
1811
- if (!props.length)
2021
+ if (!(props.length || rest))
1812
2022
  return $skip;
1813
- if (rest)
1814
- props.push(rest);
1815
- 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
+ };
1816
2033
  });
1817
2034
  function NestedBindingElements(state) {
1818
2035
  if (state.verbose)
@@ -1823,7 +2040,10 @@ var require_parser = __commonJS({
1823
2040
  return NestedBindingElements$0(state);
1824
2041
  }
1825
2042
  }
1826
- 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
+ });
1827
2047
  function NestedBindingElement(state) {
1828
2048
  if (state.verbose)
1829
2049
  console.log("ENTER:", "NestedBindingElement");
@@ -1833,7 +2053,14 @@ var require_parser = __commonJS({
1833
2053
  return NestedBindingElement$0(state);
1834
2054
  }
1835
2055
  }
1836
- 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
+ });
1837
2064
  function BindingElement(state) {
1838
2065
  if (state.verbose)
1839
2066
  console.log("ENTER:", "BindingElement");
@@ -1843,7 +2070,11 @@ var require_parser = __commonJS({
1843
2070
  return BindingElement$0(state);
1844
2071
  }
1845
2072
  }
1846
- 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
+ });
1847
2078
  function BindingRestElement(state) {
1848
2079
  if (state.verbose)
1849
2080
  console.log("ENTER:", "BindingRestElement");
@@ -1863,7 +2094,21 @@ var require_parser = __commonJS({
1863
2094
  return FunctionDeclaration$0(state);
1864
2095
  }
1865
2096
  }
1866
- 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
+ });
1867
2112
  function FunctionSignature(state) {
1868
2113
  if (state.verbose)
1869
2114
  console.log("ENTER:", "FunctionSignature");
@@ -1873,36 +2118,34 @@ var require_parser = __commonJS({
1873
2118
  return FunctionSignature$0(state);
1874
2119
  }
1875
2120
  }
1876
- var FunctionExpression$0 = ThinArrowFunction;
1877
- 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;
1878
2123
  var block = $2;
1879
2124
  if (!block) {
1880
- return {
1881
- type: "FunctionDeclaration",
1882
- ts: true,
1883
- children: $1
1884
- };
2125
+ signature.ts = true;
2126
+ return signature;
1885
2127
  }
1886
- const suffix = $1[$1.length - 1];
2128
+ const suffix = signature.returnType;
1887
2129
  const isVoid = suffix?.children?.[1]?.[0]?.[1]?.token === "void";
1888
2130
  if (module2.config.implicitReturns && !isVoid) {
1889
2131
  module2.addImplicitReturns(block);
1890
2132
  }
1891
- $1.push(block);
1892
- return {
1893
- type: "FunctionExpression",
1894
- children: $1
1895
- };
2133
+ $1.block = block;
2134
+ $1.children.push(block);
2135
+ $1.type = "FunctionExpression";
2136
+ return $1;
1896
2137
  });
1897
2138
  function FunctionExpression(state) {
2139
+ if (state.verbose)
2140
+ console.log("ENTER:", "FunctionExpression");
1898
2141
  if (state.tokenize) {
1899
- return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
2142
+ return $TOKEN("FunctionExpression", state, FunctionExpression$0(state));
1900
2143
  } else {
1901
- return FunctionExpression$0(state) || FunctionExpression$1(state);
2144
+ return FunctionExpression$0(state);
1902
2145
  }
1903
2146
  }
1904
2147
  var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), $Q(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1905
- var params = $1;
2148
+ var parameters = $1;
1906
2149
  var suffix = $2;
1907
2150
  var arrow = $4;
1908
2151
  var block = $5;
@@ -1910,11 +2153,18 @@ var require_parser = __commonJS({
1910
2153
  if (module2.config.implicitReturns && !isVoid) {
1911
2154
  block = module2.addImplicitReturns(block);
1912
2155
  }
2156
+ const id = [];
1913
2157
  return {
1914
2158
  type: "FunctionExpression",
2159
+ id,
2160
+ parameters,
2161
+ returnType: suffix,
2162
+ ts: false,
2163
+ block,
1915
2164
  children: [
1916
2165
  { $loc: arrow.$loc, token: "function" },
1917
- params,
2166
+ id,
2167
+ parameters,
1918
2168
  suffix,
1919
2169
  block
1920
2170
  ]
@@ -1929,7 +2179,7 @@ var require_parser = __commonJS({
1929
2179
  return ThinArrowFunction$0(state);
1930
2180
  }
1931
2181
  }
1932
- 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) {
1933
2183
  return { $loc, token: $1 };
1934
2184
  });
1935
2185
  function Arrow(state) {
@@ -1941,16 +2191,20 @@ var require_parser = __commonJS({
1941
2191
  return Arrow$0(state);
1942
2192
  }
1943
2193
  }
1944
- var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
2194
+ var Block$0 = $T($S(__, OpenBrace, EOS, NestedBlockStatements, __, CloseBrace), function(value) {
1945
2195
  var exps = value[3];
1946
2196
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1947
2197
  });
1948
- 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) {
1949
2199
  var exps = value[2];
1950
2200
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1951
2201
  });
1952
- var Block$2 = Statement;
1953
- 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
+ });
1954
2208
  function Block(state) {
1955
2209
  if (state.tokenize) {
1956
2210
  return $TOKEN("Block", state, Block$0(state) || Block$1(state) || Block$2(state) || Block$3(state));
@@ -1979,11 +2233,11 @@ var require_parser = __commonJS({
1979
2233
  return EmptyBlock$0(state);
1980
2234
  }
1981
2235
  }
1982
- var BracedBlock$0 = $T($S(__, OpenBrace, EOS, NestedBlockExpressions, __, CloseBrace), function(value) {
1983
- var exps = value[3];
2236
+ var BracedBlock$0 = $T($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function(value) {
2237
+ var exps = value[2];
1984
2238
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1985
2239
  });
1986
- 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) {
1987
2241
  var exps = value[2];
1988
2242
  return { "type": "BlockStatement", "expressions": exps, "children": value };
1989
2243
  });
@@ -2002,58 +2256,69 @@ var require_parser = __commonJS({
2002
2256
  return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state);
2003
2257
  }
2004
2258
  }
2005
- 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) {
2006
- var exp = $2;
2007
- if (exp)
2008
- return exp;
2009
- return $skip;
2259
+ var BracedContent$0 = $T($S($Y(EOS), NestedBlockStatements), function(value) {
2260
+ return value[1];
2010
2261
  });
2011
- function SingleNestedExpression(state) {
2012
- if (state.verbose)
2013
- console.log("ENTER:", "SingleNestedExpression");
2262
+ var BracedContent$1 = $S($Q(TrailingComment), Statement);
2263
+ function BracedContent(state) {
2014
2264
  if (state.tokenize) {
2015
- return $TOKEN("SingleNestedExpression", state, SingleNestedExpression$0(state));
2265
+ return $TOKEN("BracedContent", state, BracedContent$0(state) || BracedContent$1(state));
2016
2266
  } else {
2017
- return SingleNestedExpression$0(state);
2267
+ return BracedContent$0(state) || BracedContent$1(state);
2018
2268
  }
2019
2269
  }
2020
- var NestedBlockExpressions$0 = $TS($S(PushIndent, $Q(BlockExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2021
- var exps = $2;
2022
- 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)
2023
2273
  return $skip;
2024
- return exps;
2274
+ return statements;
2025
2275
  });
2026
- function NestedBlockExpressions(state) {
2276
+ function NestedBlockStatements(state) {
2027
2277
  if (state.verbose)
2028
- console.log("ENTER:", "NestedBlockExpressions");
2278
+ console.log("ENTER:", "NestedBlockStatements");
2029
2279
  if (state.tokenize) {
2030
- return $TOKEN("NestedBlockExpressions", state, NestedBlockExpressions$0(state));
2280
+ return $TOKEN("NestedBlockStatements", state, NestedBlockStatements$0(state));
2031
2281
  } else {
2032
- return NestedBlockExpressions$0(state);
2282
+ return NestedBlockStatements$0(state);
2033
2283
  }
2034
2284
  }
2035
- var BlockExpression$0 = $S(Nested, StatementListItem, StatementDelimiter);
2036
- function BlockExpression(state) {
2285
+ var NestedBlockStatement$0 = $S(Nested, StatementListItem, StatementDelimiter);
2286
+ function NestedBlockStatement(state) {
2037
2287
  if (state.verbose)
2038
- console.log("ENTER:", "BlockExpression");
2288
+ console.log("ENTER:", "NestedBlockStatement");
2039
2289
  if (state.tokenize) {
2040
- return $TOKEN("BlockExpression", state, BlockExpression$0(state));
2290
+ return $TOKEN("NestedBlockStatement", state, NestedBlockStatement$0(state));
2041
2291
  } else {
2042
- return BlockExpression$0(state);
2292
+ return NestedBlockStatement$0(state);
2043
2293
  }
2044
2294
  }
2045
- var Literal$0 = NullLiteral;
2046
- var Literal$1 = BooleanLiteral;
2047
- var Literal$2 = NumericLiteral;
2048
- 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
+ });
2049
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) {
2050
2315
  if (state.tokenize) {
2051
- 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));
2052
2317
  } else {
2053
- 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);
2054
2319
  }
2055
2320
  }
2056
- 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) {
2057
2322
  return { $loc, token: $1 };
2058
2323
  });
2059
2324
  function NullLiteral(state) {
@@ -2066,7 +2331,7 @@ var require_parser = __commonJS({
2066
2331
  }
2067
2332
  }
2068
2333
  var BooleanLiteral$0 = CoffeeScriptBooleanLiteral;
2069
- 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) {
2070
2335
  return { $loc, token: $1 };
2071
2336
  });
2072
2337
  function BooleanLiteral(state) {
@@ -2076,10 +2341,10 @@ var require_parser = __commonJS({
2076
2341
  return BooleanLiteral$0(state) || BooleanLiteral$1(state);
2077
2342
  }
2078
2343
  }
2079
- 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) {
2080
2345
  return { $loc, token: "true" };
2081
2346
  });
2082
- 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) {
2083
2348
  return { $loc, token: "false" };
2084
2349
  });
2085
2350
  function CoffeeScriptBooleanLiteral(state) {
@@ -2089,7 +2354,7 @@ var require_parser = __commonJS({
2089
2354
  return CoffeeScriptBooleanLiteral$0(state) || CoffeeScriptBooleanLiteral$1(state);
2090
2355
  }
2091
2356
  }
2092
- 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) {
2093
2358
  return { $loc, token: $1 };
2094
2359
  });
2095
2360
  function Comma(state) {
@@ -2116,8 +2381,12 @@ var require_parser = __commonJS({
2116
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) {
2117
2382
  return {
2118
2383
  type: "Identifier",
2119
- $loc,
2120
- token: $0
2384
+ name: $0,
2385
+ names: [$0],
2386
+ children: [{
2387
+ $loc,
2388
+ token: $0
2389
+ }]
2121
2390
  };
2122
2391
  });
2123
2392
  function IdentifierName(state) {
@@ -2139,19 +2408,44 @@ var require_parser = __commonJS({
2139
2408
  return IdentifierReference$0(state);
2140
2409
  }
2141
2410
  }
2142
- var ArrayLiteral$0 = $S(OpenBracket, NestedElementList, __, CloseBracket);
2143
- 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
+ });
2144
2427
  function ArrayLiteral(state) {
2428
+ if (state.verbose)
2429
+ console.log("ENTER:", "ArrayLiteral");
2145
2430
  if (state.tokenize) {
2146
- return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state) || ArrayLiteral$1(state));
2431
+ return $TOKEN("ArrayLiteral", state, ArrayLiteral$0(state));
2147
2432
  } else {
2148
- 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);
2149
2443
  }
2150
2444
  }
2151
2445
  var NestedElementList$0 = $TS($S(PushIndent, $Q(NestedElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
2152
2446
  var elements = $2;
2153
2447
  if (elements.length)
2154
- return elements;
2448
+ return elements.flat();
2155
2449
  return $skip;
2156
2450
  });
2157
2451
  function NestedElementList(state) {
@@ -2163,7 +2457,13 @@ var require_parser = __commonJS({
2163
2457
  return NestedElementList$0(state);
2164
2458
  }
2165
2459
  }
2166
- 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
+ });
2167
2467
  function NestedElement(state) {
2168
2468
  if (state.verbose)
2169
2469
  console.log("ENTER:", "NestedElement");
@@ -2174,7 +2474,7 @@ var require_parser = __commonJS({
2174
2474
  }
2175
2475
  }
2176
2476
  var ArrayElementDelimiter$0 = $S($Q(_), Comma);
2177
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L25, fail, 'ArrayElementDelimiter "]"')));
2477
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ArrayElementDelimiter "]"')));
2178
2478
  var ArrayElementDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
2179
2479
  return { $loc, token: "," };
2180
2480
  });
@@ -2185,7 +2485,15 @@ var require_parser = __commonJS({
2185
2485
  return ArrayElementDelimiter$0(state) || ArrayElementDelimiter$1(state) || ArrayElementDelimiter$2(state);
2186
2486
  }
2187
2487
  }
2188
- 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
+ });
2189
2497
  function ElementList(state) {
2190
2498
  if (state.verbose)
2191
2499
  console.log("ENTER:", "ElementList");
@@ -2195,17 +2503,28 @@ var require_parser = __commonJS({
2195
2503
  return ElementList$0(state);
2196
2504
  }
2197
2505
  }
2198
- var InlineElementList$0 = $S(ArrayElementExpression, $Q($S($Q(_), Comma, $Q(_), ArrayElementExpression)));
2199
- 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) {
2200
2514
  if (state.verbose)
2201
- console.log("ENTER:", "InlineElementList");
2515
+ console.log("ENTER:", "ElementListRest");
2202
2516
  if (state.tokenize) {
2203
- return $TOKEN("InlineElementList", state, InlineElementList$0(state));
2517
+ return $TOKEN("ElementListRest", state, ElementListRest$0(state));
2204
2518
  } else {
2205
- return InlineElementList$0(state);
2519
+ return ElementListRest$0(state);
2206
2520
  }
2207
2521
  }
2208
- 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
+ });
2209
2528
  function ArrayElementExpression(state) {
2210
2529
  if (state.verbose)
2211
2530
  console.log("ENTER:", "ArrayElementExpression");
@@ -2215,28 +2534,69 @@ var require_parser = __commonJS({
2215
2534
  return ArrayElementExpression$0(state);
2216
2535
  }
2217
2536
  }
2218
- var Elision$0 = $S(__, Comma);
2219
- 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) {
2220
2568
  if (state.verbose)
2221
- console.log("ENTER:", "Elision");
2569
+ console.log("ENTER:", "BracedObjectLiteral");
2222
2570
  if (state.tokenize) {
2223
- return $TOKEN("Elision", state, Elision$0(state));
2571
+ return $TOKEN("BracedObjectLiteral", state, BracedObjectLiteral$0(state));
2224
2572
  } else {
2225
- return Elision$0(state);
2573
+ return BracedObjectLiteral$0(state);
2226
2574
  }
2227
2575
  }
2228
- var ObjectLiteral$0 = $S(OpenBrace, $Y(EOS), NestedPropertyDefinitions, __, CloseBrace);
2229
- var ObjectLiteral$1 = $S(OpenBrace, __, PropertyDefinitionList, __, $E($S(Comma, __)), CloseBrace);
2230
- var ObjectLiteral$2 = $S(OpenBrace, __, CloseBrace);
2231
- var ObjectLiteral$3 = NestedObjectLiteral;
2232
- 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) {
2233
2589
  if (state.tokenize) {
2234
- 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));
2235
2591
  } else {
2236
- return ObjectLiteral$0(state) || ObjectLiteral$1(state) || ObjectLiteral$2(state) || ObjectLiteral$3(state);
2592
+ return BracedObjectLiteralContent$0(state) || BracedObjectLiteralContent$1(state);
2237
2593
  }
2238
2594
  }
2239
- 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
+ });
2240
2600
  function NestedObjectLiteral(state) {
2241
2601
  if (state.verbose)
2242
2602
  console.log("ENTER:", "NestedObjectLiteral");
@@ -2250,7 +2610,7 @@ var require_parser = __commonJS({
2250
2610
  var defs = $2;
2251
2611
  if (!defs.length)
2252
2612
  return $skip;
2253
- return defs;
2613
+ return defs.flat();
2254
2614
  });
2255
2615
  function NestedPropertyDefinitions(state) {
2256
2616
  if (state.verbose)
@@ -2261,7 +2621,13 @@ var require_parser = __commonJS({
2261
2621
  return NestedPropertyDefinitions$0(state);
2262
2622
  }
2263
2623
  }
2264
- 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
+ });
2265
2631
  function NestedPropertyDefinition(state) {
2266
2632
  if (state.verbose)
2267
2633
  console.log("ENTER:", "NestedPropertyDefinition");
@@ -2272,7 +2638,7 @@ var require_parser = __commonJS({
2272
2638
  }
2273
2639
  }
2274
2640
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
2275
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'ObjectPropertyDelimiter "}"')));
2641
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'ObjectPropertyDelimiter "}"')));
2276
2642
  var ObjectPropertyDelimiter$2 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
2277
2643
  return { $loc, token: "," };
2278
2644
  });
@@ -2283,7 +2649,15 @@ var require_parser = __commonJS({
2283
2649
  return ObjectPropertyDelimiter$0(state) || ObjectPropertyDelimiter$1(state) || ObjectPropertyDelimiter$2(state);
2284
2650
  }
2285
2651
  }
2286
- 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
+ });
2287
2661
  function PropertyDefinitionList(state) {
2288
2662
  if (state.verbose)
2289
2663
  console.log("ENTER:", "PropertyDefinitionList");
@@ -2293,9 +2667,16 @@ var require_parser = __commonJS({
2293
2667
  return PropertyDefinitionList$0(state);
2294
2668
  }
2295
2669
  }
2296
- 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
+ });
2297
2678
  var PropertyDefinition$1 = MethodDefinition;
2298
- var PropertyDefinition$2 = $S(DotDotDot, AssignmentExpression);
2679
+ var PropertyDefinition$2 = $S(DotDotDot, ExtendedExpression);
2299
2680
  var PropertyDefinition$3 = IdentifierReference;
2300
2681
  function PropertyDefinition(state) {
2301
2682
  if (state.tokenize) {
@@ -2307,7 +2688,7 @@ var require_parser = __commonJS({
2307
2688
  var PropertyName$0 = NumericLiteral;
2308
2689
  var PropertyName$1 = StringLiteral;
2309
2690
  var PropertyName$2 = IdentifierName;
2310
- var PropertyName$3 = $S(OpenBracket, AssignmentExpression, __, $EXPECT($L25, fail, 'PropertyName "]"'));
2691
+ var PropertyName$3 = $S(OpenBracket, ExtendedExpression, __, CloseBracket);
2311
2692
  function PropertyName(state) {
2312
2693
  if (state.tokenize) {
2313
2694
  return $TOKEN("PropertyName", state, PropertyName$0(state) || PropertyName$1(state) || PropertyName$2(state) || PropertyName$3(state));
@@ -2357,7 +2738,11 @@ var require_parser = __commonJS({
2357
2738
  var MethodSignature$1 = $TS($S($E(MethodModifier), ClassElementName, $Q(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2358
2739
  var name = $2;
2359
2740
  var suffix = $5;
2360
- 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
+ }
2361
2746
  return {
2362
2747
  type: "MethodSignature",
2363
2748
  children: $0,
@@ -2409,25 +2794,25 @@ var require_parser = __commonJS({
2409
2794
  return AssignmentOp$0(state);
2410
2795
  }
2411
2796
  }
2412
- var AssignmentOpSymbol$0 = $EXPECT($L27, fail, 'AssignmentOpSymbol "**="');
2413
- var AssignmentOpSymbol$1 = $EXPECT($L28, fail, 'AssignmentOpSymbol "*="');
2414
- var AssignmentOpSymbol$2 = $EXPECT($L29, fail, 'AssignmentOpSymbol "/="');
2415
- var AssignmentOpSymbol$3 = $EXPECT($L30, fail, 'AssignmentOpSymbol "%="');
2416
- var AssignmentOpSymbol$4 = $EXPECT($L31, fail, 'AssignmentOpSymbol "+="');
2417
- var AssignmentOpSymbol$5 = $EXPECT($L32, fail, 'AssignmentOpSymbol "-="');
2418
- var AssignmentOpSymbol$6 = $EXPECT($L33, fail, 'AssignmentOpSymbol "<<="');
2419
- var AssignmentOpSymbol$7 = $EXPECT($L34, fail, 'AssignmentOpSymbol ">>>="');
2420
- var AssignmentOpSymbol$8 = $EXPECT($L35, fail, 'AssignmentOpSymbol ">>="');
2421
- var AssignmentOpSymbol$9 = $EXPECT($L36, fail, 'AssignmentOpSymbol "&&="');
2422
- var AssignmentOpSymbol$10 = $EXPECT($L37, fail, 'AssignmentOpSymbol "&="');
2423
- var AssignmentOpSymbol$11 = $EXPECT($L38, fail, 'AssignmentOpSymbol "^="');
2424
- var AssignmentOpSymbol$12 = $EXPECT($L39, fail, 'AssignmentOpSymbol "||="');
2425
- var AssignmentOpSymbol$13 = $EXPECT($L40, fail, 'AssignmentOpSymbol "|="');
2426
- var AssignmentOpSymbol$14 = $EXPECT($L41, fail, 'AssignmentOpSymbol "??="');
2427
- 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) {
2428
2813
  return "??=";
2429
2814
  });
2430
- var AssignmentOpSymbol$16 = $EXPECT($L43, fail, 'AssignmentOpSymbol "="');
2815
+ var AssignmentOpSymbol$16 = $EXPECT($L44, fail, 'AssignmentOpSymbol "="');
2431
2816
  function AssignmentOpSymbol(state) {
2432
2817
  if (state.tokenize) {
2433
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));
@@ -2447,68 +2832,74 @@ var require_parser = __commonJS({
2447
2832
  return BinaryOp$0(state);
2448
2833
  }
2449
2834
  }
2450
- var BinaryOpSymbol$0 = $EXPECT($L44, fail, 'BinaryOpSymbol "**"');
2451
- var BinaryOpSymbol$1 = $EXPECT($L45, fail, 'BinaryOpSymbol "*"');
2452
- var BinaryOpSymbol$2 = $EXPECT($L46, fail, 'BinaryOpSymbol "/"');
2453
- var BinaryOpSymbol$3 = $EXPECT($L47, fail, 'BinaryOpSymbol "%"');
2454
- var BinaryOpSymbol$4 = $EXPECT($L48, fail, 'BinaryOpSymbol "+"');
2455
- var BinaryOpSymbol$5 = $EXPECT($L49, fail, 'BinaryOpSymbol "-"');
2456
- var BinaryOpSymbol$6 = $EXPECT($L50, fail, 'BinaryOpSymbol "<="');
2457
- var BinaryOpSymbol$7 = $EXPECT($L51, fail, 'BinaryOpSymbol ">="');
2458
- 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 "<<"');
2459
2844
  var BinaryOpSymbol$9 = $EXPECT($L4, fail, 'BinaryOpSymbol "<"');
2460
- var BinaryOpSymbol$10 = $EXPECT($L53, fail, 'BinaryOpSymbol ">>>"');
2461
- var BinaryOpSymbol$11 = $EXPECT($L54, fail, 'BinaryOpSymbol ">>"');
2462
- var BinaryOpSymbol$12 = $EXPECT($L55, fail, 'BinaryOpSymbol ">"');
2463
- var BinaryOpSymbol$13 = $EXPECT($L56, fail, 'BinaryOpSymbol "!=="');
2464
- 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) {
2465
2850
  if (module2.config.coffeeEq)
2466
2851
  return "!==";
2467
2852
  return $1;
2468
2853
  });
2469
- 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) {
2470
2860
  return "===";
2471
2861
  });
2472
- var BinaryOpSymbol$16 = $EXPECT($L59, fail, 'BinaryOpSymbol "==="');
2473
- 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) {
2474
2864
  if (module2.config.coffeeEq)
2475
2865
  return "===";
2476
2866
  return $1;
2477
2867
  });
2478
- 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) {
2479
2869
  return "&&";
2480
2870
  });
2481
- var BinaryOpSymbol$19 = $EXPECT($L62, fail, 'BinaryOpSymbol "&&"');
2482
- 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) {
2483
2873
  return "||";
2484
2874
  });
2485
- var BinaryOpSymbol$21 = $EXPECT($L64, fail, 'BinaryOpSymbol "||"');
2486
- var BinaryOpSymbol$22 = $EXPECT($L65, fail, 'BinaryOpSymbol "??"');
2487
- 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) {
2488
2878
  return $1;
2489
2879
  });
2490
- 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) {
2491
2881
  return $1;
2492
2882
  });
2493
- var BinaryOpSymbol$25 = $EXPECT($L68, fail, 'BinaryOpSymbol "&"');
2494
- var BinaryOpSymbol$26 = $EXPECT($L69, fail, 'BinaryOpSymbol "^"');
2495
- 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 "|"');
2496
2886
  function BinaryOpSymbol(state) {
2497
2887
  if (state.tokenize) {
2498
- 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));
2499
2889
  } else {
2500
- 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);
2501
2891
  }
2502
2892
  }
2503
- 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) {
2504
2894
  return { $loc, token: $0 };
2505
2895
  });
2506
- var UnaryOp$1 = $S($C(Delete, Void, Typeof), __);
2896
+ var UnaryOp$1 = $S($C(Await, Delete, Void, Typeof), __);
2897
+ var UnaryOp$2 = Not;
2507
2898
  function UnaryOp(state) {
2508
2899
  if (state.tokenize) {
2509
- return $TOKEN("UnaryOp", state, UnaryOp$0(state) || UnaryOp$1(state));
2900
+ return $TOKEN("UnaryOp", state, UnaryOp$0(state) || UnaryOp$1(state) || UnaryOp$2(state));
2510
2901
  } else {
2511
- return UnaryOp$0(state) || UnaryOp$1(state);
2902
+ return UnaryOp$0(state) || UnaryOp$1(state) || UnaryOp$2(state);
2512
2903
  }
2513
2904
  }
2514
2905
  var ModuleItem$0 = ImportDeclaration;
@@ -2569,7 +2960,7 @@ var require_parser = __commonJS({
2569
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);
2570
2961
  }
2571
2962
  }
2572
- 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) {
2573
2964
  return { "type": "EmptyStatement", "children": value[0] };
2574
2965
  });
2575
2966
  function EmptyStatement(state) {
@@ -2581,7 +2972,7 @@ var require_parser = __commonJS({
2581
2972
  return EmptyStatement$0(state);
2582
2973
  }
2583
2974
  }
2584
- 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) {
2585
2976
  var exps = value[3];
2586
2977
  return { "type": "BlockStatement", "children": value, "expressions": exps };
2587
2978
  });
@@ -2594,7 +2985,7 @@ var require_parser = __commonJS({
2594
2985
  return BlockStatement$0(state);
2595
2986
  }
2596
2987
  }
2597
- 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) {
2598
2989
  var clause = $1;
2599
2990
  var block = $2;
2600
2991
  var e = $3;
@@ -2603,17 +2994,13 @@ var require_parser = __commonJS({
2603
2994
  clause.children.push(e);
2604
2995
  return clause;
2605
2996
  });
2606
- var IfStatement$1 = $TS($S(UnlessClause, Block), function($skip, $loc, $0, $1, $2) {
2607
- var clause = $1;
2608
- var block = $2;
2609
- clause.children.push(block);
2610
- return clause;
2611
- });
2612
2997
  function IfStatement(state) {
2998
+ if (state.verbose)
2999
+ console.log("ENTER:", "IfStatement");
2613
3000
  if (state.tokenize) {
2614
- return $TOKEN("IfStatement", state, IfStatement$0(state) || IfStatement$1(state));
3001
+ return $TOKEN("IfStatement", state, IfStatement$0(state));
2615
3002
  } else {
2616
- return IfStatement$0(state) || IfStatement$1(state);
3003
+ return IfStatement$0(state);
2617
3004
  }
2618
3005
  }
2619
3006
  var IfClause$0 = $T($S(If, Condition), function(value) {
@@ -2654,6 +3041,72 @@ var require_parser = __commonJS({
2654
3041
  return UnlessClause$0(state);
2655
3042
  }
2656
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
+ }
2657
3110
  var IterationStatement$0 = LoopStatement;
2658
3111
  var IterationStatement$1 = DoWhileStatement;
2659
3112
  var IterationStatement$2 = WhileStatement;
@@ -2746,6 +3199,7 @@ var require_parser = __commonJS({
2746
3199
  var clause = $1;
2747
3200
  var block = $2;
2748
3201
  clause.children.push(block);
3202
+ clause.block = block;
2749
3203
  return clause;
2750
3204
  });
2751
3205
  function ForStatement(state) {
@@ -2757,8 +3211,16 @@ var require_parser = __commonJS({
2757
3211
  return ForStatement$0(state);
2758
3212
  }
2759
3213
  }
2760
- var ForClause$0 = $T($S(For, __, ForStatementControl), function(value) {
2761
- 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
+ };
2762
3224
  });
2763
3225
  function ForClause(state) {
2764
3226
  if (state.verbose)
@@ -2769,20 +3231,49 @@ var require_parser = __commonJS({
2769
3231
  return ForClause$0(state);
2770
3232
  }
2771
3233
  }
2772
- var ForStatementControl$0 = $S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E(Expression), __, CloseParen);
2773
- var ForStatementControl$1 = $S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), Expression)), InsertCloseParen);
2774
- var ForStatementControl$2 = $S(OpenParen, __, ForInOfDeclaration, __, In, Expression, __, CloseParen);
2775
- var ForStatementControl$3 = $S(InsertOpenParen, ForInOfDeclaration, __, In, Expression, InsertCloseParen);
2776
- var ForStatementControl$4 = $S($E($S(Await, __)), OpenParen, __, ForInOfDeclaration, __, Of, AssignmentExpression, __, CloseParen);
2777
- 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
+ });
2778
3262
  function ForStatementControl(state) {
2779
3263
  if (state.tokenize) {
2780
- 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));
2781
3265
  } else {
2782
- 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);
2783
3267
  }
2784
3268
  }
2785
- 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
+ });
2786
3277
  var ForInOfDeclaration$1 = ForDeclaration;
2787
3278
  var ForInOfDeclaration$2 = LeftHandSideExpression;
2788
3279
  function ForInOfDeclaration(state) {
@@ -2792,8 +3283,24 @@ var require_parser = __commonJS({
2792
3283
  return ForInOfDeclaration$0(state) || ForInOfDeclaration$1(state) || ForInOfDeclaration$2(state);
2793
3284
  }
2794
3285
  }
2795
- var ForDeclaration$0 = $S(LetOrConst, NonIdContinue, ForBinding);
2796
- 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
+ });
2797
3304
  function ForDeclaration(state) {
2798
3305
  if (state.tokenize) {
2799
3306
  return $TOKEN("ForDeclaration", state, ForDeclaration$0(state) || ForDeclaration$1(state));
@@ -2822,6 +3329,22 @@ var require_parser = __commonJS({
2822
3329
  return SwitchStatement$0(state);
2823
3330
  }
2824
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
+ }
2825
3348
  var CaseBlock$0 = $TS($S(__, OpenBrace, $Y(EOS), NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2826
3349
  var clauses = $4;
2827
3350
  $0.splice(2, 1);
@@ -2875,19 +3398,19 @@ var require_parser = __commonJS({
2875
3398
  return NestedCaseClause$0(state);
2876
3399
  }
2877
3400
  }
2878
- 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) {
2879
3402
  var exps = value[2];
2880
3403
  return { "type": "CaseClause", "expressions": exps, "children": value };
2881
3404
  });
2882
- var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockExpressions, InsertBreak), function(value) {
3405
+ var CaseClause$1 = $T($S(When, CaseExpressionList, NestedBlockStatements, InsertBreak), function(value) {
2883
3406
  var exps = value[2];
2884
3407
  return { "type": "WhenClause", "expressions": exps, "children": value };
2885
3408
  });
2886
- 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) {
2887
3410
  var exps = value[2];
2888
3411
  return { "type": "DefaultClause", "expressions": exps, "children": value };
2889
3412
  });
2890
- 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) {
2891
3414
  var exps = $3;
2892
3415
  $1.token = "default";
2893
3416
  return {
@@ -2989,7 +3512,7 @@ var require_parser = __commonJS({
2989
3512
  return CatchBind$0(state) || CatchBind$1(state);
2990
3513
  }
2991
3514
  }
2992
- var Finally$0 = $S(__, $EXPECT($L72, fail, 'Finally "finally"'), BracedBlock);
3515
+ var Finally$0 = $S(__, $EXPECT($L74, fail, 'Finally "finally"'), BracedBlock);
2993
3516
  function Finally(state) {
2994
3517
  if (state.verbose)
2995
3518
  console.log("ENTER:", "Finally");
@@ -3008,7 +3531,7 @@ var require_parser = __commonJS({
3008
3531
  return CatchParameter$0(state) || CatchParameter$1(state);
3009
3532
  }
3010
3533
  }
3011
- var Condition$0 = $S(__, OpenParen, Expression, __, CloseParen);
3534
+ var Condition$0 = $S(__, OpenParen, ExtendedExpression, __, CloseParen);
3012
3535
  var Condition$1 = $TS($S($N(EOS), __, InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
3013
3536
  $0.shift();
3014
3537
  return $0;
@@ -3020,7 +3543,7 @@ var require_parser = __commonJS({
3020
3543
  return Condition$0(state) || Condition$1(state);
3021
3544
  }
3022
3545
  }
3023
- 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) {
3024
3547
  var exp = $2;
3025
3548
  module2.suppressIndentedApplication = false;
3026
3549
  if (exp)
@@ -3058,19 +3581,19 @@ var require_parser = __commonJS({
3058
3581
  return ExpressionStatement$0(state);
3059
3582
  }
3060
3583
  }
3061
- 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) {
3062
3585
  return { "type": "BreakStatement", "children": value };
3063
3586
  });
3064
- 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) {
3065
3588
  return { "type": "ContinueStatement", "children": value };
3066
3589
  });
3067
- 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) {
3068
3591
  return { "type": "DebuggerStatement", "children": value };
3069
3592
  });
3070
3593
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
3071
3594
  return { "type": "ReturnStatement", "children": value };
3072
3595
  });
3073
- var KeywordStatement$4 = $T($S(Throw, Expression), function(value) {
3596
+ var KeywordStatement$4 = $T($S(Throw, ExtendedExpression), function(value) {
3074
3597
  return { "type": "ThrowStatement", "children": value };
3075
3598
  });
3076
3599
  function KeywordStatement(state) {
@@ -3080,8 +3603,42 @@ var require_parser = __commonJS({
3080
3603
  return KeywordStatement$0(state) || KeywordStatement$1(state) || KeywordStatement$2(state) || KeywordStatement$3(state) || KeywordStatement$4(state);
3081
3604
  }
3082
3605
  }
3083
- var MaybeNestedExpression$0 = $S($N(EOS), $Q(TrailingComment), Expression);
3084
- 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
+ });
3085
3642
  function MaybeNestedExpression(state) {
3086
3643
  if (state.tokenize) {
3087
3644
  return $TOKEN("MaybeNestedExpression", state, MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state));
@@ -3089,7 +3646,7 @@ var require_parser = __commonJS({
3089
3646
  return MaybeNestedExpression$0(state) || MaybeNestedExpression$1(state);
3090
3647
  }
3091
3648
  }
3092
- 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) {
3093
3650
  return { "ts": true, "children": value };
3094
3651
  });
3095
3652
  var ImportDeclaration$1 = $S(Import, __, ImportClause, __, FromClause);
@@ -3124,7 +3681,19 @@ var require_parser = __commonJS({
3124
3681
  return ImpliedImport$0(state);
3125
3682
  }
3126
3683
  }
3127
- 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
+ });
3128
3697
  var ImportClause$1 = NameSpaceImport;
3129
3698
  var ImportClause$2 = NamedImports;
3130
3699
  function ImportClause(state) {
@@ -3134,7 +3703,14 @@ var require_parser = __commonJS({
3134
3703
  return ImportClause$0(state) || ImportClause$1(state) || ImportClause$2(state);
3135
3704
  }
3136
3705
  }
3137
- 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
+ });
3138
3714
  function NameSpaceImport(state) {
3139
3715
  if (state.verbose)
3140
3716
  console.log("ENTER:", "NameSpaceImport");
@@ -3144,7 +3720,17 @@ var require_parser = __commonJS({
3144
3720
  return NameSpaceImport$0(state);
3145
3721
  }
3146
3722
  }
3147
- 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
+ });
3148
3734
  function NamedImports(state) {
3149
3735
  if (state.verbose)
3150
3736
  console.log("ENTER:", "NamedImports");
@@ -3164,8 +3750,20 @@ var require_parser = __commonJS({
3164
3750
  return FromClause$0(state);
3165
3751
  }
3166
3752
  }
3167
- var ImportSpecifier$0 = $S(__, ModuleExportName, __, As, NonIdContinue, __, ImportedBinding, ObjectPropertyDelimiter);
3168
- 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
+ });
3169
3767
  function ImportSpecifier(state) {
3170
3768
  if (state.tokenize) {
3171
3769
  return $TOKEN("ImportSpecifier", state, ImportSpecifier$0(state) || ImportSpecifier$1(state));
@@ -3227,7 +3825,7 @@ var require_parser = __commonJS({
3227
3825
  return ImportedBinding$0(state);
3228
3826
  }
3229
3827
  }
3230
- 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));
3231
3829
  var ExportDeclaration$1 = $S(Export, __, ExportFromClause, __, FromClause);
3232
3830
  var ExportDeclaration$2 = $S(Export, __, $C(NamedExports, VariableStatement, Declaration));
3233
3831
  function ExportDeclaration(state) {
@@ -3237,7 +3835,7 @@ var require_parser = __commonJS({
3237
3835
  return ExportDeclaration$0(state) || ExportDeclaration$1(state) || ExportDeclaration$2(state);
3238
3836
  }
3239
3837
  }
3240
- var ExportFromClause$0 = $S(Star, $E($S(__, As, NonIdContinue, __, ModuleExportName)));
3838
+ var ExportFromClause$0 = $S(Star, $E($S(__, As, __, ModuleExportName)));
3241
3839
  var ExportFromClause$1 = NamedExports;
3242
3840
  function ExportFromClause(state) {
3243
3841
  if (state.tokenize) {
@@ -3287,18 +3885,43 @@ var require_parser = __commonJS({
3287
3885
  return HoistableDeclaration$0(state);
3288
3886
  }
3289
3887
  }
3290
- var LexicalDeclaration$0 = $T($S(LetOrConst, __, LexicalBinding, $Q($S(__, Comma, __, LexicalBinding))), function(value) {
3291
- 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
+ };
3292
3896
  });
3293
- 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) {
3294
3898
  var c = $1;
3899
+ var id = $2;
3295
3900
  var ca = $5;
3901
+ var e = $6;
3296
3902
  c.$loc = {
3297
3903
  pos: ca.$loc.pos - 1,
3298
3904
  length: ca.$loc.length + 1
3299
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
+ }
3300
3922
  return {
3301
- type: "VariableDeclaration",
3923
+ type: "Declaration",
3924
+ names: id.names,
3302
3925
  children: $0
3303
3926
  };
3304
3927
  });
@@ -3309,7 +3932,7 @@ var require_parser = __commonJS({
3309
3932
  return LexicalDeclaration$0(state) || LexicalDeclaration$1(state);
3310
3933
  }
3311
3934
  }
3312
- 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) {
3313
3936
  return { $loc, token: "=" };
3314
3937
  });
3315
3938
  function ConstAssignment(state) {
@@ -3321,8 +3944,19 @@ var require_parser = __commonJS({
3321
3944
  return ConstAssignment$0(state);
3322
3945
  }
3323
3946
  }
3324
- var LexicalBinding$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
3325
- 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
+ });
3326
3960
  function LexicalBinding(state) {
3327
3961
  if (state.tokenize) {
3328
3962
  return $TOKEN("LexicalBinding", state, LexicalBinding$0(state) || LexicalBinding$1(state));
@@ -3330,7 +3964,7 @@ var require_parser = __commonJS({
3330
3964
  return LexicalBinding$0(state) || LexicalBinding$1(state);
3331
3965
  }
3332
3966
  }
3333
- var Initializer$0 = $S(__, Equals, AssignmentExpression);
3967
+ var Initializer$0 = $S(__, Equals, ExtendedExpression);
3334
3968
  function Initializer(state) {
3335
3969
  if (state.verbose)
3336
3970
  console.log("ENTER:", "Initializer");
@@ -3340,8 +3974,9 @@ var require_parser = __commonJS({
3340
3974
  return Initializer$0(state);
3341
3975
  }
3342
3976
  }
3343
- var VariableStatement$0 = $T($S(Var, __, VariableDeclarationList), function(value) {
3344
- 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;
3345
3980
  });
3346
3981
  function VariableStatement(state) {
3347
3982
  if (state.verbose)
@@ -3352,7 +3987,20 @@ var require_parser = __commonJS({
3352
3987
  return VariableStatement$0(state);
3353
3988
  }
3354
3989
  }
3355
- 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
+ });
3356
4004
  function VariableDeclarationList(state) {
3357
4005
  if (state.verbose)
3358
4006
  console.log("ENTER:", "VariableDeclarationList");
@@ -3362,8 +4010,19 @@ var require_parser = __commonJS({
3362
4010
  return VariableDeclarationList$0(state);
3363
4011
  }
3364
4012
  }
3365
- var VariableDeclaration$0 = $S(BindingPattern, $E(TypeSuffix), Initializer);
3366
- 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
+ });
3367
4026
  function VariableDeclaration(state) {
3368
4027
  if (state.tokenize) {
3369
4028
  return $TOKEN("VariableDeclaration", state, VariableDeclaration$0(state) || VariableDeclaration$1(state));
@@ -3544,7 +4203,7 @@ var require_parser = __commonJS({
3544
4203
  return TripleSingleStringCharacters$0(state);
3545
4204
  }
3546
4205
  }
3547
- var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, Expression, __, CloseBrace);
4206
+ var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, ExtendedExpression, __, CloseBrace);
3548
4207
  function CoffeeStringSubstitution(state) {
3549
4208
  if (state.verbose)
3550
4209
  console.log("ENTER:", "CoffeeStringSubstitution");
@@ -3595,7 +4254,7 @@ var require_parser = __commonJS({
3595
4254
  return CoffeeDoubleQuotedStringCharacters$0(state);
3596
4255
  }
3597
4256
  }
3598
- 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) {
3599
4258
  return { $loc, token: $1 };
3600
4259
  });
3601
4260
  function RegularExpressionLiteral(state) {
@@ -3648,7 +4307,7 @@ var require_parser = __commonJS({
3648
4307
  return TemplateLiteral$0(state) || TemplateLiteral$1(state);
3649
4308
  }
3650
4309
  }
3651
- var TemplateSubstitution$0 = $S(SubstitutionStart, Expression, __, CloseBrace);
4310
+ var TemplateSubstitution$0 = $S(SubstitutionStart, ExtendedExpression, __, CloseBrace);
3652
4311
  function TemplateSubstitution(state) {
3653
4312
  if (state.verbose)
3654
4313
  console.log("ENTER:", "TemplateSubstitution");
@@ -3683,12 +4342,13 @@ var require_parser = __commonJS({
3683
4342
  }
3684
4343
  }
3685
4344
  var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R23, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
3686
- 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})/"));
3687
4347
  function ReservedWord(state) {
3688
4348
  if (state.tokenize) {
3689
- return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state));
4349
+ return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state));
3690
4350
  } else {
3691
- return ReservedWord$0(state) || ReservedWord$1(state);
4351
+ return ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state);
3692
4352
  }
3693
4353
  }
3694
4354
  var Comment$0 = MultiLineComment;
@@ -3700,7 +4360,7 @@ var require_parser = __commonJS({
3700
4360
  return Comment$0(state) || Comment$1(state);
3701
4361
  }
3702
4362
  }
3703
- 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) {
3704
4364
  return { $loc, token: $0 };
3705
4365
  });
3706
4366
  var SingleLineComment$1 = $S(CoffeeCommentEnabled, CoffeeSingleLineComment);
@@ -3720,7 +4380,7 @@ var require_parser = __commonJS({
3720
4380
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3721
4381
  }
3722
4382
  }
3723
- 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) {
3724
4384
  return { $loc, token: $1 };
3725
4385
  });
3726
4386
  function JSMultiLineComment(state) {
@@ -3732,7 +4392,7 @@ var require_parser = __commonJS({
3732
4392
  return JSMultiLineComment$0(state);
3733
4393
  }
3734
4394
  }
3735
- 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) {
3736
4396
  return { $loc, token: `//${$1}` };
3737
4397
  });
3738
4398
  function CoffeeSingleLineComment(state) {
@@ -3744,7 +4404,7 @@ var require_parser = __commonJS({
3744
4404
  return CoffeeSingleLineComment$0(state);
3745
4405
  }
3746
4406
  }
3747
- 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) {
3748
4408
  return { $loc, token: `/*${$2}*/` };
3749
4409
  });
3750
4410
  function CoffeeMultiLineComment(state) {
@@ -3756,7 +4416,7 @@ var require_parser = __commonJS({
3756
4416
  return CoffeeMultiLineComment$0(state);
3757
4417
  }
3758
4418
  }
3759
- 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) {
3760
4420
  return { $loc, token: $1 };
3761
4421
  });
3762
4422
  function InlineComment(state) {
@@ -3798,7 +4458,7 @@ var require_parser = __commonJS({
3798
4458
  return _$0(state);
3799
4459
  }
3800
4460
  }
3801
- 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) {
3802
4462
  return { $loc, token: $0 };
3803
4463
  });
3804
4464
  function NonNewlineWhitespace(state) {
@@ -3820,7 +4480,7 @@ var require_parser = __commonJS({
3820
4480
  return __$0(state);
3821
4481
  }
3822
4482
  }
3823
- 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) {
3824
4484
  return { $loc, token: $0 };
3825
4485
  });
3826
4486
  function Whitespace(state) {
@@ -3832,6 +4492,20 @@ var require_parser = __commonJS({
3832
4492
  return Whitespace$0(state);
3833
4493
  }
3834
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
+ }
3835
4509
  var StatementDelimiter$0 = $S($Q(TrailingComment), Semicolon, $Q(TrailingComment));
3836
4510
  var StatementDelimiter$1 = $Y(EOS);
3837
4511
  function StatementDelimiter(state) {
@@ -3841,7 +4515,7 @@ var require_parser = __commonJS({
3841
4515
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
3842
4516
  }
3843
4517
  }
3844
- 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})/"));
3845
4519
  function NonIdContinue(state) {
3846
4520
  if (state.verbose)
3847
4521
  console.log("ENTER:", "NonIdContinue");
@@ -3863,7 +4537,7 @@ var require_parser = __commonJS({
3863
4537
  return Loc$0(state);
3864
4538
  }
3865
4539
  }
3866
- 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) {
3867
4541
  return { $loc, token: $1 };
3868
4542
  });
3869
4543
  function As(state) {
@@ -3875,7 +4549,7 @@ var require_parser = __commonJS({
3875
4549
  return As$0(state);
3876
4550
  }
3877
4551
  }
3878
- 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) {
3879
4553
  return { $loc, token: $1 };
3880
4554
  });
3881
4555
  function Async(state) {
@@ -3887,7 +4561,7 @@ var require_parser = __commonJS({
3887
4561
  return Async$0(state);
3888
4562
  }
3889
4563
  }
3890
- 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) {
3891
4565
  return { $loc, token: $1 };
3892
4566
  });
3893
4567
  function Await(state) {
@@ -3899,7 +4573,7 @@ var require_parser = __commonJS({
3899
4573
  return Await$0(state);
3900
4574
  }
3901
4575
  }
3902
- 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) {
3903
4577
  return { $loc, token: $1 };
3904
4578
  });
3905
4579
  function Backtick(state) {
@@ -3911,7 +4585,7 @@ var require_parser = __commonJS({
3911
4585
  return Backtick$0(state);
3912
4586
  }
3913
4587
  }
3914
- 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) {
3915
4589
  return { $loc, token: $1 };
3916
4590
  });
3917
4591
  function Case(state) {
@@ -3923,7 +4597,7 @@ var require_parser = __commonJS({
3923
4597
  return Case$0(state);
3924
4598
  }
3925
4599
  }
3926
- 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) {
3927
4601
  return { $loc, token: $1 };
3928
4602
  });
3929
4603
  function Catch(state) {
@@ -3935,7 +4609,7 @@ var require_parser = __commonJS({
3935
4609
  return Catch$0(state);
3936
4610
  }
3937
4611
  }
3938
- 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) {
3939
4613
  return { $loc, token: $1 };
3940
4614
  });
3941
4615
  function Class(state) {
@@ -3947,7 +4621,7 @@ var require_parser = __commonJS({
3947
4621
  return Class$0(state);
3948
4622
  }
3949
4623
  }
3950
- 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) {
3951
4625
  return { $loc, token: $1 };
3952
4626
  });
3953
4627
  function CloseBrace(state) {
@@ -3959,7 +4633,7 @@ var require_parser = __commonJS({
3959
4633
  return CloseBrace$0(state);
3960
4634
  }
3961
4635
  }
3962
- 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) {
3963
4637
  return { $loc, token: $1 };
3964
4638
  });
3965
4639
  function CloseBracket(state) {
@@ -3971,7 +4645,7 @@ var require_parser = __commonJS({
3971
4645
  return CloseBracket$0(state);
3972
4646
  }
3973
4647
  }
3974
- 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) {
3975
4649
  return { $loc, token: $1 };
3976
4650
  });
3977
4651
  function CloseParen(state) {
@@ -3983,7 +4657,7 @@ var require_parser = __commonJS({
3983
4657
  return CloseParen$0(state);
3984
4658
  }
3985
4659
  }
3986
- 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) {
3987
4661
  return { $loc, token: "${" };
3988
4662
  });
3989
4663
  function CoffeeSubstitutionStart(state) {
@@ -3995,7 +4669,7 @@ var require_parser = __commonJS({
3995
4669
  return CoffeeSubstitutionStart$0(state);
3996
4670
  }
3997
4671
  }
3998
- 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) {
3999
4673
  return { $loc, token: $1 };
4000
4674
  });
4001
4675
  function Colon(state) {
@@ -4019,7 +4693,7 @@ var require_parser = __commonJS({
4019
4693
  return ConstructorShorthand$0(state);
4020
4694
  }
4021
4695
  }
4022
- 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) {
4023
4697
  return { $loc, token: $1 };
4024
4698
  });
4025
4699
  function Default(state) {
@@ -4031,7 +4705,7 @@ var require_parser = __commonJS({
4031
4705
  return Default$0(state);
4032
4706
  }
4033
4707
  }
4034
- 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) {
4035
4709
  return { $loc, token: $1 };
4036
4710
  });
4037
4711
  function Delete(state) {
@@ -4043,7 +4717,7 @@ var require_parser = __commonJS({
4043
4717
  return Delete$0(state);
4044
4718
  }
4045
4719
  }
4046
- 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) {
4047
4721
  return { $loc, token: $1 };
4048
4722
  });
4049
4723
  function Do(state) {
@@ -4055,7 +4729,7 @@ var require_parser = __commonJS({
4055
4729
  return Do$0(state);
4056
4730
  }
4057
4731
  }
4058
- 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) {
4059
4733
  return { $loc, token: $1 };
4060
4734
  });
4061
4735
  function Dot(state) {
@@ -4067,7 +4741,7 @@ var require_parser = __commonJS({
4067
4741
  return Dot$0(state);
4068
4742
  }
4069
4743
  }
4070
- 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) {
4071
4745
  return { $loc, token: $1 };
4072
4746
  });
4073
4747
  function DotDot(state) {
@@ -4079,7 +4753,7 @@ var require_parser = __commonJS({
4079
4753
  return DotDot$0(state);
4080
4754
  }
4081
4755
  }
4082
- 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) {
4083
4757
  return { $loc, token: $1 };
4084
4758
  });
4085
4759
  function DotDotDot(state) {
@@ -4091,7 +4765,7 @@ var require_parser = __commonJS({
4091
4765
  return DotDotDot$0(state);
4092
4766
  }
4093
4767
  }
4094
- 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) {
4095
4769
  return { $loc, token: $1 };
4096
4770
  });
4097
4771
  function DoubleQuote(state) {
@@ -4103,7 +4777,7 @@ var require_parser = __commonJS({
4103
4777
  return DoubleQuote$0(state);
4104
4778
  }
4105
4779
  }
4106
- 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) {
4107
4781
  return { $loc, token: $1 };
4108
4782
  });
4109
4783
  function Else(state) {
@@ -4115,7 +4789,7 @@ var require_parser = __commonJS({
4115
4789
  return Else$0(state);
4116
4790
  }
4117
4791
  }
4118
- 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) {
4119
4793
  return { $loc, token: $1 };
4120
4794
  });
4121
4795
  function Equals(state) {
@@ -4127,7 +4801,7 @@ var require_parser = __commonJS({
4127
4801
  return Equals$0(state);
4128
4802
  }
4129
4803
  }
4130
- 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) {
4131
4805
  return { $loc, token: $1 };
4132
4806
  });
4133
4807
  function Export(state) {
@@ -4139,7 +4813,7 @@ var require_parser = __commonJS({
4139
4813
  return Export$0(state);
4140
4814
  }
4141
4815
  }
4142
- 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) {
4143
4817
  return { $loc, token: $1 };
4144
4818
  });
4145
4819
  function For(state) {
@@ -4151,7 +4825,7 @@ var require_parser = __commonJS({
4151
4825
  return For$0(state);
4152
4826
  }
4153
4827
  }
4154
- 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) {
4155
4829
  return { $loc, token: $1 };
4156
4830
  });
4157
4831
  function From(state) {
@@ -4163,7 +4837,7 @@ var require_parser = __commonJS({
4163
4837
  return From$0(state);
4164
4838
  }
4165
4839
  }
4166
- 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) {
4167
4841
  return { $loc, token: $1 };
4168
4842
  });
4169
4843
  function Function(state) {
@@ -4175,7 +4849,7 @@ var require_parser = __commonJS({
4175
4849
  return Function$0(state);
4176
4850
  }
4177
4851
  }
4178
- 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) {
4179
4853
  return { $loc, token: $1 };
4180
4854
  });
4181
4855
  function GetOrSet(state) {
@@ -4187,7 +4861,7 @@ var require_parser = __commonJS({
4187
4861
  return GetOrSet$0(state);
4188
4862
  }
4189
4863
  }
4190
- 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) {
4191
4865
  return { $loc, token: $1 };
4192
4866
  });
4193
4867
  function If(state) {
@@ -4199,7 +4873,7 @@ var require_parser = __commonJS({
4199
4873
  return If$0(state);
4200
4874
  }
4201
4875
  }
4202
- 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) {
4203
4877
  return { $loc, token: $1 };
4204
4878
  });
4205
4879
  function Import(state) {
@@ -4211,7 +4885,7 @@ var require_parser = __commonJS({
4211
4885
  return Import$0(state);
4212
4886
  }
4213
4887
  }
4214
- 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) {
4215
4889
  return { $loc, token: $1 };
4216
4890
  });
4217
4891
  function In(state) {
@@ -4223,7 +4897,7 @@ var require_parser = __commonJS({
4223
4897
  return In$0(state);
4224
4898
  }
4225
4899
  }
4226
- 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) {
4227
4901
  return { $loc, token: $1 };
4228
4902
  });
4229
4903
  function LetOrConst(state) {
@@ -4235,7 +4909,7 @@ var require_parser = __commonJS({
4235
4909
  return LetOrConst$0(state);
4236
4910
  }
4237
4911
  }
4238
- 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) {
4239
4913
  return { $loc, token: "while(true)" };
4240
4914
  });
4241
4915
  function Loop(state) {
@@ -4247,7 +4921,7 @@ var require_parser = __commonJS({
4247
4921
  return Loop$0(state);
4248
4922
  }
4249
4923
  }
4250
- 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) {
4251
4925
  return { $loc, token: $1 };
4252
4926
  });
4253
4927
  function New(state) {
@@ -4259,7 +4933,19 @@ var require_parser = __commonJS({
4259
4933
  return New$0(state);
4260
4934
  }
4261
4935
  }
4262
- 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) {
4263
4949
  return { $loc, token: $1 };
4264
4950
  });
4265
4951
  function Of(state) {
@@ -4271,7 +4957,7 @@ var require_parser = __commonJS({
4271
4957
  return Of$0(state);
4272
4958
  }
4273
4959
  }
4274
- 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) {
4275
4961
  return { $loc, token: $1 };
4276
4962
  });
4277
4963
  function OpenBrace(state) {
@@ -4283,7 +4969,7 @@ var require_parser = __commonJS({
4283
4969
  return OpenBrace$0(state);
4284
4970
  }
4285
4971
  }
4286
- 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) {
4287
4973
  return { $loc, token: $1 };
4288
4974
  });
4289
4975
  function OpenBracket(state) {
@@ -4295,7 +4981,7 @@ var require_parser = __commonJS({
4295
4981
  return OpenBracket$0(state);
4296
4982
  }
4297
4983
  }
4298
- 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) {
4299
4985
  return { $loc, token: $1 };
4300
4986
  });
4301
4987
  function OpenParen(state) {
@@ -4307,7 +4993,7 @@ var require_parser = __commonJS({
4307
4993
  return OpenParen$0(state);
4308
4994
  }
4309
4995
  }
4310
- 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) {
4311
4997
  return { $loc, token: $1 };
4312
4998
  });
4313
4999
  function QuestionMark(state) {
@@ -4319,7 +5005,7 @@ var require_parser = __commonJS({
4319
5005
  return QuestionMark$0(state);
4320
5006
  }
4321
5007
  }
4322
- 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) {
4323
5009
  return { $loc, token: $1 };
4324
5010
  });
4325
5011
  function Return(state) {
@@ -4331,7 +5017,7 @@ var require_parser = __commonJS({
4331
5017
  return Return$0(state);
4332
5018
  }
4333
5019
  }
4334
- 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) {
4335
5021
  return { $loc, token: $1 };
4336
5022
  });
4337
5023
  function Semicolon(state) {
@@ -4343,7 +5029,7 @@ var require_parser = __commonJS({
4343
5029
  return Semicolon$0(state);
4344
5030
  }
4345
5031
  }
4346
- 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) {
4347
5033
  return { $loc, token: $1 };
4348
5034
  });
4349
5035
  function SingleQuote(state) {
@@ -4355,7 +5041,7 @@ var require_parser = __commonJS({
4355
5041
  return SingleQuote$0(state);
4356
5042
  }
4357
5043
  }
4358
- 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) {
4359
5045
  return { $loc, token: $1 };
4360
5046
  });
4361
5047
  function Star(state) {
@@ -4367,10 +5053,10 @@ var require_parser = __commonJS({
4367
5053
  return Star$0(state);
4368
5054
  }
4369
5055
  }
4370
- 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) {
4371
5057
  return { $loc, token: $1 };
4372
5058
  });
4373
- 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) {
4374
5060
  return { $loc, token: "static " };
4375
5061
  });
4376
5062
  function Static(state) {
@@ -4380,7 +5066,7 @@ var require_parser = __commonJS({
4380
5066
  return Static$0(state) || Static$1(state);
4381
5067
  }
4382
5068
  }
4383
- 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) {
4384
5070
  return { $loc, token: $1 };
4385
5071
  });
4386
5072
  function SubstitutionStart(state) {
@@ -4392,7 +5078,7 @@ var require_parser = __commonJS({
4392
5078
  return SubstitutionStart$0(state);
4393
5079
  }
4394
5080
  }
4395
- 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) {
4396
5082
  return { $loc, token: $1 };
4397
5083
  });
4398
5084
  function Switch(state) {
@@ -4404,7 +5090,7 @@ var require_parser = __commonJS({
4404
5090
  return Switch$0(state);
4405
5091
  }
4406
5092
  }
4407
- 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) {
4408
5094
  return { $loc, token: $1 };
4409
5095
  });
4410
5096
  function Target(state) {
@@ -4416,7 +5102,19 @@ var require_parser = __commonJS({
4416
5102
  return Target$0(state);
4417
5103
  }
4418
5104
  }
4419
- 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) {
4420
5118
  return { $loc, token: $1 };
4421
5119
  });
4422
5120
  function Throw(state) {
@@ -4428,7 +5126,7 @@ var require_parser = __commonJS({
4428
5126
  return Throw$0(state);
4429
5127
  }
4430
5128
  }
4431
- 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) {
4432
5130
  return { $loc, token: "`" };
4433
5131
  });
4434
5132
  function TripleDoubleQuote(state) {
@@ -4440,7 +5138,7 @@ var require_parser = __commonJS({
4440
5138
  return TripleDoubleQuote$0(state);
4441
5139
  }
4442
5140
  }
4443
- 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) {
4444
5142
  return { $loc, token: "`" };
4445
5143
  });
4446
5144
  function TripleSingleQuote(state) {
@@ -4452,7 +5150,7 @@ var require_parser = __commonJS({
4452
5150
  return TripleSingleQuote$0(state);
4453
5151
  }
4454
5152
  }
4455
- 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) {
4456
5154
  return { $loc, token: "`" };
4457
5155
  });
4458
5156
  function TripleTick(state) {
@@ -4464,7 +5162,7 @@ var require_parser = __commonJS({
4464
5162
  return TripleTick$0(state);
4465
5163
  }
4466
5164
  }
4467
- 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) {
4468
5166
  return { $loc, token: $1 };
4469
5167
  });
4470
5168
  function Try(state) {
@@ -4476,7 +5174,7 @@ var require_parser = __commonJS({
4476
5174
  return Try$0(state);
4477
5175
  }
4478
5176
  }
4479
- 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) {
4480
5178
  return { $loc, token: $1 };
4481
5179
  });
4482
5180
  function Typeof(state) {
@@ -4488,7 +5186,7 @@ var require_parser = __commonJS({
4488
5186
  return Typeof$0(state);
4489
5187
  }
4490
5188
  }
4491
- 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) {
4492
5190
  return { $loc, token: $1 };
4493
5191
  });
4494
5192
  function Unless(state) {
@@ -4500,7 +5198,7 @@ var require_parser = __commonJS({
4500
5198
  return Unless$0(state);
4501
5199
  }
4502
5200
  }
4503
- 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) {
4504
5202
  return { $loc, token: $1 };
4505
5203
  });
4506
5204
  function Until(state) {
@@ -4512,7 +5210,7 @@ var require_parser = __commonJS({
4512
5210
  return Until$0(state);
4513
5211
  }
4514
5212
  }
4515
- 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) {
4516
5214
  return { $loc, token: $1 };
4517
5215
  });
4518
5216
  function Var(state) {
@@ -4524,7 +5222,7 @@ var require_parser = __commonJS({
4524
5222
  return Var$0(state);
4525
5223
  }
4526
5224
  }
4527
- 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) {
4528
5226
  return { $loc, token: $1 };
4529
5227
  });
4530
5228
  function Void(state) {
@@ -4536,7 +5234,7 @@ var require_parser = __commonJS({
4536
5234
  return Void$0(state);
4537
5235
  }
4538
5236
  }
4539
- 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) {
4540
5238
  return { $loc, token: "case" };
4541
5239
  });
4542
5240
  function When(state) {
@@ -4548,7 +5246,7 @@ var require_parser = __commonJS({
4548
5246
  return When$0(state);
4549
5247
  }
4550
5248
  }
4551
- 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) {
4552
5250
  return { $loc, token: $1 };
4553
5251
  });
4554
5252
  function While(state) {
@@ -4560,7 +5258,7 @@ var require_parser = __commonJS({
4560
5258
  return While$0(state);
4561
5259
  }
4562
5260
  }
4563
- 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) {
4564
5262
  return { $loc, token: $1 };
4565
5263
  });
4566
5264
  function Yield(state) {
@@ -4586,7 +5284,7 @@ var require_parser = __commonJS({
4586
5284
  return JSXElement$0(state) || JSXElement$1(state);
4587
5285
  }
4588
5286
  }
4589
- 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 "/>"'));
4590
5288
  function JSXSelfClosingElement(state) {
4591
5289
  if (state.verbose)
4592
5290
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -4596,7 +5294,7 @@ var require_parser = __commonJS({
4596
5294
  return JSXSelfClosingElement$0(state);
4597
5295
  }
4598
5296
  }
4599
- 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 ">"'));
4600
5298
  function JSXOpeningElement(state) {
4601
5299
  if (state.verbose)
4602
5300
  console.log("ENTER:", "JSXOpeningElement");
@@ -4606,7 +5304,7 @@ var require_parser = __commonJS({
4606
5304
  return JSXOpeningElement$0(state);
4607
5305
  }
4608
5306
  }
4609
- 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 ">"'));
4610
5308
  function JSXClosingElement(state) {
4611
5309
  if (state.verbose)
4612
5310
  console.log("ENTER:", "JSXClosingElement");
@@ -4616,7 +5314,7 @@ var require_parser = __commonJS({
4616
5314
  return JSXClosingElement$0(state);
4617
5315
  }
4618
5316
  }
4619
- 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 "</>"'));
4620
5318
  function JSXFragment(state) {
4621
5319
  if (state.verbose)
4622
5320
  console.log("ENTER:", "JSXFragment");
@@ -4636,7 +5334,7 @@ var require_parser = __commonJS({
4636
5334
  return JSXElementName$0(state);
4637
5335
  }
4638
5336
  }
4639
- 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$-])*/"));
4640
5338
  function JSXIdentifierName(state) {
4641
5339
  if (state.verbose)
4642
5340
  console.log("ENTER:", "JSXIdentifierName");
@@ -4656,7 +5354,7 @@ var require_parser = __commonJS({
4656
5354
  return JSXAttributes$0(state);
4657
5355
  }
4658
5356
  }
4659
- var JSXAttribute$0 = $S(OpenBrace, __, DotDotDot, __, AssignmentExpression, __, CloseBrace);
5357
+ var JSXAttribute$0 = $S(OpenBrace, __, DotDotDot, ExtendedExpression, __, CloseBrace);
4660
5358
  var JSXAttribute$1 = $S(JSXAttributeName, $E(JSXAttributeInitializer));
4661
5359
  function JSXAttribute(state) {
4662
5360
  if (state.tokenize) {
@@ -4685,9 +5383,9 @@ var require_parser = __commonJS({
4685
5383
  return JSXAttributeInitializer$0(state);
4686
5384
  }
4687
5385
  }
4688
- var JSXAttributeValue$0 = $R$0($EXPECT($R34, fail, 'JSXAttributeValue /"[^"]*"/'));
4689
- var JSXAttributeValue$1 = $R$0($EXPECT($R35, fail, "JSXAttributeValue /'[^']*'/"));
4690
- 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);
4691
5389
  var JSXAttributeValue$3 = JSXElement;
4692
5390
  var JSXAttributeValue$4 = JSXFragment;
4693
5391
  function JSXAttributeValue(state) {
@@ -4718,7 +5416,7 @@ var require_parser = __commonJS({
4718
5416
  return JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state);
4719
5417
  }
4720
5418
  }
4721
- var JSXText$0 = $R$0($EXPECT($R36, fail, "JSXText /[^{}<>]+/"));
5419
+ var JSXText$0 = $R$0($EXPECT($R37, fail, "JSXText /[^{}<>]+/"));
4722
5420
  function JSXText(state) {
4723
5421
  if (state.verbose)
4724
5422
  console.log("ENTER:", "JSXText");
@@ -4728,7 +5426,7 @@ var require_parser = __commonJS({
4728
5426
  return JSXText$0(state);
4729
5427
  }
4730
5428
  }
4731
- var JSXChildExpression$0 = $S(__, $E($S(DotDotDot, __)), AssignmentExpression);
5429
+ var JSXChildExpression$0 = $S(__, $E($S(DotDotDot, __)), ExtendedExpression);
4732
5430
  function JSXChildExpression(state) {
4733
5431
  if (state.verbose)
4734
5432
  console.log("ENTER:", "JSXChildExpression");
@@ -4750,7 +5448,7 @@ var require_parser = __commonJS({
4750
5448
  return TypeDeclaration$0(state);
4751
5449
  }
4752
5450
  }
4753
- var TypeDeclarationModifier$0 = $S($EXPECT($L137, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
5451
+ var TypeDeclarationModifier$0 = $S($EXPECT($L141, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4754
5452
  var TypeDeclarationModifier$1 = Export;
4755
5453
  function TypeDeclarationModifier(state) {
4756
5454
  if (state.tokenize) {
@@ -4770,7 +5468,7 @@ var require_parser = __commonJS({
4770
5468
  return TypeDeclarationRest$0(state) || TypeDeclarationRest$1(state) || TypeDeclarationRest$2(state) || TypeDeclarationRest$3(state);
4771
5469
  }
4772
5470
  }
4773
- var TypeKeyword$0 = $S($EXPECT($L138, fail, 'TypeKeyword "type"'), NonIdContinue);
5471
+ var TypeKeyword$0 = $S($EXPECT($L142, fail, 'TypeKeyword "type"'), NonIdContinue);
4774
5472
  function TypeKeyword(state) {
4775
5473
  if (state.verbose)
4776
5474
  console.log("ENTER:", "TypeKeyword");
@@ -4780,7 +5478,7 @@ var require_parser = __commonJS({
4780
5478
  return TypeKeyword$0(state);
4781
5479
  }
4782
5480
  }
4783
- var Interface$0 = $S($EXPECT($L139, fail, 'Interface "interface"'), NonIdContinue);
5481
+ var Interface$0 = $S($EXPECT($L143, fail, 'Interface "interface"'), NonIdContinue);
4784
5482
  function Interface(state) {
4785
5483
  if (state.verbose)
4786
5484
  console.log("ENTER:", "Interface");
@@ -4790,7 +5488,7 @@ var require_parser = __commonJS({
4790
5488
  return Interface$0(state);
4791
5489
  }
4792
5490
  }
4793
- var Namespace$0 = $S($EXPECT($L140, fail, 'Namespace "namespace"'), NonIdContinue);
5491
+ var Namespace$0 = $S($EXPECT($L144, fail, 'Namespace "namespace"'), NonIdContinue);
4794
5492
  function Namespace(state) {
4795
5493
  if (state.verbose)
4796
5494
  console.log("ENTER:", "Namespace");
@@ -4890,7 +5588,7 @@ var require_parser = __commonJS({
4890
5588
  return NestedTypeDeclaration$0(state);
4891
5589
  }
4892
5590
  }
4893
- 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)));
4894
5592
  function TypeIndexSignature(state) {
4895
5593
  if (state.verbose)
4896
5594
  console.log("ENTER:", "TypeIndexSignature");
@@ -4921,7 +5619,7 @@ var require_parser = __commonJS({
4921
5619
  return TypeSuffix$0(state);
4922
5620
  }
4923
5621
  }
4924
- 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) {
4925
5623
  if (!$3)
4926
5624
  $0.splice(2, 1);
4927
5625
  if ($1.length === 0)
@@ -4941,7 +5639,7 @@ var require_parser = __commonJS({
4941
5639
  return ReturnTypeSuffix$0(state);
4942
5640
  }
4943
5641
  }
4944
- 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) {
4945
5643
  if (!$2)
4946
5644
  return $1;
4947
5645
  return $0;
@@ -5004,9 +5702,9 @@ var require_parser = __commonJS({
5004
5702
  return TypeUnarySuffix$0(state) || TypeUnarySuffix$1(state);
5005
5703
  }
5006
5704
  }
5007
- var TypeUnaryOp$0 = $EXPECT($L143, fail, 'TypeUnaryOp "keyof"');
5008
- var TypeUnaryOp$1 = $EXPECT($L125, fail, 'TypeUnaryOp "typeof"');
5009
- 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"');
5010
5708
  function TypeUnaryOp(state) {
5011
5709
  if (state.tokenize) {
5012
5710
  return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state));
@@ -5096,10 +5794,10 @@ var require_parser = __commonJS({
5096
5794
  }
5097
5795
  }
5098
5796
  var TypeLiteral$0 = Literal;
5099
- 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) {
5100
5798
  return { $loc, token: "void" };
5101
5799
  });
5102
- 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) {
5103
5801
  return { $loc, token: "[]" };
5104
5802
  });
5105
5803
  function TypeLiteral(state) {
@@ -5109,10 +5807,10 @@ var require_parser = __commonJS({
5109
5807
  return TypeLiteral$0(state) || TypeLiteral$1(state) || TypeLiteral$2(state);
5110
5808
  }
5111
5809
  }
5112
- 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) {
5113
5811
  return { $loc, token: "|" };
5114
5812
  });
5115
- 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) {
5116
5814
  return { $loc, token: "&" };
5117
5815
  });
5118
5816
  function TypeBinaryOp(state) {
@@ -5132,7 +5830,7 @@ var require_parser = __commonJS({
5132
5830
  return FunctionType$0(state);
5133
5831
  }
5134
5832
  }
5135
- 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 ">"'));
5136
5834
  function TypeArguments(state) {
5137
5835
  if (state.verbose)
5138
5836
  console.log("ENTER:", "TypeArguments");
@@ -5142,7 +5840,7 @@ var require_parser = __commonJS({
5142
5840
  return TypeArguments$0(state);
5143
5841
  }
5144
5842
  }
5145
- 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) {
5146
5844
  return { ts: true, children: $0 };
5147
5845
  });
5148
5846
  function TypeParameters(state) {
@@ -5175,8 +5873,8 @@ var require_parser = __commonJS({
5175
5873
  }
5176
5874
  }
5177
5875
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
5178
- var TypeParameterDelimiter$1 = $Y($S($Q(_), $EXPECT($L55, fail, 'TypeParameterDelimiter ">"')));
5179
- 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) {
5180
5878
  return { $loc, token: "," };
5181
5879
  });
5182
5880
  var TypeParameterDelimiter$3 = $TV($Y(EOS), function($skip, $loc, $0, $1) {
@@ -5189,7 +5887,7 @@ var require_parser = __commonJS({
5189
5887
  return TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
5190
5888
  }
5191
5889
  }
5192
- 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);
5193
5891
  function Shebang(state) {
5194
5892
  if (state.verbose)
5195
5893
  console.log("ENTER:", "Shebang");
@@ -5199,11 +5897,11 @@ var require_parser = __commonJS({
5199
5897
  return Shebang$0(state);
5200
5898
  }
5201
5899
  }
5202
- 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) {
5203
5901
  var content = value[2];
5204
5902
  return content;
5205
5903
  });
5206
- 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) {
5207
5905
  var content = value[2];
5208
5906
  return content;
5209
5907
  });
@@ -5214,7 +5912,7 @@ var require_parser = __commonJS({
5214
5912
  return CivetPrologue$0(state) || CivetPrologue$1(state);
5215
5913
  }
5216
5914
  }
5217
- 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) {
5218
5916
  var options = $2;
5219
5917
  return {
5220
5918
  type: "CivetPrologue",
@@ -5231,7 +5929,7 @@ var require_parser = __commonJS({
5231
5929
  return CivetPrologueContent$0(state);
5232
5930
  }
5233
5931
  }
5234
- 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) {
5235
5933
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
5236
5934
  if (l)
5237
5935
  return l.toUpperCase();
@@ -5249,7 +5947,7 @@ var require_parser = __commonJS({
5249
5947
  return CivetOption$0(state);
5250
5948
  }
5251
5949
  }
5252
- 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);
5253
5951
  function UnknownPrologue(state) {
5254
5952
  if (state.verbose)
5255
5953
  console.log("ENTER:", "UnknownPrologue");
@@ -5278,7 +5976,7 @@ var require_parser = __commonJS({
5278
5976
  return EOS$0(state);
5279
5977
  }
5280
5978
  }
5281
- 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) {
5282
5980
  return { $loc, token: $0 };
5283
5981
  });
5284
5982
  function EOL(state) {
@@ -5476,6 +6174,34 @@ var require_parser = __commonJS({
5476
6174
  return CoffeeInterpolationEnabled$0(state);
5477
6175
  }
5478
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
+ }
5479
6205
  var Reset$0 = $TV($EXPECT($L0, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
5480
6206
  module2.currentIndent = 0;
5481
6207
  module2.indentLevels = [0];
@@ -5486,6 +6212,8 @@ var require_parser = __commonJS({
5486
6212
  coffeeComment: false,
5487
6213
  coffeeEq: false,
5488
6214
  coffeeInterpolation: false,
6215
+ coffeeIsnt: false,
6216
+ coffeeNot: false,
5489
6217
  implicitReturns: true
5490
6218
  };
5491
6219
  Object.defineProperty(module2.config, "coffeeCompat", {
@@ -5496,14 +6224,16 @@ var require_parser = __commonJS({
5496
6224
  this.coffeeComment = true;
5497
6225
  this.coffeeEq = true;
5498
6226
  this.coffeeInterpolation = true;
5499
- this.implicitReturns = true;
6227
+ this.coffeeIsnt = true;
6228
+ this.coffeeNot = true;
5500
6229
  } else {
5501
6230
  this.autoVar = false;
5502
6231
  this.coffeeBooleans = false;
5503
6232
  this.coffeeComment = false;
5504
6233
  this.coffeeEq = false;
5505
6234
  this.coffeeInterpolation = false;
5506
- this.implicitReturns = false;
6235
+ this.coffeeIsnt = false;
6236
+ this.coffeeNot = false;
5507
6237
  }
5508
6238
  }
5509
6239
  });
@@ -5535,7 +6265,7 @@ var require_parser = __commonJS({
5535
6265
  node.children.unshift("return ");
5536
6266
  return;
5537
6267
  case "Identifier":
5538
- node.token = "return " + node.token;
6268
+ node.children.unshift("return ");
5539
6269
  return;
5540
6270
  case "BlockStatement":
5541
6271
  insertReturn(node.expressions[node.expressions.length - 1]);
@@ -5568,10 +6298,11 @@ var require_parser = __commonJS({
5568
6298
  case "ContinueStatement":
5569
6299
  case "DebuggerStatement":
5570
6300
  case "EmptyStatement":
6301
+ case "ForStatement":
5571
6302
  case "IterationStatement":
5572
6303
  case "ReturnStatement":
5573
6304
  case "ThrowStatement":
5574
- case "VariableDeclaration":
6305
+ case "Declaration":
5575
6306
  return;
5576
6307
  case "BlockStatement":
5577
6308
  insertReturn(exp.expressions[exp.expressions.length - 1]);
@@ -5679,9 +6410,10 @@ var require_parser = __commonJS({
5679
6410
  };
5680
6411
  module2.insertTrimmingSpace = function(spacing, c) {
5681
6412
  let target = spacing;
5682
- while (Array.isArray(target)) {
5683
- target = target[0];
5684
- }
6413
+ if (Array.isArray(target))
6414
+ return module2.insertTrimmingSpace(target[0], c);
6415
+ if (target.children)
6416
+ return module2.insertTrimmingSpace(target.children[0], c);
5685
6417
  if (target.token) {
5686
6418
  target.token = target.token.replace(/^ ?/, c);
5687
6419
  }
@@ -5737,6 +6469,91 @@ var require_parser = __commonJS({
5737
6469
  token: str
5738
6470
  };
5739
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
+ };
5740
6557
  return $0;
5741
6558
  });
5742
6559
  function Init(state) {
@@ -5748,7 +6565,7 @@ var require_parser = __commonJS({
5748
6565
  return Init$0(state);
5749
6566
  }
5750
6567
  }
5751
- 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) {
5752
6569
  const level = $1.length;
5753
6570
  return {
5754
6571
  $loc,