@danielx/civet 0.5.38 → 0.5.40

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.mjs CHANGED
@@ -431,11 +431,14 @@ ${input.slice(result.pos)}
431
431
  ExpressionizedStatement,
432
432
  Expression,
433
433
  Arguments,
434
+ ImplicitArguments,
434
435
  ExplicitArguments,
435
436
  ApplicationStart,
436
437
  ForbiddenImplicitCalls,
437
- IndentedApplicationAllowed,
438
438
  ArgumentsWithTrailingMemberExpressions,
439
+ TrailingMemberExpressions,
440
+ NonSuppressedTrailingMemberExpressions,
441
+ CommaDelimiter,
439
442
  ArgumentList,
440
443
  NestedArgumentList,
441
444
  NestedArgument,
@@ -487,6 +490,7 @@ ${input.slice(result.pos)}
487
490
  AccessModifier,
488
491
  FieldDefinition,
489
492
  ThisLiteral,
493
+ AtThis,
490
494
  LeftHandSideExpression,
491
495
  CallExpression,
492
496
  CallExpressionRest,
@@ -644,6 +648,9 @@ ${input.slice(result.pos)}
644
648
  Condition,
645
649
  ExpressionWithIndentedApplicationSuppressed,
646
650
  SuppressIndentedApplication,
651
+ IndentedApplicationAllowed,
652
+ SuppressTrailingMemberProperty,
653
+ TrailingMemberPropertyAllowed,
647
654
  ExpressionStatement,
648
655
  KeywordStatement,
649
656
  DebuggerExpression,
@@ -814,9 +821,14 @@ ${input.slice(result.pos)}
814
821
  JSXTag,
815
822
  JSXElement,
816
823
  JSXSelfClosingElement,
824
+ PushJSXOpeningElement,
817
825
  JSXOpeningElement,
826
+ JSXOptionalClosingElement,
818
827
  JSXClosingElement,
819
828
  JSXFragment,
829
+ PushJSXOpeningFragment,
830
+ JSXOptionalClosingFragment,
831
+ JSXClosingFragment,
820
832
  JSXElementName,
821
833
  JSXIdentifierName,
822
834
  JSXAttributes,
@@ -839,6 +851,8 @@ ${input.slice(result.pos)}
839
851
  JSXMixedChildren,
840
852
  JSXChildren,
841
853
  JSXNestedChildren,
854
+ JSXEOS,
855
+ JSXNested,
842
856
  JSXChild,
843
857
  JSXComment,
844
858
  JSXCommentContent,
@@ -891,6 +905,7 @@ ${input.slice(result.pos)}
891
905
  TypeConstraint,
892
906
  TypeInitializer,
893
907
  TypeParameterDelimiter,
908
+ ThisType,
894
909
  Shebang,
895
910
  CivetPrologue,
896
911
  CivetPrologueContent,
@@ -923,6 +938,7 @@ ${input.slice(result.pos)}
923
938
  CoffeeForLoopsEnabled,
924
939
  CoffeeInterpolationEnabled,
925
940
  CoffeeIsntEnabled,
941
+ CoffeeJSXEnabled,
926
942
  CoffeeLineContinuationEnabled,
927
943
  CoffeeNotEnabled,
928
944
  CoffeeOfEnabled,
@@ -938,7 +954,7 @@ ${input.slice(result.pos)}
938
954
  Nested
939
955
  });
940
956
  var $L0 = $L("/ ");
941
- var $L1 = $L("");
957
+ var $L1 = $L("?");
942
958
  var $L2 = $L(".");
943
959
  var $L3 = $L("++");
944
960
  var $L4 = $L("--");
@@ -951,64 +967,64 @@ ${input.slice(result.pos)}
951
967
  var $L11 = $L("!");
952
968
  var $L12 = $L("super[");
953
969
  var $L13 = $L("import.meta");
954
- var $L14 = $L(")");
955
- var $L15 = $L("->");
956
- var $L16 = $L("}");
957
- var $L17 = $L("null");
958
- var $L18 = $L("true");
959
- var $L19 = $L("false");
960
- var $L20 = $L("yes");
961
- var $L21 = $L("on");
962
- var $L22 = $L("no");
963
- var $L23 = $L("off");
964
- var $L24 = $L(",");
965
- var $L25 = $L("=");
966
- var $L26 = $L(">");
967
- var $L27 = $L("]");
968
- var $L28 = $L(":");
969
- var $L29 = $L("**=");
970
- var $L30 = $L("*=");
971
- var $L31 = $L("/=");
972
- var $L32 = $L("%=");
973
- var $L33 = $L("+=");
974
- var $L34 = $L("-=");
975
- var $L35 = $L("<<=");
976
- var $L36 = $L(">>>=");
977
- var $L37 = $L(">>=");
978
- var $L38 = $L("&&=");
979
- var $L39 = $L("&=");
980
- var $L40 = $L("^=");
981
- var $L41 = $L("||=");
982
- var $L42 = $L("|=");
983
- var $L43 = $L("??=");
984
- var $L44 = $L("?=");
985
- var $L45 = $L("and=");
986
- var $L46 = $L("or=");
987
- var $L47 = $L("**");
988
- var $L48 = $L("*");
989
- var $L49 = $L("/");
990
- var $L50 = $L("%%");
991
- var $L51 = $L("%");
992
- var $L52 = $L("+");
993
- var $L53 = $L("-");
994
- var $L54 = $L("<=");
995
- var $L55 = $L(">=");
996
- var $L56 = $L("<?");
997
- var $L57 = $L("<<");
998
- var $L58 = $L(">>>");
999
- var $L59 = $L(">>");
1000
- var $L60 = $L("!==");
1001
- var $L61 = $L("!=");
1002
- var $L62 = $L("isnt");
1003
- var $L63 = $L("===");
1004
- var $L64 = $L("==");
1005
- var $L65 = $L("and");
1006
- var $L66 = $L("&&");
1007
- var $L67 = $L("of");
1008
- var $L68 = $L("or");
1009
- var $L69 = $L("||");
1010
- var $L70 = $L("??");
1011
- var $L71 = $L("?");
970
+ var $L14 = $L("");
971
+ var $L15 = $L(")");
972
+ var $L16 = $L("->");
973
+ var $L17 = $L("}");
974
+ var $L18 = $L("null");
975
+ var $L19 = $L("true");
976
+ var $L20 = $L("false");
977
+ var $L21 = $L("yes");
978
+ var $L22 = $L("on");
979
+ var $L23 = $L("no");
980
+ var $L24 = $L("off");
981
+ var $L25 = $L(",");
982
+ var $L26 = $L("=");
983
+ var $L27 = $L(">");
984
+ var $L28 = $L("]");
985
+ var $L29 = $L(":");
986
+ var $L30 = $L("**=");
987
+ var $L31 = $L("*=");
988
+ var $L32 = $L("/=");
989
+ var $L33 = $L("%=");
990
+ var $L34 = $L("+=");
991
+ var $L35 = $L("-=");
992
+ var $L36 = $L("<<=");
993
+ var $L37 = $L(">>>=");
994
+ var $L38 = $L(">>=");
995
+ var $L39 = $L("&&=");
996
+ var $L40 = $L("&=");
997
+ var $L41 = $L("^=");
998
+ var $L42 = $L("||=");
999
+ var $L43 = $L("|=");
1000
+ var $L44 = $L("??=");
1001
+ var $L45 = $L("?=");
1002
+ var $L46 = $L("and=");
1003
+ var $L47 = $L("or=");
1004
+ var $L48 = $L("**");
1005
+ var $L49 = $L("*");
1006
+ var $L50 = $L("/");
1007
+ var $L51 = $L("%%");
1008
+ var $L52 = $L("%");
1009
+ var $L53 = $L("+");
1010
+ var $L54 = $L("-");
1011
+ var $L55 = $L("<=");
1012
+ var $L56 = $L(">=");
1013
+ var $L57 = $L("<?");
1014
+ var $L58 = $L("<<");
1015
+ var $L59 = $L(">>>");
1016
+ var $L60 = $L(">>");
1017
+ var $L61 = $L("!==");
1018
+ var $L62 = $L("!=");
1019
+ var $L63 = $L("isnt");
1020
+ var $L64 = $L("===");
1021
+ var $L65 = $L("==");
1022
+ var $L66 = $L("and");
1023
+ var $L67 = $L("&&");
1024
+ var $L68 = $L("of");
1025
+ var $L69 = $L("or");
1026
+ var $L70 = $L("||");
1027
+ var $L71 = $L("??");
1012
1028
  var $L72 = $L("instanceof");
1013
1029
  var $L73 = $L("not");
1014
1030
  var $L74 = $L("in");
@@ -1325,7 +1341,7 @@ ${input.slice(result.pos)}
1325
1341
  return result;
1326
1342
  }
1327
1343
  }
1328
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1344
+ var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1329
1345
  if ($2.length == 0)
1330
1346
  return $1;
1331
1347
  return $0;
@@ -1353,13 +1369,12 @@ ${input.slice(result.pos)}
1353
1369
  }
1354
1370
  }
1355
1371
  var Arguments$0 = ExplicitArguments;
