@danielx/civet 0.8.14 → 0.8.15

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/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ This changelog is generated automatically by [`build/changelog.civet`](build/cha
4
4
  For each version of Civet, it lists and links to all incorporated PRs,
5
5
  as well as a full diff and commit list.
6
6
 
7
+ ## 0.8.15 (2024-11-12, [diff](https://github.com/DanielXMoore/Civet/compare/v0.8.14...v0.8.15), [commits](https://github.com/DanielXMoore/Civet/commits/v0.8.15))
8
+ * Fix typo in Coffeescript comparison [[#1589](https://github.com/DanielXMoore/Civet/pull/1589)]
9
+ * Fix range `for` loop with complex left-hand side [[#1592](https://github.com/DanielXMoore/Civet/pull/1592)]
10
+ * Type's postfix `if` must be on the same line [[#1591](https://github.com/DanielXMoore/Civet/pull/1591)]
11
+ * Fix missing parentheses in one-line `if` condition [[#1595](https://github.com/DanielXMoore/Civet/pull/1595)]
12
+ * LSP: fix autocompletion details error message [[#1596](https://github.com/DanielXMoore/Civet/pull/1596)]
13
+ * Fix reduction inside conditions, and other subtle aliasing issues [[#1598](https://github.com/DanielXMoore/Civet/pull/1598)]
14
+ * Track indentation of trailing member/call expressions [[#1599](https://github.com/DanielXMoore/Civet/pull/1599)]
15
+ * BREAKING CHANGE: A chain of trailing member accesses must now be consistently indented.
16
+
7
17
  ## 0.8.14 (2024-11-07, [diff](https://github.com/DanielXMoore/Civet/compare/v0.8.13...v0.8.14), [commits](https://github.com/DanielXMoore/Civet/commits/v0.8.14))
8
18
  * Syntax highlighting: fix leading `_` being treated as a number [[#1578](https://github.com/DanielXMoore/Civet/pull/1578)]
9
19
  * Scientific numeric literals take priority over access [[#1579](https://github.com/DanielXMoore/Civet/pull/1579)]
package/dist/browser.js CHANGED
@@ -38,9 +38,9 @@ var Civet = (() => {
38
38
  ));
39
39
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
40
40
 
41
- // node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js
41
+ // node_modules/@danielx/hera/dist/machine.js
42
42
  var require_machine = __commonJS({
43
- "node_modules/.pnpm/@danielx+hera@0.8.16/node_modules/@danielx/hera/dist/machine.js"(exports, module) {
43
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
44
44
  "use strict";
45
45
  var __defProp2 = Object.defineProperty;
46
46
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -819,18 +819,31 @@ ${body}`;
819
819
  if (target.length === 0) {
820
820
  return c;
821
821
  }
822
- return target.map((e, i) => {
822
+ const results = [];
823
+ for (let i3 = 0, len3 = target.length; i3 < len3; i3++) {
824
+ const i = i3;
825
+ const e = target[i3];
823
826
  if (i === 0) {
824
- return insertTrimmingSpace(e, c);
827
+ results.push(insertTrimmingSpace(e, c));
825
828
  } else {
826
- return e;
829
+ results.push(e);
827
830
  }
828
- });
831
+ }
832
+ ;
833
+ return results;
829
834
  } else if (isParent(target)) {
830
- return {
835
+ const oldChildren = target.children;
836
+ target = {
831
837
  ...target,
832
838
  children: insertTrimmingSpace(target.children, c)
833
839
  };
840
+ for (const key in target) {
841
+ const i = oldChildren.indexOf(target[key]);
842
+ if (i >= 0) {
843
+ target[key] = target.children[i];
844
+ }
845
+ }
846
+ return target;
834
847
  } else if (isToken(target)) {
835
848
  return {
836
849
  ...target,
@@ -1005,8 +1018,8 @@ ${body}`;
1005
1018
  return void 0;
1006
1019
  }
1007
1020
  if (Array.isArray(node)) {
1008
- for (let i3 = 0, len3 = node.length; i3 < len3; i3++) {
1009
- const child = node[i3];
1021
+ for (let i4 = 0, len4 = node.length; i4 < len4; i4++) {
1022
+ const child = node[i4];
1010
1023
  if (skip(child)) {
1011
1024
  continue;
1012
1025
  }
@@ -1045,9 +1058,9 @@ ${body}`;
1045
1058
  if (Array.isArray(node)) {
1046
1059
  const array = new Array(node.length);
1047
1060
  copied.set(node, array);
1048
- for (let i4 = 0, len4 = node.length; i4 < len4; i4++) {
1049
- const i = i4;
1050
- const item = node[i4];
1061
+ for (let i5 = 0, len5 = node.length; i5 < len5; i5++) {
1062
+ const i = i5;
1063
+ const item = node[i5];
1051
1064
  array[i] = recurse(item);
1052
1065
  }
1053
1066
  } else if (node?.type === "Ref") {
@@ -1074,9 +1087,9 @@ ${body}`;
1074
1087
  throw new Error("replaceNode failed: node has no parent");
1075
1088
  }
1076
1089
  function recurse(children) {
1077
- for (let i5 = 0, len5 = children.length; i5 < len5; i5++) {
1078
- const i = i5;
1079
- const child = children[i5];
1090
+ for (let i6 = 0, len6 = children.length; i6 < len6; i6++) {
1091
+ const i = i6;
1092
+ const child = children[i6];
1080
1093
  if (child === node) {
1081
1094
  children[i] = newNode;
1082
1095
  return true;
@@ -1113,9 +1126,9 @@ ${body}`;
1113
1126
  return root;
1114
1127
  }
1115
1128
  }
1116
- for (let i6 = 0, len6 = array.length; i6 < len6; i6++) {
1117
- const i = i6;
1118
- const node = array[i6];
1129
+ for (let i7 = 0, len7 = array.length; i7 < len7; i7++) {
1130
+ const i = i7;
1131
+ const node = array[i7];
1119
1132
  if (!(node != null)) {
1120
1133
  return;
1121
1134
  }
@@ -1239,8 +1252,8 @@ ${body}`;
1239
1252
  return;
1240
1253
  }
1241
1254
  if (Array.isArray(node)) {
1242
- for (let i7 = 0, len7 = node.length; i7 < len7; i7++) {
1243
- const child = node[i7];
1255
+ for (let i8 = 0, len8 = node.length; i8 < len8; i8++) {
1256
+ const child = node[i8];
1244
1257
  updateParentPointers(child, parent, depth);
1245
1258
  }
1246
1259
  return;
@@ -1250,8 +1263,8 @@ ${body}`;
1250
1263
  node.parent = parent;
1251
1264
  }
1252
1265
  if (depth && isParent(node)) {
1253
- for (let ref5 = node.children, i8 = 0, len8 = ref5.length; i8 < len8; i8++) {
1254
- const child = ref5[i8];
1266
+ for (let ref5 = node.children, i9 = 0, len9 = ref5.length; i9 < len9; i9++) {
1267
+ const child = ref5[i9];
1255
1268
  updateParentPointers(child, node, depth - 1);
1256
1269
  }
1257
1270
  }
@@ -1427,9 +1440,9 @@ ${body}`;
1427
1440
  }
1428
1441
  function flatJoin(array, separator) {
1429
1442
  const result = [];
1430
- for (let i9 = 0, len9 = array.length; i9 < len9; i9++) {
1431
- const i = i9;
1432
- const items = array[i9];
1443
+ for (let i10 = 0, len10 = array.length; i10 < len10; i10++) {
1444
+ const i = i10;
1445
+ const items = array[i10];
1433
1446
  if (i) {
1434
1447
  result.push(separator);
1435
1448
  }
@@ -5619,9 +5632,12 @@ ${js}`
5619
5632
  ascDec = [", ", ascRef, " = ", startRef, " <= ", endRef];
5620
5633
  }
5621
5634
  let varAssign = [], varLetAssign = varAssign, varLet = varAssign, blockPrefix;
5622
- let names = forDeclaration?.names;
5623
- if (forDeclaration?.decl) {
5624
- if (forDeclaration.decl === "let") {
5635
+ let names = forDeclaration?.names ?? [];
5636
+ if (forDeclaration != null) {
5637
+ if (forDeclaration.type === "AssignmentExpression") {
5638
+ varAssign = varLetAssign = [forDeclaration, " = "];
5639
+ names = [];
5640
+ } else if (forDeclaration.decl === "let") {
5625
5641
  const varName = forDeclaration.children.splice(1);
5626
5642
  varAssign = [...trimFirstSpace(varName), " = "];
5627
5643
  varLet = [",", ...varName, " = ", counterRef];
@@ -5631,14 +5647,6 @@ ${js}`
5631
5647
  ["", [forDeclaration, " = ", value], ";"]
5632
5648
  ];
5633
5649
  }
5634
- } else if (forDeclaration) {
5635
- assert.equal(
5636
- forDeclaration.type,
5637
- "AssignmentExpression",
5638
- "Internal error: Coffee-style for loop must be an assignment expression"
5639
- );
5640
- varAssign = varLetAssign = [forDeclaration, " = "];
5641
- names = [];
5642
5650
  }
5643
5651
  const declaration = {
5644
5652
  type: "Declaration",
@@ -6158,7 +6166,8 @@ ${js}`
6158
6166
  const block = makeNode({
6159
6167
  type: "BlockStatement",
6160
6168
  children: [" { ", expressions, " }"],
6161
- expressions
6169
+ expressions,
6170
+ bare: false
6162
6171
  });
6163
6172
  const children = [...post.children, block];
6164
6173
  if (!isWhitespaceOrEmpty(ws))
@@ -7857,9 +7866,12 @@ ${js}`
7857
7866
  ReservedBinary,
7858
7867
  ArgumentsWithTrailingMemberExpressions,
7859
7868
  TrailingMemberExpressions,
7860
- IndentedTrailingMemberExpression,
7869
+ IndentedTrailingMemberExpressions,
7870
+ NestedTrailingMemberExpression,
7861
7871
  AllowedTrailingMemberExpressions,
7862
7872
  TrailingCallExpressions,
7873
+ IndentedTrailingCallExpressions,
7874
+ NestedTrailingCallExpression,
7863
7875
  AllowedTrailingCallExpressions,
7864
7876
  CommaDelimiter,
7865
7877
  OptionalCommaDelimiter,
@@ -7917,6 +7929,7 @@ ${js}`
7917
7929
  PipelineHeadItem,
7918
7930
  PipelineTailItem,
7919
7931
  PrimaryExpression,
7932
+ OptimizedParenthesizedExpression,
7920
7933
  ParenthesizedExpression,
7921
7934
  Placeholder,
7922
7935
  PlaceholderTypeSuffix,
@@ -9104,7 +9117,7 @@ ${js}`
9104
9117
  return expression;
9105
9118
  return {
9106
9119
  type: "CallExpression",
9107
- children: [expression, ...trailing.flat()]
9120
+ children: [expression, ...trailing]
9108
9121
  };
9109
9122
  });
9110
9123
  function NestedExpressionizedStatement(ctx, state2) {
@@ -9117,7 +9130,7 @@ ${js}`
9117
9130
  type: "CallExpression",
9118
9131
  children: [
9119
9132
  makeLeftHandSideExpression($1),
9120
- $2
9133
+ ...$2
9121
9134
  ]
9122
9135
  };
9123
9136
  });
@@ -9209,7 +9222,7 @@ ${js}`
9209
9222
  function ExplicitArguments(ctx, state2) {
9210
9223
  return (0, import_lib2.$EVENT)(ctx, state2, "ExplicitArguments", ExplicitArguments$0);
9211
9224
  }
9212
- var ApplicationStart$0 = (0, import_lib2.$S)(IndentedApplicationAllowed, (0, import_lib2.$Y)((0, import_lib2.$S)(IndentedFurther, (0, import_lib2.$N)(IdentifierBinaryOp), (0, import_lib2.$N)(ReservedBinary))), (0, import_lib2.$N)(IndentedTrailingMemberExpression));
9225
+ var ApplicationStart$0 = (0, import_lib2.$S)(IndentedApplicationAllowed, (0, import_lib2.$Y)((0, import_lib2.$S)(IndentedFurther, (0, import_lib2.$N)(IdentifierBinaryOp), (0, import_lib2.$N)(ReservedBinary))), (0, import_lib2.$N)(IndentedTrailingMemberExpressions));
9213
9226
  var ApplicationStart$1 = (0, import_lib2.$S)((0, import_lib2.$N)(EOS), (0, import_lib2.$Y)((0, import_lib2.$S)(_, (0, import_lib2.$C)(BracedApplicationAllowed, (0, import_lib2.$N)((0, import_lib2.$EXPECT)($L1, 'ApplicationStart "{"'))), (0, import_lib2.$N)(ForbiddenImplicitCalls))));
9214
9227
  var ApplicationStart$$ = [ApplicationStart$0, ApplicationStart$1];
9215
9228
  function ApplicationStart(ctx, state2) {
@@ -9250,19 +9263,34 @@ ${js}`
9250
9263
  function ArgumentsWithTrailingMemberExpressions(ctx, state2) {
9251
9264
  return (0, import_lib2.$EVENT)(ctx, state2, "ArgumentsWithTrailingMemberExpressions", ArgumentsWithTrailingMemberExpressions$0);
9252
9265
  }
9253
- var TrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(MemberExpressionRest), (0, import_lib2.$Q)(IndentedTrailingMemberExpression)), function($skip, $loc, $0, $1, $2) {
9266
+ var TrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(MemberExpressionRest), (0, import_lib2.$E)(IndentedTrailingMemberExpressions)), function($skip, $loc, $0, $1, $2) {
9267
+ if (!$2)
9268
+ return $1;
9254
9269
  return [...$1, ...$2];
9255
9270
  });
9256
9271
  function TrailingMemberExpressions(ctx, state2) {
9257
9272
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingMemberExpressions", TrailingMemberExpressions$0);
9258
9273
  }
9259
- var IndentedTrailingMemberExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(IndentedAtLeast, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$EXPECT)($L6, 'IndentedTrailingMemberExpression "?"')), (0, import_lib2.$EXPECT)($L7, 'IndentedTrailingMemberExpression "."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R3, "IndentedTrailingMemberExpression /[0-9]/")))), MemberExpressionRest), function($skip, $loc, $0, $1, $2, $3) {
9274
+ var IndentedTrailingMemberExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$Q)(NestedTrailingMemberExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
9275
+ if (!$2.length)
9276
+ return $skip;
9277
+ return $2.flat();
9278
+ });
9279
+ var IndentedTrailingMemberExpressions$1 = (0, import_lib2.$TV)((0, import_lib2.$P)(NestedTrailingMemberExpression), function($skip, $loc, $0, $1) {
9280
+ return $1.flat();
9281
+ });
9282
+ var IndentedTrailingMemberExpressions$$ = [IndentedTrailingMemberExpressions$0, IndentedTrailingMemberExpressions$1];
9283
+ function IndentedTrailingMemberExpressions(ctx, state2) {
9284
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "IndentedTrailingMemberExpressions", IndentedTrailingMemberExpressions$$);
9285
+ }
9286
+ var NestedTrailingMemberExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Nested, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$EXPECT)($L6, 'NestedTrailingMemberExpression "?"')), (0, import_lib2.$EXPECT)($L7, 'NestedTrailingMemberExpression "."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R3, "NestedTrailingMemberExpression /[0-9]/")))), (0, import_lib2.$P)(MemberExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
9260
9287
  var ws = $1;
9261
- var rest = $3;
9262
- return prepend(ws, rest);
9288
+ var rests = $3;
9289
+ const [first, ...rest] = rests;
9290
+ return [prepend(ws, first), ...rest];
9263
9291
  });
9264
- function IndentedTrailingMemberExpression(ctx, state2) {
9265
- return (0, import_lib2.$EVENT)(ctx, state2, "IndentedTrailingMemberExpression", IndentedTrailingMemberExpression$0);
9292
+ function NestedTrailingMemberExpression(ctx, state2) {
9293
+ return (0, import_lib2.$EVENT)(ctx, state2, "NestedTrailingMemberExpression", NestedTrailingMemberExpression$0);
9266
9294
  }
9267
9295
  var AllowedTrailingMemberExpressions$0 = (0, import_lib2.$T)((0, import_lib2.$S)(TrailingMemberPropertyAllowed, TrailingMemberExpressions), function(value) {
9268
9296
  return value[1];
@@ -9272,10 +9300,37 @@ ${js}`
9272
9300
  function AllowedTrailingMemberExpressions(ctx, state2) {
9273
9301
  return (0, import_lib2.$EVENT_C)(ctx, state2, "AllowedTrailingMemberExpressions", AllowedTrailingMemberExpressions$$);
9274
9302
  }
9275
- var TrailingCallExpressions$0 = (0, import_lib2.$P)((0, import_lib2.$S)(IndentedAtLeast, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$EXPECT)($L6, 'TrailingCallExpressions "?"')), (0, import_lib2.$EXPECT)($L7, 'TrailingCallExpressions "."'), (0, import_lib2.$N)((0, import_lib2.$R$0)((0, import_lib2.$EXPECT)($R3, "TrailingCallExpressions /[0-9]/"))))), (0, import_lib2.$P)(CallExpressionRest)));
9303
+ var TrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)((0, import_lib2.$Q)(CallExpressionRest), (0, import_lib2.$E)(IndentedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2) {
9304
+ if (!$1.length && !$2)
9305
+ return $skip;
9306
+ if (!$2)
9307
+ return $1;
9308
+ return [...$1, ...$2];
9309
+ });
9276
9310
  function TrailingCallExpressions(ctx, state2) {
9277
9311
  return (0, import_lib2.$EVENT)(ctx, state2, "TrailingCallExpressions", TrailingCallExpressions$0);
9278
9312
  }
9313
+ var IndentedTrailingCallExpressions$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(PushIndent, (0, import_lib2.$Q)(NestedTrailingCallExpression), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
9314
+ if (!$2.length)
9315
+ return $skip;
9316
+ return $2.flat();
9317
+ });
9318
+ var IndentedTrailingCallExpressions$1 = (0, import_lib2.$TV)((0, import_lib2.$P)(NestedTrailingCallExpression), function($skip, $loc, $0, $1) {
9319
+ return $1.flat();
9320
+ });
9321
+ var IndentedTrailingCallExpressions$$ = [IndentedTrailingCallExpressions$0, IndentedTrailingCallExpressions$1];
9322
+ function IndentedTrailingCallExpressions(ctx, state2) {
9323
+ return (0, import_lib2.$EVENT_C)(ctx, state2, "IndentedTrailingCallExpressions", IndentedTrailingCallExpressions$$);
9324
+ }
9325
+ var NestedTrailingCallExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(Nested, (0, import_lib2.$Y)((0, import_lib2.$S)((0, import_lib2.$E)((0, import_lib2.$EXPECT)($L6, 'NestedTrailingCallExpression "?"')), (0, import_lib2.$EXPECT)($L7, 'NestedTrailingCallExpression "."'), (0, import_lib2.$N)((0, import_lib2.$EXPECT)($R3, "NestedTrailingCallExpression /[0-9]/")))), (0, import_lib2.$P)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
9326
+ var ws = $1;
9327
+ var rests = $3;
9328
+ const [first, ...rest] = rests.flat();
9329
+ return [prepend(ws, first), ...rest];
9330
+ });
9331
+ function NestedTrailingCallExpression(ctx, state2) {
9332
+ return (0, import_lib2.$EVENT)(ctx, state2, "NestedTrailingCallExpression", NestedTrailingCallExpression$0);
9333
+ }
9279
9334
  var AllowedTrailingCallExpressions$0 = (0, import_lib2.$T)((0, import_lib2.$S)(TrailingMemberPropertyAllowed, TrailingCallExpressions), function(value) {
9280
9335
  return value[1];
9281
9336
  });
@@ -9879,7 +9934,7 @@ ${js}`
9879
9934
  return (0, import_lib2.$EVENT)(ctx, state2, "PipelineExpressionBodySameLine", PipelineExpressionBodySameLine$0);
9880
9935
  }
9881
9936
  var PipelineHeadItem$0 = NonPipelineExpression;
9882
- var PipelineHeadItem$1 = ParenthesizedExpression;
9937
+ var PipelineHeadItem$1 = OptimizedParenthesizedExpression;
9883
9938
  var PipelineHeadItem$$ = [PipelineHeadItem$0, PipelineHeadItem$1];
9884
9939
  function PipelineHeadItem(ctx, state2) {
9885
9940
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PipelineHeadItem", PipelineHeadItem$$);
@@ -9914,7 +9969,7 @@ ${js}`
9914
9969
  var PrimaryExpression$6 = IdentifierReference;
9915
9970
  var PrimaryExpression$7 = ClassExpression;
9916
9971
  var PrimaryExpression$8 = RegularExpressionLiteral;
9917
- var PrimaryExpression$9 = ParenthesizedExpression;
9972
+ var PrimaryExpression$9 = OptimizedParenthesizedExpression;
9918
9973
  var PrimaryExpression$10 = Placeholder;
9919
9974
  var PrimaryExpression$11 = SymbolLiteral;
9920
9975
  var PrimaryExpression$12 = JSXImplicitFragment;
@@ -9922,31 +9977,36 @@ ${js}`
9922
9977
  function PrimaryExpression(ctx, state2) {
9923
9978
  return (0, import_lib2.$EVENT_C)(ctx, state2, "PrimaryExpression", PrimaryExpression$$);
9924
9979
  }
9980
+ var OptimizedParenthesizedExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(ParenthesizedExpression), function($skip, $loc, $0, $1) {
9981
+ const { expression } = $1;
9982
+ switch (expression.type) {
9983
+ case "StatementExpression":
9984
+ if (expression.statement.type !== "IterationExpression")
9985
+ break;
9986
+ case "IterationExpression":
9987
+ return expression;
9988
+ }
9989
+ return $1;
9990
+ });
9991
+ function OptimizedParenthesizedExpression(ctx, state2) {
9992
+ return (0, import_lib2.$EVENT)(ctx, state2, "OptimizedParenthesizedExpression", OptimizedParenthesizedExpression$0);
9993
+ }
9925
9994
  var ParenthesizedExpression$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(OpenParen, AllowAll, (0, import_lib2.$E)((0, import_lib2.$S)(PostfixedCommaExpression, __, CloseParen)), RestoreAll), function($skip, $loc, $0, $1, $2, $3, $4) {
9926
9995
  var open = $1;
9927
9996
  if (!$3)
9928
9997
  return $skip;
9929
- const [exp, ws, close] = $3;
9930
- switch (exp.type) {
9931
- case "StatementExpression":
9932
- if (exp.statement.type !== "IterationExpression")
9933
- break;
9934
- case "IterationExpression":
9935
- return exp;
9936
- case "ParenthesizedExpression":
9937
- if (exp.implicit) {
9938
- return {
9939
- ...exp,
9940
- children: [open, exp.expression, ws, close],
9941
- implicit: false
9942
- };
9943
- }
9944
- break;
9998
+ const [expression, ws, close] = $3;
9999
+ if (expression.type === "ParenthesizedExpression" && expression.implicit) {
10000
+ return {
10001
+ ...expression,
10002
+ children: [open, expression.expression, ws, close],
10003
+ implicit: false
10004
+ };
9945
10005
  }
9946
10006
  return {
9947
10007
  type: "ParenthesizedExpression",
9948
- children: [open, exp, ws, close],
9949
- expression: exp
10008
+ children: [open, expression, ws, close],
10009
+ expression
9950
10010
  };
9951
10011
  });
9952
10012
  function ParenthesizedExpression(ctx, state2) {
@@ -10484,15 +10544,15 @@ ${js}`
10484
10544
  children: [$1, ...$2, ...rest.flat()]
10485
10545
  });
10486
10546
  });
10487
- var CallExpression$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(MemberExpression, AllowedTrailingMemberExpressions, (0, import_lib2.$Q)(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
10547
+ var CallExpression$4 = (0, import_lib2.$TS)((0, import_lib2.$S)(MemberExpression, (0, import_lib2.$Q)(CallExpressionRest), (0, import_lib2.$E)(AllowedTrailingCallExpressions)), function($skip, $loc, $0, $1, $2, $3) {
10488
10548
  var member = $1;
10489
- var trailing = $2;
10490
- var rest = $3;
10491
- if (rest.length || trailing.length) {
10549
+ var rest = $2;
10550
+ var trailing = $3;
10551
+ if (rest.length || trailing) {
10492
10552
  rest = rest.flat();
10493
10553
  return processCallMemberExpression({
10494
10554
  type: "CallExpression",
10495
- children: [member, ...trailing, ...rest]
10555
+ children: [member, ...rest, ...trailing ?? []]
10496
10556
  });
10497
10557
  }
10498
10558
  return member;
@@ -17807,7 +17867,7 @@ ${js}`
17807
17867
  var InlineJSXPrimaryExpression$6 = BracedObjectLiteral;
17808
17868
  var InlineJSXPrimaryExpression$7 = IdentifierReference;
17809
17869
  var InlineJSXPrimaryExpression$8 = RegularExpressionLiteral;
17810
- var InlineJSXPrimaryExpression$9 = ParenthesizedExpression;
17870
+ var InlineJSXPrimaryExpression$9 = OptimizedParenthesizedExpression;
17811
17871
  var InlineJSXPrimaryExpression$$ = [InlineJSXPrimaryExpression$0, InlineJSXPrimaryExpression$1, InlineJSXPrimaryExpression$2, InlineJSXPrimaryExpression$3, InlineJSXPrimaryExpression$4, InlineJSXPrimaryExpression$5, InlineJSXPrimaryExpression$6, InlineJSXPrimaryExpression$7, InlineJSXPrimaryExpression$8, InlineJSXPrimaryExpression$9];
17812
17872
  function InlineJSXPrimaryExpression(ctx, state2) {
17813
17873
  return (0, import_lib2.$EVENT_C)(ctx, state2, "InlineJSXPrimaryExpression", InlineJSXPrimaryExpression$$);
@@ -18973,7 +19033,7 @@ ${js}`
18973
19033
  function TypeBullet(ctx, state2) {
18974
19034
  return (0, import_lib2.$EVENT)(ctx, state2, "TypeBullet", TypeBullet$0);
18975
19035
  }
18976
- var TypeWithPostfix$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeConditional, (0, import_lib2.$E)((0, import_lib2.$S)(SameLineOrIndentedFurther, TypeIfClause))), function($skip, $loc, $0, $1, $2) {
19036
+ var TypeWithPostfix$0 = (0, import_lib2.$TS)((0, import_lib2.$S)(TypeConditional, (0, import_lib2.$E)((0, import_lib2.$S)((0, import_lib2.$E)(_), TypeIfClause))), function($skip, $loc, $0, $1, $2) {
18977
19037
  var t = $1;
18978
19038
  var postfix = $2;
18979
19039
  if (!postfix)