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