@danielx/civet 0.5.61 → 0.5.62

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
@@ -563,10 +563,14 @@ ${input.slice(result.pos)}
563
563
  Block,
564
564
  ThenClause,
565
565
  BracedOrEmptyBlock,
566
+ NoPostfixBracedOrEmptyBlock,
566
567
  EmptyBlock,
567
568
  EmptyBareBlock,
568
569
  BracedBlock,
570
+ NoPostfixBracedBlock,
571
+ NonSingleBracedBlock,
569
572
  SingleLineStatements,
573
+ PostfixedSingleLineStatements,
570
574
  BracedContent,
571
575
  NestedBlockStatements,
572
576
  NestedBlockStatement,
@@ -622,6 +626,8 @@ ${input.slice(result.pos)}
622
626
  UnaryOp,
623
627
  ModuleItem,
624
628
  StatementListItem,
629
+ PostfixedStatement,
630
+ PostfixedExpression,
625
631
  PostfixStatement,
626
632
  Statement,
627
633
  EmptyStatement,
@@ -1170,7 +1176,7 @@ ${input.slice(result.pos)}
1170
1176
  var $L170 = $L("infer");
1171
1177
  var $L171 = $L("[]");
1172
1178
  var $L172 = $L("civet");
1173
- var $R0 = $R(new RegExp("(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1179
+ var $R0 = $R(new RegExp("(as|for|while|until|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1174
1180
  var $R1 = $R(new RegExp("[0-9]", "suy"));
1175
1181
  var $R2 = $R(new RegExp("[&]", "suy"));
1176
1182
  var $R3 = $R(new RegExp("[!~+-]+", "suy"));
@@ -1551,7 +1557,7 @@ ${input.slice(result.pos)}
1551
1557
  return result;
1552
1558
  }
1553
1559
  }
1554
- var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R0, fail, "ForbiddenImplicitCalls /(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1560
+ var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R0, fail, "ForbiddenImplicitCalls /(as|for|while|until|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1555
1561
  var ForbiddenImplicitCalls$1 = $EXPECT($L0, fail, 'ForbiddenImplicitCalls "/ "');
1556
1562
  var ForbiddenImplicitCalls$2 = AtAt;
1557
1563
  var ForbiddenImplicitCalls$3 = $S(Identifier, $EXPECT($L1, fail, 'ForbiddenImplicitCalls "="'), Whitespace);
@@ -2346,10 +2352,11 @@ ${input.slice(result.pos)}
2346
2352
  return result;
2347
2353
  }
2348
2354
  }
2349
- var FatArrowBody$0 = ExplicitBlock;
2350
- var FatArrowBody$1 = ImplicitNestedBlock;
2351
- var FatArrowBody$2 = AssignmentExpression;
2352
- var FatArrowBody$3 = EmptyBlock;
2355
+ var FatArrowBody$0 = $T($S($N(EOS), PostfixedExpression, $N(SemicolonDelimiter)), function(value) {
2356
+ var exp = value[1];
2357
+ return exp;
2358
+ });
2359
+ var FatArrowBody$1 = BracedOrEmptyBlock;
2353
2360
  function FatArrowBody(state) {
2354
2361
  let eventData;
2355
2362
  if (state.events) {
@@ -2361,12 +2368,12 @@ ${input.slice(result.pos)}
2361
2368
  }
2362
2369
  }
2363
2370
  if (state.tokenize) {
2364
- const result = $TOKEN("FatArrowBody", state, FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state));
2371
+ const result = $TOKEN("FatArrowBody", state, FatArrowBody$0(state) || FatArrowBody$1(state));
2365
2372
  if (state.events)
2366
2373
  state.events.exit?.("FatArrowBody", state, result, eventData);
2367
2374
  return result;
2368
2375
  } else {
2369
- const result = FatArrowBody$0(state) || FatArrowBody$1(state) || FatArrowBody$2(state) || FatArrowBody$3(state);
2376
+ const result = FatArrowBody$0(state) || FatArrowBody$1(state);
2370
2377
  if (state.events)
2371
2378
  state.events.exit?.("FatArrowBody", state, result, eventData);
2372
2379
  return result;
@@ -2607,11 +2614,11 @@ ${input.slice(result.pos)}
2607
2614
  return result;
2608
2615
  }
2609
2616
  }
