@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.js CHANGED
@@ -433,11 +433,14 @@ ${input.slice(result.pos)}
433
433
  ExpressionizedStatement,
434
434
  Expression,
435
435
  Arguments,
436
+ ImplicitArguments,
436
437
  ExplicitArguments,
437
438
  ApplicationStart,
438
439
  ForbiddenImplicitCalls,
439
- IndentedApplicationAllowed,
440
440
  ArgumentsWithTrailingMemberExpressions,
441
+ TrailingMemberExpressions,
442
+ NonSuppressedTrailingMemberExpressions,
443
+ CommaDelimiter,
441
444
  ArgumentList,
442
445
  NestedArgumentList,
443
446
  NestedArgument,
@@ -489,6 +492,7 @@ ${input.slice(result.pos)}
489
492
  AccessModifier,
490
493
  FieldDefinition,
491
494
  ThisLiteral,
495
+ AtThis,
492
496
  LeftHandSideExpression,
493
497
  CallExpression,
494
498
  CallExpressionRest,
@@ -646,6 +650,9 @@ ${input.slice(result.pos)}
646
650
  Condition,
647
651
  ExpressionWithIndentedApplicationSuppressed,
648
652
  SuppressIndentedApplication,
653
+ IndentedApplicationAllowed,
654
+ SuppressTrailingMemberProperty,
655
+ TrailingMemberPropertyAllowed,
649
656
  ExpressionStatement,
650
657
  KeywordStatement,
651
658
  DebuggerExpression,
@@ -816,9 +823,14 @@ ${input.slice(result.pos)}
816
823
  JSXTag,
817
824
  JSXElement,
818
825
  JSXSelfClosingElement,
826
+ PushJSXOpeningElement,
819
827
  JSXOpeningElement,
828
+ JSXOptionalClosingElement,
820
829
  JSXClosingElement,
821
830
  JSXFragment,
831
+ PushJSXOpeningFragment,
832
+ JSXOptionalClosingFragment,
833
+ JSXClosingFragment,
822
834
  JSXElementName,
823
835
  JSXIdentifierName,
824
836
  JSXAttributes,
@@ -841,6 +853,8 @@ ${input.slice(result.pos)}
841
853
  JSXMixedChildren,
842
854
  JSXChildren,
843
855
  JSXNestedChildren,
856
+ JSXEOS,
857
+ JSXNested,
844
858
  JSXChild,
845
859
  JSXComment,
846
860
  JSXCommentContent,
@@ -893,6 +907,7 @@ ${input.slice(result.pos)}
893
907
  TypeConstraint,
894
908
  TypeInitializer,
895
909
  TypeParameterDelimiter,
910
+ ThisType,
896
911
  Shebang,
897
912
  CivetPrologue,
898
913
  CivetPrologueContent,
@@ -925,6 +940,7 @@ ${input.slice(result.pos)}
925
940
  CoffeeForLoopsEnabled,
926
941
  CoffeeInterpolationEnabled,
927
942
  CoffeeIsntEnabled,
943
+ CoffeeJSXEnabled,
928
944
  CoffeeLineContinuationEnabled,
929
945
  CoffeeNotEnabled,
930
946
  CoffeeOfEnabled,
@@ -940,7 +956,7 @@ ${input.slice(result.pos)}
940
956
  Nested
941
957
  });
942
958
  var $L0 = $L("/ ");
943
- var $L1 = $L("");
959
+ var $L1 = $L("?");
944
960
  var $L2 = $L(".");
945
961
  var $L3 = $L("++");
946
962
  var $L4 = $L("--");
@@ -953,64 +969,64 @@ ${input.slice(result.pos)}
953
969
  var $L11 = $L("!");
954
970
  var $L12 = $L("super[");
955
971
  var $L13 = $L("import.meta");
956
- var $L14 = $L(")");
957
- var $L15 = $L("->");
958
- var $L16 = $L("}");
959
- var $L17 = $L("null");
960
- var $L18 = $L("true");
961
- var $L19 = $L("false");
962
- var $L20 = $L("yes");
963
- var $L21 = $L("on");
964
- var $L22 = $L("no");
965
- var $L23 = $L("off");
966
- var $L24 = $L(",");
967
- var $L25 = $L("=");
968
- var $L26 = $L(">");
969
- var $L27 = $L("]");
970
- var $L28 = $L(":");
971
- var $L29 = $L("**=");
972
- var $L30 = $L("*=");
973
- var $L31 = $L("/=");
974
- var $L32 = $L("%=");
975
- var $L33 = $L("+=");
976
- var $L34 = $L("-=");
977
- var $L35 = $L("<<=");
978
- var $L36 = $L(">>>=");
979
- var $L37 = $L(">>=");
980
- var $L38 = $L("&&=");
981
- var $L39 = $L("&=");
982
- var $L40 = $L("^=");
983
- var $L41 = $L("||=");
984
- var $L42 = $L("|=");
985
- var $L43 = $L("??=");
986
- var $L44 = $L("?=");
987
- var $L45 = $L("and=");
988
- var $L46 = $L("or=");
989
- var $L47 = $L("**");
990
- var $L48 = $L("*");
991
- var $L49 = $L("/");
992
- var $L50 = $L("%%");
993
- var $L51 = $L("%");
994
- var $L52 = $L("+");
995
- var $L53 = $L("-");
996
- var $L54 = $L("<=");
997
- var $L55 = $L(">=");
998
- var $L56 = $L("<?");
999
- var $L57 = $L("<<");
1000
- var $L58 = $L(">>>");
1001
- var $L59 = $L(">>");
1002
- var $L60 = $L("!==");
1003
- var $L61 = $L("!=");
1004
- var $L62 = $L("isnt");
1005
- var $L63 = $L("===");
1006
- var $L64 = $L("==");
1007
- var $L65 = $L("and");
1008
- var $L66 = $L("&&");
1009
- var $L67 = $L("of");
1010
- var $L68 = $L("or");
1011
- var $L69 = $L("||");
1012
- var $L70 = $L("??");
1013
- var $L71 = $L("?");
972
+ var $L14 = $L("");
973
+ var $L15 = $L(")");
974
+ var $L16 = $L("->");
975
+ var $L17 = $L("}");
976
+ var $L18 = $L("null");
977
+ var $L19 = $L("true");
978
+ var $L20 = $L("false");
979
+ var $L21 = $L("yes");
980
+ var $L22 = $L("on");
981
+ var $L23 = $L("no");
982
+ var $L24 = $L("off");
983
+ var $L25 = $L(",");
984
+ var $L26 = $L("=");
985
+ var $L27 = $L(">");
986
+ var $L28 = $L("]");
987
+ var $L29 = $L(":");
988
+ var $L30 = $L("**=");
989
+ var $L31 = $L("*=");
990
+ var $L32 = $L("/=");
991
+ var $L33 = $L("%=");
992
+ var $L34 = $L("+=");
993
+ var $L35 = $L("-=");
994
+ var $L36 = $L("<<=");
995
+ var $L37 = $L(">>>=");
996
+ var $L38 = $L(">>=");
997
+ var $L39 = $L("&&=");
998
+ var $L40 = $L("&=");
999
+ var $L41 = $L("^=");
1000
+ var $L42 = $L("||=");
1001
+ var $L43 = $L("|=");
1002
+ var $L44 = $L("??=");
1003
+ var $L45 = $L("?=");
1004
+ var $L46 = $L("and=");
1005
+ var $L47 = $L("or=");
1006
+ var $L48 = $L("**");
1007
+ var $L49 = $L("*");
1008
+ var $L50 = $L("/");
1009
+ var $L51 = $L("%%");
1010
+ var $L52 = $L("%");
1011
+ var $L53 = $L("+");
1012
+ var $L54 = $L("-");
1013
+ var $L55 = $L("<=");
1014
+ var $L56 = $L(">=");
1015
+ var $L57 = $L("<?");
1016
+ var $L58 = $L("<<");
1017
+ var $L59 = $L(">>>");
1018
+ var $L60 = $L(">>");
1019
+ var $L61 = $L("!==");
1020
+ var $L62 = $L("!=");
1021
+ var $L63 = $L("isnt");
1022
+ var $L64 = $L("===");
1023
+ var $L65 = $L("==");
1024
+ var $L66 = $L("and");
1025
+ var $L67 = $L("&&");
1026
+ var $L68 = $L("of");
1027
+ var $L69 = $L("or");
1028
+ var $L70 = $L("||");
1029
+ var $L71 = $L("??");
1014
1030
  var $L72 = $L("instanceof");
1015
1031
  var $L73 = $L("not");
1016
1032
  var $L74 = $L("in");
@@ -1327,7 +1343,7 @@ ${input.slice(result.pos)}
1327
1343
  return result;
1328
1344
  }
1329
1345
  }
1330
- var Expression$0 = $TS($S(AssignmentExpression, $Q($S(__, Comma, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1346
+ var Expression$0 = $TS($S(AssignmentExpression, $Q($S(CommaDelimiter, AssignmentExpression))), function($skip, $loc, $0, $1, $2) {
1331
1347
  if ($2.length == 0)
1332
1348
  return $1;
1333
1349
  return $0;
@@ -1355,13 +1371,12 @@ ${input.slice(result.pos)}
1355
1371
  }
1356
1372
  }
1357
1373
  var Arguments$0 = ExplicitArguments;
1358
- 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) {
1359
- var ta = $1;
1360
- var open = $3;
1361
- var ws = $4;
1362
- var args = $5;
1363
- var close = $6;
1364
- return [ta?.[0], open, module2.insertTrimmingSpace(ws, ""), args, close];
1374
+ var Arguments$1 = $TS($S(SuppressTrailingMemberProperty, $E(ImplicitArguments)), function($skip, $loc, $0, $1, $2) {
1375
+ var args = $2;
1376
+ module2.suppressTrailingMemberProperty.pop();
1377
+ if (args)
1378
+ return args;
1379
+ return $skip;
1365
1380
  });
1366
1381
  function Arguments(state) {
1367
1382
  let eventData;
@@ -1385,6 +1400,36 @@ ${input.slice(result.pos)}
1385
1400
  return result;
1386
1401
  }
1387
1402
  }
1403
+ 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) {
1404
+ var ta = $1;
1405
+ var open = $3;
1406
+ var ws = $4;
1407
+ var args = $5;
1408
+ var close = $6;
1409
+ return [ta?.[0], open, module2.insertTrimmingSpace(ws, ""), args, close];
1410
+ });
1411
+ function ImplicitArguments(state) {
1412
+ let eventData;
1413
+ if (state.events) {
1414
+ const result = state.events.enter?.("ImplicitArguments", state);
1415
+ if (result) {
1416
+ if (result.cache)
1417
+ return result.cache;
1418
+ eventData = result.data;
1419
+ }
1420
+ }
1421
+ if (state.tokenize) {
1422
+ const result = $TOKEN("ImplicitArguments", state, ImplicitArguments$0(state));
1423
+ if (state.events)
1424
+ state.events.exit?.("ImplicitArguments", state, result, eventData);
1425
+ return result;
1426
+ } else {
1427
+ const result = ImplicitArguments$0(state);
1428
+ if (state.events)
1429
+ state.events.exit?.("ImplicitArguments", state, result, eventData);
1430
+ return result;
1431
+ }
1432
+ }
1388
1433
  var ExplicitArguments$0 = $S($E(TypeArguments), OpenParen, $E(ArgumentList), $E($S(__, Comma)), __, CloseParen);
1389
1434
  function ExplicitArguments(state) {
1390
1435
  let eventData;
@@ -1457,15 +1502,36 @@ ${input.slice(result.pos)}
1457
1502
  return result;
1458
1503
  }
1459
1504
  }
