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