@danielx/civet 0.4.18 → 0.4.19-pre.0

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
@@ -955,50 +955,52 @@ var require_parser = __commonJS({
955
955
  var $L152 = $L(" ");
956
956
  var $L153 = $L(" ");
957
957
  var $R0 = $R(new RegExp("(of|then|when)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
958
- var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
959
- var $R2 = $R(new RegExp("[!~+-](?!\\s)", "suy"));
960
- var $R3 = $R(new RegExp("(?=[\\s\\)])", "suy"));
961
- var $R4 = $R(new RegExp('[^;"\\s]+', "suy"));
962
- var $R5 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
963
- var $R6 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
964
- var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
965
- var $R8 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
966
- var $R9 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
967
- var $R10 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
968
- var $R11 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
969
- var $R12 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
970
- var $R13 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
971
- var $R14 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
972
- var $R15 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
973
- var $R16 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
974
- var $R17 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
975
- var $R18 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
976
- var $R19 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
977
- var $R20 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
978
- var $R21 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
979
- var $R22 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
980
- var $R23 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
981
- var $R24 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
982
- var $R25 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
983
- var $R26 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
984
- var $R27 = $R(new RegExp(".", "suy"));
985
- var $R28 = $R(new RegExp("#([^\\r\\n]*)", "suy"));
986
- var $R29 = $R(new RegExp("[^\\r\\n]", "suy"));
987
- var $R30 = $R(new RegExp("[ \\t]+", "suy"));
988
- var $R31 = $R(new RegExp("[\\s]+", "suy"));
989
- var $R32 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
990
- var $R33 = $R(new RegExp("\\s", "suy"));
991
- var $R34 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
992
- var $R35 = $R(new RegExp('"[^"]*"', "suy"));
993
- var $R36 = $R(new RegExp("'[^']*'", "suy"));
994
- var $R37 = $R(new RegExp("[^{}<>]+", "suy"));
995
- var $R38 = $R(new RegExp("[+-]?", "suy"));
996
- var $R39 = $R(new RegExp("[+-]", "suy"));
997
- var $R40 = $R(new RegExp("#![^\\r\\n]*", "suy"));
998
- var $R41 = $R(new RegExp("[\\t ]*", "suy"));
999
- var $R42 = $R(new RegExp("[\\s]*", "suy"));
1000
- var $R43 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
1001
- var $R44 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
958
+ var $R1 = $R(new RegExp("[&]", "suy"));
959
+ var $R2 = $R(new RegExp("[!~+-]+", "suy"));
960
+ var $R3 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
961
+ var $R4 = $R(new RegExp("[!~+-](?!\\s|[!~+-]*&)", "suy"));
962
+ var $R5 = $R(new RegExp("(?=[\\s\\)])", "suy"));
963
+ var $R6 = $R(new RegExp('[^;"\\s]+', "suy"));
964
+ var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
965
+ var $R8 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
966
+ var $R9 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
967
+ var $R10 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
968
+ var $R11 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
969
+ var $R12 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
970
+ var $R13 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
971
+ var $R14 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?", "suy"));
972
+ var $R15 = $R(new RegExp('(?:\\\\.|[^"])*', "suy"));
973
+ var $R16 = $R(new RegExp("(?:\\\\.|[^'])*", "suy"));
974
+ var $R17 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
975
+ var $R18 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
976
+ var $R19 = $R(new RegExp('(?:\\\\.|#(?!\\{)|[^"#])+', "suy"));
977
+ var $R20 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
978
+ var $R21 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
979
+ var $R22 = $R(new RegExp("(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
980
+ var $R23 = $R(new RegExp("(?:\\$(?!\\{)|\\\\.|[^$`])+", "suy"));
981
+ var $R24 = $R(new RegExp("(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+", "suy"));
982
+ var $R25 = $R(new RegExp("(?:on|off|yes|no)(?!\\p{ID_Continue})", "suy"));
983
+ var $R26 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
984
+ var $R27 = $R(new RegExp("(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
985
+ var $R28 = $R(new RegExp("\\/\\/[^\\r\\n]*", "suy"));
986
+ var $R29 = $R(new RegExp(".", "suy"));
987
+ var $R30 = $R(new RegExp("#(?!##)([^\\r\\n]*)", "suy"));
988
+ var $R31 = $R(new RegExp("[^\\r\\n]", "suy"));
989
+ var $R32 = $R(new RegExp("[ \\t]+", "suy"));
990
+ var $R33 = $R(new RegExp("[\\s]+", "suy"));
991
+ var $R34 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
992
+ var $R35 = $R(new RegExp("\\s", "suy"));
993
+ var $R36 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
994
+ var $R37 = $R(new RegExp('"[^"]*"', "suy"));
995
+ var $R38 = $R(new RegExp("'[^']*'", "suy"));
996
+ var $R39 = $R(new RegExp("[^{}<>]+", "suy"));
997
+ var $R40 = $R(new RegExp("[+-]?", "suy"));
998
+ var $R41 = $R(new RegExp("[+-]", "suy"));
999
+ var $R42 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1000
+ var $R43 = $R(new RegExp("[\\t ]*", "suy"));
1001
+ var $R44 = $R(new RegExp("[\\s]*", "suy"));
1002
+ var $R45 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)", "suy"));
1003
+ var $R46 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1002
1004
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1003
1005
  var statements = $4;
1004
1006
  module2.processProgram(statements);
@@ -1171,25 +1173,9 @@ var require_parser = __commonJS({
1171
1173
  return IndentedApplicationAllowed$0(state);
1172
1174
  }
1173
1175
  }
1174
- var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q($S(__, BinaryOp, __, UnaryExpression))), function($skip, $loc, $0, $1, $2) {
1176
+ var BinaryOpExpression$0 = $TS($S(UnaryExpression, $Q($S(__, BinaryOp, __, $C(UnaryExpression, ExpressionizedStatement)))), function($skip, $loc, $0, $1, $2) {
1175
1177
  if ($2.length) {
1176
- const expandedOps = module2.expandChainedComparisons($0);
1177
- let i = 2;
1178
- while (i < expandedOps.length) {
1179
- const op = expandedOps[i];
1180
- if (op.type === "Ref") {
1181
- const [a, wsOp, op2, wsB, b] = expandedOps.slice(i - 2, i + 3);
1182
- module2.insertTrimmingSpace(wsOp, "");
1183
- module2.insertTrimmingSpace(wsB, "");
1184
- expandedOps.splice(i - 2, 5, {
1185
- type: "Call",
1186
- children: [wsOp, op2, ".call(", wsB, b, ", ", a, ") >= 0"]
1187
- });
1188
- } else {
1189
- i += 4;
1190
- }
1191
- }
1192
- return expandedOps;
1178
+ return module2.processBinaryOpExpression($0);
1193
1179
  }
1194
1180
  return $1;
1195
1181
  });
@@ -1209,14 +1195,31 @@ var require_parser = __commonJS({
1209
1195
  if (post?.token === "?") {
1210
1196
  return ["(", pre, "(", exp, ") != null)"];
1211
1197
  }
1212
- const result = [pre, exp, post];
1213
- if (!post)
1214
- result.pop();
1215
- if (!pre.length)
1216
- result.shift();
1217
- if (result.length === 1)
1218
- return result[0];
1219
- return result;
1198
+ if (exp.type === "Literal") {
1199
+ if (pre.length === 1 && pre[0].token === "-") {
1200
+ exp.raw = `-${exp.raw}`;
1201
+ exp.children.unshift(pre[0]);
1202
+ if (post)
1203
+ exp.children.push(post);
1204
+ return exp;
1205
+ }
1206
+ }
1207
+ if (exp.children) {
1208
+ exp.children.unshift(...pre);
1209
+ if (post)
1210
+ exp.children.push(post);
1211
+ return exp;
1212
+ } else if (Array.isArray(exp)) {
1213
+ exp.unshift(...pre);
1214
+ if (post)
1215
+ exp.push(post);
1216
+ return exp;
1217
+ } else {
1218
+ const result = [...pre, exp];
1219
+ if (post)
1220
+ result.push(post);
1221
+ return result;
1222
+ }
1220
1223
  });
1221
1224
  function UnaryExpression(state) {
1222
1225
  if (state.verbose)
@@ -1719,10 +1722,10 @@ var require_parser = __commonJS({
1719
1722
  return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
1720
1723
  }
1721
1724
  }
1722
- var MemberBracketContent$0 = $TS($S(OpenBracket, ExtendedExpression, $E($S($C(DotDotDot, DotDot), $E(ExtendedExpression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1725
+ var MemberBracketContent$0 = $TS($S(OpenBracket, ExtendedExpression, $E($S(__, $C(DotDotDot, DotDot), $E(ExtendedExpression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1723
1726
  if ($3) {
1724
- const sep = $3[0];
1725
- const end = $3[1];
1727
+ const sep = $3[1];
1728
+ const end = $3[2];
1726
1729
  const inclusive = sep.token === "..";
1727
1730
  sep.token = ", ";
1728
1731
  $1.token = ".slice(";
@@ -1736,6 +1739,7 @@ var require_parser = __commonJS({
1736
1739
  };
1737
1740
  }
1738
1741
  if (inclusive) {
1742
+ module2.insertTrimmingSpace(end, "");
1739
1743
  return {
1740
1744
  type: "SliceExpression",
1741
1745
  start: $2,
@@ -2195,18 +2199,33 @@ var require_parser = __commonJS({
2195
2199
  $1.type = "FunctionExpression";
2196
2200
  return $1;
2197
2201
  });
2198
- var FunctionExpression$1 = $TS($S(Ampersand, $P(MemberExpressionRest)), function($skip, $loc, $0, $1, $2) {
2202
+ var FunctionExpression$1 = $TS($S(Ampersand, $N(_), $P(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
2203
+ $1.token = "$ => $";
2204
+ return {
2205
+ type: "FunctionExpression",
2206
+ children: [$1, $3]
2207
+ };
2208
+ });
2209
+ var FunctionExpression$2 = $TS($S(Ampersand, $N($EXPECT($R1, fail, "FunctionExpression /[&]/")), $P($S(__, BinaryOp, __, UnaryExpression))), function($skip, $loc, $0, $1, $2, $3) {
2210
+ $0.splice(1, 1);
2199
2211
  $1.token = "$ => $";
2212
+ const exp = module2.processBinaryOpExpression($0);
2213
+ return {
2214
+ type: "FunctionExpression",
2215
+ children: exp
2216
+ };
2217
+ });
2218
+ var FunctionExpression$3 = $TS($S($EXPECT($R2, fail, "FunctionExpression /[!~+-]+/"), Ampersand), function($skip, $loc, $0, $1, $2) {
2200
2219
  return {
2201
2220
  type: "FunctionExpression",
2202
- children: [$1, $2]
2221
+ children: ["$ => ", $1, "$"]
2203
2222
  };
2204
2223
  });
2205
2224
  function FunctionExpression(state) {
2206
2225
  if (state.tokenize) {
2207
- return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state));
2226
+ return $TOKEN("FunctionExpression", state, FunctionExpression$0(state) || FunctionExpression$1(state) || FunctionExpression$2(state) || FunctionExpression$3(state));
2208
2227
  } else {
2209
- return FunctionExpression$0(state) || FunctionExpression$1(state);
2228
+ return FunctionExpression$0(state) || FunctionExpression$1(state) || FunctionExpression$2(state) || FunctionExpression$3(state);
2210
2229
  }
2211
2230
  }
2212
2231
  var ThinArrowFunction$0 = $TS($S(Parameters, $E(ReturnTypeSuffix), $Q(_), Arrow, BracedOrEmptyBlock), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
@@ -2306,8 +2325,18 @@ var require_parser = __commonJS({
2306
2325
  var exps = value[2];
2307
2326
  return { "type": "BlockStatement", "expressions": exps, "children": value };
2308
2327
  });
2309
- var BracedBlock$2 = $TS($S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2328
+ var BracedBlock$2 = $TS($S(InsertOpenBrace, $Y(EOS), ObjectLiteral, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4) {
2329
+ var s = $3;
2330
+ $0.splice(1, 1);
2331
+ return {
2332
+ type: "BlockStatement",
2333
+ expressions: [s],
2334
+ children: $0
2335
+ };
2336
+ });
2337
+ var BracedBlock$3 = $TS($S(InsertOpenBrace, $N(EOS), __, Statement, InsertSpace, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2310
2338
  var s = $4;
2339
+ $0.splice(1, 1);
2311
2340
  return {
2312
2341
  type: "BlockStatement",
2313
2342
  expressions: [s],
@@ -2316,9 +2345,9 @@ var require_parser = __commonJS({
2316
2345
  });
2317
2346
  function BracedBlock(state) {
2318
2347
  if (state.tokenize) {
2319
- return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state));
2348
+ return $TOKEN("BracedBlock", state, BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state) || BracedBlock$3(state));
2320
2349
  } else {
2321
- return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state);
2350
+ return BracedBlock$0(state) || BracedBlock$1(state) || BracedBlock$2(state) || BracedBlock$3(state);
2322
2351
  }
2323
2352
  }
2324
2353
  var BracedContent$0 = $T($S($Y(EOS), NestedBlockStatements), function(value) {
@@ -2360,7 +2389,8 @@ var require_parser = __commonJS({
2360
2389
  var Literal$0 = $TS($S(LiteralContent), function($skip, $loc, $0, $1) {
2361
2390
  return {
2362
2391
  type: "Literal",
2363
- children: $0
2392
+ children: $0,
2393
+ raw: $1.token
2364
2394
  };
2365
2395
  });
2366
2396
  function Literal(state) {
@@ -2443,7 +2473,7 @@ var require_parser = __commonJS({
2443
2473
  return Identifier$0(state);
2444
2474
  }
2445
2475
  }
2446
- var IdentifierName$0 = $TR($EXPECT($R1, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2476
+ var IdentifierName$0 = $TR($EXPECT($R3, fail, "IdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2447
2477
  return {
2448
2478
  type: "Identifier",
2449
2479
  name: $0,
@@ -2474,11 +2504,16 @@ var require_parser = __commonJS({
2474
2504
  }
2475
2505
  }
2476
2506
  var ArrayLiteral$0 = $TS($S(OpenBracket, ArrayLiteralContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
2507
+ var content = $2;
2508
+ if (content.type === "RangeExpression") {
2509
+ content.children.push(...$3);
2510
+ return content;
2511
+ }
2477
2512
  let children;
2478
- if (Array.isArray($2)) {
2479
- children = [$1, ...$2, ...$3, $4];
2513
+ if (Array.isArray(content)) {
2514
+ children = [$1, ...content, ...$3, $4];
2480
2515
  } else {
2481
- children = [$1, $2, ...$3, $4];
2516
+ children = [$1, content, ...$3, $4];
2482
2517
  }
2483
2518
  const names = children.flatMap((c) => {
2484
2519
  return c.names || [];
@@ -2498,13 +2533,39 @@ var require_parser = __commonJS({
2498
2533
  return ArrayLiteral$0(state);
2499
2534
  }
2500
2535
  }
2501
- var ArrayLiteralContent$0 = NestedElementList;
2502
- var ArrayLiteralContent$1 = ElementList;
2536
+ var ArrayLiteralContent$0 = $TS($S(ExtendedExpression, __, $C(DotDotDot, DotDot), ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4) {
2537
+ var s = $1;
2538
+ var ws = $2;
2539
+ var range = $3;
2540
+ var e = $4;
2541
+ const inclusive = range.token === "..";
2542
+ range.token = ",";
2543
+ if (s.type === "Literal" && e.type === "Literal") {
2544
+ const start = JSON.parse(s.raw);
2545
+ const end = JSON.parse(e.raw);
2546
+ const step = end > start ? 1 : -1;
2547
+ const length = Math.abs(end - start) + (inclusive ? 1 : 0);
2548
+ if (length <= 20) {
2549
+ return Array.from({ length }, (_2, i) => start + i * step).join(", ");
2550
+ }
2551
+ }
2552
+ const inclusiveAdjust = inclusive ? " + 1" : "";
2553
+ const children = ["((s, e) => {let step = e > s ? 1 : -1; return Array.from({length: Math.abs(e - s)", inclusiveAdjust, "}, (_, i) => s + i * step)})(", s, ws, range, e, ")"];
2554
+ return {
2555
+ type: "RangeExpression",
2556
+ children,
2557
+ inclusive,
2558
+ start: s,
2559
+ end: e
2560
+ };
2561
+ });
2562
+ var ArrayLiteralContent$1 = NestedElementList;
2563
+ var ArrayLiteralContent$2 = ElementList;
2503
2564
  function ArrayLiteralContent(state) {
2504
2565
  if (state.tokenize) {
2505
- return $TOKEN("ArrayLiteralContent", state, ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state));
2566
+ return $TOKEN("ArrayLiteralContent", state, ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state) || ArrayLiteralContent$2(state));
2506
2567
  } else {
2507
- return ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state);
2568
+ return ArrayLiteralContent$0(state) || ArrayLiteralContent$1(state) || ArrayLiteralContent$2(state);
2508
2569
  }
2509
2570
  }
2510
2571
  var NestedElementList$0 = $TS($S(PushIndent, $Q(NestedElement), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
@@ -2660,7 +2721,10 @@ var require_parser = __commonJS({
2660
2721
  var NestedObjectLiteral$0 = $TS($S(InsertOpenBrace, $Y(EOS), NestedPropertyDefinitions, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
2661
2722
  $3.unshift($1);
2662
2723
  $3.push($4, $5, $6);
2663
- return $3;
2724
+ return {
2725
+ type: "ObjectExpression",
2726
+ children: $3
2727
+ };
2664
2728
  });
2665
2729
  function NestedObjectLiteral(state) {
2666
2730
  if (state.verbose)
@@ -2968,7 +3032,7 @@ var require_parser = __commonJS({
2968
3032
  return BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state);
2969
3033
  }
2970
3034
  }
2971
- var UnaryOp$0 = $TR($EXPECT($R2, fail, "UnaryOp /[!~+-](?!\\s)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3035
+ var UnaryOp$0 = $TR($EXPECT($R4, fail, "UnaryOp /[!~+-](?!\\s|[!~+-]*&)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2972
3036
  return { $loc, token: $0 };
2973
3037
  });
2974
3038
  var UnaryOp$1 = $S($C(Await, Delete, Void, Typeof), __);
@@ -3501,7 +3565,7 @@ var require_parser = __commonJS({
3501
3565
  names: binding.names
3502
3566
  };
3503
3567
  });
3504
- var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R3, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
3568
+ var ForDeclaration$1 = $TS($S(InsertConst, ForBinding, $EXPECT($R5, fail, "ForDeclaration /(?=[\\s\\)])/")), function($skip, $loc, $0, $1, $2, $3) {
3505
3569
  var c = $1;
3506
3570
  var binding = $2;
3507
3571
  return {
@@ -4011,7 +4075,7 @@ var require_parser = __commonJS({
4011
4075
  return UnprocessedModuleSpecifier$0(state) || UnprocessedModuleSpecifier$1(state);
4012
4076
  }
4013
4077
  }
4014
- var UnquotedSpecifier$0 = $TV($EXPECT($R4, fail, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
4078
+ var UnquotedSpecifier$0 = $TV($EXPECT($R6, fail, 'UnquotedSpecifier /[^;"\\s]+/'), function($skip, $loc, $0, $1) {
4015
4079
  var spec = $0;
4016
4080
  return { $loc, token: `"${spec}"` };
4017
4081
  });
@@ -4263,7 +4327,7 @@ var require_parser = __commonJS({
4263
4327
  return NumericLiteralKind$0(state) || NumericLiteralKind$1(state) || NumericLiteralKind$2(state) || NumericLiteralKind$3(state) || NumericLiteralKind$4(state);
4264
4328
  }
4265
4329
  }
4266
- var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R5, fail, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
4330
+ var DecimalBigIntegerLiteral$0 = $R$0($EXPECT($R7, fail, "DecimalBigIntegerLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)n/"));
4267
4331
  function DecimalBigIntegerLiteral(state) {
4268
4332
  if (state.verbose)
4269
4333
  console.log("ENTER:", "DecimalBigIntegerLiteral");
@@ -4273,11 +4337,11 @@ var require_parser = __commonJS({
4273
4337
  return DecimalBigIntegerLiteral$0(state);
4274
4338
  }
4275
4339
  }
4276
- var DecimalLiteral$0 = $TV($TEXT($EXPECT($R6, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
4340
+ var DecimalLiteral$0 = $TV($TEXT($EXPECT($R8, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
4277
4341
  return $1 + ".";
4278
4342
  });
4279
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R7, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
4280
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R8, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
4343
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R9, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
4344
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R10, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
4281
4345
  function DecimalLiteral(state) {
4282
4346
  if (state.tokenize) {
4283
4347
  return $TOKEN("DecimalLiteral", state, DecimalLiteral$0(state) || DecimalLiteral$1(state) || DecimalLiteral$2(state));
@@ -4285,7 +4349,7 @@ var require_parser = __commonJS({
4285
4349
  return DecimalLiteral$0(state) || DecimalLiteral$1(state) || DecimalLiteral$2(state);
4286
4350
  }
4287
4351
  }
4288
- var ExponentPart$0 = $R$0($EXPECT($R9, fail, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
4352
+ var ExponentPart$0 = $R$0($EXPECT($R11, fail, "ExponentPart /(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)/"));
4289
4353
  function ExponentPart(state) {
4290
4354
  if (state.verbose)
4291
4355
  console.log("ENTER:", "ExponentPart");
@@ -4295,7 +4359,7 @@ var require_parser = __commonJS({
4295
4359
  return ExponentPart$0(state);
4296
4360
  }
4297
4361
  }
4298
- var BinaryIntegerLiteral$0 = $R$0($EXPECT($R10, fail, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
4362
+ var BinaryIntegerLiteral$0 = $R$0($EXPECT($R12, fail, "BinaryIntegerLiteral /0[bB][01](?:[01]|_[01])*n?/"));
4299
4363
  function BinaryIntegerLiteral(state) {
4300
4364
  if (state.verbose)
4301
4365
  console.log("ENTER:", "BinaryIntegerLiteral");
@@ -4305,7 +4369,7 @@ var require_parser = __commonJS({
4305
4369
  return BinaryIntegerLiteral$0(state);
4306
4370
  }
4307
4371
  }
4308
- var OctalIntegerLiteral$0 = $R$0($EXPECT($R11, fail, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
4372
+ var OctalIntegerLiteral$0 = $R$0($EXPECT($R13, fail, "OctalIntegerLiteral /0[oO][0-7](?:[0-7]|_[0-7])*n?/"));
4309
4373
  function OctalIntegerLiteral(state) {
4310
4374
  if (state.verbose)
4311
4375
  console.log("ENTER:", "OctalIntegerLiteral");
@@ -4315,7 +4379,7 @@ var require_parser = __commonJS({
4315
4379
  return OctalIntegerLiteral$0(state);
4316
4380
  }
4317
4381
  }
4318
- var HexLiteral$0 = $R$0($EXPECT($R12, fail, "HexLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
4382
+ var HexLiteral$0 = $R$0($EXPECT($R14, fail, "HexLiteral /0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*n?/"));
4319
4383
  function HexLiteral(state) {
4320
4384
  if (state.verbose)
4321
4385
  console.log("ENTER:", "HexLiteral");
@@ -4364,7 +4428,7 @@ var require_parser = __commonJS({
4364
4428
  return BasicStringLiteral$0(state) || BasicStringLiteral$1(state);
4365
4429
  }
4366
4430
  }
4367
- var DoubleStringCharacters$0 = $TR($EXPECT($R13, fail, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4431
+ var DoubleStringCharacters$0 = $TR($EXPECT($R15, fail, 'DoubleStringCharacters /(?:\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4368
4432
  return { $loc, token: $0 };
4369
4433
  });
4370
4434
  function DoubleStringCharacters(state) {
@@ -4376,7 +4440,7 @@ var require_parser = __commonJS({
4376
4440
  return DoubleStringCharacters$0(state);
4377
4441
  }
4378
4442
  }
4379
- var SingleStringCharacters$0 = $TR($EXPECT($R14, fail, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4443
+ var SingleStringCharacters$0 = $TR($EXPECT($R16, fail, "SingleStringCharacters /(?:\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4380
4444
  return { $loc, token: $0 };
4381
4445
  });
4382
4446
  function SingleStringCharacters(state) {
@@ -4388,7 +4452,7 @@ var require_parser = __commonJS({
4388
4452
  return SingleStringCharacters$0(state);
4389
4453
  }
4390
4454
  }
4391
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R15, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4455
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R17, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4392
4456
  return { $loc, token: $0 };
4393
4457
  });
4394
4458
  function TripleDoubleStringCharacters(state) {
@@ -4400,7 +4464,7 @@ var require_parser = __commonJS({
4400
4464
  return TripleDoubleStringCharacters$0(state);
4401
4465
  }
4402
4466
  }
4403
- var TripleSingleStringCharacters$0 = $TR($EXPECT($R16, fail, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4467
+ var TripleSingleStringCharacters$0 = $TR($EXPECT($R18, fail, "TripleSingleStringCharacters /(?:'(?!'')|\\\\.|[^'])*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4404
4468
  return { $loc, token: $0 };
4405
4469
  });
4406
4470
  function TripleSingleStringCharacters(state) {
@@ -4451,7 +4515,7 @@ var require_parser = __commonJS({
4451
4515
  return CoffeeInterpolatedDoubleQuotedString$0(state);
4452
4516
  }
4453
4517
  }
4454
- var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R17, fail, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4518
+ var CoffeeDoubleQuotedStringCharacters$0 = $TR($EXPECT($R19, fail, 'CoffeeDoubleQuotedStringCharacters /(?:\\\\.|#(?!\\{)|[^"#])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4455
4519
  return { $loc, token: $0 };
4456
4520
  });
4457
4521
  function CoffeeDoubleQuotedStringCharacters(state) {
@@ -4475,7 +4539,7 @@ var require_parser = __commonJS({
4475
4539
  return RegularExpressionLiteral$0(state);
4476
4540
  }
4477
4541
  }
4478
- var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R18, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
4542
+ var RegularExpressionBody$0 = $S($N($R$0($EXPECT($R20, fail, "RegularExpressionBody /[*\\/\\r\\n]/"))), $Q(RegExpCharacter));
4479
4543
  function RegularExpressionBody(state) {
4480
4544
  if (state.verbose)
4481
4545
  console.log("ENTER:", "RegularExpressionBody");
@@ -4485,7 +4549,7 @@ var require_parser = __commonJS({
4485
4549
  return RegularExpressionBody$0(state);
4486
4550
  }
4487
4551
  }
4488
- var RegExpCharacter$0 = $R$0($EXPECT($R19, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
4552
+ var RegExpCharacter$0 = $R$0($EXPECT($R21, fail, "RegExpCharacter /(?:\\\\.|[^\\/\\r\\n])+/"));
4489
4553
  function RegExpCharacter(state) {
4490
4554
  if (state.verbose)
4491
4555
  console.log("ENTER:", "RegExpCharacter");
@@ -4495,7 +4559,7 @@ var require_parser = __commonJS({
4495
4559
  return RegExpCharacter$0(state);
4496
4560
  }
4497
4561
  }
4498
- var RegularExpressionFlags$0 = $R$0($EXPECT($R20, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
4562
+ var RegularExpressionFlags$0 = $R$0($EXPECT($R22, fail, "RegularExpressionFlags /(?:\\p{ID_Continue}|[\\u200C\\u200D$])*/"));
4499
4563
  function RegularExpressionFlags(state) {
4500
4564
  if (state.verbose)
4501
4565
  console.log("ENTER:", "RegularExpressionFlags");
@@ -4526,7 +4590,7 @@ var require_parser = __commonJS({
4526
4590
  return TemplateSubstitution$0(state);
4527
4591
  }
4528
4592
  }
4529
- var TemplateCharacters$0 = $TR($EXPECT($R21, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4593
+ var TemplateCharacters$0 = $TR($EXPECT($R23, fail, "TemplateCharacters /(?:\\$(?!\\{)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4530
4594
  return { $loc, token: $0 };
4531
4595
  });
4532
4596
  function TemplateCharacters(state) {
@@ -4538,7 +4602,7 @@ var require_parser = __commonJS({
4538
4602
  return TemplateCharacters$0(state);
4539
4603
  }
4540
4604
  }
4541
- var TemplateBlockCharacters$0 = $TR($EXPECT($R22, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4605
+ var TemplateBlockCharacters$0 = $TR($EXPECT($R24, fail, "TemplateBlockCharacters /(?:\\$(?!\\{)|`(?!``)|\\\\.|[^$`])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4542
4606
  return { $loc, token: $0 };
4543
4607
  });
4544
4608
  function TemplateBlockCharacters(state) {
@@ -4550,9 +4614,9 @@ var require_parser = __commonJS({
4550
4614
  return TemplateBlockCharacters$0(state);
4551
4615
  }
4552
4616
  }
4553
- var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R23, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
4554
- var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R24, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
4555
- var ReservedWord$2 = $R$0($EXPECT($R25, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
4617
+ var ReservedWord$0 = $S(CoffeeBooleansEnabled, $R$0($EXPECT($R25, fail, "ReservedWord /(?:on|off|yes|no)(?!\\p{ID_Continue})/")));
4618
+ var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R26, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
4619
+ var ReservedWord$2 = $R$0($EXPECT($R27, fail, "ReservedWord /(?:and|as|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|loop|new|null|or|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
4556
4620
  function ReservedWord(state) {
4557
4621
  if (state.tokenize) {
4558
4622
  return $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state));
@@ -4569,7 +4633,7 @@ var require_parser = __commonJS({
4569
4633
  return Comment$0(state) || Comment$1(state);
4570
4634
  }
4571
4635
  }
4572
- var SingleLineComment$0 = $TR($EXPECT($R26, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4636
+ var SingleLineComment$0 = $TR($EXPECT($R28, fail, "SingleLineComment /\\/\\/[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4573
4637
  return { $loc, token: $0 };
4574
4638
  });
4575
4639
  var SingleLineComment$1 = $S(CoffeeCommentEnabled, CoffeeSingleLineComment);
@@ -4589,7 +4653,7 @@ var require_parser = __commonJS({
4589
4653
  return MultiLineComment$0(state) || MultiLineComment$1(state);
4590
4654
  }
4591
4655
  }
4592
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L84, fail, 'JSMultiLineComment "*/"')), $EXPECT($R27, fail, "JSMultiLineComment /./"))), $EXPECT($L84, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
4656
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L84, fail, 'JSMultiLineComment "*/"')), $EXPECT($R29, fail, "JSMultiLineComment /./"))), $EXPECT($L84, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
4593
4657
  return { $loc, token: $1 };
4594
4658
  });
4595
4659
  function JSMultiLineComment(state) {
@@ -4601,7 +4665,7 @@ var require_parser = __commonJS({
4601
4665
  return JSMultiLineComment$0(state);
4602
4666
  }
4603
4667
  }
4604
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R28, fail, "CoffeeSingleLineComment /#([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4668
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R30, fail, "CoffeeSingleLineComment /#(?!##)([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4605
4669
  return { $loc, token: `//${$1}` };
4606
4670
  });
4607
4671
  function CoffeeSingleLineComment(state) {
@@ -4613,7 +4677,7 @@ var require_parser = __commonJS({
4613
4677
  return CoffeeSingleLineComment$0(state);
4614
4678
  }
4615
4679
  }
4616
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L84, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R27, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L85, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
4680
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L85, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L84, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R29, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L85, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
4617
4681
  return { $loc, token: `/*${$2}*/` };
4618
4682
  });
4619
4683
  function CoffeeMultiLineComment(state) {
@@ -4625,7 +4689,7 @@ var require_parser = __commonJS({
4625
4689
  return CoffeeMultiLineComment$0(state);
4626
4690
  }
4627
4691
  }
4628
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L84, fail, 'InlineComment "*/"')), $EXPECT($R29, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L84, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
4692
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L83, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L84, fail, 'InlineComment "*/"')), $EXPECT($R31, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L84, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
4629
4693
  return { $loc, token: $1 };
4630
4694
  });
4631
4695
  function InlineComment(state) {
@@ -4667,7 +4731,7 @@ var require_parser = __commonJS({
4667
4731
  return _$0(state);
4668
4732
  }
4669
4733
  }
4670
- var NonNewlineWhitespace$0 = $TR($EXPECT($R30, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4734
+ var NonNewlineWhitespace$0 = $TR($EXPECT($R32, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4671
4735
  return { $loc, token: $0 };
4672
4736
  });
4673
4737
  function NonNewlineWhitespace(state) {
@@ -4689,7 +4753,7 @@ var require_parser = __commonJS({
4689
4753
  return __$0(state);
4690
4754
  }
4691
4755
  }
4692
- var Whitespace$0 = $TR($EXPECT($R31, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4756
+ var Whitespace$0 = $TR($EXPECT($R33, fail, "Whitespace /[\\s]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
4693
4757
  return { $loc, token: $0 };
4694
4758
  });
4695
4759
  function Whitespace(state) {
@@ -4724,7 +4788,7 @@ var require_parser = __commonJS({
4724
4788
  return StatementDelimiter$0(state) || StatementDelimiter$1(state);
4725
4789
  }
4726
4790
  }
4727
- var NonIdContinue$0 = $R$0($EXPECT($R32, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
4791
+ var NonIdContinue$0 = $R$0($EXPECT($R34, fail, "NonIdContinue /(?!\\p{ID_Continue})/"));
4728
4792
  function NonIdContinue(state) {
4729
4793
  if (state.verbose)
4730
4794
  console.log("ENTER:", "NonIdContinue");
@@ -5094,7 +5158,7 @@ var require_parser = __commonJS({
5094
5158
  return If$0(state);
5095
5159
  }
5096
5160
  }
5097
- var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R33, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
5161
+ var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R35, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
5098
5162
  return { $loc, token: $1 };
5099
5163
  });
5100
5164
  function Import(state) {
@@ -5555,7 +5619,7 @@ var require_parser = __commonJS({
5555
5619
  return JSXElementName$0(state);
5556
5620
  }
5557
5621
  }
5558
- var JSXIdentifierName$0 = $R$0($EXPECT($R34, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
5622
+ var JSXIdentifierName$0 = $R$0($EXPECT($R36, fail, "JSXIdentifierName /(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*/"));
5559
5623
  function JSXIdentifierName(state) {
5560
5624
  if (state.verbose)
5561
5625
  console.log("ENTER:", "JSXIdentifierName");
@@ -5604,8 +5668,8 @@ var require_parser = __commonJS({
5604
5668
  return JSXAttributeInitializer$0(state);
5605
5669
  }
5606
5670
  }
5607
- var JSXAttributeValue$0 = $R$0($EXPECT($R35, fail, 'JSXAttributeValue /"[^"]*"/'));
5608
- var JSXAttributeValue$1 = $R$0($EXPECT($R36, fail, "JSXAttributeValue /'[^']*'/"));
5671
+ var JSXAttributeValue$0 = $R$0($EXPECT($R37, fail, 'JSXAttributeValue /"[^"]*"/'));
5672
+ var JSXAttributeValue$1 = $R$0($EXPECT($R38, fail, "JSXAttributeValue /'[^']*'/"));
5609
5673
  var JSXAttributeValue$2 = $S(OpenBrace, ExtendedExpression, __, CloseBrace);
5610
5674
  var JSXAttributeValue$3 = JSXElement;
5611
5675
  var JSXAttributeValue$4 = JSXFragment;
@@ -5637,7 +5701,7 @@ var require_parser = __commonJS({
5637
5701
  return JSXChild$0(state) || JSXChild$1(state) || JSXChild$2(state) || JSXChild$3(state);
5638
5702
  }
5639
5703
  }
5640
- var JSXText$0 = $R$0($EXPECT($R37, fail, "JSXText /[^{}<>]+/"));
5704
+ var JSXText$0 = $R$0($EXPECT($R39, fail, "JSXText /[^{}<>]+/"));
5641
5705
  function JSXText(state) {
5642
5706
  if (state.verbose)
5643
5707
  console.log("ENTER:", "JSXText");
@@ -5809,7 +5873,7 @@ var require_parser = __commonJS({
5809
5873
  return NestedTypeDeclaration$0(state);
5810
5874
  }
5811
5875
  }
5812
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L146, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R39, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
5876
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R40, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L146, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R41, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
5813
5877
  function TypeIndexSignature(state) {
5814
5878
  if (state.verbose)
5815
5879
  console.log("ENTER:", "TypeIndexSignature");
@@ -6108,7 +6172,7 @@ var require_parser = __commonJS({
6108
6172
  return TypeParameterDelimiter$0(state) || TypeParameterDelimiter$1(state) || TypeParameterDelimiter$2(state) || TypeParameterDelimiter$3(state);
6109
6173
  }
6110
6174
  }
6111
- var Shebang$0 = $S($R$0($EXPECT($R40, fail, "Shebang /#![^\\r\\n]*/")), EOL);
6175
+ var Shebang$0 = $S($R$0($EXPECT($R42, fail, "Shebang /#![^\\r\\n]*/")), EOL);
6112
6176
  function Shebang(state) {
6113
6177
  if (state.verbose)
6114
6178
  console.log("ENTER:", "Shebang");
@@ -6118,11 +6182,11 @@ var require_parser = __commonJS({
6118
6182
  return Shebang$0(state);
6119
6183
  }
6120
6184
  }
6121
- var CivetPrologue$0 = $T($S($EXPECT($R41, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
6185
+ var CivetPrologue$0 = $T($S($EXPECT($R43, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
6122
6186
  var content = value[2];
6123
6187
  return content;
6124
6188
  });
6125
- var CivetPrologue$1 = $T($S($EXPECT($R41, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
6189
+ var CivetPrologue$1 = $T($S($EXPECT($R43, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(StatementDelimiter), EOS), function(value) {
6126
6190
  var content = value[2];
6127
6191
  return content;
6128
6192
  });
@@ -6133,7 +6197,7 @@ var require_parser = __commonJS({
6133
6197
  return CivetPrologue$0(state) || CivetPrologue$1(state);
6134
6198
  }
6135
6199
  }
6136
- var CivetPrologueContent$0 = $TS($S($EXPECT($L151, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R42, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
6200
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L151, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R44, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
6137
6201
  var options = $2;
6138
6202
  return {
6139
6203
  type: "CivetPrologue",
@@ -6150,7 +6214,7 @@ var require_parser = __commonJS({
6150
6214
  return CivetPrologueContent$0(state);
6151
6215
  }
6152
6216
  }
6153
- var CivetOption$0 = $TR($EXPECT($R43, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6217
+ var CivetOption$0 = $TR($EXPECT($R45, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6154
6218
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
6155
6219
  if (l)
6156
6220
  return l.toUpperCase();
@@ -6168,7 +6232,7 @@ var require_parser = __commonJS({
6168
6232
  return CivetOption$0(state);
6169
6233
  }
6170
6234
  }
6171
- var UnknownPrologue$0 = $S($R$0($EXPECT($R41, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
6235
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R43, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(StatementDelimiter), EOS);
6172
6236
  function UnknownPrologue(state) {
6173
6237
  if (state.verbose)
6174
6238
  console.log("ENTER:", "UnknownPrologue");
@@ -6197,7 +6261,7 @@ var require_parser = __commonJS({
6197
6261
  return EOS$0(state);
6198
6262
  }
6199
6263
  }
6200
- var EOL$0 = $TR($EXPECT($R44, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6264
+ var EOL$0 = $TR($EXPECT($R46, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6201
6265
  return { $loc, token: $0 };
6202
6266
  });
6203
6267
  function EOL(state) {
@@ -6563,6 +6627,10 @@ var require_parser = __commonJS({
6563
6627
  case "BlockStatement":
6564
6628
  insertReturn(node.expressions[node.expressions.length - 1]);
6565
6629
  return;
6630
+ case "ObjectExpression":
6631
+ module2.insertTrimmingSpace(node.children[0], "");
6632
+ node.children.unshift("return ");
6633
+ return;
6566
6634
  case "CaseBlock":
6567
6635
  node.clauses.forEach((clause) => {
6568
6636
  insertReturn(clause);
@@ -6631,6 +6699,25 @@ var require_parser = __commonJS({
6631
6699
  if (Array.isArray(node))
6632
6700
  return node.every(module2.isWhitespaceOrEmpty);
6633
6701
  };
6702
+ module2.processBinaryOpExpression = function($02) {
6703
+ const expandedOps = module2.expandChainedComparisons($02);
6704
+ let i = 2;
6705
+ while (i < expandedOps.length) {
6706
+ const op = expandedOps[i];
6707
+ if (op.type === "Ref") {
6708
+ const [a, wsOp, op2, wsB, b] = expandedOps.slice(i - 2, i + 3);
6709
+ module2.insertTrimmingSpace(wsOp, "");
6710
+ module2.insertTrimmingSpace(wsB, "");
6711
+ expandedOps.splice(i - 2, 5, {
6712
+ type: "Call",
6713
+ children: [wsOp, op2, ".call(", wsB, b, ", ", a, ") >= 0"]
6714
+ });
6715
+ } else {
6716
+ i += 4;
6717
+ }
6718
+ }
6719
+ return expandedOps;
6720
+ };
6634
6721
  module2.expandChainedComparisons = function([first, binops]) {
6635
6722
  const relationalOps = ["==", "===", "!=", "!==", "<", "<=", ">", ">=", "in", "instanceof"];
6636
6723
  const lowerPrecedenceOps = ["??", "&&", "||", "&", "|", "^"];
@@ -7038,6 +7125,7 @@ var require_parser = __commonJS({
7038
7125
  // source/generate.coffee
7039
7126
  var require_generate = __commonJS({
7040
7127
  "source/generate.coffee"(exports2, module2) {
7128
+ "civet coffeeCompat";
7041
7129
  var gen2;
7042
7130
  var prune2;
7043
7131
  gen2 = function(node, options) {
@@ -7115,6 +7203,7 @@ var require_generate = __commonJS({
7115
7203
  var require_util = __commonJS({
7116
7204
  "source/util.coffee"(exports2, module2) {
7117
7205
  "use strict";
7206
+ "civet coffeeCompat";
7118
7207
  var BASE64_CHARS;
7119
7208
  var SourceMap2;
7120
7209
  var VLQ_CONTINUATION_BIT;
@@ -7437,6 +7526,7 @@ var require_util = __commonJS({
7437
7526
  });
7438
7527
 
7439
7528
  // source/main.coffee
7529
+ "civet coffeeCompat";
7440
7530
  var SourceMap;
7441
7531
  var base64Encode;
7442
7532
  var defaultOptions;