1460
- var IndentedApplicationAllowed$0 = $TV($EXPECT($L1, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
1461
- if (module2.suppressIndentedApplication)
1462
- return $skip;
1463
- return;
1505
+ var ArgumentsWithTrailingMemberExpressions$0 = $S(Arguments, TrailingMemberExpressions);
1506
+ function ArgumentsWithTrailingMemberExpressions(state) {
1507
+ let eventData;
1508
+ if (state.events) {
1509
+ const result = state.events.enter?.("ArgumentsWithTrailingMemberExpressions", state);
1510
+ if (result) {
1511
+ if (result.cache)
1512
+ return result.cache;
1513
+ eventData = result.data;
1514
+ }
1515
+ }
1516
+ if (state.tokenize) {
1517
+ const result = $TOKEN("ArgumentsWithTrailingMemberExpressions", state, ArgumentsWithTrailingMemberExpressions$0(state));
1518
+ if (state.events)
1519
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1520
+ return result;
1521
+ } else {
1522
+ const result = ArgumentsWithTrailingMemberExpressions$0(state);
1523
+ if (state.events)
1524
+ state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1525
+ return result;
1526
+ }
1527
+ }
1528
+ 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) {
1529
+ return $1.concat($2);
1464
1530
  });
1465
- function IndentedApplicationAllowed(state) {
1531
+ function TrailingMemberExpressions(state) {
1466
1532
  let eventData;
1467
1533
  if (state.events) {
1468
- const result = state.events.enter?.("IndentedApplicationAllowed", state);
1534
+ const result = state.events.enter?.("TrailingMemberExpressions", state);
1469
1535
  if (result) {
1470
1536
  if (result.cache)
1471
1537
  return result.cache;
@@ -1473,22 +1539,25 @@ ${input.slice(result.pos)}
1473
1539
  }
1474
1540
  }
1475
1541
  if (state.tokenize) {
1476
- const result = $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
1542
+ const result = $TOKEN("TrailingMemberExpressions", state, TrailingMemberExpressions$0(state));
1477
1543
  if (state.events)
1478
- state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
1544
+ state.events.exit?.("TrailingMemberExpressions", state, result, eventData);
1479
1545
  return result;
1480
1546
  } else {
1481
- const result = IndentedApplicationAllowed$0(state);
1547
+ const result = TrailingMemberExpressions$0(state);
1482
1548
  if (state.events)
1483
- state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
1549
+ state.events.exit?.("TrailingMemberExpressions", state, result, eventData);
1484
1550
  return result;
1485
1551
  }
1486
1552
  }
1487
- var ArgumentsWithTrailingMemberExpressions$0 = $S(Arguments, $Q($S(Samedent, $Y($EXPECT($L2, fail, 'ArgumentsWithTrailingMemberExpressions "."')), MemberExpressionRest)));
1488
- function ArgumentsWithTrailingMemberExpressions(state) {
1553
+ var NonSuppressedTrailingMemberExpressions$0 = $T($S(TrailingMemberPropertyAllowed, TrailingMemberExpressions), function(value) {
1554
+ return value[1];
1555
+ });
1556
+ var NonSuppressedTrailingMemberExpressions$1 = $Q(MemberExpressionRest);
1557
+ function NonSuppressedTrailingMemberExpressions(state) {
1489
1558
  let eventData;
1490
1559
  if (state.events) {
1491
- const result = state.events.enter?.("ArgumentsWithTrailingMemberExpressions", state);
1560
+ const result = state.events.enter?.("NonSuppressedTrailingMemberExpressions", state);
1492
1561
  if (result) {
1493
1562
  if (result.cache)
1494
1563
  return result.cache;
@@ -1496,18 +1565,41 @@ ${input.slice(result.pos)}
1496
1565
  }
1497
1566
  }
1498
1567
  if (state.tokenize) {
1499
- const result = $TOKEN("ArgumentsWithTrailingMemberExpressions", state, ArgumentsWithTrailingMemberExpressions$0(state));
1568
+ const result = $TOKEN("NonSuppressedTrailingMemberExpressions", state, NonSuppressedTrailingMemberExpressions$0(state) || NonSuppressedTrailingMemberExpressions$1(state));
1500
1569
  if (state.events)
1501
- state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1570
+ state.events.exit?.("NonSuppressedTrailingMemberExpressions", state, result, eventData);
1502
1571
  return result;
1503
1572
  } else {
1504
- const result = ArgumentsWithTrailingMemberExpressions$0(state);
1573
+ const result = NonSuppressedTrailingMemberExpressions$0(state) || NonSuppressedTrailingMemberExpressions$1(state);
1505
1574
  if (state.events)
1506
- state.events.exit?.("ArgumentsWithTrailingMemberExpressions", state, result, eventData);
1575
+ state.events.exit?.("NonSuppressedTrailingMemberExpressions", state, result, eventData);
1507
1576
  return result;
1508
1577
  }
1509
1578
  }
1510
- var ArgumentList$0 = $S(ArgumentPart, $P($S(__, Comma, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1579
+ var CommaDelimiter$0 = $S($E($C(Samedent, IndentedFurther)), $Q(_), Comma);
1580
+ function CommaDelimiter(state) {
1581
+ let eventData;
1582
+ if (state.events) {
1583
+ const result = state.events.enter?.("CommaDelimiter", state);
1584
+ if (result) {
1585
+ if (result.cache)
1586
+ return result.cache;
1587
+ eventData = result.data;
1588
+ }
1589
+ }
1590
+ if (state.tokenize) {
1591
+ const result = $TOKEN("CommaDelimiter", state, CommaDelimiter$0(state));
1592
+ if (state.events)
1593
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1594
+ return result;
1595
+ } else {
1596
+ const result = CommaDelimiter$0(state);
1597
+ if (state.events)
1598
+ state.events.exit?.("CommaDelimiter", state, result, eventData);
1599
+ return result;
1600
+ }
1601
+ }
1602
+ var ArgumentList$0 = $S(ArgumentPart, $P($S(CommaDelimiter, $C(NestedImplicitObjectLiteral, NestedArgumentList))));
1511
1603
  var ArgumentList$1 = $TS($S(NestedImplicitObjectLiteral), function($skip, $loc, $0, $1) {
1512
1604
  return module2.insertTrimmingSpace($1, "");
1513
1605
  });
@@ -1586,7 +1678,7 @@ ${input.slice(result.pos)}
1586
1678
  return result;
1587
1679
  }
1588
1680
  }
1589
- var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(__, Comma, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1681
+ var InlineArgumentExpressions$0 = $TS($S($Q(TrailingComment), ArgumentPart, $Q($S(CommaDelimiter, $Q(TrailingComment), ArgumentPart))), function($skip, $loc, $0, $1, $2, $3) {
1590
1682
  return [...$1, $2, ...$3];
1591
1683
  });
1592
1684
  function InlineArgumentExpressions(state) {
@@ -2907,15 +2999,12 @@ ${input.slice(result.pos)}
2907
2999
  }
2908
3000
  }
2909
3001
  var ThisLiteral$0 = This;
2910
- var ThisLiteral$1 = $TS($S(At, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
2911
- var t = $1;
3002
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L8, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3003
+ var at = $1;
2912
3004
  var id = $2;
2913
- return [{ ...t, token: "this." }, id];
2914
- });
2915
- var ThisLiteral$2 = $TS($S(At), function($skip, $loc, $0, $1) {
2916
- $1.token = "this";
2917
- return $1;
3005
+ return [at, ".", id];
2918
3006
  });
3007
+ var ThisLiteral$2 = AtThis;
2919
3008
  function ThisLiteral(state) {
2920
3009
  let eventData;
2921
3010
  if (state.events) {
@@ -2938,6 +3027,32 @@ ${input.slice(result.pos)}
2938
3027
  return result;
2939
3028
  }
2940
3029
  }
3030
+ var AtThis$0 = $TV(At, function($skip, $loc, $0, $1) {
3031
+ var at = $0;
3032
+ return { ...at, token: "this" };
3033
+ });
3034
+ function AtThis(state) {
3035
+ let eventData;
3036
+ if (state.events) {
3037
+ const result = state.events.enter?.("AtThis", state);
3038
+ if (result) {
3039
+ if (result.cache)
3040
+ return result.cache;
3041
+ eventData = result.data;
3042
+ }
3043
+ }
3044
+ if (state.tokenize) {
3045
+ const result = $TOKEN("AtThis", state, AtThis$0(state));
3046
+ if (state.events)
3047
+ state.events.exit?.("AtThis", state, result, eventData);
3048
+ return result;
3049
+ } else {
3050
+ const result = AtThis$0(state);
3051
+ if (state.events)
3052
+ state.events.exit?.("AtThis", state, result, eventData);
3053
+ return result;
3054
+ }
3055
+ }
2941
3056
  var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
2942
3057
  if ($1.length)
2943
3058
  return $0;
@@ -2972,14 +3087,17 @@ ${input.slice(result.pos)}
2972
3087
  children: $0
2973
3088
  };
2974
3089
  });
2975
- var CallExpression$2 = $TS($S(MemberExpression, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2) {
2976
- if ($2.length) {
3090
+ var CallExpression$2 = $TS($S(MemberExpression, NonSuppressedTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3091
+ var member = $1;
3092
+ var trailing = $2;
3093
+ var rest = $3;
3094
+ if (rest.length || trailing.length) {
2977
3095
  return {
2978
- type: "CallExpression",
2979
- children: [$1].concat($2)
3096
+ type: rest.length ? "CallExpression" : "MemberExpression",
3097
+ children: [member, ...trailing, ...rest]
2980
3098
  };
2981
3099
  }
2982
- return $1;
3100
+ return member;
2983
3101
  });
2984
3102
  function CallExpression(state) {
2985
3103
  let eventData;
@@ -3119,13 +3237,7 @@ ${input.slice(result.pos)}
3119
3237
  }
3120
3238
  return $2;
3121
3239
  });
3122
- var MemberExpressionRest$1 = $TS($S($E(IndentedFurther), PropertyAccess), function($skip, $loc, $0, $1, $2) {
3123
- if ($1)
3124
- return Object.assign({}, $2, {
3125
- children: [$1, ...$2.children]
3126
- });
3127
- return $2;
3128
- });
3240
+ var MemberExpressionRest$1 = PropertyAccess;
3129
3241
  var MemberExpressionRest$2 = NonNullAssertion;
3130
3242
  function MemberExpressionRest(state) {
3131
3243
  let eventData;
@@ -3352,7 +3464,7 @@ ${input.slice(result.pos)}
3352
3464
  }
3353
3465
  }
3354
3466
  var Parameters$0 = NonEmptyParameters;
