@danielx/civet 0.6.49 → 0.6.51

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
@@ -2051,6 +2051,20 @@ var require_lib = __commonJS({
2051
2051
  implicit: true
2052
2052
  });
2053
2053
  }
2054
+ function makeExpressionStatement(expression) {
2055
+ if (Array.isArray(expression) && expression[1]?.[0]?.[0]?.[1]?.token === ",") {
2056
+ return [
2057
+ makeExpressionStatement(expression[0]),
2058
+ expression[1].map(([comma, exp]) => {
2059
+ return [comma, makeExpressionStatement(exp)];
2060
+ })
2061
+ ];
2062
+ } else if (expression?.type === "ObjectExpression" || expression?.type === "FunctionExpression" && !expression.id) {
2063
+ return makeLeftHandSideExpression(expression);
2064
+ } else {
2065
+ return expression;
2066
+ }
2067
+ }
2054
2068
  function modifyString(str) {
2055
2069
  return str.replace(/(^.?|[^\\]{2})(\\\\)*\n/g, "$1$2\\n");
2056
2070
  }
@@ -3684,6 +3698,7 @@ var require_lib = __commonJS({
3684
3698
  literalValue,
3685
3699
  makeAsConst,
3686
3700
  makeEmptyBlock,
3701
+ makeExpressionStatement,
3687
3702
  makeGetterMethod,
3688
3703
  makeLeftHandSideExpression,
3689
3704
  makeRef,
@@ -3748,6 +3763,7 @@ var require_parser = __commonJS({
3748
3763
  NestedTopLevelStatements,
3749
3764
  TopLevelSingleLineStatements,
3750
3765
  TopLevelStatement,
3766
+ ExtendedCommaExpression,
3751
3767
  ExtendedExpression,
3752
3768
  SingleLineExtendedExpression,
3753
3769
  NonPipelineExtendedExpression,
@@ -3756,7 +3772,7 @@ var require_parser = __commonJS({
3756
3772
  ExpressionizedStatementWithTrailingCallExpressions,
3757
3773
  ExpressionizedStatement,
3758
3774
  _ExpressionizedStatement,
3759
- Expression,
3775
+ CommaExpression,
3760
3776
  Arguments,
3761
3777
  ImplicitArguments,
3762
3778
  ExplicitArguments,
@@ -3901,15 +3917,18 @@ var require_parser = __commonJS({
3901
3917
  BareBlock,
3902
3918
  ThenClause,
3903
3919
  BracedOrEmptyBlock,
3920
+ NoCommaBracedOrEmptyBlock,
3904
3921
  NoPostfixBracedOrEmptyBlock,
3905
3922
  EmptyBlock,
3906
3923
  EmptyBareBlock,
3907
3924
  BracedBlock,
3908
3925
  NoPostfixBracedBlock,
3926
+ NoCommaBracedBlock,
3909
3927
  NonSingleBracedBlock,
3910
3928
  DeclarationOrStatement,
3911
3929
  SingleLineStatements,
3912
3930
  PostfixedSingleLineStatements,
3931
+ PostfixedSingleLineNoCommaStatements,
3913
3932
  BracedContent,
3914
3933
  NestedBlockStatements,
3915
3934
  NestedBlockStatement,
@@ -3977,11 +3996,15 @@ var require_parser = __commonJS({
3977
3996
  ModuleItem,
3978
3997
  StatementListItem,
3979
3998
  PostfixedStatement,
3999
+ NoCommaStatementListItem,
4000
+ PostfixedNoCommaStatement,
3980
4001
  PostfixedExpression,
4002
+ PostfixedCommaExpression,
3981
4003
  NonPipelinePostfixedExpression,
3982
4004
  PostfixStatement,
3983
4005
  _PostfixStatement,
3984
4006
  Statement,
4007
+ NoCommaStatement,
3985
4008
  EmptyStatement,
3986
4009
  BlockStatement,
3987
4010
  LabelledStatement,
@@ -4065,6 +4088,7 @@ var require_parser = __commonJS({
4065
4088
  NewlineBinaryOpAllowed,
4066
4089
  AllowAll,
4067
4090
  RestoreAll,
4091
+ CommaExpressionStatement,
4068
4092
  ExpressionStatement,
4069
4093
  KeywordStatement,
4070
4094
  DebuggerStatement,
@@ -4801,6 +4825,12 @@ var require_parser = __commonJS({
4801
4825
  function TopLevelStatement(ctx, state) {
4802
4826
  return $EVENT(ctx, state, "TopLevelStatement", TopLevelStatement$0);
4803
4827
  }
4828
+ var ExtendedCommaExpression$0 = NonAssignmentExtendedExpression;
4829
+ var ExtendedCommaExpression$1 = CommaExpression;
4830
+ var ExtendedCommaExpression$$ = [ExtendedCommaExpression$0, ExtendedCommaExpression$1];
4831
+ function ExtendedCommaExpression(ctx, state) {
4832
+ return $EVENT_C(ctx, state, "ExtendedCommaExpression", ExtendedCommaExpression$$);
4833
+ }
4804
4834
  var ExtendedExpression$0 = NonAssignmentExtendedExpression;
4805
4835
  var ExtendedExpression$1 = AssignmentExpression;
4806
4836
  var ExtendedExpression$$ = [ExtendedExpression$0, ExtendedExpression$1];
@@ -4879,13 +4909,13 @@ var require_parser = __commonJS({
4879
4909
  function _ExpressionizedStatement(ctx, state) {
4880
4910
  return $EVENT_C(ctx, state, "_ExpressionizedStatement", _ExpressionizedStatement$$);
4881
4911
  }
4882
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
4912
+ var CommaExpression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
4883
4913
  if ($2.length == 0)
4884
4914
  return $1;
4885
4915
  return $0;
4886
4916
  });
4887
- function Expression(ctx, state) {
4888
- return $EVENT(ctx, state, "Expression", Expression$0);
4917
+ function CommaExpression(ctx, state) {
4918
+ return $EVENT(ctx, state, "CommaExpression", CommaExpression$0);
4889
4919
  }
4890
4920
  var Arguments$0 = ExplicitArguments;
4891
4921
  var Arguments$1 = $TS($S(ForbidTrailingMemberProperty, $E(ImplicitArguments), RestoreTrailingMemberProperty), function($skip, $loc, $0, $1, $2, $3) {
@@ -5290,11 +5320,14 @@ var require_parser = __commonJS({
5290
5320
  function TrailingDeclaration(ctx, state) {
5291
5321
  return $EVENT(ctx, state, "TrailingDeclaration", TrailingDeclaration$0);
5292
5322
  }
5293
- var FatArrowBody$0 = $T($S($N(EOS), NonPipelinePostfixedExpression, $N(TrailingDeclaration), $N(SemicolonDelimiter)), function(value) {
5294
- var exp = value[1];
5323
+ var FatArrowBody$0 = $TS($S($N(EOS), NonPipelinePostfixedExpression, $N(TrailingDeclaration), $N(SemicolonDelimiter)), function($skip, $loc, $0, $1, $2, $3, $4) {
5324
+ var exp = $2;
5325
+ if (exp.type === "ObjectExpression") {
5326
+ return makeLeftHandSideExpression(exp);
5327
+ }
5295
5328
  return exp;
5296
5329
  });
5297
- var FatArrowBody$1 = BracedOrEmptyBlock;
5330
+ var FatArrowBody$1 = NoCommaBracedOrEmptyBlock;
5298
5331
  var FatArrowBody$$ = [FatArrowBody$0, FatArrowBody$1];
5299
5332
  function FatArrowBody(ctx, state) {
5300
5333
  return $EVENT_C(ctx, state, "FatArrowBody", FatArrowBody$$);
@@ -5406,7 +5439,7 @@ var require_parser = __commonJS({
5406
5439
  function PrimaryExpression(ctx, state) {
5407
5440
  return $EVENT_C(ctx, state, "PrimaryExpression", PrimaryExpression$$);
5408
5441
  }
5409
- var ParenthesizedExpression$0 = $TS($S(OpenParen, AllowAll, $E($S(PostfixedExpression, __, CloseParen)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
5442
+ var ParenthesizedExpression$0 = $TS($S(OpenParen, AllowAll, $E($S(PostfixedCommaExpression, __, CloseParen)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
5410
5443
  var open = $1;
5411
5444
  if (!$3)
5412
5445
  return $skip;
@@ -6800,7 +6833,7 @@ var require_parser = __commonJS({
6800
6833
  function AmpersandUnaryPrefix(ctx, state) {
6801
6834
  return $EVENT(ctx, state, "AmpersandUnaryPrefix", AmpersandUnaryPrefix$0);
6802
6835
  }
6803
- var ThinArrowFunction$0 = $TS($S($E($S(Async, _)), ArrowParameters, $E(ReturnTypeSuffix), $E(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6836
+ var ThinArrowFunction$0 = $TS($S($E($S(Async, _)), ArrowParameters, $E(ReturnTypeSuffix), $E(_), Arrow, NoCommaBracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6804
6837
  var async = $1;
6805
6838
  var parameters = $2;
6806
6839
  var suffix = $3;
@@ -6942,6 +6975,12 @@ var require_parser = __commonJS({
6942
6975
  function BracedOrEmptyBlock(ctx, state) {
6943
6976
  return $EVENT_C(ctx, state, "BracedOrEmptyBlock", BracedOrEmptyBlock$$);
6944
6977
  }
6978
+ var NoCommaBracedOrEmptyBlock$0 = NoCommaBracedBlock;
6979
+ var NoCommaBracedOrEmptyBlock$1 = EmptyBlock;
6980
+ var NoCommaBracedOrEmptyBlock$$ = [NoCommaBracedOrEmptyBlock$0, NoCommaBracedOrEmptyBlock$1];
6981
+ function NoCommaBracedOrEmptyBlock(ctx, state) {
6982
+ return $EVENT_C(ctx, state, "NoCommaBracedOrEmptyBlock", NoCommaBracedOrEmptyBlock$$);
6983
+ }
6945
6984
  var NoPostfixBracedOrEmptyBlock$0 = NoPostfixBracedBlock;
6946
6985
  var NoPostfixBracedOrEmptyBlock$1 = EmptyBlock;
6947
6986
  var NoPostfixBracedOrEmptyBlock$$ = [NoPostfixBracedOrEmptyBlock$0, NoPostfixBracedOrEmptyBlock$1];
@@ -7011,6 +7050,25 @@ var require_parser = __commonJS({
7011
7050
  function NoPostfixBracedBlock(ctx, state) {
7012
7051
  return $EVENT_C(ctx, state, "NoPostfixBracedBlock", NoPostfixBracedBlock$$);
7013
7052
  }
7053
+ var NoCommaBracedBlock$0 = NonSingleBracedBlock;
7054
+ var NoCommaBracedBlock$1 = $TS($S(InsertOpenBrace, $N(EOS), PostfixedSingleLineNoCommaStatements, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7055
+ var o = $1;
7056
+ var s = $3;
7057
+ var ws = $4;
7058
+ var c = $5;
7059
+ if (!s.children.length)
7060
+ return $skip;
7061
+ return {
7062
+ type: "BlockStatement",
7063
+ expressions: s.expressions,
7064
+ // Remove !EOS assertion
7065
+ children: [o, s.children, ws, c]
7066
+ };
7067
+ });
7068
+ var NoCommaBracedBlock$$ = [NoCommaBracedBlock$0, NoCommaBracedBlock$1];
7069
+ function NoCommaBracedBlock(ctx, state) {
7070
+ return $EVENT_C(ctx, state, "NoCommaBracedBlock", NoCommaBracedBlock$$);
7071
+ }
7014
7072
  var NonSingleBracedBlock$0 = $TS($S($E(_), OpenBrace, AllowAll, $E($S(BracedContent, __, CloseBrace)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7015
7073
  var ws1 = $1;
7016
7074
  var open = $2;
@@ -7078,6 +7136,22 @@ var require_parser = __commonJS({
7078
7136
  function PostfixedSingleLineStatements(ctx, state) {
7079
7137
  return $EVENT(ctx, state, "PostfixedSingleLineStatements", PostfixedSingleLineStatements$0);
7080
7138
  }
7139
+ var PostfixedSingleLineNoCommaStatements$0 = $TS($S($Q($S($S($E(_), $N(EOS)), NoCommaStatementListItem, SemicolonDelimiter)), $E($S($S($E(_), $N(EOS)), NoCommaStatementListItem, $E(SemicolonDelimiter)))), function($skip, $loc, $0, $1, $2) {
7140
+ var stmts = $1;
7141
+ var last = $2;
7142
+ const children = [...stmts];
7143
+ if (last)
7144
+ children.push(last);
7145
+ return {
7146
+ type: "BlockStatement",
7147
+ expressions: children,
7148
+ children,
7149
+ bare: true
7150
+ };
7151
+ });
7152
+ function PostfixedSingleLineNoCommaStatements(ctx, state) {
7153
+ return $EVENT(ctx, state, "PostfixedSingleLineNoCommaStatements", PostfixedSingleLineNoCommaStatements$0);
7154
+ }
7081
7155
  var BracedContent$0 = NestedBlockStatements;
7082
7156
  var BracedContent$1 = SingleLineStatements;
7083
7157
  var BracedContent$2 = $TV($Y($S(__, $EXPECT($L25, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
@@ -8472,6 +8546,22 @@ var require_parser = __commonJS({
8472
8546
  function PostfixedStatement(ctx, state) {
8473
8547
  return $EVENT(ctx, state, "PostfixedStatement", PostfixedStatement$0);
8474
8548
  }
8549
+ var NoCommaStatementListItem$0 = Declaration;
8550
+ var NoCommaStatementListItem$1 = PostfixedNoCommaStatement;
8551
+ var NoCommaStatementListItem$$ = [NoCommaStatementListItem$0, NoCommaStatementListItem$1];
8552
+ function NoCommaStatementListItem(ctx, state) {
8553
+ return $EVENT_C(ctx, state, "NoCommaStatementListItem", NoCommaStatementListItem$$);
8554
+ }
8555
+ var PostfixedNoCommaStatement$0 = $TS($S(NoCommaStatement, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8556
+ var statement = $1;
8557
+ var post = $2;
8558
+ if (post)
8559
+ return addPostfixStatement(statement, ...post);
8560
+ return statement;
8561
+ });
8562
+ function PostfixedNoCommaStatement(ctx, state) {
8563
+ return $EVENT(ctx, state, "PostfixedNoCommaStatement", PostfixedNoCommaStatement$0);
8564
+ }
8475
8565
  var PostfixedExpression$0 = $TS($S(ExtendedExpression, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8476
8566
  var expression = $1;
8477
8567
  var post = $2;
@@ -8482,6 +8572,19 @@ var require_parser = __commonJS({
8482
8572
  function PostfixedExpression(ctx, state) {
8483
8573
  return $EVENT(ctx, state, "PostfixedExpression", PostfixedExpression$0);
8484
8574
  }
8575
+ var PostfixedCommaExpression$0 = $TS($S(PostfixedExpression, $C($S($E(_), PostfixStatement), $Q($S(CommaDelimiter, AssignmentExpression)))), function($skip, $loc, $0, $1, $2) {
8576
+ var expression = $1;
8577
+ var post = $2;
8578
+ if (!post.length)
8579
+ return $1;
8580
+ if (post.length === 2 && !Array.isArray(post[1])) {
8581
+ return attachPostfixStatementAsExpression(expression, post);
8582
+ }
8583
+ return $0;
8584
+ });
8585
+ function PostfixedCommaExpression(ctx, state) {
8586
+ return $EVENT(ctx, state, "PostfixedCommaExpression", PostfixedCommaExpression$0);
8587
+ }
8485
8588
  var NonPipelinePostfixedExpression$0 = $TS($S(NonPipelineExtendedExpression, $E($S($E(_), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
8486
8589
  var expression = $1;
8487
8590
  var post = $2;
@@ -8515,17 +8618,26 @@ var require_parser = __commonJS({
8515
8618
  var Statement$5 = TryStatement;
8516
8619
  var Statement$6 = EmptyStatement;
8517
8620
  var Statement$7 = LabelledStatement;
8518
- var Statement$8 = $TS($S(ExpressionStatement), function($skip, $loc, $0, $1) {
8519
- if ($1.type === "ObjectExpression" || $1.type === "FunctionExpression" && !$1.id) {
8520
- return makeLeftHandSideExpression($1);
8521
- }
8522
- return $1;
8523
- });
8621
+ var Statement$8 = CommaExpressionStatement;
8524
8622
  var Statement$9 = BlockStatement;
8525
8623
  var Statement$$ = [Statement$0, Statement$1, Statement$2, Statement$3, Statement$4, Statement$5, Statement$6, Statement$7, Statement$8, Statement$9];
8526
8624
  function Statement(ctx, state) {
8527
8625
  return $EVENT_C(ctx, state, "Statement", Statement$$);
8528
8626
  }
8627
+ var NoCommaStatement$0 = KeywordStatement;
8628
+ var NoCommaStatement$1 = VariableStatement;
8629
+ var NoCommaStatement$2 = IfStatement;
8630
+ var NoCommaStatement$3 = IterationStatement;
8631
+ var NoCommaStatement$4 = SwitchStatement;
8632
+ var NoCommaStatement$5 = TryStatement;
8633
+ var NoCommaStatement$6 = EmptyStatement;
8634
+ var NoCommaStatement$7 = LabelledStatement;
8635
+ var NoCommaStatement$8 = ExpressionStatement;
8636
+ var NoCommaStatement$9 = BlockStatement;
8637
+ var NoCommaStatement$$ = [NoCommaStatement$0, NoCommaStatement$1, NoCommaStatement$2, NoCommaStatement$3, NoCommaStatement$4, NoCommaStatement$5, NoCommaStatement$6, NoCommaStatement$7, NoCommaStatement$8, NoCommaStatement$9];
8638
+ function NoCommaStatement(ctx, state) {
8639
+ return $EVENT_C(ctx, state, "NoCommaStatement", NoCommaStatement$$);
8640
+ }
8529
8641
  var EmptyStatement$0 = $TS($S($E(_), $Y($EXPECT($L99, 'EmptyStatement ";"'))), function($skip, $loc, $0, $1, $2) {
8530
8642
  return { type: "EmptyStatement", children: $1 || [] };
8531
8643
  });
@@ -9004,14 +9116,14 @@ var require_parser = __commonJS({
9004
9116
  function CoffeeForDeclaration(ctx, state) {
9005
9117
  return $EVENT(ctx, state, "CoffeeForDeclaration", CoffeeForDeclaration$0);
9006
9118
  }
9007
- var ForStatementParameters$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) {
9119
+ var ForStatementParameters$0 = $TS($S(OpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(CommaExpression)), __, Semicolon, $E(CommaExpression), Semicolon, $E(CommaExpression), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10) {
9008
9120
  var declaration = $3;
9009
9121
  return {
9010
9122
  declaration,
9011
9123
  children: $0
9012
9124
  };
9013
9125
  });
9014
- var ForStatementParameters$1 = $TS($S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(Expression)), __, Semicolon, $E(Expression), Semicolon, $E($S($N(EOS), ExpressionWithIndentedApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9126
+ var ForStatementParameters$1 = $TS($S(InsertOpenParen, __, $C(LexicalDeclaration, VariableStatement, $E(CommaExpression)), __, Semicolon, $E(CommaExpression), Semicolon, $E($S($N(EOS), ExpressionWithIndentedApplicationForbidden)), InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
9015
9127
  var declaration = $3;
9016
9128
  return {
9017
9129
  declaration,
@@ -9587,8 +9699,18 @@ var require_parser = __commonJS({
9587
9699
  function RestoreAll(ctx, state) {
9588
9700
  return $EVENT(ctx, state, "RestoreAll", RestoreAll$0);
9589
9701
  }
9702
+ var CommaExpressionStatement$0 = IterationExpression;
9703
+ var CommaExpressionStatement$1 = $TS($S(CommaExpression), function($skip, $loc, $0, $1) {
9704
+ return makeExpressionStatement($1);
9705
+ });
9706
+ var CommaExpressionStatement$$ = [CommaExpressionStatement$0, CommaExpressionStatement$1];
9707
+ function CommaExpressionStatement(ctx, state) {
9708
+ return $EVENT_C(ctx, state, "CommaExpressionStatement", CommaExpressionStatement$$);
9709
+ }
9590
9710
  var ExpressionStatement$0 = IterationExpression;
9591
- var ExpressionStatement$1 = Expression;
9711
+ var ExpressionStatement$1 = $TS($S(AssignmentExpression), function($skip, $loc, $0, $1) {
9712
+ return makeExpressionStatement($1);
9713
+ });
9592
9714
  var ExpressionStatement$$ = [ExpressionStatement$0, ExpressionStatement$1];
9593
9715
  function ExpressionStatement(ctx, state) {
9594
9716
  return $EVENT_C(ctx, state, "ExpressionStatement", ExpressionStatement$$);
@@ -12222,7 +12344,7 @@ var require_parser = __commonJS({
12222
12344
  args
12223
12345
  };
12224
12346
  });
12225
- var TypePrimary$8 = $S(__, OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12347
+ var TypePrimary$8 = $S($E(_), OpenParen, $C(Type, $S(EOS, Type)), __, CloseParen);
12226
12348
  var TypePrimary$$ = [TypePrimary$0, TypePrimary$1, TypePrimary$2, TypePrimary$3, TypePrimary$4, TypePrimary$5, TypePrimary$6, TypePrimary$7, TypePrimary$8];
12227
12349
  function TypePrimary(ctx, state) {
12228
12350
  return $EVENT_C(ctx, state, "TypePrimary", TypePrimary$$);
@@ -12871,19 +12993,45 @@ var require_parser = __commonJS({
12871
12993
  };
12872
12994
  module2.prelude.push(["", [preludeVar, moduloRef, typeSuffix, " = (a, b) => (a % b + b) % b;", "\n"]]);
12873
12995
  },
12996
+ Falsy(FalsyRef) {
12997
+ module2.prelude.push(["", [{
12998
+ ts: true,
12999
+ children: ["type ", FalsyRef, " = false | 0 | '' | 0n | null | undefined;", "\n"]
13000
+ }]]);
13001
+ },
12874
13002
  xor(xorRef) {
13003
+ const Falsy = module2.getRef("Falsy");
12875
13004
  const typeSuffix = {
12876
13005
  ts: true,
12877
- children: [": (a: unknown, b: unknown) => boolean"]
13006
+ children: [
13007
+ ": <A, B>(a: A, b: B) => A extends ",
13008
+ Falsy,
13009
+ " ? B : B extends ",
13010
+ Falsy,
13011
+ " ? A : (false | (A & ",
13012
+ Falsy,
13013
+ " extends never ? never : B) | (B & ",
13014
+ Falsy,
13015
+ " extends never ? never : A))"
13016
+ ]
12878
13017
  };
12879
- module2.prelude.push(["", [preludeVar, xorRef, typeSuffix, " = (a, b) => a ? !b && a : b;", "\n"]]);
13018
+ module2.prelude.push(["", [preludeVar, xorRef, typeSuffix, " = (a, b) => (a ? !b && a : b)", asAny, ";", "\n"]]);
12880
13019
  },
12881
13020
  xnor(xnorRef) {
13021
+ const Falsy = module2.getRef("Falsy");
12882
13022
  const typeSuffix = {
12883
13023
  ts: true,
12884
- children: [": (a: unknown, b: unknown) => boolean"]
13024
+ children: [
13025
+ ": <A, B>(a: A, b: B) => A & ",
13026
+ Falsy,
13027
+ " extends never ? B : (true | (B extends ",
13028
+ Falsy,
13029
+ " ? never : A) | (A extends ",
13030
+ Falsy,
13031
+ " ? never : B))"
13032
+ ]
12885
13033
  };
12886
- module2.prelude.push(["", [preludeVar, xnorRef, typeSuffix, " = (a, b) => a ? b : !b || a;", "\n"]]);
13034
+ module2.prelude.push(["", [preludeVar, xnorRef, typeSuffix, " = (a, b) => (a ? b : !b || a)", asAny, ";", "\n"]]);
12887
13035
  },
12888
13036
  returnSymbol(ref) {
12889
13037
  module2.prelude.push({
@@ -13111,6 +13259,7 @@ var require_parser = __commonJS({
13111
13259
  exports.NestedTopLevelStatements = NestedTopLevelStatements;
13112
13260
  exports.TopLevelSingleLineStatements = TopLevelSingleLineStatements;
13113
13261
  exports.TopLevelStatement = TopLevelStatement;
13262
+ exports.ExtendedCommaExpression = ExtendedCommaExpression;
13114
13263
  exports.ExtendedExpression = ExtendedExpression;
13115
13264
  exports.SingleLineExtendedExpression = SingleLineExtendedExpression;
13116
13265
  exports.NonPipelineExtendedExpression = NonPipelineExtendedExpression;
@@ -13119,7 +13268,7 @@ var require_parser = __commonJS({
13119
13268
  exports.ExpressionizedStatementWithTrailingCallExpressions = ExpressionizedStatementWithTrailingCallExpressions;
13120
13269
  exports.ExpressionizedStatement = ExpressionizedStatement;
13121
13270
  exports._ExpressionizedStatement = _ExpressionizedStatement;
13122
- exports.Expression = Expression;
13271
+ exports.CommaExpression = CommaExpression;
13123
13272
  exports.Arguments = Arguments;
13124
13273
  exports.ImplicitArguments = ImplicitArguments;
13125
13274
  exports.ExplicitArguments = ExplicitArguments;
@@ -13264,15 +13413,18 @@ var require_parser = __commonJS({
13264
13413
  exports.BareBlock = BareBlock;
13265
13414
  exports.ThenClause = ThenClause;
13266
13415
  exports.BracedOrEmptyBlock = BracedOrEmptyBlock;
13416
+ exports.NoCommaBracedOrEmptyBlock = NoCommaBracedOrEmptyBlock;
13267
13417
  exports.NoPostfixBracedOrEmptyBlock = NoPostfixBracedOrEmptyBlock;
13268
13418
  exports.EmptyBlock = EmptyBlock;
13269
13419
  exports.EmptyBareBlock = EmptyBareBlock;
13270
13420
  exports.BracedBlock = BracedBlock;
13271
13421
  exports.NoPostfixBracedBlock = NoPostfixBracedBlock;
13422
+ exports.NoCommaBracedBlock = NoCommaBracedBlock;
13272
13423
  exports.NonSingleBracedBlock = NonSingleBracedBlock;
13273
13424
  exports.DeclarationOrStatement = DeclarationOrStatement;
13274
13425
  exports.SingleLineStatements = SingleLineStatements;
13275
13426
  exports.PostfixedSingleLineStatements = PostfixedSingleLineStatements;
13427
+ exports.PostfixedSingleLineNoCommaStatements = PostfixedSingleLineNoCommaStatements;
13276
13428
  exports.BracedContent = BracedContent;
13277
13429
  exports.NestedBlockStatements = NestedBlockStatements;
13278
13430
  exports.NestedBlockStatement = NestedBlockStatement;
@@ -13340,11 +13492,15 @@ var require_parser = __commonJS({
13340
13492
  exports.ModuleItem = ModuleItem;
13341
13493
  exports.StatementListItem = StatementListItem;
13342
13494
  exports.PostfixedStatement = PostfixedStatement;
13495
+ exports.NoCommaStatementListItem = NoCommaStatementListItem;
13496
+ exports.PostfixedNoCommaStatement = PostfixedNoCommaStatement;
13343
13497
  exports.PostfixedExpression = PostfixedExpression;
13498
+ exports.PostfixedCommaExpression = PostfixedCommaExpression;
13344
13499
  exports.NonPipelinePostfixedExpression = NonPipelinePostfixedExpression;
13345
13500
  exports.PostfixStatement = PostfixStatement;
13346
13501
  exports._PostfixStatement = _PostfixStatement;
13347
13502
  exports.Statement = Statement;
13503
+ exports.NoCommaStatement = NoCommaStatement;
13348
13504
  exports.EmptyStatement = EmptyStatement;
13349
13505
  exports.BlockStatement = BlockStatement;
13350
13506
  exports.LabelledStatement = LabelledStatement;
@@ -13428,6 +13584,7 @@ var require_parser = __commonJS({
13428
13584
  exports.NewlineBinaryOpAllowed = NewlineBinaryOpAllowed;
13429
13585
  exports.AllowAll = AllowAll;
13430
13586
  exports.RestoreAll = RestoreAll;
13587
+ exports.CommaExpressionStatement = CommaExpressionStatement;
13431
13588
  exports.ExpressionStatement = ExpressionStatement;
13432
13589
  exports.KeywordStatement = KeywordStatement;
13433
13590
  exports.DebuggerStatement = DebuggerStatement;
@@ -13817,6 +13974,7 @@ var require_parser = __commonJS({
13817
13974
  lastAccessInCallExpression,
13818
13975
  literalValue,
13819
13976
  makeEmptyBlock,
13977
+ makeExpressionStatement,
13820
13978
  makeGetterMethod,
13821
13979
  makeLeftHandSideExpression,
13822
13980
  makeRef,