1356
- var Arguments$1 = $TS($S($E($S(TypeArguments, $N($S(__, ImplementsToken)))), ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1357
- var ta = $1;
1358
- var open = $3;
1359
- var ws = $4;
1360
- var args = $5;
1361
- var close = $6;
1362
- return [ta?.[0], open, module.insertTrimmingSpace(ws, ""), args, close];
1372
+ var Arguments$1 = $TS($S(SuppressTrailingMemberProperty, $E(ImplicitArguments)), function($skip, $loc, $0, $1, $2) {
1373
+ var args = $2;
1374
+ module.suppressTrailingMemberProperty.pop();
1375
+ if (args)
1376
+ return args;
1377
+ return $skip;
1363
1378
  });
1364
1379
  function Arguments(state) {
1365
1380
  let eventData;
@@ -1383,6 +1398,36 @@ ${input.slice(result.pos)}
1383
1398
  return result;
1384
1399
  }
1385
1400
  }
1401
+ var ImplicitArguments$0 = $TS($S($E($S(TypeArguments, $N($S(__, ImplementsToken)))), ApplicationStart, InsertOpenParen, $Q(_), ArgumentList, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
1402
+ var ta = $1;
1403
+ var open = $3;
1404
+ var ws = $4;
1405
+ var args = $5;
1406
+ var close = $6;
1407
+ return [ta?.[0], open, module.insertTrimmingSpace(ws, ""), args, close];
1408
+ });
1409
+ function ImplicitArguments(state) {
1410
+ let eventData;
1411
+ if (state.events) {
1412
+ const result = state.events.enter?.("ImplicitArguments", state);
1413
+ if (result) {
1414
+ if (result.cache)
1415
+ return result.cache;
1416
+ eventData = result.data;
1417
+ }
1418
+ }
1419
+ if (state.tokenize) {
1420
+ const result = $TOKEN("ImplicitArguments", state, ImplicitArguments$0(state));
1421
+ if (state.events)
1422
+ state.events.exit?.("ImplicitArguments", state, result, eventData);
1423
+ return result;
1424
+ } else {
1425
+ const result = ImplicitArguments$0(state);
1426
+ if (state.events)
1427
+ state.events.exit?.("ImplicitArguments", state, result, eventData);
1428
+ return result;
1429
+ }
1430
+ }
1386
1431
  var ExplicitArguments$0 = $S($E(TypeArguments), OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1387
1432
  function ExplicitArguments(state) {
1388
1433
  let eventData;
@@ -1455,15 +1500,36 @@ ${input.slice(result.pos)}
1455
1500
  return result;
1456
1501
  }
1457
1502
  }
1458
- var IndentedApplicationAllowed$0 = $TV($EXPECT($L1, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
1459
- if (module.suppressIndentedApplication)
1460
- return $skip;
1461
- return;
1503
+ var ArgumentsWithTrailingMemberExpressions$0 = $S(Arguments, TrailingMemberExpressions);
1504
+ function ArgumentsWithTrailingMemberExpressions(state) {
1505
+ let eventData;
1506
+ if (state.events) {
1507
+ const result = state.events.enter?.("ArgumentsWithTrailingMemberExpressions", state);
1508
+ if (result) {
1509
+ if (result.cache)
1510
+ return result.cache;
1511
+ eventData = result.data;
1512
+ }
1513
+ }
1514
+ if (state.tokenize) {
1515
+ const result = $TOKEN("ArgumentsWithTrailingMemberExpressions", state, ArgumentsWithTrailingMemberExpressions$0(state));
1516
+ if (state.events)
1517
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1518
+ return result;
1519
+ } else {
1520
+ const result = ArgumentsWithTrailingMemberExpressions$0(state);
1521
+ if (state.events)
1522
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1523
+ return result;
1524
+ }
1525
+ }
1526
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L1, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L2, fail, 'TrailingMemberExpressions "."'))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
1527
+ return $1.concat($2);
1462
1528
  });
1463
- function IndentedApplicationAllowed(state) {
1529
+ function TrailingMemberExpressions(state) {
1464
1530
  let eventData;
1465
1531
  if (state.events) {
1466
- const result = state.events.enter?.("IndentedApplicationAllowed", state);
1532
+ const result = state.events.enter?.("TrailingMemberExpressions", state);
1467
1533
  if (result) {
1468
1534
  if (result.cache)
1469
1535
  return result.cache;
@@ -1471,22 +1537,25 @@ ${input.slice(result.pos)}
1471
1537
  }
1472
1538
  }
1473
1539
  if (state.tokenize) {
1474
- const result = $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
1540
+ const result = $TOKEN("TrailingMemberExpressions", state, TrailingMemberExpressions$0(state));
1475
1541
  if (state.events)
1476
- state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
1542
+ state.events.exit?.("TrailingMemberExpressions", state, result, eventData);
1477
1543
  return result;
1478
1544
  } else {
1479
- const result = IndentedApplicationAllowed$0(state);
1545
+ const result = TrailingMemberExpressions$0(state);
1480
1546
  if (state.events)
1481
- state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
1547
+ state.events.exit?.("TrailingMemberExpressions", state, result, eventData);
1482
1548
  return result;
1483
1549
  }
1484
1550
  }
1485
- var ArgumentsWithTrailingMemberExpressions$0 = $S(Arguments, $Q($S(Samedent, $Y($EXPECT($L2, fail, 'ArgumentsWithTrailingMemberExpressions "."')), MemberExpressionRest)));
1486
- function ArgumentsWithTrailingMemberExpressions(state) {
1551
+ var NonSuppressedTrailingMemberExpressions$0 = $T($S(TrailingMemberPropertyAllowed, TrailingMemberExpressions), function(value) {
1552
+ return value[1];
1553
+ });
1554
+ var NonSuppressedTrailingMemberExpressions$1 = $Q(MemberExpressionRest);
1555
+ function NonSuppressedTrailingMemberExpressions(state) {
1487
1556
  let eventData;
1488
1557
  if (state.events) {
1489
- const result = state.events.enter?.("ArgumentsWithTrailingMemberExpressions", state);
1558
+ const result = state.events.enter?.("NonSuppressedTrailingMemberExpressions", state);
1490
1559
  if (result) {
1491
1560
  if (result.cache)
1492
1561
  return result.cache;
@@ -1494,18 +1563,41 @@ ${input.slice(result.pos)}
1494
1563
  }
1495
1564
  }
1496
1565
  if (state.tokenize) {
1497
- const result = $TOKEN("ArgumentsWithTrailingMemberExpressions", state, ArgumentsWithTrailingMemberExpressions$0(state));
1566
+ const result = $TOKEN("NonSuppressedTrailingMemberExpressions", state, NonSuppressedTrailingMemberExpressions$0(state) || NonSuppressedTrailingMemberExpressions$1(state));
1498
1567
  if (state.events)
1499
- state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1568
+ state.events.exit?.("NonSuppressedTrailingMemberExpressions", state, result, eventData);
1500
1569
  return result;
1501
1570
  } else {
1502
- const result = ArgumentsWithTrailingMemberExpressions$0(state);
1571
+ const result = NonSuppressedTrailingMemberExpressions$0(state) || NonSuppressedTrailingMemberExpressions$1(state);
1503
1572
  if (state.events)
1504
- state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1573
+ state.events.exit?.("NonSuppressedTrailingMemberExpressions", state, result, eventData);
1505
1574
  return result;
1506
1575
  }
1507
1576
  }
1508
- var ArgumentList$0 = $S(ArgumentPart, $P($S(__, Comma, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1577
+ var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
1578
+ function CommaDelimiter(state) {
1579
+ let eventData;
1580
+ if (state.events) {
1581
+ const result = state.events.enter?.("CommaDelimiter", state);
1582
+ if (result) {
1583
+ if (result.cache)
1584
+ return result.cache;
1585
+ eventData = result.data;
1586
+ }
1587
+ }
1588
+ if (state.tokenize) {
1589
+ const result = $TOKEN("CommaDelimiter", state, CommaDelimiter$0(state));
1590
+ if (state.events)
1591
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1592
+ return result;
1593
+ } else {
1594
+ const result = CommaDelimiter$0(state);
1595
+ if (state.events)
1596
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1597
+ return result;
1598
+ }
1599
+ }
1600
+ var ArgumentList$0 = $S(ArgumentPart, $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1509
1601
  var ArgumentList$1 = $TS($S(NestedImplicitObjectLiteral), function($skip, $loc, $0, $1) {
1510
1602
  return module.insertTrimmingSpace($1, "");
1511
1603
  });
@@ -1584,7 +1676,7 @@ ${input.slice(result.pos)}
1584
1676
  return result;
1585
1677
  }
1586
1678
  }
1587
- var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1679
+ var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(CommaDelimiter, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1588
1680
  return [...$1, $2, ...$3];
1589
1681
  });
1590
1682
  function InlineArgumentExpressions(state) {
@@ -2905,15 +2997,12 @@ ${input.slice(result.pos)}
2905
2997
  }
2906
2998
  }
2907
2999
  var ThisLiteral$0 = This;
2908
- var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2909
- var t = $1;
3000
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3001
+ var at = $1;
2910
3002
  var id = $2;
2911
- return [{ ...t, token: "this." }, id];
2912
- });
2913
- var ThisLiteral$2 = $TS($S(At), function($skip, $loc, $0, $1) {
2914
- $1.token = "this";
2915
- return $1;
3003
+ return [at, ".", id];
2916
3004
  });
3005
+ var ThisLiteral$2 = AtThis;
2917
3006
  function ThisLiteral(state) {
2918
3007
  let eventData;
2919
3008
  if (state.events) {
@@ -2936,6 +3025,32 @@ ${input.slice(result.pos)}
2936
3025
  return result;
2937
3026
  }
2938
3027
  }
3028
+ var AtThis$0 = $TV(At, function($skip, $loc, $0, $1) {
3029
+ var at = $0;
3030
+ return { ...at, token: "this" };
3031
+ });
3032
+ function AtThis(state) {
3033
+ let eventData;
3034
+ if (state.events) {
3035
+ const result = state.events.enter?.("AtThis", state);
3036
+ if (result) {
3037
+ if (result.cache)
3038
+ return result.cache;
3039
+ eventData = result.data;
3040
+ }
3041
+ }
3042
+ if (state.tokenize) {
3043
+ const result = $TOKEN("AtThis", state, AtThis$0(state));
3044
+ if (state.events)
3045
+ state.events.exit?.("AtThis", state, result, eventData);
3046
+ return result;
3047
+ } else {
3048
+ const result = AtThis$0(state);
3049
+ if (state.events)
3050
+ state.events.exit?.("AtThis", state, result, eventData);
3051
+ return result;
3052
+ }
3053
+ }
2939
3054
  var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2940
3055
  if ($1.length)
2941
3056
  return $0;
@@ -2970,14 +3085,17 @@ ${input.slice(result.pos)}
2970
3085
  children: $0
2971
3086
  };
2972
3087
  });
2973
- var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
2974
- if ($2.length) {
3088
+ var CallExpression$2 = $TS($S(MemberExpression, NonSuppressedTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3089
+ var member = $1;
3090
+ var trailing = $2;
3091
+ var rest = $3;
3092
+ if (rest.length || trailing.length) {
2975
3093
  return {
2976
- type: "CallExpression",
2977
- children: [$1].concat($2)
3094
+ type: rest.length ? "CallExpression" : "MemberExpression",
3095
+ children: [member, ...trailing, ...rest]
2978
3096
  };
2979
3097
  }
2980
- return $1;
3098
+ return member;
2981
3099
  });
2982
3100
  function CallExpression(state) {
2983
3101
  let eventData;
@@ -3117,13 +3235,7 @@ ${input.slice(result.pos)}
3117
3235
  }
3118
3236
  return $2;
3119
3237
  });
3120
- var MemberExpressionRest$1 = $TS($S($E(IndentedFurther), PropertyAccess), function($skip, $loc, $0, $1, $2) {
3121
- if ($1)
3122
- return Object.assign({}, $2, {
3123
- children: [$1, ...$2.children]
3124
- });
3125
- return $2;
3126
- });
3238
+ var MemberExpressionRest$1 = PropertyAccess;
3127
3239
  var MemberExpressionRest$2 = NonNullAssertion;
3128
3240
  function MemberExpressionRest(state) {
3129
3241
  let eventData;
@@ -3350,7 +3462,7 @@ ${input.slice(result.pos)}
3350
3462
  }