3355
- var Parameters$1 = $TV($EXPECT($L1, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3467
+ var Parameters$1 = $TV($EXPECT($L14, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3356
3468
  return {
3357
3469
  type: "Parameters",
3358
3470
  children: [{ $loc, token: "()" }],
@@ -3382,13 +3494,14 @@ ${input.slice(result.pos)}
3382
3494
  return result;
3383
3495
  }
3384
3496
  }
3385
- 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) {
3497
+ 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) {
3386
3498
  var tp = $1;
3387
3499
  var open = $2;
3388
- var pes = $3;
3389
- var rest = $4;
3390
- var after = $5;
3391
- var close = $6;
3500
+ var tt = $3;
3501
+ var pes = $4;
3502
+ var rest = $5;
3503
+ var after = $6;
3504
+ var close = $7;
3392
3505
  const names = pes.flatMap((p) => p.names);
3393
3506
  if (rest) {
3394
3507
  let restIdentifier;
@@ -3411,6 +3524,7 @@ ${input.slice(result.pos)}
3411
3524
  children: [
3412
3525
  tp,
3413
3526
  open,
3527
+ tt,
3414
3528
  ...pes,
3415
3529
  { ...rest, children: rest.children.slice(0, -1) },
3416
3530
  close
@@ -3422,7 +3536,7 @@ ${input.slice(result.pos)}
3422
3536
  }
3423
3537
  return {
3424
3538
  type: "Parameters",
3425
- children: [tp, open, ...pes, close],
3539
+ children: [tp, open, tt, ...pes, close],
3426
3540
  names: pes.flatMap((p) => p.names),
3427
3541
  tp
3428
3542
  };
@@ -3511,7 +3625,7 @@ ${input.slice(result.pos)}
3511
3625
  }
3512
3626
  }
3513
3627
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
3514
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L14, fail, 'ParameterElementDelimiter ")"')));
3628
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L15, fail, 'ParameterElementDelimiter ")"')));
3515
3629
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
3516
3630
  return value[1];
3517
3631
  });
@@ -4184,7 +4298,7 @@ ${input.slice(result.pos)}
4184
4298
  return result;
4185
4299
  }
4186
4300
  }
4187
- var EmptyBindingPattern$0 = $TV($EXPECT($L1, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4301
+ var EmptyBindingPattern$0 = $TV($EXPECT($L14, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4188
4302
  const ref = {
4189
4303
  type: "Ref",
4190
4304
  base: "ref",
@@ -4460,7 +4574,7 @@ ${input.slice(result.pos)}
4460
4574
  return result;
4461
4575
  }
4462
4576
  }
4463
- var Arrow$0 = $TV($EXPECT($L15, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4577
+ var Arrow$0 = $TV($EXPECT($L16, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4464
4578
  return { $loc, token: $1 };
4465
4579
  });
4466
4580
  function Arrow(state) {
@@ -4755,7 +4869,7 @@ ${input.slice(result.pos)}
4755
4869
  children: [$1, expressions]
4756
4870
  };
4757
4871
  });
4758
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L16, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4872
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L17, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4759
4873
  const expressions = [];
4760
4874
  return {
4761
4875
  type: "BlockStatement",
@@ -4900,7 +5014,7 @@ ${input.slice(result.pos)}
4900
5014
  return result;
4901
5015
  }
4902
5016
  }
4903
- var NullLiteral$0 = $TS($S($EXPECT($L17, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5017
+ var NullLiteral$0 = $TS($S($EXPECT($L18, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4904
5018
  return { $loc, token: $1 };
4905
5019
  });
4906
5020
  function NullLiteral(state) {
@@ -4928,7 +5042,7 @@ ${input.slice(result.pos)}
4928
5042
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
4929
5043
  return value[1];
4930
5044
  });
4931
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L18, fail, 'BooleanLiteral "true"'), $EXPECT($L19, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5045
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L19, fail, 'BooleanLiteral "true"'), $EXPECT($L20, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4932
5046
  return { $loc, token: $1 };
4933
5047
  });
4934
5048
  function BooleanLiteral(state) {
@@ -4953,10 +5067,10 @@ ${input.slice(result.pos)}
4953
5067
  return result;
4954
5068
  }
4955
5069
  }
4956
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L20, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5070
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L21, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4957
5071
  return { $loc, token: "true" };
4958
5072
  });
4959
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L22, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5073
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4960
5074
  return { $loc, token: "false" };
4961
5075
  });
4962
5076
  function CoffeeScriptBooleanLiteral(state) {
@@ -4981,7 +5095,7 @@ ${input.slice(result.pos)}
4981
5095
  return result;
4982
5096
  }
4983
5097
  }
4984
- var Comma$0 = $TV($EXPECT($L24, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
5098
+ var Comma$0 = $TV($EXPECT($L25, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
4985
5099
  return { $loc, token: $1 };
4986
5100
  });
4987
5101
  function Comma(state) {
@@ -5087,7 +5201,7 @@ ${input.slice(result.pos)}
5087
5201
  return result;
5088
5202
  }
5089
5203
  }
5090
- var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L25, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L25, fail, 'UpcomingAssignment "="'), $EXPECT($L26, fail, 'UpcomingAssignment ">"')))));
5204
+ var UpcomingAssignment$0 = $Y($S(__, $EXPECT($L26, fail, 'UpcomingAssignment "="'), $N($C($EXPECT($L26, fail, 'UpcomingAssignment "="'), $EXPECT($L27, fail, 'UpcomingAssignment ">"')))));
5091
5205
  function UpcomingAssignment(state) {
5092
5206
  let eventData;
5093
5207
  if (state.events) {
@@ -5360,7 +5474,7 @@ ${input.slice(result.pos)}
5360
5474
  }
5361
5475
  }
5362
5476
  var ArrayElementDelimiter$0 = $S(__, Comma);
5363
- var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'ArrayElementDelimiter "]"')));
5477
+ var ArrayElementDelimiter$1 = $Y($S(__, $EXPECT($L28, fail, 'ArrayElementDelimiter "]"')));
5364
5478
  var ArrayElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
5365
5479
  return value[1];
5366
5480
  });
@@ -5782,7 +5896,7 @@ ${input.slice(result.pos)}
5782
5896
  var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S($C(Samedent, $Q(_)), NamedProperty)), InsertComma), function(value) {
5783
5897
  return value[1];
5784
5898
  });
5785
- 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) {
5899
+ 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) {
5786
5900
  return "";
5787
5901
  });
5788
5902
  var ImplicitInlineObjectPropertyDelimiter$3 = $T($Y(EOS), function(value) {
@@ -5811,7 +5925,7 @@ ${input.slice(result.pos)}
5811
5925
  }
5812
5926
  }
5813
5927
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
5814
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L16, fail, 'ObjectPropertyDelimiter "}"')));
5928
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L17, fail, 'ObjectPropertyDelimiter "}"')));
5815
5929
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
5816
5930
  return value[1];
5817
5931
  });
@@ -6318,25 +6432,25 @@ ${input.slice(result.pos)}
6318
6432
  return result;
6319
6433
  }
6320
6434
  }