2610
- var ParenthesizedExpression$0 = $TS($S(OpenParen, ExtendedExpression, $E($S($Q(TrailingComment), PostfixStatement)), __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
2617
+ var ParenthesizedExpression$0 = $TS($S(OpenParen, PostfixedExpression, __, CloseParen), function($skip, $loc, $0, $1, $2, $3, $4) {
2611
2618
  var exp = $2;
2612
- var post = $3;
2613
- if (post) {
2614
- return module2.attachPostfixStatementAsExpression(exp, post);
2619
+ switch (exp.type) {
2620
+ case "IterationExpression":
2621
+ return $2;
2615
2622
  }
2616
2623
  return {
2617
2624
  type: "ParenthesizedExpression",
@@ -3273,7 +3280,12 @@ ${input.slice(result.pos)}
3273
3280
  }
3274
3281
  }
3275
3282
  var CallExpressionRest$0 = MemberExpressionRest;
3276
- var CallExpressionRest$1 = TemplateLiteral;
3283
+ var CallExpressionRest$1 = $TV($C(TemplateLiteral, StringLiteral), function($skip, $loc, $0, $1) {
3284
+ if ($1.type === "StringLiteral") {
3285
+ return "`" + $1.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
3286
+ }
3287
+ return $1;
3288
+ });
3277
3289
  var CallExpressionRest$2 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
3278
3290
  if (!$1)
3279
3291
  return $2;
@@ -3421,7 +3433,7 @@ ${input.slice(result.pos)}
3421
3433
  return result;
3422
3434
  }
3423
3435
  }
3424
- var MemberBracketContent$0 = $TS($S(OpenBracket, $C(SliceParameters, ExtendedExpression), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
3436
+ var MemberBracketContent$0 = $TS($S(OpenBracket, $C(SliceParameters, PostfixedExpression), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
3425
3437
  var open = $1;
3426
3438
  var exp = $2;
3427
3439
  var ws = $3;
@@ -3610,7 +3622,7 @@ ${input.slice(result.pos)}
3610
3622
  return result;
3611
3623
  }
3612
3624
  }
3613
- var SuperProperty$0 = $S($EXPECT($L16, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
3625
+ var SuperProperty$0 = $S($EXPECT($L16, fail, 'SuperProperty "super["'), PostfixedExpression, __, CloseBracket);
3614
3626
  var SuperProperty$1 = $S($EXPECT($L12, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
3615
3627
  function SuperProperty(state) {
3616
3628
  let eventData;
@@ -5031,7 +5043,11 @@ ${input.slice(result.pos)}
5031
5043
  return result;
5032
5044
  }
5033
5045
  }
5034
- var FunctionDeclaration$0 = FunctionExpression;
5046
+ var FunctionDeclaration$0 = $TS($S(FunctionExpression), function($skip, $loc, $0, $1) {
5047
+ if ($1.id)
5048
+ return $1;
5049
+ return module2.makeLeftHandSideExpression($1);
5050
+ });
5035
5051
  function FunctionDeclaration(state) {
5036
5052
  let eventData;
5037
5053
  if (state.events) {
@@ -5545,6 +5561,30 @@ ${input.slice(result.pos)}
5545
5561
  return result;
5546
5562
  }
5547
5563
  }
5564
+ var NoPostfixBracedOrEmptyBlock$0 = NoPostfixBracedBlock;
5565
+ var NoPostfixBracedOrEmptyBlock$1 = EmptyBlock;
5566
+ function NoPostfixBracedOrEmptyBlock(state) {
5567
+ let eventData;
5568
+ if (state.events) {
5569
+ const result = state.events.enter?.("NoPostfixBracedOrEmptyBlock", state);
5570
+ if (result) {
5571
+ if (result.cache)
5572
+ return result.cache;
5573
+ eventData = result.data;
5574
+ }
5575
+ }
5576
+ if (state.tokenize) {
5577
+ const result = $TOKEN("NoPostfixBracedOrEmptyBlock", state, NoPostfixBracedOrEmptyBlock$0(state) || NoPostfixBracedOrEmptyBlock$1(state));
5578
+ if (state.events)
5579
+ state.events.exit?.("NoPostfixBracedOrEmptyBlock", state, result, eventData);
5580
+ return result;
5581
+ } else {
5582
+ const result = NoPostfixBracedOrEmptyBlock$0(state) || NoPostfixBracedOrEmptyBlock$1(state);
5583
+ if (state.events)
5584
+ state.events.exit?.("NoPostfixBracedOrEmptyBlock", state, result, eventData);
5585
+ return result;
5586
+ }
5587
+ }
5548
5588
  var EmptyBlock$0 = $TS($S(InsertOpenBrace, InsertCloseBrace), function($skip, $loc, $0, $1, $2) {
5549
5589
  const expressions = [];
5550
5590
  return {
@@ -5608,26 +5648,44 @@ ${input.slice(result.pos)}
5608
5648
  return result;
5609
5649
  }
5610
5650
  }
5611
- var BracedBlock$0 = $TS($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5612
- var block = $3;
5613
- return {
5614
- type: "BlockStatement",
5615
- expressions: block.expressions,
5616
- children: [$1, $2, ...block.children, $4, $5],
5617
- bare: false
5618
- };
5619
- return block;
5620
- });
5621
- var BracedBlock$1 = ImplicitNestedBlock;
5622
- var BracedBlock$2 = $TS($S(InsertOpenBrace, $Y(EOS), ObjectLiteral, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
5651
+ var BracedBlock$0 = NonSingleBracedBlock;
5652
+ var BracedBlock$1 = $TS($S(InsertOpenBrace, $N(EOS), PostfixedSingleLineStatements, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5653
+ var o = $1;
5623
5654
  var s = $3;
5655
+ var ws = $4;
5656
+ var c = $5;
5657
+ if (!s.children.length)
5658
+ return $skip;
5624
5659
  return {
5625
5660
  type: "BlockStatement",
5626
- expressions: [s],
5627
- children: [$1, s, $3]
5661
+ expressions: s.expressions,
5662
+ children: [o, s.children, ws, c]
5628
5663
  };
5629
5664
  });
5630
- var BracedBlock$3 = $TS($S(InsertOpenBrace, $N(EOS), SingleLineStatements, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5665
+ function BracedBlock(state) {
5666
+ let eventData;
5667
+ if (state.events) {
5668
+ const result = state.events.enter?.("BracedBlock", state);
5669
+ if (result) {
5670
+ if (result.cache)
5671
+ return result.cache;
5672
+ eventData = result.data;
5673
+ }
5674
+ }
5675
+ if (state.tokenize) {
5676
+ const result = $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state));
5677
+ if (state.events)
5678
+ state.events.exit?.("BracedBlock", state, result, eventData);
5679
+ return result;
5680
+ } else {
5681
+ const result = BracedBlock$0(state) || BracedBlock$1(state);
5682
+ if (state.events)
5683
+ state.events.exit?.("BracedBlock", state, result, eventData);
5684
+ return result;
5685
+ }
5686
+ }
5687
+ var NoPostfixBracedBlock$0 = NonSingleBracedBlock;
5688
+ var NoPostfixBracedBlock$1 = $TS($S(InsertOpenBrace, $N(EOS), SingleLineStatements, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5631
5689
  var o = $1;
5632
5690
  var s = $3;
5633
5691
  var ws = $4;
@@ -5640,10 +5698,10 @@ ${input.slice(result.pos)}
5640
5698
  children: [o, s.children, ws, c]
5641
5699
  };
5642
5700
  });
5643
- function BracedBlock(state) {
5701
+ function NoPostfixBracedBlock(state) {
5644
5702
  let eventData;
5645
5703
  if (state.events) {
5646
- const result = state.events.enter?.("BracedBlock", state);
5704
+ const result = state.events.enter?.("NoPostfixBracedBlock", state);
5647
5705
  if (result) {
5648
5706
  if (result.cache)
5649
5707
  return result.cache;
@@ -5651,14 +5709,55 @@ ${input.slice(result.pos)}
5651
5709
  }
5652
5710
  }
5653
5711
  if (state.tokenize) {
5654
- const result = $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state) || BracedBlock$3(state));
5712
+ const result = $TOKEN("NoPostfixBracedBlock", state, NoPostfixBracedBlock$0(state) || NoPostfixBracedBlock$1(state));
5655
5713
  if (state.events)
5656
- state.events.exit?.("BracedBlock", state, result, eventData);
5714
+ state.events.exit?.("NoPostfixBracedBlock", state, result, eventData);
5657
5715
  return result;
5658
5716
  } else {
5659
- const result = BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state) || BracedBlock$3(state);
5717
+ const result = NoPostfixBracedBlock$0(state) || NoPostfixBracedBlock$1(state);
5660
5718
  if (state.events)
5661
- state.events.exit?.("BracedBlock", state, result, eventData);
5719
+ state.events.exit?.("NoPostfixBracedBlock", state, result, eventData);
5720
+ return result;
5721
+ }
5722
+ }
5723
+ var NonSingleBracedBlock$0 = $TS($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
5724
+ var block = $3;
5725
+ return {
5726
+ type: "BlockStatement",
5727
+ expressions: block.expressions,
5728
+ children: [$1, $2, ...block.children, $4, $5],
5729
+ bare: false
5730
+ };
5731
+ return block;
5732
+ });
5733
+ var NonSingleBracedBlock$1 = ImplicitNestedBlock;
5734
+ var NonSingleBracedBlock$2 = $TS($S(InsertOpenBrace, $Y(EOS), ObjectLiteral, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
5735
+ var s = $3;
5736
+ return {
5737
+ type: "BlockStatement",
5738
+ expressions: [s],
5739
+ children: [$1, s, $3]
5740
+ };
5741
+ });
5742
+ function NonSingleBracedBlock(state) {
5743
+ let eventData;
5744
+ if (state.events) {
5745
+ const result = state.events.enter?.("NonSingleBracedBlock", state);
5746
+ if (result) {
5747
+ if (result.cache)
5748
+ return result.cache;
5749
+ eventData = result.data;
5750
+ }
5751
+ }
5752
+ if (state.tokenize) {
5753
+ const result = $TOKEN("NonSingleBracedBlock", state, NonSingleBracedBlock$0(state) || NonSingleBracedBlock$1(state) || NonSingleBracedBlock$2(state));
5754
+ if (state.events)
5755
+ state.events.exit?.("NonSingleBracedBlock", state, result, eventData);
5756
+ return result;
5757
+ } else {
5758
+ const result = NonSingleBracedBlock$0(state) || NonSingleBracedBlock$1(state) || NonSingleBracedBlock$2(state);
5759
+ if (state.events)
5760
+ state.events.exit?.("NonSingleBracedBlock", state, result, eventData);
5662
5761
  return result;
5663
5762
  }
5664
5763
  }
@@ -5697,6 +5796,41 @@ ${input.slice(result.pos)}
5697
5796
  return result;
5698
5797
  }
5699
5798
  }
5799
+ var PostfixedSingleLineStatements$0 = $TS($S($Q($S($S($E(_), $N(EOS)), PostfixedStatement, SemicolonDelimiter)), $E($S($S($E(_), $N(EOS)), PostfixedStatement, $E(SemicolonDelimiter)))), function($skip, $loc, $0, $1, $2) {
5800
+ var stmts = $1;
5801
+ var last = $2;
5802
+ const children = [...stmts];
5803
+ if (last)
5804
+ children.push(last);
5805
+ return {
5806
+ type: "BlockStatement",
5807
+ expressions: children,
5808
+ children,
5809
+ bare: true
5810
+ };
5811
+ });
5812
+ function PostfixedSingleLineStatements(state) {
5813
+ let eventData;
5814
+ if (state.events) {
5815
+ const result = state.events.enter?.("PostfixedSingleLineStatements", state);
5816
+ if (result) {
5817
+ if (result.cache)
5818
+ return result.cache;
5819
+ eventData = result.data;
5820
+ }
5821
+ }
5822
+ if (state.tokenize) {
5823
+ const result = $TOKEN("PostfixedSingleLineStatements", state, PostfixedSingleLineStatements$0(state));
5824
+ if (state.events)
5825
+ state.events.exit?.("PostfixedSingleLineStatements", state, result, eventData);
5826
+ return result;
5827
+ } else {
5828
+ const result = PostfixedSingleLineStatements$0(state);
5829
+ if (state.events)
5830
+ state.events.exit?.("PostfixedSingleLineStatements", state, result, eventData);
5831
+ return result;
5832
+ }
5833
+ }
5700
5834
  var BracedContent$0 = NestedBlockStatements;
5701
5835
  var BracedContent$1 = $TS($S($Q(TrailingComment), Statement), function($skip, $loc, $0, $1, $2) {
5702
5836
  const expressions = [["", $2]];
@@ -6997,7 +7131,7 @@ ${input.slice(result.pos)}
6997
7131
  return result;
6998
7132
  }
6999
7133
  }
7000
- var ComputedPropertyName$0 = $TS($S(OpenBracket, ExtendedExpression, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
7134
+ var ComputedPropertyName$0 = $TS($S(OpenBracket, PostfixedExpression, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
7001
7135
  var expression = $2;
7002
7136
  return {
7003
7137
  type: "ComputedPropertyName",
@@ -7541,7 +7675,12 @@ ${input.slice(result.pos)}
7541
7675
  return "??";
7542
7676
  });
7543
7677
  var BinaryOpSymbol$28 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7544
- return $1;
7678
+ return {
7679
+ $loc,
7680
+ token: $1,
7681
+ relational: true,
7682
+ special: true
7683
+ };
7545
7684
  });
7546
7685
  var BinaryOpSymbol$29 = $TS($S($EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7547
7686
  return {
@@ -7699,13 +7838,7 @@ ${input.slice(result.pos)}
7699
7838
  }
7700
7839
  }
7701
7840
  var StatementListItem$0 = Declaration;
7702
- var StatementListItem$1 = $TS($S(Statement, $E($S($Q(TrailingComment), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
7703
- var statement = $1;
7704
- var post = $2;
7705
- if (post)
7706
- return module2.addPostfixStatement(statement, ...post);
7707
- return statement;
7708
- });
7841
+ var StatementListItem$1 = PostfixedStatement;
7709
7842
  function StatementListItem(state) {
7710
7843
  let eventData;
7711
7844
  if (state.events) {
@@ -7728,6 +7861,64 @@ ${input.slice(result.pos)}
7728
7861
  return result;
7729
7862
  }
7730
7863
  }
7864
+ var PostfixedStatement$0 = $TS($S(Statement, $E($S($Q(TrailingComment), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
7865
+ var statement = $1;
7866
+ var post = $2;
7867
+ if (post)
7868
+ return module2.addPostfixStatement(statement, ...post);
7869
+ return statement;
7870
+ });
7871
+ function PostfixedStatement(state) {
7872
+ let eventData;
7873
+ if (state.events) {
7874
+ const result = state.events.enter?.("PostfixedStatement", state);
7875
+ if (result) {
7876
+ if (result.cache)
7877
+ return result.cache;
7878
+ eventData = result.data;
7879
+ }
7880
+ }
7881
+ if (state.tokenize) {
7882
+ const result = $TOKEN("PostfixedStatement", state, PostfixedStatement$0(state));
7883
+ if (state.events)
7884
+ state.events.exit?.("PostfixedStatement", state, result, eventData);
7885
+ return result;
7886
+ } else {
7887
+ const result = PostfixedStatement$0(state);
7888
+ if (state.events)
7889
+ state.events.exit?.("PostfixedStatement", state, result, eventData);
7890
+ return result;
7891
+ }
7892
+ }
7893
+ var PostfixedExpression$0 = $TS($S(ExtendedExpression, $E($S($Q(TrailingComment), PostfixStatement))), function($skip, $loc, $0, $1, $2) {
7894
+ var expression = $1;
7895
+ var post = $2;
7896
+ if (post)
7897
+ return module2.attachPostfixStatementAsExpression(expression, post);
7898
+ return expression;
7899
+ });
7900
+ function PostfixedExpression(state) {
7901
+ let eventData;
7902
+ if (state.events) {
7903
+ const result = state.events.enter?.("PostfixedExpression", state);
7904
+ if (result) {
7905
+ if (result.cache)
7906
+ return result.cache;
7907
+ eventData = result.data;
7908
+ }
7909
+ }
7910
+ if (state.tokenize) {
7911
+ const result = $TOKEN("PostfixedExpression", state, PostfixedExpression$0(state));
7912
+ if (state.events)
7913
+ state.events.exit?.("PostfixedExpression", state, result, eventData);
7914
+ return result;
7915
+ } else {
7916
+ const result = PostfixedExpression$0(state);
7917
+ if (state.events)
7918
+ state.events.exit?.("PostfixedExpression", state, result, eventData);
7919
+ return result;
7920
+ }
7921
+ }
7731
7922
  var PostfixStatement$0 = ForClause;
7732
7923
  var PostfixStatement$1 = IfClause;
7733
7924
  var PostfixStatement$2 = LoopClause;
@@ -7763,12 +7954,8 @@ ${input.slice(result.pos)}
7763
7954
  var Statement$5 = TryStatement;
7764
7955
  var Statement$6 = EmptyStatement;
7765
7956
  var Statement$7 = $TS($S(ExpressionStatement), function($skip, $loc, $0, $1) {
7766
- if ($1.type === "ObjectExpression") {
7767
- return {
7768
- type: "ParenthesizedExpression",
7769
- children: ["(", $1, ")"],
7770
- expression: $1
7771
- };
7957
+ if ($1.type === "ObjectExpression" || $1.type === "FunctionExpression" && !$1.id) {
7958
+ return module2.makeLeftHandSideExpression($1);
7772
7959
  }
7773
7960
  return $1;
7774
7961
  });
@@ -7856,6 +8043,8 @@ ${input.slice(result.pos)}
7856
8043
  children.push(e);
7857
8044
  return {
7858
8045
  type: "IfStatement",
8046
+ then: block,
8047
+ else: e,
7859
8048
  children
7860
8049
  };
7861
8050
  });
@@ -7933,7 +8122,7 @@ ${input.slice(result.pos)}
7933
8122
  var UnlessClause$0 = $TS($S(Unless, Condition), function($skip, $loc, $0, $1, $2) {
7934
8123
  var kind = $1;
7935
8124
  var condition = $2;
7936
- kind.token = "if";
8125
+ kind = { ...kind, token: "if" };
7937
8126
  return {
7938
8127
  type: "IfStatement",
7939
8128
  children: [kind, ["(!", condition, ")"]]
@@ -8162,16 +8351,7 @@ ${input.slice(result.pos)}
8162
8351
  return result;
8163
8352
  }
8164
8353
  }
8165
- var NestedBlockExpression$0 = $TS($S(Nested, ExtendedExpression, $E($S($Q(TrailingComment), PostfixStatement)), ExpressionDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
8166
- var ws = $1;
8167
- var exp = $2;
8168
- var post = $3;
8169
- var d = $4;
8170
- if (post) {
8171
- return [ws, module2.attachPostfixStatementAsExpression(exp, post), d];
8172
- }
8173
- return [ws, exp, d];
8174
- });
8354
+ var NestedBlockExpression$0 = $S(Nested, PostfixedExpression, ExpressionDelimiter);
8175
8355
  function NestedBlockExpression(state) {
8176
8356
  let eventData;
8177
8357
  if (state.events) {
@@ -8307,7 +8487,7 @@ ${input.slice(result.pos)}
8307
8487
  return result;
8308
8488
  }
8309
8489
  }
8310
- var DoWhileStatement$0 = $T($S(Do, BracedBlock, __, WhileClause), function(value) {
8490
+ var DoWhileStatement$0 = $T($S(Do, NoPostfixBracedBlock, __, WhileClause), function(value) {
8311
8491
  var block = value[1];
8312
8492
  return { "type": "IterationStatement", "children": value, "block": block };
8313
8493
  });
@@ -8475,9 +8655,11 @@ ${input.slice(result.pos)}
8475
8655
  var ForStatementControl$1 = $TS($S(CoffeeForLoopsEnabled, CoffeeForStatementParameters, $E(WhenCondition)), function($skip, $loc, $0, $1, $2, $3) {
8476
8656
  if ($3) {
8477
8657
  const indent = module2.currentIndent.token + " ";
8658
+ const block = "continue\n";
8478
8659
  $2.blockPrefix.push([indent, {
8479
8660
  type: "IfStatement",
8480
- children: ["if (!(", module2.insertTrimmingSpace($3, ""), ")) continue\n"]
8661
+ then: block,
8662
+ children: ["if (!(", module2.insertTrimmingSpace($3, ""), ")) ", block]
8481
8663
  }]);
8482
8664
  }
8483
8665
  return $2;
@@ -9261,7 +9443,7 @@ ${input.slice(result.pos)}
9261
9443
  return result;
9262
9444
  }
9263
9445
  }
9264
- var TryStatement$0 = $TS($S(Try, BracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4) {
9446
+ var TryStatement$0 = $TS($S(Try, NoPostfixBracedOrEmptyBlock, $E(CatchClause), $E(FinallyClause)), function($skip, $loc, $0, $1, $2, $3, $4) {
9265
9447
  var t = $1;
9266
9448
  var b = $2;
9267
9449
  var c = $3;
@@ -10757,7 +10939,7 @@ ${input.slice(result.pos)}
10757
10939
  }
10758
10940
  }
10759
10941
  var NumericLiteral$0 = $TS($S(NumericLiteralKind), function($skip, $loc, $0, $1) {
10760
- return { $loc, token: $1 };
10942
+ return { type: "NumericLiteral", $loc, token: $1 };
10761
10943
  });
10762
10944
  function NumericLiteral(state) {
10763
10945
  let eventData;
@@ -11028,6 +11210,7 @@ ${input.slice(result.pos)}
11028
11210
  var StringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
11029
11211
  var str = $2;
11030
11212
  return {
11213
+ type: "StringLiteral",
11031
11214
  token: `"${module2.modifyString(str.token)}"`,
11032
11215
  $loc
11033
11216
  };
@@ -11035,6 +11218,7 @@ ${input.slice(result.pos)}
11035
11218
  var StringLiteral$1 = $TS($S(SingleQuote, SingleStringCharacters, SingleQuote), function($skip, $loc, $0, $1, $2, $3) {
11036
11219
  var str = $2;
11037
11220
  return {
11221
+ type: "StringLiteral",
11038
11222
  token: `'${module2.modifyString(str.token)}'`,
11039
11223
  $loc
11040
11224
  };
@@ -11161,7 +11345,7 @@ ${input.slice(result.pos)}
11161
11345
  return result;
11162
11346
  }
11163
11347
  }
11164
- var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, ExtendedExpression, __, CloseBrace);
11348
+ var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, PostfixedExpression, __, CloseBrace);
11165
11349
  function CoffeeStringSubstitution(state) {
11166
11350
  let eventData;
11167
11351
  if (state.events) {
@@ -11601,7 +11785,7 @@ ${input.slice(result.pos)}
11601
11785
  return result;
11602
11786
  }
11603
11787
  }
11604
- var TemplateSubstitution$0 = $S(SubstitutionStart, ExtendedExpression, __, CloseBrace);
11788
+ var TemplateSubstitution$0 = $S(SubstitutionStart, PostfixedExpression, __, CloseBrace);
11605
11789
  function TemplateSubstitution(state) {
11606
11790
  let eventData;
11607
11791
  if (state.events) {
@@ -12148,7 +12332,7 @@ ${input.slice(result.pos)}
12148
12332
  }
12149
12333
  }
12150
12334
  var StatementDelimiter$0 = SemicolonDelimiter;
12151
- var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L2, fail, 'StatementDelimiter "("'), $EXPECT($L92, fail, 'StatementDelimiter "["'), $EXPECT($L93, fail, 'StatementDelimiter "`"'), $EXPECT($L56, fail, 'StatementDelimiter "+"'), $EXPECT($L15, fail, 'StatementDelimiter "-"'), $EXPECT($L52, fail, 'StatementDelimiter "*"'), $EXPECT($L53, fail, 'StatementDelimiter "/"'), ObjectLiteral))), InsertSemicolon);
12335
+ var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L2, fail, 'StatementDelimiter "("'), $EXPECT($L92, fail, 'StatementDelimiter "["'), $EXPECT($L93, fail, 'StatementDelimiter "`"'), $EXPECT($L56, fail, 'StatementDelimiter "+"'), $EXPECT($L15, fail, 'StatementDelimiter "-"'), $EXPECT($L52, fail, 'StatementDelimiter "*"'), $EXPECT($L53, fail, 'StatementDelimiter "/"'), ObjectLiteral, Arrow, $S(Function, $E($S($E(_), Star)), $E(_), $EXPECT($L2, fail, 'StatementDelimiter "("'))))), InsertSemicolon);
12152
12336
  var StatementDelimiter$2 = $Y(EOS);
12153
12337
  function StatementDelimiter(state) {
12154
12338
  let eventData;
@@ -14916,7 +15100,7 @@ ${input.slice(result.pos)}
14916
15100
  return ["{", $1, "}"];
14917
15101
  });
14918
15102
  var JSXShorthandString$2 = StringLiteral;
14919
- var JSXShorthandString$3 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
15103
+ var JSXShorthandString$3 = $S(OpenBrace, PostfixedExpression, $E(Whitespace), CloseBrace);
14920
15104
  function JSXShorthandString(state) {
14921
15105
  let eventData;
14922
15106
  if (state.events) {
@@ -14986,7 +15170,7 @@ ${input.slice(result.pos)}
14986
15170
  return result;
14987
15171
  }
14988
15172
  }
14989
- var JSXAttributeValue$0 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
15173
+ var JSXAttributeValue$0 = $S(OpenBrace, PostfixedExpression, $E(Whitespace), CloseBrace);
14990
15174
  var JSXAttributeValue$1 = JSXElement;
14991
15175
  var JSXAttributeValue$2 = JSXFragment;
14992
15176
  var JSXAttributeValue$3 = $TS($S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3) {
@@ -15177,7 +15361,7 @@ ${input.slice(result.pos)}
15177
15361
  }
15178
15362
  }