3351
3463
  }
3352
3464
  var Parameters$0 = NonEmptyParameters;
3353
- var Parameters$1 = $TV($EXPECT($L1, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3465
+ var Parameters$1 = $TV($EXPECT($L14, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3354
3466
  return {
3355
3467
  type: "Parameters",
3356
3468
  children: [{ $loc, token: "()" }],
@@ -3380,13 +3492,14 @@ ${input.slice(result.pos)}
3380
3492
  return result;
3381
3493
  }
3382
3494
  }
3383
- var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
3495
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $E(ThisType), $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
3384
3496
  var tp = $1;
3385
3497
  var open = $2;
3386
- var pes = $3;
3387
- var rest = $4;
3388
- var after = $5;
3389
- var close = $6;
3498
+ var tt = $3;
3499
+ var pes = $4;
3500
+ var rest = $5;
3501
+ var after = $6;
3502
+ var close = $7;
3390
3503
  const names = pes.flatMap((p) => p.names);
3391
3504
  if (rest) {
3392
3505
  let restIdentifier;
@@ -3409,6 +3522,7 @@ ${input.slice(result.pos)}
3409
3522
  children: [
3410
3523
  tp,
3411
3524
  open,
3525
+ tt,
3412
3526
  ...pes,
3413
3527
  { ...rest, children: rest.children.slice(0, -1) },
3414
3528
  close
@@ -3420,7 +3534,7 @@ ${input.slice(result.pos)}
3420
3534
  }
3421
3535
  return {
3422
3536
  type: "Parameters",
3423
- children: [tp, open, ...pes, close],
3537
+ children: [tp, open, tt, ...pes, close],
3424
3538
  names: pes.flatMap((p) => p.names),
3425
3539
  tp
3426
3540
  };
@@ -3509,7 +3623,7 @@ ${input.slice(result.pos)}
3509
3623
  }
3510
3624
  }
3511
3625
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
3512
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L14, fail, 'ParameterElementDelimiter ")"')));
3626
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L15, fail, 'ParameterElementDelimiter ")"')));
3513
3627
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
3514
3628
  return value[1];
3515
3629
  });
@@ -4182,7 +4296,7 @@ ${input.slice(result.pos)}
4182
4296
  return result;
4183
4297
  }
4184
4298
  }
4185
- var EmptyBindingPattern$0 = $TV($EXPECT($L1, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4299
+ var EmptyBindingPattern$0 = $TV($EXPECT($L14, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4186
4300
  const ref = {
4187
4301
  type: "Ref",
4188
4302
  base: "ref",
@@ -4458,7 +4572,7 @@ ${input.slice(result.pos)}
4458
4572
  return result;
4459
4573
  }
4460
4574
  }
4461
- var Arrow$0 = $TV($EXPECT($L15, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4575
+ var Arrow$0 = $TV($EXPECT($L16, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4462
4576
  return { $loc, token: $1 };
4463
4577
  });
4464
4578
  function Arrow(state) {
@@ -4753,7 +4867,7 @@ ${input.slice(result.pos)}
4753
4867
  children: [$1, expressions]
4754
4868
  };
4755
4869
  });
4756
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L16, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4870
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L17, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4757
4871
  const expressions = [];
4758
4872
  return {
4759
4873
  type: "BlockStatement",
@@ -4898,7 +5012,7 @@ ${input.slice(result.pos)}
4898
5012
  return result;
4899
5013
  }
4900
5014
  }
4901
- var NullLiteral$0 = $TS($S($EXPECT($L17, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5015
+ var NullLiteral$0 = $TS($S($EXPECT($L18, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4902
5016
  return { $loc, token: $1 };
4903
5017
  });
4904
5018
  function NullLiteral(state) {
@@ -4926,7 +5040,7 @@ ${input.slice(result.pos)}
4926
5040
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
4927
5041
  return value[1];
4928
5042
  });
4929
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L18, fail, 'BooleanLiteral "true"'), $EXPECT($L19, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5043
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L19, fail, 'BooleanLiteral "true"'), $EXPECT($L20, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4930
5044
  return { $loc, token: $1 };
4931
5045
  });
4932
5046
  function BooleanLiteral(state) {
@@ -4951,10 +5065,10 @@ ${input.slice(result.pos)}
4951
5065
  return result;
4952
5066
  }
4953
5067
  }
4954
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L20, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5068
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4955
5069
  return { $loc, token: "true" };
4956
5070
  });
4957
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5071
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4958
5072
  return { $loc, token: "false" };
4959
5073
  });
4960
5074
  function CoffeeScriptBooleanLiteral(state) {
@@ -4979,7 +5093,7 @@ ${input.slice(result.pos)}
4979
5093
  return result;
4980
5094
  }
4981
5095
  }
4982
- var Comma$0 = $TV($EXPECT($L24, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
5096
+ var Comma$0 = $TV($EXPECT($L25, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
4983
5097
  return { $loc, token: $1 };
4984
5098
  });
4985
5099
  function Comma(state) {
@@ -5085,7 +5199,7 @@ ${input.slice(result.pos)}
5085
5199
  return result;
5086
5200
  }
5087
5201
  }
5088
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L25, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L25, fail, 'UpcomingAssignment "="'), $EXPECT($L26, fail, 'UpcomingAssignment ">"')))));
5202
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L26, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L26, fail, 'UpcomingAssignment "="'), $EXPECT($L27, fail, 'UpcomingAssignment ">"')))));
5089
5203
  function UpcomingAssignment(state) {
5090
5204
  let eventData;
5091
5205
  if (state.events) {
@@ -5358,7 +5472,7 @@ ${input.slice(result.pos)}
5358
5472
  }
5359
5473
  }
5360
5474
  var ArrayElementDelimiter$0 = $S(__, Comma);
5361
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'ArrayElementDelimiter "]"')));
5475
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L28, fail, 'ArrayElementDelimiter "]"')));
5362
5476
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
5363
5477
  return value[1];
5364
5478
  });
@@ -5780,7 +5894,7 @@ ${input.slice(result.pos)}
5780
5894
  var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S($C(Samedent, $Q(_)), NamedProperty)), InsertComma), function(value) {
5781
5895
  return value[1];
5782
5896
  });
5783
- var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L28, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L14, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L27, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L16, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
5897
+ var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L29, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L15, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L28, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L17, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
5784
5898
  return "";
5785
5899
  });
5786
5900
  var ImplicitInlineObjectPropertyDelimiter$3 = $T($Y(EOS), function(value) {
@@ -5809,7 +5923,7 @@ ${input.slice(result.pos)}
5809
5923
  }
5810
5924
  }
5811
5925
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
5812
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L16, fail, 'ObjectPropertyDelimiter "}"')));
5926
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L17, fail, 'ObjectPropertyDelimiter "}"')));
5813
5927
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
5814
5928
  return value[1];
5815
5929
  });
@@ -6316,25 +6430,25 @@ ${input.slice(result.pos)}
6316
6430
  return result;
6317
6431
  }
6318
6432
  }
6319
- var AssignmentOpSymbol$0 = $EXPECT($L29, fail, 'AssignmentOpSymbol "**="');
6320
- var AssignmentOpSymbol$1 = $EXPECT($L30, fail, 'AssignmentOpSymbol "*="');
6321
- var AssignmentOpSymbol$2 = $EXPECT($L31, fail, 'AssignmentOpSymbol "/="');
6322
- var AssignmentOpSymbol$3 = $EXPECT($L32, fail, 'AssignmentOpSymbol "%="');
6323
- var AssignmentOpSymbol$4 = $EXPECT($L33, fail, 'AssignmentOpSymbol "+="');
6324
- var AssignmentOpSymbol$5 = $EXPECT($L34, fail, 'AssignmentOpSymbol "-="');
6325
- var AssignmentOpSymbol$6 = $EXPECT($L35, fail, 'AssignmentOpSymbol "<<="');
6326
- var AssignmentOpSymbol$7 = $EXPECT($L36, fail, 'AssignmentOpSymbol ">>>="');
6327
- var AssignmentOpSymbol$8 = $EXPECT($L37, fail, 'AssignmentOpSymbol ">>="');
6328
- var AssignmentOpSymbol$9 = $EXPECT($L38, fail, 'AssignmentOpSymbol "&&="');
6329
- var AssignmentOpSymbol$10 = $EXPECT($L39, fail, 'AssignmentOpSymbol "&="');
6330
- var AssignmentOpSymbol$11 = $EXPECT($L40, fail, 'AssignmentOpSymbol "^="');
6331
- var AssignmentOpSymbol$12 = $EXPECT($L41, fail, 'AssignmentOpSymbol "||="');
6332
- var AssignmentOpSymbol$13 = $EXPECT($L42, fail, 'AssignmentOpSymbol "|="');
6333
- var AssignmentOpSymbol$14 = $EXPECT($L43, fail, 'AssignmentOpSymbol "??="');
6334
- var AssignmentOpSymbol$15 = $T($EXPECT($L44, fail, 'AssignmentOpSymbol "?="'), function(value) {
6433
+ var AssignmentOpSymbol$0 = $EXPECT($L30, fail, 'AssignmentOpSymbol "**="');
6434
+ var AssignmentOpSymbol$1 = $EXPECT($L31, fail, 'AssignmentOpSymbol "*="');
6435
+ var AssignmentOpSymbol$2 = $EXPECT($L32, fail, 'AssignmentOpSymbol "/="');
6436
+ var AssignmentOpSymbol$3 = $EXPECT($L33, fail, 'AssignmentOpSymbol "%="');
6437
+ var AssignmentOpSymbol$4 = $EXPECT($L34, fail, 'AssignmentOpSymbol "+="');
6438
+ var AssignmentOpSymbol$5 = $EXPECT($L35, fail, 'AssignmentOpSymbol "-="');
6439
+ var AssignmentOpSymbol$6 = $EXPECT($L36, fail, 'AssignmentOpSymbol "<<="');
6440
+ var AssignmentOpSymbol$7 = $EXPECT($L37, fail, 'AssignmentOpSymbol ">>>="');
6441
+ var AssignmentOpSymbol$8 = $EXPECT($L38, fail, 'AssignmentOpSymbol ">>="');
6442
+ var AssignmentOpSymbol$9 = $EXPECT($L39, fail, 'AssignmentOpSymbol "&&="');
6443
+ var AssignmentOpSymbol$10 = $EXPECT($L40, fail, 'AssignmentOpSymbol "&="');
6444
+ var AssignmentOpSymbol$11 = $EXPECT($L41, fail, 'AssignmentOpSymbol "^="');
6445
+ var AssignmentOpSymbol$12 = $EXPECT($L42, fail, 'AssignmentOpSymbol "||="');
6446
+ var AssignmentOpSymbol$13 = $EXPECT($L43, fail, 'AssignmentOpSymbol "|="');
6447
+ var AssignmentOpSymbol$14 = $EXPECT($L44, fail, 'AssignmentOpSymbol "??="');
6448
+ var AssignmentOpSymbol$15 = $T($EXPECT($L45, fail, 'AssignmentOpSymbol "?="'), function(value) {
6335
6449
  return "??=";
6336
6450
  });
6337
- var AssignmentOpSymbol$16 = $T($S($EXPECT($L25, fail, 'AssignmentOpSymbol "="'), $N($EXPECT($L25, fail, 'AssignmentOpSymbol "="'))), function(value) {
6451
+ var AssignmentOpSymbol$16 = $T($S($EXPECT($L26, fail, 'AssignmentOpSymbol "="'), $N($EXPECT($L26, fail, 'AssignmentOpSymbol "="'))), function(value) {
6338
6452
  return value[0];
6339
6453
  });
6340
6454
  var AssignmentOpSymbol$17 = $T($S(CoffeeWordAssignmentOp), function(value) {
@@ -6362,10 +6476,10 @@ ${input.slice(result.pos)}
6362
6476
  return result;
6363
6477
  }
6364
6478
  }
6365
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L45, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
6479
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L46, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
6366
6480
  return "&&=";
6367
6481
  });
6368
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L46, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
6482
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L47, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
6369
6483
  return "||=";
6370
6484
  });