6321
- var AssignmentOpSymbol$0 = $EXPECT($L29, fail, 'AssignmentOpSymbol "**="');
6322
- var AssignmentOpSymbol$1 = $EXPECT($L30, fail, 'AssignmentOpSymbol "*="');
6323
- var AssignmentOpSymbol$2 = $EXPECT($L31, fail, 'AssignmentOpSymbol "/="');
6324
- var AssignmentOpSymbol$3 = $EXPECT($L32, fail, 'AssignmentOpSymbol "%="');
6325
- var AssignmentOpSymbol$4 = $EXPECT($L33, fail, 'AssignmentOpSymbol "+="');
6326
- var AssignmentOpSymbol$5 = $EXPECT($L34, fail, 'AssignmentOpSymbol "-="');
6327
- var AssignmentOpSymbol$6 = $EXPECT($L35, fail, 'AssignmentOpSymbol "<<="');
6328
- var AssignmentOpSymbol$7 = $EXPECT($L36, fail, 'AssignmentOpSymbol ">>>="');
6329
- var AssignmentOpSymbol$8 = $EXPECT($L37, fail, 'AssignmentOpSymbol ">>="');
6330
- var AssignmentOpSymbol$9 = $EXPECT($L38, fail, 'AssignmentOpSymbol "&&="');
6331
- var AssignmentOpSymbol$10 = $EXPECT($L39, fail, 'AssignmentOpSymbol "&="');
6332
- var AssignmentOpSymbol$11 = $EXPECT($L40, fail, 'AssignmentOpSymbol "^="');
6333
- var AssignmentOpSymbol$12 = $EXPECT($L41, fail, 'AssignmentOpSymbol "||="');
6334
- var AssignmentOpSymbol$13 = $EXPECT($L42, fail, 'AssignmentOpSymbol "|="');
6335
- var AssignmentOpSymbol$14 = $EXPECT($L43, fail, 'AssignmentOpSymbol "??="');
6336
- var AssignmentOpSymbol$15 = $T($EXPECT($L44, fail, 'AssignmentOpSymbol "?="'), function(value) {
6435
+ var AssignmentOpSymbol$0 = $EXPECT($L30, fail, 'AssignmentOpSymbol "**="');
6436
+ var AssignmentOpSymbol$1 = $EXPECT($L31, fail, 'AssignmentOpSymbol "*="');
6437
+ var AssignmentOpSymbol$2 = $EXPECT($L32, fail, 'AssignmentOpSymbol "/="');
6438
+ var AssignmentOpSymbol$3 = $EXPECT($L33, fail, 'AssignmentOpSymbol "%="');
6439
+ var AssignmentOpSymbol$4 = $EXPECT($L34, fail, 'AssignmentOpSymbol "+="');
6440
+ var AssignmentOpSymbol$5 = $EXPECT($L35, fail, 'AssignmentOpSymbol "-="');
6441
+ var AssignmentOpSymbol$6 = $EXPECT($L36, fail, 'AssignmentOpSymbol "<<="');
6442
+ var AssignmentOpSymbol$7 = $EXPECT($L37, fail, 'AssignmentOpSymbol ">>>="');
6443
+ var AssignmentOpSymbol$8 = $EXPECT($L38, fail, 'AssignmentOpSymbol ">>="');
6444
+ var AssignmentOpSymbol$9 = $EXPECT($L39, fail, 'AssignmentOpSymbol "&&="');
6445
+ var AssignmentOpSymbol$10 = $EXPECT($L40, fail, 'AssignmentOpSymbol "&="');
6446
+ var AssignmentOpSymbol$11 = $EXPECT($L41, fail, 'AssignmentOpSymbol "^="');
6447
+ var AssignmentOpSymbol$12 = $EXPECT($L42, fail, 'AssignmentOpSymbol "||="');
6448
+ var AssignmentOpSymbol$13 = $EXPECT($L43, fail, 'AssignmentOpSymbol "|="');
6449
+ var AssignmentOpSymbol$14 = $EXPECT($L44, fail, 'AssignmentOpSymbol "??="');
6450
+ var AssignmentOpSymbol$15 = $T($EXPECT($L45, fail, 'AssignmentOpSymbol "?="'), function(value) {
6337
6451
  return "??=";
6338
6452
  });
6339
- var AssignmentOpSymbol$16 = $T($S($EXPECT($L25, fail, 'AssignmentOpSymbol "="'), $N($EXPECT($L25, fail, 'AssignmentOpSymbol "="'))), function(value) {
6453
+ var AssignmentOpSymbol$16 = $T($S($EXPECT($L26, fail, 'AssignmentOpSymbol "="'), $N($EXPECT($L26, fail, 'AssignmentOpSymbol "="'))), function(value) {
6340
6454
  return value[0];
6341
6455
  });
6342
6456
  var AssignmentOpSymbol$17 = $T($S(CoffeeWordAssignmentOp), function(value) {
@@ -6364,10 +6478,10 @@ ${input.slice(result.pos)}
6364
6478
  return result;
6365
6479
  }
6366
6480
  }
6367
- var CoffeeWordAssignmentOp$0 = $T($EXPECT($L45, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
6481
+ var CoffeeWordAssignmentOp$0 = $T($EXPECT($L46, fail, 'CoffeeWordAssignmentOp "and="'), function(value) {
6368
6482
  return "&&=";
6369
6483
  });
6370
- var CoffeeWordAssignmentOp$1 = $T($EXPECT($L46, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
6484
+ var CoffeeWordAssignmentOp$1 = $T($EXPECT($L47, fail, 'CoffeeWordAssignmentOp "or="'), function(value) {
6371
6485
  return "||=";
6372
6486
  });
6373
6487
  function CoffeeWordAssignmentOp(state) {
@@ -6419,60 +6533,60 @@ ${input.slice(result.pos)}
6419
6533
  return result;
6420
6534
  }
6421
6535
  }
6422
- var BinaryOpSymbol$0 = $EXPECT($L47, fail, 'BinaryOpSymbol "**"');
6423
- var BinaryOpSymbol$1 = $EXPECT($L48, fail, 'BinaryOpSymbol "*"');
6424
- var BinaryOpSymbol$2 = $EXPECT($L49, fail, 'BinaryOpSymbol "/"');
6425
- var BinaryOpSymbol$3 = $TV($EXPECT($L50, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6536
+ var BinaryOpSymbol$0 = $EXPECT($L48, fail, 'BinaryOpSymbol "**"');
6537
+ var BinaryOpSymbol$1 = $EXPECT($L49, fail, 'BinaryOpSymbol "*"');
6538
+ var BinaryOpSymbol$2 = $EXPECT($L50, fail, 'BinaryOpSymbol "/"');
6539
+ var BinaryOpSymbol$3 = $TV($EXPECT($L51, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6426
6540
  return {
6427
6541
  call: module2.getRef("modulo"),
6428
6542
  special: true
6429
6543
  };
6430
6544
  });
6431
- var BinaryOpSymbol$4 = $EXPECT($L51, fail, 'BinaryOpSymbol "%"');
6432
- var BinaryOpSymbol$5 = $EXPECT($L52, fail, 'BinaryOpSymbol "+"');
6433
- var BinaryOpSymbol$6 = $EXPECT($L53, fail, 'BinaryOpSymbol "-"');
6434
- var BinaryOpSymbol$7 = $EXPECT($L54, fail, 'BinaryOpSymbol "<="');
6435
- var BinaryOpSymbol$8 = $EXPECT($L55, fail, 'BinaryOpSymbol ">="');
6436
- var BinaryOpSymbol$9 = $TS($S($EXPECT($L56, fail, 'BinaryOpSymbol "<?"'), $E($EXPECT($L6, fail, 'BinaryOpSymbol " "'))), function($skip, $loc, $0, $1, $2) {
6545
+ var BinaryOpSymbol$4 = $EXPECT($L52, fail, 'BinaryOpSymbol "%"');
6546
+ var BinaryOpSymbol$5 = $EXPECT($L53, fail, 'BinaryOpSymbol "+"');
6547
+ var BinaryOpSymbol$6 = $EXPECT($L54, fail, 'BinaryOpSymbol "-"');
6548
+ var BinaryOpSymbol$7 = $EXPECT($L55, fail, 'BinaryOpSymbol "<="');
6549
+ var BinaryOpSymbol$8 = $EXPECT($L56, fail, 'BinaryOpSymbol ">="');
6550
+ var BinaryOpSymbol$9 = $TS($S($EXPECT($L57, fail, 'BinaryOpSymbol "<?"'), $E($EXPECT($L6, fail, 'BinaryOpSymbol " "'))), function($skip, $loc, $0, $1, $2) {
6437
6551
  return "instanceof ";
6438
6552
  });
6439
- var BinaryOpSymbol$10 = $EXPECT($L57, fail, 'BinaryOpSymbol "<<"');
6553
+ var BinaryOpSymbol$10 = $EXPECT($L58, fail, 'BinaryOpSymbol "<<"');
6440
6554
  var BinaryOpSymbol$11 = $TR($EXPECT($R5, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6441
6555
  return "<";
6442
6556
  });
6443
- var BinaryOpSymbol$12 = $EXPECT($L58, fail, 'BinaryOpSymbol ">>>"');
6444
- var BinaryOpSymbol$13 = $EXPECT($L59, fail, 'BinaryOpSymbol ">>"');
6445
- var BinaryOpSymbol$14 = $EXPECT($L26, fail, 'BinaryOpSymbol ">"');
6446
- var BinaryOpSymbol$15 = $EXPECT($L60, fail, 'BinaryOpSymbol "!=="');
6447
- var BinaryOpSymbol$16 = $TV($EXPECT($L61, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6557
+ var BinaryOpSymbol$12 = $EXPECT($L59, fail, 'BinaryOpSymbol ">>>"');
6558
+ var BinaryOpSymbol$13 = $EXPECT($L60, fail, 'BinaryOpSymbol ">>"');
6559
+ var BinaryOpSymbol$14 = $EXPECT($L27, fail, 'BinaryOpSymbol ">"');
6560
+ var BinaryOpSymbol$15 = $EXPECT($L61, fail, 'BinaryOpSymbol "!=="');
6561
+ var BinaryOpSymbol$16 = $TV($EXPECT($L62, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6448
6562
  if (module2.config.coffeeEq)
6449
6563
  return "!==";
6450
6564
  return $1;
6451
6565
  });
6452
- var BinaryOpSymbol$17 = $TS($S($EXPECT($L62, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6566
+ var BinaryOpSymbol$17 = $TS($S($EXPECT($L63, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6453
6567
  if (module2.config.coffeeIsnt)
6454
6568
  return "!==";
6455
6569
  return $skip;
6456
6570
  });
6457
- var BinaryOpSymbol$18 = $EXPECT($L63, fail, 'BinaryOpSymbol "==="');
6458
- var BinaryOpSymbol$19 = $TV($EXPECT($L64, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6571
+ var BinaryOpSymbol$18 = $EXPECT($L64, fail, 'BinaryOpSymbol "==="');
6572
+ var BinaryOpSymbol$19 = $TV($EXPECT($L65, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6459
6573
  if (module2.config.coffeeEq)
6460
6574
  return "===";
6461
6575
  return $1;
6462
6576
  });
6463
- var BinaryOpSymbol$20 = $T($S($EXPECT($L65, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6577
+ var BinaryOpSymbol$20 = $T($S($EXPECT($L66, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6464
6578
  return "&&";
6465
6579
  });
6466
- var BinaryOpSymbol$21 = $EXPECT($L66, fail, 'BinaryOpSymbol "&&"');
6467
- var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L67, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6580
+ var BinaryOpSymbol$21 = $EXPECT($L67, fail, 'BinaryOpSymbol "&&"');
6581
+ var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L68, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6468
6582
  return "in";
6469
6583
  });
6470
- var BinaryOpSymbol$23 = $T($S($EXPECT($L68, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6584
+ var BinaryOpSymbol$23 = $T($S($EXPECT($L69, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6471
6585
  return "||";
6472
6586
  });
6473
- var BinaryOpSymbol$24 = $EXPECT($L69, fail, 'BinaryOpSymbol "||"');
6474
- var BinaryOpSymbol$25 = $EXPECT($L70, fail, 'BinaryOpSymbol "??"');
6475
- var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L71, fail, 'BinaryOpSymbol "?"')), function(value) {
6587
+ var BinaryOpSymbol$24 = $EXPECT($L70, fail, 'BinaryOpSymbol "||"');
6588
+ var BinaryOpSymbol$25 = $EXPECT($L71, fail, 'BinaryOpSymbol "??"');
6589
+ var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L1, fail, 'BinaryOpSymbol "?"')), function(value) {
6476
6590
  return "??";
6477
6591
  });
6478
6592
  var BinaryOpSymbol$27 = $TS($S($EXPECT($L72, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
@@ -6485,7 +6599,7 @@ ${input.slice(result.pos)}
6485
6599
  special: true
6486
6600
  };
6487
6601
  });
6488
- 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) {
6602
+ 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) {
6489
6603
  return {
6490
6604
  $loc,
6491
6605
  token: "in",
@@ -6709,7 +6823,7 @@ ${input.slice(result.pos)}
6709
6823
  return result;
6710
6824
  }
6711
6825
  }
6712
- var BlockStatement$0 = $T($S(ExplicitBlock, $N($S(__, $EXPECT($L25, fail, 'BlockStatement "="')))), function(value) {
6826
+ var BlockStatement$0 = $T($S(ExplicitBlock, $N($S(__, $EXPECT($L26, fail, 'BlockStatement "="')))), function(value) {
6713
6827
  return value[0];
6714
6828
  });
6715
6829
  function BlockStatement(state) {
@@ -8105,7 +8219,7 @@ ${input.slice(result.pos)}
8105
8219
  return result;
8106
8220
  }
8107
8221
  }
8108
- var NoExpressions$0 = $T($EXPECT($L1, fail, 'NoExpressions ""'), function(value) {
8222
+ var NoExpressions$0 = $T($EXPECT($L14, fail, 'NoExpressions ""'), function(value) {
8109
8223
  return [];
8110
8224
  });
8111
8225
  function NoExpressions(state) {
@@ -8131,7 +8245,7 @@ ${input.slice(result.pos)}
8131
8245
  }
8132
8246
  }
8133
8247
  var ImpliedColon$0 = $S(__, Colon);
8134
- var ImpliedColon$1 = $TV($EXPECT($L1, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8248
+ var ImpliedColon$1 = $TV($EXPECT($L14, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8135
8249
  return { $loc, token: ":" };
8136
8250
  });
8137
8251
  function ImpliedColon(state) {
@@ -8383,7 +8497,7 @@ ${input.slice(result.pos)}
8383
8497
  return result;
8384
8498
  }
8385
8499
  }
8386
- var SuppressIndentedApplication$0 = $TV($EXPECT($L1, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8500
+ var SuppressIndentedApplication$0 = $TV($EXPECT($L14, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8387
8501
  module2.suppressIndentedApplication = true;
8388
8502
  });
8389
8503
  function SuppressIndentedApplication(state) {
@@ -8408,6 +8522,84 @@ ${input.slice(result.pos)}
8408
8522
  return result;
8409
8523
  }
8410
8524
  }
8525
+ var IndentedApplicationAllowed$0 = $TV($EXPECT($L14, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
8526
+ if (module2.suppressIndentedApplication)
8527
+ return $skip;
8528
+ return;
8529
+ });
8530
+ function IndentedApplicationAllowed(state) {
8531
+ let eventData;
8532
+ if (state.events) {
8533
+ const result = state.events.enter?.("IndentedApplicationAllowed", state);
8534
+ if (result) {
8535
+ if (result.cache)
8536
+ return result.cache;
8537
+ eventData = result.data;
8538
+ }
8539
+ }
8540
+ if (state.tokenize) {
8541
+ const result = $TOKEN("IndentedApplicationAllowed", state, IndentedApplicationAllowed$0(state));
8542
+ if (state.events)
8543
+ state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
8544
+ return result;
8545
+ } else {
8546
+ const result = IndentedApplicationAllowed$0(state);
8547
+ if (state.events)
8548
+ state.events.exit?.("IndentedApplicationAllowed", state, result, eventData);
8549
+ return result;
8550
+ }
8551
+ }
8552
+ var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L14, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
8553
+ module2.suppressTrailingMemberProperty.push(true);
8554
+ });
8555
+ function SuppressTrailingMemberProperty(state) {
8556
+ let eventData;
8557
+ if (state.events) {
8558
+ const result = state.events.enter?.("SuppressTrailingMemberProperty", state);
8559
+ if (result) {
8560
+ if (result.cache)
8561
+ return result.cache;
8562
+ eventData = result.data;
8563
+ }
8564
+ }
8565
+ if (state.tokenize) {
8566
+ const result = $TOKEN("SuppressTrailingMemberProperty", state, SuppressTrailingMemberProperty$0(state));
8567
+ if (state.events)
8568
+ state.events.exit?.("SuppressTrailingMemberProperty", state, result, eventData);
8569
+ return result;
8570
+ } else {
8571
+ const result = SuppressTrailingMemberProperty$0(state);
8572
+ if (state.events)
8573
+ state.events.exit?.("SuppressTrailingMemberProperty", state, result, eventData);
8574
+ return result;
8575
+ }
8576
+ }
8577
+ var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L14, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
8578
+ if (module2.trailingMemberPropertySuppressed)
8579
+ return $skip;
8580
+ });
8581
+ function TrailingMemberPropertyAllowed(state) {
8582
+ let eventData;
8583
+ if (state.events) {
8584
+ const result = state.events.enter?.("TrailingMemberPropertyAllowed", state);
8585
+ if (result) {
8586
+ if (result.cache)
8587
+ return result.cache;
8588
+ eventData = result.data;
8589
+ }
8590
+ }
8591
+ if (state.tokenize) {
8592
+ const result = $TOKEN("TrailingMemberPropertyAllowed", state, TrailingMemberPropertyAllowed$0(state));
8593
+ if (state.events)
8594
+ state.events.exit?.("TrailingMemberPropertyAllowed", state, result, eventData);
8595
+ return result;
8596
+ } else {
8597
+ const result = TrailingMemberPropertyAllowed$0(state);
8598
+ if (state.events)
8599
+ state.events.exit?.("TrailingMemberPropertyAllowed", state, result, eventData);
8600
+ return result;
8601
+ }
8602
+ }
8411
8603
  var ExpressionStatement$0 = Expression;
8412
8604
  function ExpressionStatement(state) {
8413
8605
  let eventData;
@@ -8591,7 +8783,7 @@ ${input.slice(result.pos)}
8591
8783
  return result;
8592
8784
  }
8593
8785
  }
8594
- var ImpliedImport$0 = $TV($EXPECT($L1, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8786
+ var ImpliedImport$0 = $TV($EXPECT($L14, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8595
8787
  return { $loc, token: "import " };
8596
8788
  });
8597
8789
  function ImpliedImport(state) {
@@ -9972,7 +10164,7 @@ ${input.slice(result.pos)}
9972
10164
  }
9973
10165
  }
9974
10166
  var RegularExpressionLiteral$0 = HeregexLiteral;
9975
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L49, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L49, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10167
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L50, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L50, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
9976
10168
  return { $loc, token: $1 };
9977
10169
  });
9978
10170
  function RegularExpressionLiteral(state) {
@@ -10895,7 +11087,7 @@ ${input.slice(result.pos)}
10895
11087
  return result;
10896
11088
  }
10897
11089
  }
10898
- var Loc$0 = $TV($EXPECT($L1, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
11090
+ var Loc$0 = $TV($EXPECT($L14, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
10899
11091
  return { $loc, token: "" };
10900
11092
  });
10901
11093
  function Loc(state) {
@@ -11220,7 +11412,7 @@ ${input.slice(result.pos)}
11220
11412
  return result;
11221
11413
  }
11222
11414
  }
11223
- var CloseBrace$0 = $TV($EXPECT($L16, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11415
+ var CloseBrace$0 = $TV($EXPECT($L17, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11224
11416
  return { $loc, token: $1 };
11225
11417
  });
11226
11418
  function CloseBrace(state) {
@@ -11245,7 +11437,7 @@ ${input.slice(result.pos)}
11245
11437
  return result;
11246
11438
  }
11247
11439
  }
11248
- var CloseBracket$0 = $TV($EXPECT($L27, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11440
+ var CloseBracket$0 = $TV($EXPECT($L28, fail, 'CloseBracket "]"'), function($skip, $loc, $0, $1) {
11249
11441
  return { $loc, token: $1 };
11250
11442
  });
11251
11443
  function CloseBracket(state) {
@@ -11270,7 +11462,7 @@ ${input.slice(result.pos)}
11270
11462
  return result;
11271
11463
  }
11272
11464
  }
11273
- var CloseParen$0 = $TV($EXPECT($L14, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11465
+ var CloseParen$0 = $TV($EXPECT($L15, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11274
11466
  return { $loc, token: $1 };
11275
11467
  });
11276
11468
  function CloseParen(state) {
@@ -11320,7 +11512,7 @@ ${input.slice(result.pos)}
11320
11512
  return result;
11321
11513
  }
11322
11514
  }
11323
- var Colon$0 = $TV($EXPECT($L28, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
11515
+ var Colon$0 = $TV($EXPECT($L29, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
11324
11516
  return { $loc, token: $1 };
11325
11517
  });
11326
11518
  function Colon(state) {
@@ -11595,7 +11787,7 @@ ${input.slice(result.pos)}
11595
11787
  return result;
11596
11788
  }
11597
11789
  }
11598
- var Equals$0 = $TV($EXPECT($L25, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
11790
+ var Equals$0 = $TV($EXPECT($L26, fail, 'Equals "="'), function($skip, $loc, $0, $1) {
11599
11791
  return { $loc, token: $1 };
11600
11792
  });
11601
11793
  function Equals(state) {
@@ -11945,7 +12137,7 @@ ${input.slice(result.pos)}
11945
12137
  return result;
11946
12138
  }
11947
12139
  }
11948
- var Of$0 = $TS($S($EXPECT($L67, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12140
+ var Of$0 = $TS($S($EXPECT($L68, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11949
12141
  return { $loc, token: $1 };
11950
12142
  });
11951
12143
  function Of(state) {
@@ -12170,7 +12362,7 @@ ${input.slice(result.pos)}
12170
12362
  return result;
12171
12363
  }
12172
12364
  }
12173
- var QuestionMark$0 = $TV($EXPECT($L71, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12365
+ var QuestionMark$0 = $TV($EXPECT($L1, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12174
12366
  return { $loc, token: $1 };
12175
12367
  });
12176
12368
  function QuestionMark(state) {
@@ -12320,7 +12512,7 @@ ${input.slice(result.pos)}
12320
12512
  return result;
12321
12513
  }
12322
12514
  }
12323
- var Star$0 = $TV($EXPECT($L48, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12515
+ var Star$0 = $TV($EXPECT($L49, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12324
12516
  return { $loc, token: $1 };
12325
12517
  });
12326
12518
  function Star(state) {
@@ -12916,22 +13108,36 @@ ${input.slice(result.pos)}
12916
13108
  }
12917
13109
  }
12918
13110
  var JSXElement$0 = JSXSelfClosingElement;
12919
- var JSXElement$1 = $TS($S(JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
12920
- if ($1[1] !== $4[2])
13111
+ var JSXElement$1 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningElement, $E(JSXMixedChildren), JSXOptionalClosingElement), function($skip, $loc, $0, $1, $2, $3, $4) {
13112
+ var open = $2;
13113
+ var children = $3;
13114
+ var close = $4;
13115
+ module2.JSXTagStack.pop();
13116
+ if (!children)
12921
13117
  return $skip;
12922
- return { type: "JSXElement", children: $0 };
12923
- });
12924
- var JSXElement$2 = $TS($S(JSXOpeningElement, JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
12925
- var open = $1;
12926
- var children = $2;
12927
- return {
12928
- type: "JSXElement",
12929
- children: children.jsxChildren.length ? [...$0, ["</", open[1], ">"]] : [open.slice(0, -1), " />"]
12930
- };
13118
+ $0 = $0.slice(1);
13119
+ let parts;
13120
+ if (close) {
13121
+ parts = $0;
13122
+ } else if (children.jsxChildren.length) {
13123
+ parts = [
13124
+ ...$0,
13125
+ "\n",
13126
+ module2.currentIndent.token,
13127
+ ["</", open[1], ">"]
13128
+ ];
13129
+ } else {
13130
+ parts = [open.slice(0, -1), " />"];
13131
+ }
13132
+ return { type: "JSXElement", children: parts, tag: open[1] };
12931
13133
  });
12932
- var JSXElement$3 = $TV(JSXOpeningElement, function($skip, $loc, $0, $1) {
12933
- var elt = $0;
12934
- throw new Error(`could not parse JSX element "${elt[0]}${elt[1]}${elt[elt.length - 1]}" at pos ${$loc.pos}`);
13134
+ var JSXElement$2 = $TS($S(CoffeeJSXEnabled, JSXOpeningElement, $E(JSXChildren), $E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13135
+ var open = $2;
13136
+ var close = $5;
13137
+ $0 = $0.slice(1);
13138
+ if (open[1] !== close[2])
13139
+ return $skip;
13140
+ return { type: "JSXElement", children: $0, tag: open[1] };
12935
13141
  });
12936
13142
  function JSXElement(state) {
12937
13143
  let eventData;
@@ -12944,19 +13150,19 @@ ${input.slice(result.pos)}
12944
13150
  }
12945
13151
  }
12946
13152
  if (state.tokenize) {
12947
- const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state));
13153
+ const result = $TOKEN("JSXElement", state, JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state));
12948
13154
  if (state.events)
12949
13155
  state.events.exit?.("JSXElement", state, result, eventData);
12950
13156
  return result;
12951
13157
  } else {
12952
- const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state) || JSXElement$3(state);
13158
+ const result = JSXElement$0(state) || JSXElement$1(state) || JSXElement$2(state);
12953
13159
  if (state.events)
12954
13160
  state.events.exit?.("JSXElement", state, result, eventData);
12955
13161
  return result;
12956
13162
  }
12957
13163
  }
12958
13164
  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) {
12959
- return { type: "JSXElement", children: $0 };
13165
+ return { type: "JSXElement", children: $0, tag: $2 };
12960
13166
  });
12961
13167
  function JSXSelfClosingElement(state) {
12962
13168
  let eventData;
@@ -12980,7 +13186,33 @@ ${input.slice(result.pos)}
12980
13186
  return result;
12981
13187
  }
12982
13188
  }
12983
- var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L26, fail, 'JSXOpeningElement ">"'));
13189
+ var PushJSXOpeningElement$0 = $TS($S(JSXOpeningElement), function($skip, $loc, $0, $1) {
13190
+ module2.JSXTagStack.push($1[1]);
13191
+ return $1;
13192
+ });
13193
+ function PushJSXOpeningElement(state) {
13194
+ let eventData;
13195
+ if (state.events) {
13196
+ const result = state.events.enter?.("PushJSXOpeningElement", state);
13197
+ if (result) {
13198
+ if (result.cache)
13199
+ return result.cache;
13200
+ eventData = result.data;
13201
+ }
13202
+ }
13203
+ if (state.tokenize) {
13204
+ const result = $TOKEN("PushJSXOpeningElement", state, PushJSXOpeningElement$0(state));
13205
+ if (state.events)
13206
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13207
+ return result;
13208
+ } else {
13209
+ const result = PushJSXOpeningElement$0(state);
13210
+ if (state.events)
13211
+ state.events.exit?.("PushJSXOpeningElement", state, result, eventData);
13212
+ return result;
13213
+ }
13214
+ }
13215
+ var JSXOpeningElement$0 = $S($EXPECT($L122, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L27, fail, 'JSXOpeningElement ">"'));
12984
13216
  function JSXOpeningElement(state) {
12985
13217
  let eventData;
12986
13218
  if (state.events) {
@@ -13003,7 +13235,36 @@ ${input.slice(result.pos)}
13003
13235
  return result;
13004
13236
  }
13005
13237
  }
13006
- var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L26, fail, 'JSXClosingElement ">"'));
13238
+ var JSXOptionalClosingElement$0 = $TS($S($E(Whitespace), JSXClosingElement), function($skip, $loc, $0, $1, $2) {
13239
+ var close = $2;
13240
+ if (module2.currentJSXTag !== close[2])
13241
+ return $skip;
13242
+ return $0;
13243
+ });
13244
+ var JSXOptionalClosingElement$1 = $EXPECT($L14, fail, 'JSXOptionalClosingElement ""');
13245
+ function JSXOptionalClosingElement(state) {
13246
+ let eventData;
13247
+ if (state.events) {
13248
+ const result = state.events.enter?.("JSXOptionalClosingElement", state);
13249
+ if (result) {
13250
+ if (result.cache)
13251
+ return result.cache;
13252
+ eventData = result.data;
13253
+ }
13254
+ }
13255
+ if (state.tokenize) {
13256
+ const result = $TOKEN("JSXOptionalClosingElement", state, JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state));
13257
+ if (state.events)
13258
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13259
+ return result;
13260
+ } else {
13261
+ const result = JSXOptionalClosingElement$0(state) || JSXOptionalClosingElement$1(state);
13262
+ if (state.events)
13263
+ state.events.exit?.("JSXOptionalClosingElement", state, result, eventData);
13264
+ return result;
13265
+ }
13266
+ }
13267
+ var JSXClosingElement$0 = $S($EXPECT($L155, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L27, fail, 'JSXClosingElement ">"'));
13007
13268
  function JSXClosingElement(state) {
13008
13269
  let eventData;
13009
13270
  if (state.events) {
@@ -13026,15 +13287,30 @@ ${input.slice(result.pos)}
13026
13287
  return result;
13027
13288
  }
13028
13289
  }
13029
- 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) {
13030
- if ($2) {
13031
- return { type: "JSXFragment", children: $0, jsxChildren: $2.jsxChildren };
13032
- } else {
13033
- return { type: "JSXFragment", children: $0, jsxChildren: [] };
13034
- }
13290
+ var JSXFragment$0 = $TS($S($N(CoffeeJSXEnabled), PushJSXOpeningFragment, $E(JSXMixedChildren), JSXOptionalClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4) {
13291
+ var open = $2;
13292
+ var children = $3;
13293
+ var close = $4;
13294
+ module2.JSXTagStack.pop();
13295
+ if (!children)
13296
+ return $skip;
13297
+ $0 = $0.slice(1);
13298
+ const parts = close ? $0 : [
13299
+ ...$0,
13300
+ "\n",
13301
+ module2.currentIndent.token,
13302
+ "</>"
13303
+ ];
13304
+ return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13035
13305
  });
13036
- var JSXFragment$1 = $TS($S($EXPECT($L156, fail, 'JSXFragment "<>"'), JSXMixedChildren, InsertNewline, InsertIndent), function($skip, $loc, $0, $1, $2, $3, $4) {
13037
- return { type: "JSXFragment", children: [...$0, "</>"], jsxChildren: $2.jsxChildren };
13306
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L156, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13307
+ var children = $3;
13308
+ $0 = $0.slice(1);
13309
+ return {
13310
+ type: "JSXFragment",
13311
+ children: $0,
13312
+ jsxChildren: children ? children.jsxChildren : []
13313
+ };
13038
13314
  });
13039
13315
  function JSXFragment(state) {
13040
13316
  let eventData;
@@ -13058,6 +13334,83 @@ ${input.slice(result.pos)}
13058
13334
  return result;
13059
13335
  }
13060
13336
  }
13337
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L156, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13338
+ module2.JSXTagStack.push("");
13339
+ return $1;
13340
+ });
13341
+ function PushJSXOpeningFragment(state) {
13342
+ let eventData;
13343
+ if (state.events) {
13344
+ const result = state.events.enter?.("PushJSXOpeningFragment", state);
13345
+ if (result) {
13346
+ if (result.cache)
13347
+ return result.cache;
13348
+ eventData = result.data;
13349
+ }
13350
+ }
13351
+ if (state.tokenize) {
13352
+ const result = $TOKEN("PushJSXOpeningFragment", state, PushJSXOpeningFragment$0(state));
13353
+ if (state.events)
13354
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13355
+ return result;
13356
+ } else {
13357
+ const result = PushJSXOpeningFragment$0(state);
13358
+ if (state.events)
13359
+ state.events.exit?.("PushJSXOpeningFragment", state, result, eventData);
13360
+ return result;
13361
+ }
13362
+ }
13363
+ var JSXOptionalClosingFragment$0 = $TS($S($E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2) {
13364
+ if (module2.currentJSXTag !== "")
13365
+ return $skip;
13366
+ return $0;
13367
+ });
13368
+ var JSXOptionalClosingFragment$1 = $EXPECT($L14, fail, 'JSXOptionalClosingFragment ""');
13369
+ function JSXOptionalClosingFragment(state) {
13370
+ let eventData;
13371
+ if (state.events) {
13372
+ const result = state.events.enter?.("JSXOptionalClosingFragment", state);
13373
+ if (result) {
13374
+ if (result.cache)
13375
+ return result.cache;
13376
+ eventData = result.data;
13377
+ }
13378
+ }
13379
+ if (state.tokenize) {
13380
+ const result = $TOKEN("JSXOptionalClosingFragment", state, JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state));
13381
+ if (state.events)
13382
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13383
+ return result;
13384
+ } else {
13385
+ const result = JSXOptionalClosingFragment$0(state) || JSXOptionalClosingFragment$1(state);
13386
+ if (state.events)
13387
+ state.events.exit?.("JSXOptionalClosingFragment", state, result, eventData);
13388
+ return result;
13389
+ }
13390
+ }
13391
+ var JSXClosingFragment$0 = $EXPECT($L157, fail, 'JSXClosingFragment "</>"');
13392
+ function JSXClosingFragment(state) {
13393
+ let eventData;
13394
+ if (state.events) {
13395
+ const result = state.events.enter?.("JSXClosingFragment", state);
13396
+ if (result) {
13397
+ if (result.cache)
13398
+ return result.cache;
13399
+ eventData = result.data;
13400
+ }
13401
+ }
13402
+ if (state.tokenize) {
13403
+ const result = $TOKEN("JSXClosingFragment", state, JSXClosingFragment$0(state));
13404
+ if (state.events)
13405
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13406
+ return result;
13407
+ } else {
13408
+ const result = JSXClosingFragment$0(state);
13409
+ if (state.events)
13410
+ state.events.exit?.("JSXClosingFragment", state, result, eventData);
13411
+ return result;
13412
+ }
13413
+ }
13061
13414
  var JSXElementName$0 = $S(JSXIdentifierName, $C($S(Colon, JSXIdentifierName), $Q($S(Dot, JSXIdentifierName))));
13062
13415
  function JSXElementName(state) {
13063
13416
  let eventData;
@@ -13774,7 +14127,7 @@ ${input.slice(result.pos)}
13774
14127
  return result;
13775
14128
  }
13776
14129
  }
13777
- var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(Nested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
14130
+ var JSXNestedChildren$0 = $TS($S(PushIndent, $Q($S(JSXNested, $P(JSXChild))), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
13778
14131
  if ($2.length) {
13779
14132
  return {
13780
14133
  children: $2,
@@ -13783,7 +14136,7 @@ ${input.slice(result.pos)}
13783
14136
  }
13784
14137
  return $skip;
13785
14138
  });
13786
- var JSXNestedChildren$1 = $TV($Y($C(EOS, $EXPECT($L16, fail, 'JSXNestedChildren "}"'))), function($skip, $loc, $0, $1) {
14139
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L17, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
13787
14140
  return { children: [], jsxChildren: [] };
13788
14141
  });
13789
14142
  function JSXNestedChildren(state) {
@@ -13808,6 +14161,60 @@ ${input.slice(result.pos)}
13808
14161
  return result;
13809
14162
  }
13810
14163
  }
14164
+ var JSXEOS$0 = $P($S($E(NonNewlineWhitespace), EOL));
14165
+ function JSXEOS(state) {
14166
+ let eventData;
14167
+ if (state.events) {
14168
+ const result = state.events.enter?.("JSXEOS", state);
14169
+ if (result) {
14170
+ if (result.cache)
14171
+ return result.cache;
14172
+ eventData = result.data;
14173
+ }
14174
+ }
14175
+ if (state.tokenize) {
14176
+ const result = $TOKEN("JSXEOS", state, JSXEOS$0(state));
14177
+ if (state.events)
14178
+ state.events.exit?.("JSXEOS", state, result, eventData);
14179
+ return result;
14180
+ } else {
14181
+ const result = JSXEOS$0(state);
14182
+ if (state.events)
14183
+ state.events.exit?.("JSXEOS", state, result, eventData);
14184
+ return result;
14185
+ }
14186
+ }
14187
+ var JSXNested$0 = $TS($S(JSXEOS, Indent), function($skip, $loc, $0, $1, $2) {
14188
+ var eos = $1;
14189
+ var indent = $2;
14190
+ const { level } = indent;
14191
+ const currentIndent = module2.currentIndent;
14192
+ if (level !== currentIndent.level)
14193
+ return $skip;
14194
+ return $0;
14195
+ });
14196
+ function JSXNested(state) {
14197
+ let eventData;
14198
+ if (state.events) {
14199
+ const result = state.events.enter?.("JSXNested", state);
14200
+ if (result) {
14201
+ if (result.cache)
14202
+ return result.cache;
14203
+ eventData = result.data;
14204
+ }
14205
+ }
14206
+ if (state.tokenize) {
14207
+ const result = $TOKEN("JSXNested", state, JSXNested$0(state));
14208
+ if (state.events)
14209
+ state.events.exit?.("JSXNested", state, result, eventData);
14210
+ return result;
14211
+ } else {
14212
+ const result = JSXNested$0(state);
14213
+ if (state.events)
14214
+ state.events.exit?.("JSXNested", state, result, eventData);
14215
+ return result;
14216
+ }
14217
+ }
13811
14218
  var JSXChild$0 = JSXElement;
13812
14219
  var JSXChild$1 = JSXFragment;
13813
14220
  var JSXChild$2 = JSXComment;
@@ -13987,7 +14394,7 @@ ${input.slice(result.pos)}
13987
14394
  return result;
13988
14395
  }
13989
14396
  }
13990
- var NestedJSXChildExpression$0 = $S(Nested, JSXChildExpression);
14397
+ var NestedJSXChildExpression$0 = $S(JSXNested, JSXChildExpression);
13991
14398
  function NestedJSXChildExpression(state) {
13992
14399
  let eventData;
13993
14400
  if (state.events) {
@@ -14947,7 +15354,7 @@ ${input.slice(result.pos)}
14947
15354
  return result;
14948
15355
  }
14949
15356
  }
14950
- var TypeArguments$0 = $TS($S($EXPECT($L122, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L26, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
15357
+ var TypeArguments$0 = $TS($S($EXPECT($L122, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L27, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
14951
15358
  return { ts: true, children: $0 };
14952
15359
  });
14953
15360
  function TypeArguments(state) {
@@ -15018,7 +15425,7 @@ ${input.slice(result.pos)}
15018
15425
  return result;
15019
15426
  }
15020
15427
  }
15021
- var TypeParameters$0 = $TS($S(__, $EXPECT($L122, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L26, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15428
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L122, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L27, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15022
15429
  var parameters = $3;
15023
15430
  return {
15024
15431
  type: "TypeParameters",
@@ -15095,7 +15502,7 @@ ${input.slice(result.pos)}
15095
15502
  return result;
15096
15503
  }
15097
15504
  }
15098
- var TypeInitializer$0 = $S(__, $EXPECT($L25, fail, 'TypeInitializer "="'), Type);
15505
+ var TypeInitializer$0 = $S(__, $EXPECT($L26, fail, 'TypeInitializer "="'), Type);
15099
15506
  function TypeInitializer(state) {
15100
15507
  let eventData;
15101
15508
  if (state.events) {
@@ -15119,7 +15526,7 @@ ${input.slice(result.pos)}
15119
15526
  }
15120
15527
  }
15121
15528
  var TypeParameterDelimiter$0 = $S($Q(_), Comma);
15122
- var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L26, fail, 'TypeParameterDelimiter ">"')));
15529
+ var TypeParameterDelimiter$1 = $Y($S(__, $EXPECT($L27, fail, 'TypeParameterDelimiter ">"')));
15123
15530
  var TypeParameterDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
15124
15531
  return value[1];
15125
15532
  });
@@ -15145,6 +15552,31 @@ ${input.slice(result.pos)}
15145
15552
  return result;
15146
15553
  }
15147
15554
  }
15555
+ var ThisType$0 = $T($S($C(This, AtThis), Colon, Type), function(value) {
15556
+ return { "type": "ThisType", "ts": true, "children": value };
15557
+ });
15558
+ function ThisType(state) {
15559
+ let eventData;
15560
+ if (state.events) {
15561
+ const result = state.events.enter?.("ThisType", state);
15562
+ if (result) {
15563
+ if (result.cache)
15564
+ return result.cache;
15565
+ eventData = result.data;
15566
+ }
15567
+ }
15568
+ if (state.tokenize) {
15569
+ const result = $TOKEN("ThisType", state, ThisType$0(state));
15570
+ if (state.events)
15571
+ state.events.exit?.("ThisType", state, result, eventData);
15572
+ return result;
15573
+ } else {
15574
+ const result = ThisType$0(state);
15575
+ if (state.events)
15576
+ state.events.exit?.("ThisType", state, result, eventData);
15577
+ return result;
15578
+ }
15579
+ }
15148
15580
  var Shebang$0 = $S($R$0($EXPECT($R52, fail, "Shebang /#![^\\r\\n]*/")), EOL);
15149
15581
  function Shebang(state) {
15150
15582
  let eventData;
@@ -15359,7 +15791,7 @@ ${input.slice(result.pos)}
15359
15791
  return result;
15360
15792
  }
15361
15793
  }
15362
- var Debugger$0 = $TV($EXPECT($L1, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
15794
+ var Debugger$0 = $TV($EXPECT($L14, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
15363
15795
  debugger;
15364
15796
  });
15365
15797
  function Debugger(state) {
@@ -15384,7 +15816,7 @@ ${input.slice(result.pos)}
15384
15816
  return result;
15385
15817
  }
15386
15818
  }
15387
- var InsertOpenParen$0 = $TV($EXPECT($L1, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
15819
+ var InsertOpenParen$0 = $TV($EXPECT($L14, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
15388
15820
  return { $loc, token: "(" };
15389
15821
  });
15390
15822
  function InsertOpenParen(state) {
@@ -15409,7 +15841,7 @@ ${input.slice(result.pos)}
15409
15841
  return result;
15410
15842
  }
15411
15843
  }
15412
- var InsertCloseParen$0 = $TV($EXPECT($L1, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
15844
+ var InsertCloseParen$0 = $TV($EXPECT($L14, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
15413
15845
  return { $loc, token: ")" };
15414
15846
  });
15415
15847
  function InsertCloseParen(state) {
@@ -15434,7 +15866,7 @@ ${input.slice(result.pos)}
15434
15866
  return result;
15435
15867
  }
15436
15868
  }
15437
- var InsertOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
15869
+ var InsertOpenBrace$0 = $TV($EXPECT($L14, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
15438
15870
  return [{ $loc, token: " " }, { $loc, token: "{" }];
15439
15871
  });
15440
15872
  function InsertOpenBrace(state) {
@@ -15459,7 +15891,7 @@ ${input.slice(result.pos)}
15459
15891
  return result;
15460
15892
  }
15461
15893
  }
15462
- var InsertInlineOpenBrace$0 = $TV($EXPECT($L1, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
15894
+ var InsertInlineOpenBrace$0 = $TV($EXPECT($L14, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
15463
15895
  return { $loc, token: "{" };
15464
15896
  });
15465
15897
  function InsertInlineOpenBrace(state) {
@@ -15484,7 +15916,7 @@ ${input.slice(result.pos)}
15484
15916
  return result;
15485
15917
  }
15486
15918
  }
15487
- var InsertCloseBrace$0 = $TV($EXPECT($L1, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
15919
+ var InsertCloseBrace$0 = $TV($EXPECT($L14, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
15488
15920
  return { $loc, token: "}" };
15489
15921
  });
15490
15922
  function InsertCloseBrace(state) {
@@ -15509,7 +15941,7 @@ ${input.slice(result.pos)}
15509
15941
  return result;
15510
15942
  }
15511
15943
  }
15512
- var InsertComma$0 = $TV($EXPECT($L1, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
15944
+ var InsertComma$0 = $TV($EXPECT($L14, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
15513
15945
  return { $loc, token: "," };
15514
15946
  });
15515
15947
  function InsertComma(state) {
@@ -15534,7 +15966,7 @@ ${input.slice(result.pos)}
15534
15966
  return result;
15535
15967
  }
15536
15968
  }
15537
- var InsertConst$0 = $TV($EXPECT($L1, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
15969
+ var InsertConst$0 = $TV($EXPECT($L14, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
15538
15970
  return { $loc, token: "const " };
15539
15971
  });
15540
15972
  function InsertConst(state) {
@@ -15559,7 +15991,7 @@ ${input.slice(result.pos)}
15559
15991
  return result;
15560
15992
  }
15561
15993
  }
15562
- var InsertLet$0 = $TV($EXPECT($L1, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
15994
+ var InsertLet$0 = $TV($EXPECT($L14, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
15563
15995
  return { $loc, token: "let " };
15564
15996
  });
15565
15997
  function InsertLet(state) {
@@ -15584,7 +16016,7 @@ ${input.slice(result.pos)}
15584
16016
  return result;
15585
16017
  }
15586
16018
  }
15587
- var InsertReadonly$0 = $TV($EXPECT($L1, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
16019
+ var InsertReadonly$0 = $TV($EXPECT($L14, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
15588
16020
  return { ts: true, children: [{ $loc, token: "readonly " }] };
15589
16021
  });
15590
16022
  function InsertReadonly(state) {
@@ -15609,7 +16041,7 @@ ${input.slice(result.pos)}
15609
16041
  return result;
15610
16042
  }
15611
16043
  }
15612
- var InsertNewline$0 = $TV($EXPECT($L1, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
16044
+ var InsertNewline$0 = $TV($EXPECT($L14, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
15613
16045
  return "\n";
15614
16046
  });
15615
16047
  function InsertNewline(state) {
@@ -15634,7 +16066,7 @@ ${input.slice(result.pos)}
15634
16066
  return result;
15635
16067
  }
15636
16068
  }
15637
- var InsertIndent$0 = $TV($EXPECT($L1, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
16069
+ var InsertIndent$0 = $TV($EXPECT($L14, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
15638
16070
  return module2.currentIndent.token;
15639
16071
  });
15640
16072
  function InsertIndent(state) {
@@ -15659,7 +16091,7 @@ ${input.slice(result.pos)}
15659
16091
  return result;
15660
16092
  }
15661
16093
  }
15662
- var InsertSpace$0 = $TV($EXPECT($L1, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
16094
+ var InsertSpace$0 = $TV($EXPECT($L14, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
15663
16095
  return { $loc, token: " " };
15664
16096
  });
15665
16097
  function InsertSpace(state) {
@@ -15684,7 +16116,7 @@ ${input.slice(result.pos)}
15684
16116
  return result;
15685
16117
  }
15686
16118
  }
15687
- var InsertDot$0 = $TV($EXPECT($L1, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
16119
+ var InsertDot$0 = $TV($EXPECT($L14, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
15688
16120
  return { $loc, token: "." };
15689
16121
  });
15690
16122
  function InsertDot(state) {
@@ -15709,7 +16141,7 @@ ${input.slice(result.pos)}
15709
16141
  return result;
15710
16142
  }
15711
16143
  }
15712
- var InsertBreak$0 = $TV($EXPECT($L1, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
16144
+ var InsertBreak$0 = $TV($EXPECT($L14, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
15713
16145
  return { $loc, token: ";break;" };
15714
16146
  });
15715
16147
  function InsertBreak(state) {
@@ -15734,7 +16166,7 @@ ${input.slice(result.pos)}
15734
16166
  return result;
15735
16167
  }
15736
16168
  }
15737
- var InsertVar$0 = $TV($EXPECT($L1, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
16169
+ var InsertVar$0 = $TV($EXPECT($L14, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
15738
16170
  return { $loc, token: "var " };
15739
16171
  });
15740
16172
  function InsertVar(state) {
@@ -15759,7 +16191,7 @@ ${input.slice(result.pos)}
15759
16191
  return result;
15760
16192
  }
15761
16193
  }
15762
- var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
16194
+ var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
15763
16195
  if (module2.config.coffeeBinaryExistential)
15764
16196
  return;
15765
16197
  return $skip;
@@ -15786,7 +16218,7 @@ ${input.slice(result.pos)}
15786
16218
  return result;
15787
16219
  }
15788
16220
  }
15789
- var CoffeeBooleansEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
16221
+ var CoffeeBooleansEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
15790
16222
  if (module2.config.coffeeBooleans)
15791
16223
  return;
15792
16224
  return $skip;
@@ -15813,7 +16245,7 @@ ${input.slice(result.pos)}
15813
16245
  return result;
15814
16246
  }
15815
16247
  }
15816
- var CoffeeClassesEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
16248
+ var CoffeeClassesEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
15817
16249
  if (module2.config.coffeeClasses)
15818
16250
  return;
15819
16251
  return $skip;
@@ -15840,7 +16272,7 @@ ${input.slice(result.pos)}
15840
16272
  return result;
15841
16273
  }
15842
16274
  }
15843
- var CoffeeCommentEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
16275
+ var CoffeeCommentEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
15844
16276
  if (module2.config.coffeeComment)
15845
16277
  return;
15846
16278
  return $skip;
@@ -15867,7 +16299,7 @@ ${input.slice(result.pos)}
15867
16299
  return result;
15868
16300
  }
15869
16301
  }
15870
- var CoffeeDoEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
16302
+ var CoffeeDoEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
15871
16303
  if (module2.config.coffeeDo)
15872
16304
  return;
15873
16305
  return $skip;
@@ -15894,7 +16326,7 @@ ${input.slice(result.pos)}
15894
16326
  return result;
15895
16327
  }
15896
16328
  }
15897
- var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
16329
+ var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
15898
16330
  if (module2.config.coffeeForLoops)
15899
16331
  return;
15900
16332
  return $skip;
@@ -15921,7 +16353,7 @@ ${input.slice(result.pos)}
15921
16353
  return result;
15922
16354
  }
15923
16355
  }
15924
- var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
16356
+ var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
15925
16357
  if (module2.config.coffeeInterpolation)
15926
16358
  return;
15927
16359
  return $skip;
@@ -15948,7 +16380,7 @@ ${input.slice(result.pos)}
15948
16380
  return result;
15949
16381
  }
15950
16382
  }
15951
- var CoffeeIsntEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
16383
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
15952
16384
  if (module2.config.coffeeIsnt)
15953
16385
  return;
15954
16386
  return $skip;
@@ -15975,7 +16407,34 @@ ${input.slice(result.pos)}
15975
16407
  return result;
15976
16408
  }
15977
16409
  }
15978
- var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16410
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16411
+ if (module2.config.coffeeJSX)
16412
+ return;
16413
+ return $skip;
16414
+ });
16415
+ function CoffeeJSXEnabled(state) {
16416
+ let eventData;
16417
+ if (state.events) {
16418
+ const result = state.events.enter?.("CoffeeJSXEnabled", state);
16419
+ if (result) {
16420
+ if (result.cache)
16421
+ return result.cache;
16422
+ eventData = result.data;
16423
+ }
16424
+ }
16425
+ if (state.tokenize) {
16426
+ const result = $TOKEN("CoffeeJSXEnabled", state, CoffeeJSXEnabled$0(state));
16427
+ if (state.events)
16428
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16429
+ return result;
16430
+ } else {
16431
+ const result = CoffeeJSXEnabled$0(state);
16432
+ if (state.events)
16433
+ state.events.exit?.("CoffeeJSXEnabled", state, result, eventData);
16434
+ return result;
16435
+ }
16436
+ }
16437
+ var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
15979
16438
  if (module2.config.coffeeLineContinuation)
15980
16439
  return;
15981
16440
  return $skip;
@@ -16002,7 +16461,7 @@ ${input.slice(result.pos)}
16002
16461
  return result;
16003
16462
  }
16004
16463
  }
16005
- var CoffeeNotEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16464
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16006
16465
  if (module2.config.coffeeNot)
16007
16466
  return;
16008
16467
  return $skip;
@@ -16029,7 +16488,7 @@ ${input.slice(result.pos)}
16029
16488
  return result;
16030
16489
  }