15179
15363
  var InlineJSXCallExpression$0 = $S($EXPECT($L12, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
15180
- var InlineJSXCallExpression$1 = $S($EXPECT($L13, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
15364
+ var InlineJSXCallExpression$1 = $S($EXPECT($L13, fail, 'InlineJSXCallExpression "import"'), OpenParen, PostfixedExpression, __, CloseParen);
15181
15365
  var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
15182
15366
  if ($2.length)
15183
15367
  return $0;
@@ -15599,7 +15783,7 @@ ${input.slice(result.pos)}
15599
15783
  return result;
15600
15784
  }
15601
15785
  }
15602
- var JSXChildExpression$0 = $S($E(Whitespace), $E($S(DotDotDot, $E(Whitespace))), ExtendedExpression);
15786
+ var JSXChildExpression$0 = $S($E(Whitespace), $E($S(DotDotDot, $E(Whitespace))), PostfixedExpression);
15603
15787
  function JSXChildExpression(state) {
15604
15788
  let eventData;
15605
15789
  if (state.events) {
@@ -18416,10 +18600,11 @@ ${input.slice(result.pos)}
18416
18600
  children.push(block);
18417
18601
  if (!module2.isWhitespaceOrEmpty(ws))
18418
18602
  children.push(ws);
18419
- return Object.assign({}, post, {
18420
- children,
18421
- block
18422
- });
18603
+ post = { ...post, children, block };
18604
+ if (post.type === "IfStatement") {
18605
+ post.then = block;
18606
+ }
18607
+ return post;
18423
18608
  };
18424
18609
  function expressionizeIteration(exp) {
18425
18610
  const resultsRef = {
@@ -18492,9 +18677,9 @@ ${input.slice(result.pos)}
18492
18677
  insertPush(exp.expressions[exp.expressions.length - 1], ref);
18493
18678
  return;
18494
18679
  case "IfStatement":
18495
- insertPush(exp.children[2], ref);
18496
- if (exp.children[3])
18497
- insertPush(exp.children[3][2], ref);
18680
+ insertPush(exp.then, ref);
18681
+ if (exp.else)
18682
+ insertPush(exp.else[2], ref);
18498
18683
  else
18499
18684
  exp.children.push([" else {\n", indent, ref, ".push(undefined)\n", indent, "}"]);
18500
18685
  return;
@@ -18550,7 +18735,9 @@ ${input.slice(result.pos)}
18550
18735
  }
18551
18736
  if (!Array.isArray(node))
18552
18737
  return;
18553
- const [, exp] = node;
18738
+ const [, exp, semi] = node;
18739
+ if (semi?.type === "SemicolonDelimiter")
18740
+ return;
18554
18741
  let indent = node[0];
18555
18742
  if (Array.isArray(indent))
18556
18743
  indent = indent[indent.length - 1];
@@ -18573,9 +18760,9 @@ ${input.slice(result.pos)}
18573
18760
  insertReturn(exp.expressions[exp.expressions.length - 1]);
18574
18761
  return;
18575
18762
  case "IfStatement":
18576
- insertReturn(exp.children[2]);
18577
- if (exp.children[3])
18578
- insertReturn(exp.children[3][2]);
18763
+ insertReturn(exp.then);
18764
+ if (exp.else)
18765
+ insertReturn(exp.else[2]);
18579
18766
  else
18580
18767
  exp.children.push(["\n", indent, wrapWithReturn()]);
18581
18768
  return;
@@ -18636,6 +18823,14 @@ ${input.slice(result.pos)}
18636
18823
  const op = expandedOps[i];
18637
18824
  if (op.special) {
18638
18825
  let [a, wsOp, op2, wsB, b] = expandedOps.slice(i - 2, i + 3);
18826
+ if (op2.token === "instanceof" && b.type === "Literal" && b.children?.[0]?.type === "StringLiteral") {
18827
+ a = ["typeof ", module2.makeLeftHandSideExpression(a)];
18828
+ if (op2.negated) {
18829
+ op2 = { ...op2, token: "!==", negated: false };
18830
+ } else {
18831
+ op2 = { ...op2, token: "===" };
18832
+ }
18833
+ }
18639
18834
  if (op2.asConst) {
18640
18835
  a = module2.makeAsConst(a);
18641
18836
  b = module2.makeAsConst(b);
@@ -18676,7 +18871,7 @@ ${input.slice(result.pos)}
18676
18871
  return expandedOps;
18677
18872
  };
18678
18873
  module2.expandChainedComparisons = function([first, binops]) {
18679
- const relationalOps = ["==", "===", "!=", "!==", "<", "<=", ">", ">=", "in", "instanceof"];
18874
+ const relationalOps = ["==", "===", "!=", "!==", "<", "<=", ">", ">=", "in"];
18680
18875
  const lowerPrecedenceOps = ["??", "&&", "||", "&", "|", "^"];
18681
18876
  let results = [];
18682
18877
  let i = 0;
@@ -19237,7 +19432,7 @@ ${input.slice(result.pos)}
19237
19432
  break;
19238
19433
  case "Literal":
19239
19434
  case "StringLiteral":
19240
- case void 0:
19435
+ case "NumericLiteral":
19241
19436
  conditions.push([name, " in ", ref]);
19242
19437
  subRef = [ref, "[", name, "]"];
19243
19438
  break;
@@ -19300,7 +19495,8 @@ ${input.slice(result.pos)}
19300
19495
  switch (name.type) {
19301
19496
  case "ComputedPropertyName":
19302
19497
  case "Literal":
19303
- case void 0:
19498
+ case "StringLiteral":
19499
+ case "NumericLiteral":
19304
19500
  return {
19305
19501
  ...p,
19306
19502
  children: [ws, name, ": ", match, sep]
@@ -19423,7 +19619,9 @@ ${input.slice(result.pos)}
19423
19619
  const e = i < l - 1 ? ["\nelse "] : [];
19424
19620
  prev.push({
19425
19621
  type: "IfStatement",
19426
- children: ["if", condition, block, ...e, next]
19622
+ children: ["if", condition, block, ...e, next],
19623
+ then: block,
19624
+ else: e
19427
19625
  });
19428
19626
  prev = next;
19429
19627
  });
@@ -20340,7 +20538,7 @@ var parse;
20340
20538
  var uncacheable;
20341
20539
  ({ parse } = import_parser.default);
20342
20540
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
20343
- uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "Declaration", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "RHS", "Samedent", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
20541
+ uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "Declaration", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSingleBracedBlock", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PostfixedExpression", "PostfixedStatement", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "RHS", "Samedent", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuffixedExpression", "SuffixedStatement", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
20344
20542
  var compile = function(src, options) {
20345
20543
  var ast, code, events, filename, ref, result, sm, srcMapJSON;
20346
20544
  if (!options) {