6371
6485
  function CoffeeWordAssignmentOp(state) {
@@ -6417,60 +6531,60 @@ ${input.slice(result.pos)}
6417
6531
  return result;
6418
6532
  }
6419
6533
  }
6420
- var BinaryOpSymbol$0 = $EXPECT($L47, fail, 'BinaryOpSymbol "**"');
6421
- var BinaryOpSymbol$1 = $EXPECT($L48, fail, 'BinaryOpSymbol "*"');
6422
- var BinaryOpSymbol$2 = $EXPECT($L49, fail, 'BinaryOpSymbol "/"');
6423
- var BinaryOpSymbol$3 = $TV($EXPECT($L50, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6534
+ var BinaryOpSymbol$0 = $EXPECT($L48, fail, 'BinaryOpSymbol "**"');
6535
+ var BinaryOpSymbol$1 = $EXPECT($L49, fail, 'BinaryOpSymbol "*"');
6536
+ var BinaryOpSymbol$2 = $EXPECT($L50, fail, 'BinaryOpSymbol "/"');
6537
+ var BinaryOpSymbol$3 = $TV($EXPECT($L51, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6424
6538
  return {
6425
6539
  call: module.getRef("modulo"),
6426
6540
  special: true
6427
6541
  };
6428
6542
  });
6429
- var BinaryOpSymbol$4 = $EXPECT($L51, fail, 'BinaryOpSymbol "%"');
6430
- var BinaryOpSymbol$5 = $EXPECT($L52, fail, 'BinaryOpSymbol "+"');
6431
- var BinaryOpSymbol$6 = $EXPECT($L53, fail, 'BinaryOpSymbol "-"');
6432
- var BinaryOpSymbol$7 = $EXPECT($L54, fail, 'BinaryOpSymbol "<="');
6433
- var BinaryOpSymbol$8 = $EXPECT($L55, fail, 'BinaryOpSymbol ">="');
6434
- var BinaryOpSymbol$9 = $TS($S($EXPECT($L56, fail, 'BinaryOpSymbol "<?"'), $E($EXPECT($L6, fail, 'BinaryOpSymbol " "'))), function($skip, $loc, $0, $1, $2) {
6543
+ var BinaryOpSymbol$4 = $EXPECT($L52, fail, 'BinaryOpSymbol "%"');
6544
+ var BinaryOpSymbol$5 = $EXPECT($L53, fail, 'BinaryOpSymbol "+"');
6545
+ var BinaryOpSymbol$6 = $EXPECT($L54, fail, 'BinaryOpSymbol "-"');
6546
+ var BinaryOpSymbol$7 = $EXPECT($L55, fail, 'BinaryOpSymbol "<="');
6547
+ var BinaryOpSymbol$8 = $EXPECT($L56, fail, 'BinaryOpSymbol ">="');
6548
+ var BinaryOpSymbol$9 = $TS($S($EXPECT($L57, fail, 'BinaryOpSymbol "<?"'), $E($EXPECT($L6, fail, 'BinaryOpSymbol " "'))), function($skip, $loc, $0, $1, $2) {
6435
6549
  return "instanceof ";
6436
6550
  });
6437
- var BinaryOpSymbol$10 = $EXPECT($L57, fail, 'BinaryOpSymbol "<<"');
6551
+ var BinaryOpSymbol$10 = $EXPECT($L58, fail, 'BinaryOpSymbol "<<"');
6438
6552
  var BinaryOpSymbol$11 = $TR($EXPECT($R5, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6439
6553
  return "<";
6440
6554
  });
6441
- var BinaryOpSymbol$12 = $EXPECT($L58, fail, 'BinaryOpSymbol ">>>"');
6442
- var BinaryOpSymbol$13 = $EXPECT($L59, fail, 'BinaryOpSymbol ">>"');
6443
- var BinaryOpSymbol$14 = $EXPECT($L26, fail, 'BinaryOpSymbol ">"');
6444
- var BinaryOpSymbol$15 = $EXPECT($L60, fail, 'BinaryOpSymbol "!=="');
6445
- var BinaryOpSymbol$16 = $TV($EXPECT($L61, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6555
+ var BinaryOpSymbol$12 = $EXPECT($L59, fail, 'BinaryOpSymbol ">>>"');
6556
+ var BinaryOpSymbol$13 = $EXPECT($L60, fail, 'BinaryOpSymbol ">>"');
6557
+ var BinaryOpSymbol$14 = $EXPECT($L27, fail, 'BinaryOpSymbol ">"');
6558
+ var BinaryOpSymbol$15 = $EXPECT($L61, fail, 'BinaryOpSymbol "!=="');
6559
+ var BinaryOpSymbol$16 = $TV($EXPECT($L62, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6446
6560
  if (module.config.coffeeEq)
6447
6561
  return "!==";
6448
6562
  return $1;
6449
6563
  });
6450
- var BinaryOpSymbol$17 = $TS($S($EXPECT($L62, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6564
+ var BinaryOpSymbol$17 = $TS($S($EXPECT($L63, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6451
6565
  if (module.config.coffeeIsnt)
6452
6566
  return "!==";
6453
6567
  return $skip;
6454
6568
  });
6455
- var BinaryOpSymbol$18 = $EXPECT($L63, fail, 'BinaryOpSymbol "==="');
6456
- var BinaryOpSymbol$19 = $TV($EXPECT($L64, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6569
+ var BinaryOpSymbol$18 = $EXPECT($L64, fail, 'BinaryOpSymbol "==="');
6570
+ var BinaryOpSymbol$19 = $TV($EXPECT($L65, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6457
6571
  if (module.config.coffeeEq)
6458
6572
  return "===";
6459
6573
  return $1;
6460
6574
  });
6461
- var BinaryOpSymbol$20 = $T($S($EXPECT($L65, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6575
+ var BinaryOpSymbol$20 = $T($S($EXPECT($L66, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6462
6576
  return "&&";
6463
6577
  });
6464
- var BinaryOpSymbol$21 = $EXPECT($L66, fail, 'BinaryOpSymbol "&&"');
6465
- var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L67, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6578
+ var BinaryOpSymbol$21 = $EXPECT($L67, fail, 'BinaryOpSymbol "&&"');
6579
+ var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L68, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6466
6580
  return "in";
6467
6581
  });
6468
- var BinaryOpSymbol$23 = $T($S($EXPECT($L68, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6582
+ var BinaryOpSymbol$23 = $T($S($EXPECT($L69, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6469
6583
  return "||";
6470
6584
  });
6471
- var BinaryOpSymbol$24 = $EXPECT($L69, fail, 'BinaryOpSymbol "||"');
6472
- var BinaryOpSymbol$25 = $EXPECT($L70, fail, 'BinaryOpSymbol "??"');
6473
- var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L71, fail, 'BinaryOpSymbol "?"')), function(value) {
6585
+ var BinaryOpSymbol$24 = $EXPECT($L70, fail, 'BinaryOpSymbol "||"');
6586
+ var BinaryOpSymbol$25 = $EXPECT($L71, fail, 'BinaryOpSymbol "??"');
6587
+ var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L1, fail, 'BinaryOpSymbol "?"')), function(value) {
6474
6588
  return "??";
6475
6589
  });
6476
6590
  var BinaryOpSymbol$27 = $TS($S($EXPECT($L72, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
@@ -6483,7 +6597,7 @@ ${input.slice(result.pos)}
6483
6597
  special: true
6484
6598
  };
6485
6599
  });
6486
- var BinaryOpSymbol$29 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L73, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L73, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L67, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
6600
+ var BinaryOpSymbol$29 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L73, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L73, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L68, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
6487
6601
  return {
6488
6602
  $loc,
6489
6603
  token: "in",
@@ -6707,7 +6821,7 @@ ${input.slice(result.pos)}
6707
6821
  return result;
6708
6822
  }
6709
6823
  }
6710
- var BlockStatement$0 = $T($S(ExplicitBlock, $N($S(__, $EXPECT($L25, fail, 'BlockStatement "="')))), function(value) {
6824
+ var BlockStatement$0 = $T($S(ExplicitBlock, $N($S(__, $EXPECT($L26, fail, 'BlockStatement "="')))), function(value) {
6711
6825
  return value[0];
6712
6826
  });
6713
6827
  function BlockStatement(state) {
@@ -8103,7 +8217,7 @@ ${input.slice(result.pos)}
8103
8217
  return result;
8104
8218
  }
8105
8219
  }
8106
- var NoExpressions$0 = $T($EXPECT($L1, fail, 'NoExpressions ""'), function(value) {
8220
+ var NoExpressions$0 = $T($EXPECT($L14, fail, 'NoExpressions ""'), function(value) {
8107
8221
  return [];
8108
8222
  });
8109
8223
  function NoExpressions(state) {
@@ -8129,7 +8243,7 @@ ${input.slice(result.pos)}
8129
8243
  }
8130
8244
  }
8131
8245
  var ImpliedColon$0 = $S(__, Colon);
8132
- var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8246
+ var ImpliedColon$1 = $TV($EXPECT($L14, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8133
8247
  return { $loc, token: ":" };
8134
8248
  });
8135
8249
  function ImpliedColon(state) {
@@ -8381,7 +8495,7 @@ ${input.slice(result.pos)}
8381
8495
  return result;
8382
8496
  }
8383
8497
  }
8384
- var SuppressIndentedApplication$0 = $TV($EXPECT($L1, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8498
+ var SuppressIndentedApplication$0 = $TV($EXPECT($L14, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8385
8499
  module.suppressIndentedApplication = true;
8386
8500
  });
8387
8501
  function SuppressIndentedApplication(state) {
@@ -8406,6 +8520,84 @@ ${input.slice(result.pos)}
8406
8520
  return result;
8407
8521
  }
8408
8522
  }
8523
+ var IndentedApplicationAllowed$0 = $TV($EXPECT($L14, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
8524
+ if (module.suppressIndentedApplication)
8525
+ return $skip;
8526
+ return;
8527
+ });
8528
+ function IndentedApplicationAllowed(state) {
8529
+ let eventData;
8530
+ if (state.events) {
8531
+ const result = state.events.enter?.("IndentedApplicationAllowed", state);
8532
+ if (result) {
8533
+ if (result.cache)
8534
+ return result.cache;
8535
+ eventData = result.data;
8536
+ }
8537
+ }
8538
+ if (state.tokenize) {
8539
+ const result = $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
8540
+ if (state.events)
8541
+ state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
8542
+ return result;
8543
+ } else {
8544
+ const result = IndentedApplicationAllowed$0(state);
8545
+ if (state.events)
8546
+ state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
8547
+ return result;
8548
+ }
8549
+ }
8550
+ var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L14, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
8551
+ module.suppressTrailingMemberProperty.push(true);
8552
+ });
8553
+ function SuppressTrailingMemberProperty(state) {
8554
+ let eventData;
8555
+ if (state.events) {
8556
+ const result = state.events.enter?.("SuppressTrailingMemberProperty", state);
8557
+ if (result) {
8558
+ if (result.cache)
8559
+ return result.cache;
8560
+ eventData = result.data;
8561
+ }
8562
+ }
8563
+ if (state.tokenize) {
8564
+ const result = $TOKEN("SuppressTrailingMemberProperty", state, SuppressTrailingMemberProperty$0(state));
8565
+ if (state.events)
8566
+ state.events.exit?.("SuppressTrailingMemberProperty", state, result, eventData);
8567
+ return result;
8568
+ } else {
8569
+ const result = SuppressTrailingMemberProperty$0(state);
8570
+ if (state.events)
8571
+ state.events.exit?.("SuppressTrailingMemberProperty", state, result, eventData);
8572
+ return result;
8573
+ }
8574
+ }
8575
+ var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L14, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
8576
+ if (module.trailingMemberPropertySuppressed)
8577
+ return $skip;
8578
+ });
8579
+ function TrailingMemberPropertyAllowed(state) {
8580
+ let eventData;
8581
+ if (state.events) {
8582
+ const result = state.events.enter?.("TrailingMemberPropertyAllowed", state);
8583
+ if (result) {
8584
+ if (result.cache)
8585
+ return result.cache;
8586
+ eventData = result.data;
8587
+ }
8588
+ }
8589
+ if (state.tokenize) {
8590
+ const result = $TOKEN("TrailingMemberPropertyAllowed", state, TrailingMemberPropertyAllowed$0(state));
8591
+ if (state.events)
8592
+ state.events.exit?.("TrailingMemberPropertyAllowed", state, result, eventData);
8593
+ return result;
8594
+ } else {
8595
+ const result = TrailingMemberPropertyAllowed$0(state);
8596
+ if (state.events)
8597
+ state.events.exit?.("TrailingMemberPropertyAllowed", state, result, eventData);
8598
+ return result;
8599
+ }
8600
+ }
8409
8601
  var ExpressionStatement$0 = Expression;
8410
8602
  function ExpressionStatement(state) {
8411
8603
  let eventData;
@@ -8589,7 +8781,7 @@ ${input.slice(result.pos)}
8589
8781
  return result;
8590
8782
  }
8591
8783
  }
8592
- var ImpliedImport$0 = $TV($EXPECT($L1, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8784
+ var ImpliedImport$0 = $TV($EXPECT($L14, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8593
8785
  return { $loc, token: "import " };
8594
8786
  });
8595
8787
  function ImpliedImport(state) {
@@ -9970,7 +10162,7 @@ ${input.slice(result.pos)}
9970
10162
  }
9971
10163
  }
9972
10164
  var RegularExpressionLiteral$0 = HeregexLiteral;
9973
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L49, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L49, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10165
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L50, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L50, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
9974
10166
  return { $loc, token: $1 };
9975
10167
  });
9976
10168
  function RegularExpressionLiteral(state) {
@@ -10893,7 +11085,7 @@ ${input.slice(result.pos)}
10893
11085
  return result;
10894
11086
  }
10895
11087
  }
10896
- var Loc$0 = $TV($EXPECT($L1, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
11088
+ var Loc$0 = $TV($EXPECT($L14, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
10897
11089
  return { $loc, token: "" };
10898
11090
  });
10899
11091
  function Loc(state) {
@@ -11218,7 +11410,7 @@ ${input.slice(result.pos)}
11218
11410
  return result;
11219
11411
  }
11220
11412
  }
11221
- var CloseBrace$0 = $TV($EXPECT($L16, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11413
+ var CloseBrace$0 = $TV($EXPECT($L17, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11222
11414
  return { $loc, token: $1 };
11223
11415
  });
11224
11416
  function CloseBrace(state) {
@@ -11243,7 +11435,7 @@ ${input.slice(result.pos)}
11243
11435
  return result;
11244
11436
  }
11245
11437
  }
11246
- var CloseBracket$0 = $TV($EXPECT($L27, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11438
+ var CloseBracket$0 = $TV($EXPECT($L28, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11247
11439
  return { $loc, token: $1 };
11248
11440
  });
11249
11441
  function CloseBracket(state) {
@@ -11268,7 +11460,7 @@ ${input.slice(result.pos)}
11268
11460
  return result;
11269
11461
  }
11270
11462
  }
11271
- var CloseParen$0 = $TV($EXPECT($L14, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11463
+ var CloseParen$0 = $TV($EXPECT($L15, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11272
11464
  return { $loc, token: $1 };
11273
11465
  });
11274
11466
  function CloseParen(state) {
@@ -11318,7 +11510,7 @@ ${input.slice(result.pos)}
11318
11510
  return result;
11319
11511
  }
11320
11512
  }
11321
- var Colon$0 = $TV($EXPECT($L28, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
11513
+ var Colon$0 = $TV($EXPECT($L29, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
11322
11514
  return { $loc, token: $1 };
11323
11515
  });
11324
11516
  function Colon(state) {
@@ -11593,7 +11785,7 @@ ${input.slice(result.pos)}
11593
11785
  return result;
11594
11786
  }
11595
11787
  }
11596
- var Equals$0 = $TV($EXPECT($L25, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
11788
+ var Equals$0 = $TV($EXPECT($L26, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
11597
11789
  return { $loc, token: $1 };
11598
11790
  });
11599
11791
  function Equals(state) {
@@ -11943,7 +12135,7 @@ ${input.slice(result.pos)}
11943
12135
  return result;
11944
12136
  }
11945
12137
  }
11946
- var Of$0 = $TS($S($EXPECT($L67, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12138
+ var Of$0 = $TS($S($EXPECT($L68, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11947
12139
  return { $loc, token: $1 };
11948
12140
  });
11949
12141
  function Of(state) {
@@ -12168,7 +12360,7 @@ ${input.slice(result.pos)}
12168
12360
  return result;
12169
12361
  }
12170
12362
  }
12171
- var QuestionMark$0 = $TV($EXPECT($L71, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12363
+ var QuestionMark$0 = $TV($EXPECT($L1, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12172
12364
  return { $loc, token: $1 };
12173
12365
  });
12174
12366
  function QuestionMark(state) {
@@ -12318,7 +12510,7 @@ ${input.slice(result.pos)}
12318
12510
  return result;
12319
12511
  }
12320
12512
  }
12321
- var Star$0 = $TV($EXPECT($L48, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12513
+ var Star$0 = $TV($EXPECT($L49, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12322
12514
  return { $loc, token: $1 };
12323
12515
  });
12324
12516
  function Star(state) {
@@ -12914,22 +13106,36 @@ ${input.slice(result.pos)}
12914
13106
  }
12915
13107
  }
12916
13108
  var JSXElement$0 = JSXSelfClosingElement;
12917
- var JSXElement$1 = $TS($S(JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
12918
- if ($1[1] !== $4[2])
13109
+ var JSXElement$1 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningElement, $E(JSXMixedChildren), JSXOptionalClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13110
+ var open = $2;
13111
+ var children = $3;
13112
+ var close = $4;
13113
+ module.JSXTagStack.pop();
13114
+ if (!children)
12919
13115
  return $skip;
12920
- return { type: "JSXElement", children: $0 };
12921
- });
12922
- var JSXElement$2 = $TS($S(JSXOpeningElement, JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
12923
- var open = $1;
12924
- var children = $2;
12925
- return {
12926
- type: "JSXElement",
12927
- children: children.jsxChildren.length ? [...$0, ["</", open[1], ">"]] : [open.slice(0, -1), " />"]
12928
- };
13116
+ $0 = $0.slice(1);
13117
+ let parts;
13118
+ if (close) {
13119
+ parts = $0;
13120
+ } else if (children.jsxChildren.length) {
13121
+ parts = [
13122
+ ...$0,
13123
+ "\n",
13124
+ module.currentIndent.token,
13125
+ ["</", open[1], ">"]
13126
+ ];
13127
+ } else {
13128
+ parts = [open.slice(0, -1), " />"];
13129
+ }
13130
+ return { type: "JSXElement", children: parts, tag: open[1] };
12929
13131
  });
12930
- var JSXElement$3 = $TV(JSXOpeningElement, function($skip, $loc, $0, $1) {
12931
- var elt = $0;
12932
- throw new Error(`could not parse JSX element "${elt[0]}${elt[1]}${elt[elt.length - 1]}" at pos ${$loc.pos}`);
13132
+ var JSXElement$2 = $TS($S(CoffeeJSXEnabled, JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13133
+ var open = $2;
13134
+ var close = $5;
13135
+ $0 = $0.slice(1);
13136
+ if (open[1] !== close[2])
13137
+ return $skip;
13138
+ return { type: "JSXElement", children: $0, tag: open[1] };
12933
13139
  });
12934
13140
  function JSXElement(state) {
12935
13141
  let eventData;
@@ -12942,19 +13148,19 @@ ${input.slice(result.pos)}
12942
13148
  }
12943
13149
  }
12944
13150
  if (state.tokenize) {
12945
- const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state));
13151
+ const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state));
12946
13152
  if (state.events)
12947
13153
  state.events.exit?.("JSXElement", state, result, eventData);
12948
13154
  return result;
12949
13155
  } else {
12950
- const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state);
13156
+ const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state);
12951
13157
  if (state.events)
12952
13158
  state.events.exit?.("JSXElement", state, result, eventData);
12953
13159
  return result;
12954
13160
  }
12955
13161
  }
12956
13162
  var JSXSelfClosingElement$0 = $TS($S($EXPECT($L122, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L154, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12957
- return { type: "JSXElement", children: $0 };
13163
+ return { type: "JSXElement", children: $0, tag: $2 };
12958
13164
  });
12959
13165
  function JSXSelfClosingElement(state) {
12960
13166
  let eventData;
@@ -12978,7 +13184,33 @@ ${input.slice(result.pos)}
12978
13184
  return result;
12979
13185
  }
12980
13186
  }
12981
- var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L26, fail, 'JSXOpeningElement ">"'));
13187
+ var PushJSXOpeningElement$0 = $TS($S(JSXOpeningElement), function($skip, $loc, $0, $1) {
13188
+ module.JSXTagStack.push($1[1]);
13189
+ return $1;
13190
+ });
13191
+ function PushJSXOpeningElement(state) {
13192
+ let eventData;
13193
+ if (state.events) {
13194
+ const result = state.events.enter?.("PushJSXOpeningElement", state);
13195
+ if (result) {
13196
+ if (result.cache)
13197
+ return result.cache;
13198
+ eventData = result.data;
13199
+ }
13200
+ }
13201
+ if (state.tokenize) {
13202
+ const result = $TOKEN("PushJSXOpeningElement", state, PushJSXOpeningElement$0(state));
13203
+ if (state.events)
13204
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13205
+ return result;
13206
+ } else {
13207
+ const result = PushJSXOpeningElement$0(state);
13208
+ if (state.events)
13209
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13210
+ return result;
13211
+ }
13212
+ }
13213
+ var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L27, fail, 'JSXOpeningElement ">"'));
12982
13214
  function JSXOpeningElement(state) {
12983
13215
  let eventData;
12984
13216
  if (state.events) {
@@ -13001,7 +13233,36 @@ ${input.slice(result.pos)}
13001
13233
  return result;
13002
13234
  }
13003
13235
  }
13004
- var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L26, fail, 'JSXClosingElement ">"'));
13236
+ var JSXOptionalClosingElement$0 = $TS($S($E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2) {
13237
+ var close = $2;
13238
+ if (module.currentJSXTag !== close[2])
13239
+ return $skip;
13240
+ return $0;
13241
+ });
13242
+ var JSXOptionalClosingElement$1 = $EXPECT($L14, fail, 'JSXOptionalClosingElement ""');
13243
+ function JSXOptionalClosingElement(state) {
13244
+ let eventData;
13245
+ if (state.events) {
13246
+ const result = state.events.enter?.("JSXOptionalClosingElement", state);
13247
+ if (result) {
13248
+ if (result.cache)
13249
+ return result.cache;
13250
+ eventData = result.data;
13251
+ }
13252
+ }
13253
+ if (state.tokenize) {
13254
+ const result = $TOKEN("JSXOptionalClosingElement", state, JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state));
13255
+ if (state.events)
13256
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13257
+ return result;
13258
+ } else {
13259
+ const result = JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state);
13260
+ if (state.events)
13261
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13262
+ return result;
13263
+ }
13264
+ }
13265
+ var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L27, fail, 'JSXClosingElement ">"'));
13005
13266
  function JSXClosingElement(state) {
13006
13267
  let eventData;
13007
13268
  if (state.events) {
@@ -13024,15 +13285,30 @@ ${input.slice(result.pos)}
13024
13285
  return result;
13025
13286
  }
13026
13287
  }
13027
- var JSXFragment$0 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), $EXPECT($L157, fail, 'JSXFragment "</>"')), function($skip, $loc, $0, $1, $2, $3, $4) {
13028
- if ($2) {
13029
- return { type: "JSXFragment", children: $0, jsxChildren: $2.jsxChildren };
13030
- } else {
13031
- return { type: "JSXFragment", children: $0, jsxChildren: [] };
13032
- }
13288
+ var JSXFragment$0 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningFragment, $E(JSXMixedChildren), JSXOptionalClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4) {
13289
+ var open = $2;
13290
+ var children = $3;
13291
+ var close = $4;
13292
+ module.JSXTagStack.pop();
13293
+ if (!children)
13294
+ return $skip;
13295
+ $0 = $0.slice(1);
13296
+ const parts = close ? $0 : [
13297
+ ...$0,
13298
+ "\n",
13299
+ module.currentIndent.token,
13300
+ "</>"
13301
+ ];
13302
+ return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13033
13303
  });