16031
16490
  }
16032
- var CoffeeOfEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
16491
+ var CoffeeOfEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
16033
16492
  if (module2.config.coffeeOf)
16034
16493
  return;
16035
16494
  return $skip;
@@ -16056,7 +16515,7 @@ ${input.slice(result.pos)}
16056
16515
  return result;
16057
16516
  }
16058
16517
  }
16059
- var CoffeePrototypeEnabled$0 = $TV($EXPECT($L1, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
16518
+ var CoffeePrototypeEnabled$0 = $TV($EXPECT($L14, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
16060
16519
  if (module2.config.coffeePrototype)
16061
16520
  return;
16062
16521
  return $skip;
@@ -16083,17 +16542,32 @@ ${input.slice(result.pos)}
16083
16542
  return result;
16084
16543
  }
16085
16544
  }
16086
- var Reset$0 = $TV($EXPECT($L1, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
16545
+ var Reset$0 = $TV($EXPECT($L14, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
16087
16546
  module2.indentLevels = [{
16088
16547
  level: 0,
16089
16548
  token: ""
16090
16549
  }];
16550
+ module2.suppressTrailingMemberProperty = [false];
16551
+ module2.JSXTagStack = [];
16091
16552
  if (!module2._init) {
16092
16553
  module2._init = true;
16093
16554
  Object.defineProperties(module2, {
16094
16555
  currentIndent: {
16095
16556
  get() {
16096
- return module2.indentLevels[module2.indentLevels.length - 1];
16557
+ const { indentLevels: l } = module2;
16558
+ return l[l.length - 1];
16559
+ }
16560
+ },
16561
+ trailingMemberPropertySuppressed: {
16562
+ get() {
16563
+ const { suppressTrailingMemberProperty: s } = module2;
16564
+ return s[s.length - 1];
16565
+ }
16566
+ },
16567
+ currentJSXTag: {
16568
+ get() {
16569
+ const { JSXTagStack: s } = module2;
16570
+ return s[s.length - 1];
16097
16571
  }
16098
16572
  }
16099
16573
  });
@@ -16110,6 +16584,7 @@ ${input.slice(result.pos)}
16110
16584
  coffeeForLoops: false,
16111
16585
  coffeeInterpolation: false,
16112
16586
  coffeeIsnt: false,
16587
+ coffeeJSX: false,
16113
16588
  coffeeLineContinuation: false,
16114
16589
  coffeeNot: false,
16115
16590
  coffeeOf: false,
@@ -16214,11 +16689,8 @@ ${input.slice(result.pos)}
16214
16689
  if (module2.config.server && !module2.config.client) {
16215
16690
  return ["string"];
16216
16691
  }
16217
- let open = node.children;
16218
- while (Array.isArray(open[0]))
16219
- open = open[0];
16220
- open = open[1];
16221
- const clientType = typeof open === "string" && open[0] === open[0].toLowerCase() ? [module2.getRef("IntrinsicElements"), '<"', open, '">'] : ["ReturnType<typeof ", open, ">"];
16692
+ let { tag } = node;
16693
+ const clientType = tag[0] === tag[0].toLowerCase() ? [module2.getRef("IntrinsicElements"), '<"', tag, '">'] : ["ReturnType<typeof ", tag, ">"];
16222
16694
  if (module2.config.server) {
16223
16695
  return ["string", " | ", clientType];
16224
16696
  } else {
@@ -16264,36 +16736,24 @@ ${input.slice(result.pos)}
16264
16736
  };
16265
16737
  Object.defineProperty(module2.config, "coffeeCompat", {
16266
16738
  set(b) {
16267
- if (b) {
16268
- this.autoVar = true;
16269
- this.coffeeBinaryExistential = true;
16270
- this.coffeeBooleans = true;
16271
- this.coffeeClasses = true;
16272
- this.coffeeComment = true;
16273
- this.coffeeDo = true;
16274
- this.coffeeEq = true;
16275
- this.coffeeForLoops = true;
16276
- this.coffeeInterpolation = true;
16277
- this.coffeeIsnt = true;
16278
- this.coffeeLineContinuation = true;
16279
- this.coffeeNot = true;
16280
- this.coffeeOf = true;
16281
- this.coffeePrototype = true;
16282
- } else {
16283
- this.autoVar = false;
16284
- this.coffeeBinaryExistential = false;
16285
- this.coffeeBooleans = false;
16286
- this.coffeeClasses = false;
16287
- this.coffeeComment = false;
16288
- this.coffeeDo = false;
16289
- this.coffeeEq = false;
16290
- this.coffeeForLoops = false;
16291
- this.coffeeInterpolation = false;
16292
- this.coffeeIsnt = false;
16293
- this.coffeeLineContinuation = false;
16294
- this.coffeeNot = false;
16295
- this.coffeeOf = false;
16296
- this.coffeePrototype = false;
16739
+ for (const option of [
16740
+ "autoVar",
16741
+ "coffeeBinaryExistential",
16742
+ "coffeeBooleans",
16743
+ "coffeeClasses",
16744
+ "coffeeComment",
16745
+ "coffeeDo",
16746
+ "coffeeEq",
16747
+ "coffeeForLoops",
16748
+ "coffeeInterpolation",
16749
+ "coffeeIsnt",
16750
+ "coffeeJSX",
16751
+ "coffeeLineContinuation",
16752
+ "coffeeNot",
16753
+ "coffeeOf",
16754
+ "coffeePrototype"
16755
+ ]) {
16756
+ module2.config[option] = b;
16297
16757
  }
16298
16758
  }
16299
16759
  });
@@ -16331,7 +16791,7 @@ ${input.slice(result.pos)}
16331
16791
  return result;
16332
16792
  }
16333
16793
  }
16334
- var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
16794
+ var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L14, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
16335
16795
  var directives = $2;
16336
16796
  directives.forEach((directive) => {
16337
16797
  if (directive.type === "CivetPrologue") {
@@ -17465,7 +17925,7 @@ ${input.slice(result.pos)}
17465
17925
  return result;
17466
17926
  }
17467
17927
  }
17468
- var PopIndent$0 = $TV($EXPECT($L1, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
17928
+ var PopIndent$0 = $TV($EXPECT($L14, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
17469
17929
  if (module2.config.verbose) {
17470
17930
  console.log("popping indent", module2.indentLevels[module2.indentLevels.length - 1], "->", module2.indentLevels[module2.indentLevels.length - 2]);
17471
17931
  }
@@ -17958,7 +18418,7 @@ var uncacheable;
17958
18418
  ({ parse } = import_parser.default);
17959
18419
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
17960
18420
  defaultOptions = {};
17961
- 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"]);
18421
+ 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"]);
17962
18422
  var compile = function(src, options = defaultOptions) {
17963
18423
  var ast, code, events, filename, sm, srcMapJSON;
17964
18424
  filename = options.filename || "unknown";