13034
- var JSXFragment$1 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13035
- return { type: "JSXFragment", children: [...$0, "</>"], jsxChildren: $2.jsxChildren };
13304
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13305
+ var children = $3;
13306
+ $0 = $0.slice(1);
13307
+ return {
13308
+ type: "JSXFragment",
13309
+ children: $0,
13310
+ jsxChildren: children ? children.jsxChildren : []
13311
+ };
13036
13312
  });
13037
13313
  function JSXFragment(state) {
13038
13314
  let eventData;
@@ -13056,6 +13332,83 @@ ${input.slice(result.pos)}
13056
13332
  return result;
13057
13333
  }
13058
13334
  }
13335
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L156, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13336
+ module.JSXTagStack.push("");
13337
+ return $1;
13338
+ });
13339
+ function PushJSXOpeningFragment(state) {
13340
+ let eventData;
13341
+ if (state.events) {
13342
+ const result = state.events.enter?.("PushJSXOpeningFragment", state);
13343
+ if (result) {
13344
+ if (result.cache)
13345
+ return result.cache;
13346
+ eventData = result.data;
13347
+ }
13348
+ }
13349
+ if (state.tokenize) {
13350
+ const result = $TOKEN("PushJSXOpeningFragment", state, PushJSXOpeningFragment$0(state));
13351
+ if (state.events)
13352
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13353
+ return result;
13354
+ } else {
13355
+ const result = PushJSXOpeningFragment$0(state);
13356
+ if (state.events)
13357
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13358
+ return result;
13359
+ }
13360
+ }
13361
+ var JSXOptionalClosingFragment$0 = $TS($S($E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2) {
13362
+ if (module.currentJSXTag !== "")
13363
+ return $skip;
13364
+ return $0;
13365
+ });
13366
+ var JSXOptionalClosingFragment$1 = $EXPECT($L14, fail, 'JSXOptionalClosingFragment ""');
13367
+ function JSXOptionalClosingFragment(state) {
13368
+ let eventData;
13369
+ if (state.events) {
13370
+ const result = state.events.enter?.("JSXOptionalClosingFragment", state);
13371
+ if (result) {
13372
+ if (result.cache)
13373
+ return result.cache;
13374
+ eventData = result.data;
13375
+ }
13376
+ }
13377
+ if (state.tokenize) {
13378
+ const result = $TOKEN("JSXOptionalClosingFragment", state, JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state));
13379
+ if (state.events)
13380
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13381
+ return result;
13382
+ } else {
13383
+ const result = JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state);
13384
+ if (state.events)
13385
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13386
+ return result;
13387
+ }
13388
+ }
13389
+ var JSXClosingFragment$0 = $EXPECT($L157, fail, 'JSXClosingFragment "</>"');
13390
+ function JSXClosingFragment(state) {
13391
+ let eventData;
13392
+ if (state.events) {
13393
+ const result = state.events.enter?.("JSXClosingFragment", state);
13394
+ if (result) {
13395
+ if (result.cache)
13396
+ return result.cache;
13397
+ eventData = result.data;
13398
+ }
13399
+ }
13400
+ if (state.tokenize) {
13401
+ const result = $TOKEN("JSXClosingFragment", state, JSXClosingFragment$0(state));
13402
+ if (state.events)
13403
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13404
+ return result;
13405
+ } else {
13406
+ const result = JSXClosingFragment$0(state);
13407
+ if (state.events)
13408
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13409
+ return result;
13410
+ }
13411
+ }
13059
13412
  var JSXElementName$0 = $S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName))));
13060
13413
  function JSXElementName(state) {
13061
13414
  let eventData;
@@ -13772,7 +14125,7 @@ ${input.slice(result.pos)}
13772
14125
  return result;
13773
14126
  }
13774
14127
  }
13775
- var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(Nested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
14128
+ var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(JSXNested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13776
14129
  if ($2.length) {
13777
14130
  return {
13778
14131
  children: $2,
@@ -13781,7 +14134,7 @@ ${input.slice(result.pos)}
13781
14134
  }
13782
14135
  return $skip;
13783
14136
  });
13784
- var JSXNestedChildren$1 = $TV($Y($C(EOS, $EXPECT($L16, fail, 'JSXNestedChildren "}"'))), function($skip, $loc, $0, $1) {
14137
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
13785
14138
  return { children: [], jsxChildren: [] };
13786
14139
  });
13787
14140
  function JSXNestedChildren(state) {
@@ -13806,6 +14159,60 @@ ${input.slice(result.pos)}
13806
14159
  return result;
13807
14160
  }
13808
14161
  }
14162
+ var JSXEOS$0 = $P($S($E(NonNewlineWhitespace), EOL));
14163
+ function JSXEOS(state) {
14164
+ let eventData;
14165
+ if (state.events) {
14166
+ const result = state.events.enter?.("JSXEOS", state);
14167
+ if (result) {
14168
+ if (result.cache)
14169
+ return result.cache;
14170
+ eventData = result.data;
14171
+ }
14172
+ }
14173
+ if (state.tokenize) {
14174
+ const result = $TOKEN("JSXEOS", state, JSXEOS$0(state));
14175
+ if (state.events)
14176
+ state.events.exit?.("JSXEOS", state, result, eventData);
14177
+ return result;
14178
+ } else {
14179
+ const result = JSXEOS$0(state);
14180
+ if (state.events)
14181
+ state.events.exit?.("JSXEOS", state, result, eventData);
14182
+ return result;
14183
+ }
14184
+ }
14185
+ var JSXNested$0 = $TS($S(JSXEOS, Indent), function($skip, $loc, $0, $1, $2) {
14186
+ var eos = $1;
14187
+ var indent = $2;
14188
+ const { level } = indent;
14189
+ const currentIndent = module.currentIndent;
14190
+ if (level !== currentIndent.level)
14191
+ return $skip;
14192
+ return $0;
14193
+ });
14194
+ function JSXNested(state) {
14195
+ let eventData;
14196
+ if (state.events) {
14197
+ const result = state.events.enter?.("JSXNested", state);
14198
+ if (result) {
14199
+ if (result.cache)
14200
+ return result.cache;
14201
+ eventData = result.data;
14202
+ }
14203
+ }
14204
+ if (state.tokenize) {
14205
+ const result = $TOKEN("JSXNested", state, JSXNested$0(state));
14206
+ if (state.events)
14207
+ state.events.exit?.("JSXNested", state, result, eventData);
14208
+ return result;
14209
+ } else {
14210
+ const result = JSXNested$0(state);
14211
+ if (state.events)
14212
+ state.events.exit?.("JSXNested", state, result, eventData);
14213
+ return result;
14214
+ }
14215
+ }
13809
14216
  var JSXChild$0 = JSXElement;
13810
14217
  var JSXChild$1 = JSXFragment;
13811
14218
  var JSXChild$2 = JSXComment;
@@ -13985,7 +14392,7 @@ ${input.slice(result.pos)}
13985
14392
  return result;
13986
14393
  }
13987
14394
  }
13988
- var NestedJSXChildExpression$0 = $S(Nested, JSXChildExpression);
14395
+ var NestedJSXChildExpression$0 = $S(JSXNested, JSXChildExpression);
13989
14396
  function NestedJSXChildExpression(state) {
13990
14397
  let eventData;
13991
14398
  if (state.events) {
@@ -14945,7 +15352,7 @@ ${input.slice(result.pos)}
14945
15352
  return result;
14946
15353
  }
14947
15354
  }
14948
- var TypeArguments$0 = $TS($S($EXPECT($L122, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L26, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
15355
+ var TypeArguments$0 = $TS($S($EXPECT($L122, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L27, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
14949
15356
  return { ts: true, children: $0 };
14950
15357
  });
14951
15358
  function TypeArguments(state) {
@@ -15016,7 +15423,7 @@ ${input.slice(result.pos)}
15016
15423
  return result;
15017
15424
  }
15018
15425
  }
15019
- var TypeParameters$0 = $TS($S(__, $EXPECT($L122, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L26, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15426
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L122, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15020
15427
  var parameters = $3;
15021
15428
  return {
15022
15429
  type: "TypeParameters",
@@ -15093,7 +15500,7 @@ ${input.slice(result.pos)}
15093
15500
  return result;
15094
15501
  }
15095
15502
  }
15096
- var TypeInitializer$0 = $S(__, $EXPECT($L25, fail, 'TypeInitializer "="'), Type);
15503
+ var TypeInitializer$0 = $S(__, $EXPECT($L26, fail, 'TypeInitializer "="'), Type);
15097
15504
  function TypeInitializer(state) {
15098
15505
  let eventData;
15099
15506
  if (state.events) {
@@ -15117,7 +15524,7 @@ ${input.slice(result.pos)}
15117
15524
  }
15118
15525
  }
15119
15526
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
15120
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'TypeParameterDelimiter ">"')));
15527
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
15121
15528
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
15122
15529
  return value[1];
15123
15530
  });
@@ -15143,6 +15550,31 @@ ${input.slice(result.pos)}
15143
15550
  return result;
15144
15551
  }
15145
15552
  }
15553
+ var ThisType$0 = $T($S($C(This, AtThis), Colon, Type), function(value) {
15554
+ return { "type": "ThisType", "ts": true, "children": value };
15555
+ });
15556
+ function ThisType(state) {
15557
+ let eventData;
15558
+ if (state.events) {
15559
+ const result = state.events.enter?.("ThisType", state);
15560
+ if (result) {
15561
+ if (result.cache)
15562
+ return result.cache;
15563
+ eventData = result.data;
15564
+ }
15565
+ }
15566
+ if (state.tokenize) {
15567
+ const result = $TOKEN("ThisType", state, ThisType$0(state));
15568
+ if (state.events)
15569
+ state.events.exit?.("ThisType", state, result, eventData);
15570
+ return result;
15571
+ } else {
15572
+ const result = ThisType$0(state);
15573
+ if (state.events)
15574
+ state.events.exit?.("ThisType", state, result, eventData);
15575
+ return result;
15576
+ }
15577
+ }
15146
15578
  var Shebang$0 = $S($R$0($EXPECT($R52, fail, "Shebang /#![^\\r\\n]*/")), EOL);
15147
15579
  function Shebang(state) {
15148
15580
  let eventData;
@@ -15357,7 +15789,7 @@ ${input.slice(result.pos)}
15357
15789
  return result;
15358
15790
  }
15359
15791
  }
15360
- var Debugger$0 = $TV($EXPECT($L1, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
15792
+ var Debugger$0 = $TV($EXPECT($L14, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
15361
15793
  debugger;
15362
15794
  });
15363
15795
  function Debugger(state) {
@@ -15382,7 +15814,7 @@ ${input.slice(result.pos)}
15382
15814
  return result;
15383
15815
  }
15384
15816
  }
15385
- var InsertOpenParen$0 = $TV($EXPECT($L1, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
15817
+ var InsertOpenParen$0 = $TV($EXPECT($L14, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
15386
15818
  return { $loc, token: "(" };
15387
15819
  });
15388
15820
  function InsertOpenParen(state) {
@@ -15407,7 +15839,7 @@ ${input.slice(result.pos)}
15407
15839
  return result;
15408
15840
  }
15409
15841
  }
15410
- var InsertCloseParen$0 = $TV($EXPECT($L1, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
15842
+ var InsertCloseParen$0 = $TV($EXPECT($L14, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
15411
15843
  return { $loc, token: ")" };
15412
15844
  });
15413
15845
  function InsertCloseParen(state) {
@@ -15432,7 +15864,7 @@ ${input.slice(result.pos)}
15432
15864
  return result;
15433
15865
  }
15434
15866
  }
15435
- var InsertOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
15867
+ var InsertOpenBrace$0 = $TV($EXPECT($L14, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
15436
15868
  return [{ $loc, token: " " }, { $loc, token: "{" }];
15437
15869
  });
15438
15870
  function InsertOpenBrace(state) {
@@ -15457,7 +15889,7 @@ ${input.slice(result.pos)}
15457
15889
  return result;
15458
15890
  }
15459
15891
  }
15460
- var InsertInlineOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
15892
+ var InsertInlineOpenBrace$0 = $TV($EXPECT($L14, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
15461
15893
  return { $loc, token: "{" };
15462
15894
  });
15463
15895
  function InsertInlineOpenBrace(state) {
@@ -15482,7 +15914,7 @@ ${input.slice(result.pos)}
15482
15914
  return result;
15483
15915
  }
15484
15916
  }
15485
- var InsertCloseBrace$0 = $TV($EXPECT($L1, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
15917
+ var InsertCloseBrace$0 = $TV($EXPECT($L14, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
15486
15918
  return { $loc, token: "}" };
15487
15919
  });
15488
15920
  function InsertCloseBrace(state) {
@@ -15507,7 +15939,7 @@ ${input.slice(result.pos)}
15507
15939
  return result;
15508
15940
  }
15509
15941
  }
15510
- var InsertComma$0 = $TV($EXPECT($L1, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
15942
+ var InsertComma$0 = $TV($EXPECT($L14, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
15511
15943
  return { $loc, token: "," };
15512
15944
  });
15513
15945
  function InsertComma(state) {
@@ -15532,7 +15964,7 @@ ${input.slice(result.pos)}
15532
15964
  return result;
15533
15965
  }
15534
15966
  }
15535
- var InsertConst$0 = $TV($EXPECT($L1, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
15967
+ var InsertConst$0 = $TV($EXPECT($L14, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
15536
15968
  return { $loc, token: "const " };
15537
15969
  });
15538
15970
  function InsertConst(state) {
@@ -15557,7 +15989,7 @@ ${input.slice(result.pos)}
15557
15989
  return result;
15558
15990
  }
15559
15991
  }
15560
- var InsertLet$0 = $TV($EXPECT($L1, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
15992
+ var InsertLet$0 = $TV($EXPECT($L14, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
15561
15993
  return { $loc, token: "let " };
15562
15994
  });
15563
15995
  function InsertLet(state) {
@@ -15582,7 +16014,7 @@ ${input.slice(result.pos)}
15582
16014
  return result;
15583
16015
  }
15584
16016
  }
15585
- var InsertReadonly$0 = $TV($EXPECT($L1, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
16017
+ var InsertReadonly$0 = $TV($EXPECT($L14, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
15586
16018
  return { ts: true, children: [{ $loc, token: "readonly " }] };
15587
16019
  });
15588
16020
  function InsertReadonly(state) {
@@ -15607,7 +16039,7 @@ ${input.slice(result.pos)}
15607
16039
  return result;
15608
16040
  }
15609
16041
  }
15610
- var InsertNewline$0 = $TV($EXPECT($L1, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
16042
+ var InsertNewline$0 = $TV($EXPECT($L14, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
15611
16043
  return "\n";
15612
16044
  });
15613
16045
  function InsertNewline(state) {
@@ -15632,7 +16064,7 @@ ${input.slice(result.pos)}
15632
16064
  return result;
15633
16065
  }
15634
16066
  }
15635
- var InsertIndent$0 = $TV($EXPECT($L1, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
16067
+ var InsertIndent$0 = $TV($EXPECT($L14, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
15636
16068
  return module.currentIndent.token;
15637
16069
  });
15638
16070
  function InsertIndent(state) {
@@ -15657,7 +16089,7 @@ ${input.slice(result.pos)}
15657
16089
  return result;
15658
16090
  }
15659
16091
  }
15660
- var InsertSpace$0 = $TV($EXPECT($L1, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
16092
+ var InsertSpace$0 = $TV($EXPECT($L14, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
15661
16093
  return { $loc, token: " " };
15662
16094
  });
15663
16095
  function InsertSpace(state) {
@@ -15682,7 +16114,7 @@ ${input.slice(result.pos)}
15682
16114
  return result;
15683
16115
  }
15684
16116
  }
15685
- var InsertDot$0 = $TV($EXPECT($L1, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
16117
+ var InsertDot$0 = $TV($EXPECT($L14, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
15686
16118
  return { $loc, token: "." };
15687
16119
  });
15688
16120
  function InsertDot(state) {
@@ -15707,7 +16139,7 @@ ${input.slice(result.pos)}
15707
16139
  return result;
15708
16140
  }
15709
16141
  }
15710
- var InsertBreak$0 = $TV($EXPECT($L1, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
16142
+ var InsertBreak$0 = $TV($EXPECT($L14, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
15711
16143
  return { $loc, token: ";break;" };
15712
16144
  });
15713
16145
  function InsertBreak(state) {
@@ -15732,7 +16164,7 @@ ${input.slice(result.pos)}
15732
16164
  return result;
15733
16165
  }
15734
16166
  }
15735
- var InsertVar$0 = $TV($EXPECT($L1, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
16167
+ var InsertVar$0 = $TV($EXPECT($L14, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
15736
16168
  return { $loc, token: "var " };
15737
16169
  });
15738
16170
  function InsertVar(state) {
@@ -15757,7 +16189,7 @@ ${input.slice(result.pos)}
15757
16189
  return result;
15758
16190
  }
15759
16191
  }
15760
- var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
16192
+ var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
15761
16193
  if (module.config.coffeeBinaryExistential)
15762
16194
  return;
15763
16195
  return $skip;
@@ -15784,7 +16216,7 @@ ${input.slice(result.pos)}
15784
16216
  return result;
15785
16217
  }
15786
16218
  }
15787
- var CoffeeBooleansEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
16219
+ var CoffeeBooleansEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
15788
16220
  if (module.config.coffeeBooleans)
15789
16221
  return;
15790
16222
  return $skip;
@@ -15811,7 +16243,7 @@ ${input.slice(result.pos)}
15811
16243
  return result;
15812
16244
  }
15813
16245
  }
15814
- var CoffeeClassesEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
16246
+ var CoffeeClassesEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
15815
16247
  if (module.config.coffeeClasses)
15816
16248
  return;
15817
16249
  return $skip;
@@ -15838,7 +16270,7 @@ ${input.slice(result.pos)}
15838
16270
  return result;
15839
16271
  }
15840
16272
  }
15841
- var CoffeeCommentEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
16273
+ var CoffeeCommentEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
15842
16274
  if (module.config.coffeeComment)
15843
16275
  return;
15844
16276
  return $skip;
@@ -15865,7 +16297,7 @@ ${input.slice(result.pos)}
15865
16297
  return result;
15866
16298
  }
15867
16299
  }
15868
- var CoffeeDoEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
16300
+ var CoffeeDoEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
15869
16301
  if (module.config.coffeeDo)
15870
16302
  return;
15871
16303
  return $skip;
@@ -15892,7 +16324,7 @@ ${input.slice(result.pos)}
15892
16324
  return result;
15893
16325
  }
15894
16326
  }
15895
- var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
16327
+ var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
15896
16328
  if (module.config.coffeeForLoops)
15897
16329
  return;
15898
16330
  return $skip;
@@ -15919,7 +16351,7 @@ ${input.slice(result.pos)}
15919
16351
  return result;
15920
16352
  }
15921
16353
  }
15922
- var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
16354
+ var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
15923
16355
  if (module.config.coffeeInterpolation)
15924
16356
  return;
15925
16357
  return $skip;
@@ -15946,7 +16378,7 @@ ${input.slice(result.pos)}
15946
16378
  return result;
15947
16379
  }
15948
16380
  }
15949
- var CoffeeIsntEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
16381
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
15950
16382
  if (module.config.coffeeIsnt)
15951
16383
  return;
15952
16384
  return $skip;
@@ -15973,7 +16405,34 @@ ${input.slice(result.pos)}
15973
16405
  return result;
15974
16406
  }
15975
16407
  }
15976
- var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16408
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16409
+ if (module.config.coffeeJSX)
16410
+ return;
16411
+ return $skip;
16412
+ });
16413
+ function CoffeeJSXEnabled(state) {
16414
+ let eventData;
16415
+ if (state.events) {
16416
+ const result = state.events.enter?.("CoffeeJSXEnabled", state);
16417
+ if (result) {
16418
+ if (result.cache)
16419
+ return result.cache;
16420
+ eventData = result.data;
16421
+ }
16422
+ }
16423
+ if (state.tokenize) {
16424
+ const result = $TOKEN("CoffeeJSXEnabled", state, CoffeeJSXEnabled$0(state));
16425
+ if (state.events)
16426
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16427
+ return result;
16428
+ } else {
16429
+ const result = CoffeeJSXEnabled$0(state);
16430
+ if (state.events)
16431
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16432
+ return result;
16433
+ }
16434
+ }
16435
+ var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
15977
16436
  if (module.config.coffeeLineContinuation)
15978
16437
  return;
15979
16438
  return $skip;
@@ -16000,7 +16459,7 @@ ${input.slice(result.pos)}
16000
16459
  return result;
16001
16460
  }
16002
16461
  }
16003
- var CoffeeNotEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16462
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16004
16463
  if (module.config.coffeeNot)
16005
16464
  return;
16006
16465
  return $skip;
@@ -16027,7 +16486,7 @@ ${input.slice(result.pos)}
16027
16486
  return result;
16028
16487
  }
16029
16488
  }
16030
- var CoffeeOfEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
16489
+ var CoffeeOfEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
16031
16490
  if (module.config.coffeeOf)
16032
16491
  return;
16033
16492
  return $skip;
@@ -16054,7 +16513,7 @@ ${input.slice(result.pos)}
16054
16513
  return result;
16055
16514
  }
16056
16515
  }
16057
- var CoffeePrototypeEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
16516
+ var CoffeePrototypeEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
16058
16517
  if (module.config.coffeePrototype)
16059
16518
  return;
16060
16519
  return $skip;
@@ -16081,17 +16540,32 @@ ${input.slice(result.pos)}
16081
16540
  return result;
16082
16541
  }
16083
16542
  }
16084
- var Reset$0 = $TV($EXPECT($L1, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
16543
+ var Reset$0 = $TV($EXPECT($L14, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
16085
16544
  module.indentLevels = [{
16086
16545
  level: 0,
16087
16546
  token: ""
16088
16547
  }];
16548
+ module.suppressTrailingMemberProperty = [false];
16549
+ module.JSXTagStack = [];
16089
16550
  if (!module._init) {
16090
16551
  module._init = true;
16091
16552
  Object.defineProperties(module, {
16092
16553
  currentIndent: {
16093
16554
  get() {
16094
- return module.indentLevels[module.indentLevels.length - 1];
16555
+ const { indentLevels: l } = module;
16556
+ return l[l.length - 1];
16557
+ }
16558
+ },
16559
+ trailingMemberPropertySuppressed: {
16560
+ get() {
16561
+ const { suppressTrailingMemberProperty: s } = module;
16562
+ return s[s.length - 1];
16563
+ }
16564
+ },
16565
+ currentJSXTag: {
16566
+ get() {
16567
+ const { JSXTagStack: s } = module;
16568
+ return s[s.length - 1];
16095
16569
  }
16096
16570
  }
16097
16571
  });
@@ -16108,6 +16582,7 @@ ${input.slice(result.pos)}
16108
16582
  coffeeForLoops: false,
16109
16583
  coffeeInterpolation: false,
16110
16584
  coffeeIsnt: false,
16585
+ coffeeJSX: false,
16111
16586
  coffeeLineContinuation: false,
16112
16587
  coffeeNot: false,
16113
16588
  coffeeOf: false,
@@ -16212,11 +16687,8 @@ ${input.slice(result.pos)}
16212
16687
  if (module.config.server && !module.config.client) {
16213
16688
  return ["string"];
16214
16689
  }
16215
- let open = node.children;
16216
- while (Array.isArray(open[0]))
16217
- open = open[0];
16218
- open = open[1];
16219
- const clientType = typeof open === "string" && open[0] === open[0].toLowerCase() ? [module.getRef("IntrinsicElements"), '<"', open, '">'] : ["ReturnType<typeof ", open, ">"];
16690
+ let { tag } = node;
16691
+ const clientType = tag[0] === tag[0].toLowerCase() ? [module.getRef("IntrinsicElements"), '<"', tag, '">'] : ["ReturnType<typeof ", tag, ">"];
16220
16692
  if (module.config.server) {
16221
16693
  return ["string", " | ", clientType];
16222
16694
  } else {
@@ -16262,36 +16734,24 @@ ${input.slice(result.pos)}
16262
16734
  };
16263
16735
  Object.defineProperty(module.config, "coffeeCompat", {
16264
16736
  set(b) {
16265
- if (b) {
16266
- this.autoVar = true;
16267
- this.coffeeBinaryExistential = true;
16268
- this.coffeeBooleans = true;
16269
- this.coffeeClasses = true;
16270
- this.coffeeComment = true;
16271
- this.coffeeDo = true;
16272
- this.coffeeEq = true;
16273
- this.coffeeForLoops = true;
16274
- this.coffeeInterpolation = true;
16275
- this.coffeeIsnt = true;
16276
- this.coffeeLineContinuation = true;
16277
- this.coffeeNot = true;
16278
- this.coffeeOf = true;
16279
- this.coffeePrototype = true;
16280
- } else {
16281
- this.autoVar = false;
16282
- this.coffeeBinaryExistential = false;
16283
- this.coffeeBooleans = false;
16284
- this.coffeeClasses = false;
16285
- this.coffeeComment = false;
16286
- this.coffeeDo = false;
16287
- this.coffeeEq = false;
16288
- this.coffeeForLoops = false;
16289
- this.coffeeInterpolation = false;
16290
- this.coffeeIsnt = false;
16291
- this.coffeeLineContinuation = false;
16292
- this.coffeeNot = false;
16293
- this.coffeeOf = false;
16294
- this.coffeePrototype = false;
16737
+ for (const option of [
16738
+ "autoVar",
16739
+ "coffeeBinaryExistential",
16740
+ "coffeeBooleans",
16741
+ "coffeeClasses",
16742
+ "coffeeComment",
16743
+ "coffeeDo",
16744
+ "coffeeEq",
16745
+ "coffeeForLoops",
16746
+ "coffeeInterpolation",
16747
+ "coffeeIsnt",
16748
+ "coffeeJSX",
16749
+ "coffeeLineContinuation",
16750
+ "coffeeNot",
16751
+ "coffeeOf",
16752
+ "coffeePrototype"
16753
+ ]) {
16754
+ module.config[option] = b;
16295
16755
  }
16296
16756
  }
16297
16757
  });
@@ -16329,7 +16789,7 @@ ${input.slice(result.pos)}
16329
16789
  return result;
16330
16790
  }
16331
16791
  }
16332
- var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
16792
+ var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L14, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
16333
16793
  var directives = $2;
16334
16794
  directives.forEach((directive) => {
16335
16795
  if (directive.type === "CivetPrologue") {
@@ -17463,7 +17923,7 @@ ${input.slice(result.pos)}
17463
17923
  return result;
17464
17924
  }
17465
17925
  }
17466
- var PopIndent$0 = $TV($EXPECT($L1, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
17926
+ var PopIndent$0 = $TV($EXPECT($L14, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
17467
17927
  if (module.config.verbose) {
17468
17928
  console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
17469
17929
  }
@@ -17946,7 +18406,7 @@ var uncacheable;
17946
18406
  ({ parse } = import_parser.default);
17947
18407
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
17948
18408
  defaultOptions = {};
17949
- uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "ConditionalExpression", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNestedChildren", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "Samedent", "ShortCircuitExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "SuppressIndentedApplication", "ThinArrowFunction", "TrackIndented", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
18409
+ uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "ConditionalExpression", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "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", "Samedent", "ShortCircuitExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
17950
18410
  var compile = function(src, options = defaultOptions) {
17951
18411
  var ast, code, events, filename, sm, srcMapJSON;
17952
18412
  filename = options.filename || "unknown";