@vue/compiler-vapor 3.6.0-alpha.1 → 3.6.0-alpha.3

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.
@@ -1,9 +1,8 @@
1
1
  /**
2
- * @vue/compiler-vapor v3.6.0-alpha.1
2
+ * @vue/compiler-vapor v3.6.0-alpha.3
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
- /*! #__NO_SIDE_EFFECTS__ */
7
6
  // @__NO_SIDE_EFFECTS__
8
7
  function makeMap(str) {
9
8
  const map = /* @__PURE__ */ Object.create(null);
@@ -29,10 +28,10 @@ const isBuiltInDirective = /* @__PURE__ */ makeMap(
29
28
  );
30
29
  const cacheStringFunction = (fn) => {
31
30
  const cache = /* @__PURE__ */ Object.create(null);
32
- return (str) => {
31
+ return ((str) => {
33
32
  const hit = cache[str];
34
33
  return hit || (cache[str] = fn(str));
35
- };
34
+ });
36
35
  };
37
36
  const camelizeRE = /-(\w)/g;
38
37
  const camelizeReplacer = (_, c) => c ? c.toUpperCase() : "";
@@ -85,9 +84,52 @@ function shouldSetAsAttr(tagName, key) {
85
84
  if ((key === "width" || key === "height") && (tagName === "IMG" || tagName === "VIDEO" || tagName === "CANVAS" || tagName === "SOURCE")) {
86
85
  return true;
87
86
  }
87
+ if (key === "sandbox" && tagName === "IFRAME") {
88
+ return true;
89
+ }
88
90
  return false;
89
91
  }
90
92
 
93
+ const escapeRE = /["'&<>]/;
94
+ function escapeHtml(string) {
95
+ const str = "" + string;
96
+ const match = escapeRE.exec(str);
97
+ if (!match) {
98
+ return str;
99
+ }
100
+ let html = "";
101
+ let escaped;
102
+ let index;
103
+ let lastIndex = 0;
104
+ for (index = match.index; index < str.length; index++) {
105
+ switch (str.charCodeAt(index)) {
106
+ case 34:
107
+ escaped = "&quot;";
108
+ break;
109
+ case 38:
110
+ escaped = "&amp;";
111
+ break;
112
+ case 39:
113
+ escaped = "&#39;";
114
+ break;
115
+ case 60:
116
+ escaped = "&lt;";
117
+ break;
118
+ case 62:
119
+ escaped = "&gt;";
120
+ break;
121
+ default:
122
+ continue;
123
+ }
124
+ if (lastIndex !== index) {
125
+ html += str.slice(lastIndex, index);
126
+ }
127
+ lastIndex = index + 1;
128
+ html += escaped;
129
+ }
130
+ return lastIndex !== index ? html + str.slice(lastIndex, index) : html;
131
+ }
132
+
91
133
  const TELEPORT = Symbol(`Teleport` );
92
134
  const SUSPENSE = Symbol(`Suspense` );
93
135
  const KEEP_ALIVE = Symbol(`KeepAlive` );
@@ -2061,7 +2103,7 @@ function requireLib$2 () {
2061
2103
  allowUndeclaredExports: false,
2062
2104
  allowYieldOutsideFunction: false,
2063
2105
  plugins: [],
2064
- strictMode: null,
2106
+ strictMode: undefined,
2065
2107
  ranges: false,
2066
2108
  tokens: false,
2067
2109
  createImportExpressions: false,
@@ -2249,7 +2291,6 @@ function requireLib$2 () {
2249
2291
  }
2250
2292
  convertPrivateNameToPrivateIdentifier(node) {
2251
2293
  const name = super.getPrivateNameSV(node);
2252
- node = node;
2253
2294
  delete node.id;
2254
2295
  node.name = name;
2255
2296
  return this.castNodeTo(node, "PrivateIdentifier");
@@ -2364,8 +2405,8 @@ function requireLib$2 () {
2364
2405
  node.kind = "init";
2365
2406
  return this.finishNode(node, "Property");
2366
2407
  }
2367
- isValidLVal(type, isUnparenthesizedInAssign, binding) {
2368
- return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding);
2408
+ isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {
2409
+ return type === "Property" ? "value" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding);
2369
2410
  }
2370
2411
  isAssignable(node, isBinding) {
2371
2412
  if (node != null && this.isObjectProperty(node)) {
@@ -2399,11 +2440,14 @@ function requireLib$2 () {
2399
2440
  finishCallExpression(unfinished, optional) {
2400
2441
  const node = super.finishCallExpression(unfinished, optional);
2401
2442
  if (node.callee.type === "Import") {
2402
- var _ref, _ref2;
2443
+ var _ref;
2403
2444
  this.castNodeTo(node, "ImportExpression");
2404
2445
  node.source = node.arguments[0];
2405
2446
  node.options = (_ref = node.arguments[1]) != null ? _ref : null;
2406
- node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null;
2447
+ {
2448
+ var _ref2;
2449
+ node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null;
2450
+ }
2407
2451
  delete node.arguments;
2408
2452
  delete node.callee;
2409
2453
  } else if (node.type === "OptionalCallExpression") {
@@ -3079,13 +3123,13 @@ function requireLib$2 () {
3079
3123
  context.push(types.j_expr, types.j_oTag);
3080
3124
  };
3081
3125
  }
3082
- let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
3083
- let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
3126
+ let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
3127
+ let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
3084
3128
  const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
3085
3129
  const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
3086
3130
  nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
3087
- const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
3088
- const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
3131
+ const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
3132
+ const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
3089
3133
  function isInAstralSet(code, set) {
3090
3134
  let pos = 0x10000;
3091
3135
  for (let i = 0, length = set.length; i < length; i += 2) {
@@ -3269,7 +3313,7 @@ function requireLib$2 () {
3269
3313
  if (bindingType & 8) {
3270
3314
  return scope.names.has(name);
3271
3315
  }
3272
- const type = scope.names.get(name);
3316
+ const type = scope.names.get(name) || 0;
3273
3317
  if (bindingType & 16) {
3274
3318
  return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0;
3275
3319
  }
@@ -3584,9 +3628,8 @@ function requireLib$2 () {
3584
3628
  return this.flowParseDeclareInterface(node);
3585
3629
  } else if (this.match(82)) {
3586
3630
  return this.flowParseDeclareExportDeclaration(node, insideModule);
3587
- } else {
3588
- this.unexpected();
3589
3631
  }
3632
+ throw this.unexpected();
3590
3633
  }
3591
3634
  flowParseDeclareVariable(node) {
3592
3635
  this.next();
@@ -3606,18 +3649,17 @@ function requireLib$2 () {
3606
3649
  const body = bodyNode.body = [];
3607
3650
  this.expect(5);
3608
3651
  while (!this.match(8)) {
3609
- let bodyNode = this.startNode();
3652
+ const bodyNode = this.startNode();
3610
3653
  if (this.match(83)) {
3611
3654
  this.next();
3612
3655
  if (!this.isContextual(130) && !this.match(87)) {
3613
3656
  this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc);
3614
3657
  }
3615
- super.parseImport(bodyNode);
3658
+ body.push(super.parseImport(bodyNode));
3616
3659
  } else {
3617
3660
  this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule);
3618
- bodyNode = this.flowParseDeclare(bodyNode, true);
3661
+ body.push(this.flowParseDeclare(bodyNode, true));
3619
3662
  }
3620
- body.push(bodyNode);
3621
3663
  }
3622
3664
  this.scope.exit();
3623
3665
  this.expect(8);
@@ -3678,7 +3720,7 @@ function requireLib$2 () {
3678
3720
  }
3679
3721
  }
3680
3722
  }
3681
- this.unexpected();
3723
+ throw this.unexpected();
3682
3724
  }
3683
3725
  flowParseDeclareModuleExports(node) {
3684
3726
  this.next();
@@ -3886,7 +3928,7 @@ function requireLib$2 () {
3886
3928
  return this.finishNode(node, "TypeParameterInstantiation");
3887
3929
  }
3888
3930
  flowParseTypeParameterInstantiationCallOrNew() {
3889
- if (this.reScan_lt() !== 47) return;
3931
+ if (this.reScan_lt() !== 47) return null;
3890
3932
  const node = this.startNode();
3891
3933
  const oldInType = this.state.inType;
3892
3934
  node.params = [];
@@ -4382,8 +4424,7 @@ function requireLib$2 () {
4382
4424
  }
4383
4425
  throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc);
4384
4426
  }
4385
- this.unexpected();
4386
- return;
4427
+ throw this.unexpected();
4387
4428
  case 135:
4388
4429
  return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
4389
4430
  case 136:
@@ -4414,7 +4455,7 @@ function requireLib$2 () {
4414
4455
  return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier());
4415
4456
  }
4416
4457
  }
4417
- this.unexpected();
4458
+ throw this.unexpected();
4418
4459
  }
4419
4460
  flowParsePostfixType() {
4420
4461
  const startLoc = this.state.startLoc;
@@ -4875,15 +4916,15 @@ function requireLib$2 () {
4875
4916
  }
4876
4917
  return exprList;
4877
4918
  }
4878
- parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
4879
- const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);
4880
- if (canBePattern && !this.state.maybeInArrowParameters) {
4919
+ parseArrayLike(close, isTuple, refExpressionErrors) {
4920
+ const node = super.parseArrayLike(close, isTuple, refExpressionErrors);
4921
+ if (refExpressionErrors != null && !this.state.maybeInArrowParameters) {
4881
4922
  this.toReferencedList(node.elements);
4882
4923
  }
4883
4924
  return node;
4884
4925
  }
4885
- isValidLVal(type, isParenthesized, binding) {
4886
- return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding);
4926
+ isValidLVal(type, disallowCallExpression, isParenthesized, binding) {
4927
+ return type === "TypeCastExpression" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding);
4887
4928
  }
4888
4929
  parseClassProperty(node) {
4889
4930
  if (this.match(14)) {
@@ -6732,10 +6773,8 @@ function requireLib$2 () {
6732
6773
  setLeadingComments(commentWS.trailingNode, comments);
6733
6774
  }
6734
6775
  } else {
6735
- const {
6736
- containingNode: node,
6737
- start: commentStart
6738
- } = commentWS;
6776
+ const node = commentWS.containingNode;
6777
+ const commentStart = commentWS.start;
6739
6778
  if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) {
6740
6779
  switch (node.type) {
6741
6780
  case "ObjectExpression":
@@ -7556,7 +7595,7 @@ function requireLib$2 () {
7556
7595
  const commentWhitespace = {
7557
7596
  start: this.sourceToOffsetPos(spaceStart),
7558
7597
  end: this.sourceToOffsetPos(end),
7559
- comments,
7598
+ comments: comments,
7560
7599
  leadingNode: null,
7561
7600
  trailingNode: null,
7562
7601
  containingNode: null
@@ -8567,7 +8606,7 @@ function requireLib$2 () {
8567
8606
  };
8568
8607
  }
8569
8608
  return {
8570
- node,
8609
+ node: node,
8571
8610
  error: null,
8572
8611
  thrown: false,
8573
8612
  aborted: false,
@@ -8823,7 +8862,7 @@ function requireLib$2 () {
8823
8862
  if (isLHS) {
8824
8863
  if (parenthesized.type === "Identifier") {
8825
8864
  this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node);
8826
- } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) {
8865
+ } else if (parenthesized.type !== "CallExpression" && parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) {
8827
8866
  this.raise(Errors.InvalidParenthesizedAssignment, node);
8828
8867
  }
8829
8868
  } else {
@@ -9099,7 +9138,7 @@ function requireLib$2 () {
9099
9138
  node.right = this.parseMaybeAssignAllowIn();
9100
9139
  return this.finishNode(node, "AssignmentPattern");
9101
9140
  }
9102
- isValidLVal(type, isUnparenthesizedInAssign, binding) {
9141
+ isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {
9103
9142
  switch (type) {
9104
9143
  case "AssignmentPattern":
9105
9144
  return "left";
@@ -9115,13 +9154,17 @@ function requireLib$2 () {
9115
9154
  return "properties";
9116
9155
  case "VoidPattern":
9117
9156
  return true;
9157
+ case "CallExpression":
9158
+ if (!disallowCallExpression && !this.state.strict && this.optionFlags & 8192) {
9159
+ return true;
9160
+ }
9118
9161
  }
9119
9162
  return false;
9120
9163
  }
9121
9164
  isOptionalMemberExpression(expression) {
9122
9165
  return expression.type === "OptionalMemberExpression";
9123
9166
  }
9124
- checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false) {
9167
+ checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) {
9125
9168
  var _expression$extra;
9126
9169
  const type = expression.type;
9127
9170
  if (this.isObjectMethod(expression)) return;
@@ -9156,7 +9199,9 @@ function requireLib$2 () {
9156
9199
  } else if (type === "VoidPattern" && ancestor.type === "CatchClause") {
9157
9200
  this.raise(Errors.VoidPatternCatchClauseParam, expression);
9158
9201
  }
9159
- const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding);
9202
+ const unwrappedExpression = unwrapParenthesizedExpression(expression);
9203
+ disallowCallExpression || (disallowCallExpression = unwrappedExpression.type === "CallExpression" && (unwrappedExpression.callee.type === "Import" || unwrappedExpression.callee.type === "Super"));
9204
+ const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding);
9160
9205
  if (validity === true) return;
9161
9206
  if (validity === false) {
9162
9207
  const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding;
@@ -9179,11 +9224,11 @@ function requireLib$2 () {
9179
9224
  if (Array.isArray(val)) {
9180
9225
  for (const child of val) {
9181
9226
  if (child) {
9182
- this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression);
9227
+ this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true);
9183
9228
  }
9184
9229
  }
9185
9230
  } else if (val) {
9186
- this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression);
9231
+ this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression);
9187
9232
  }
9188
9233
  }
9189
9234
  checkIdentifier(at, bindingType, strictModeChanged = false) {
@@ -9231,6 +9276,7 @@ function requireLib$2 () {
9231
9276
  return true;
9232
9277
  }
9233
9278
  }
9279
+ const keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y;
9234
9280
  function nonNull(x) {
9235
9281
  if (x == null) {
9236
9282
  throw new Error(`Unexpected ${x} value.`);
@@ -9614,6 +9660,7 @@ function requireLib$2 () {
9614
9660
  this.expect(14);
9615
9661
  withProperty.value = this.tsParseImportTypeWithPropertyValue();
9616
9662
  node.properties = [this.finishObjectProperty(withProperty)];
9663
+ this.eat(12);
9617
9664
  this.expect(8);
9618
9665
  return this.finishNode(node, "ObjectExpression");
9619
9666
  }
@@ -10117,7 +10164,7 @@ function requireLib$2 () {
10117
10164
  }
10118
10165
  }
10119
10166
  }
10120
- this.unexpected();
10167
+ throw this.unexpected();
10121
10168
  }
10122
10169
  tsParseArrayTypeOrHigher() {
10123
10170
  const {
@@ -10681,52 +10728,22 @@ function requireLib$2 () {
10681
10728
  }
10682
10729
  default:
10683
10730
  if (tokenIsIdentifier(startType)) {
10684
- return this.tsParseDeclaration(node, this.state.value, true, null);
10731
+ return this.tsParseDeclaration(node, this.state.type, true, null);
10685
10732
  }
10686
10733
  }
10687
10734
  });
10688
10735
  }
10689
10736
  tsTryParseExportDeclaration() {
10690
- return this.tsParseDeclaration(this.startNode(), this.state.value, true, null);
10691
- }
10692
- tsParseExpressionStatement(node, expr, decorators) {
10693
- switch (expr.name) {
10694
- case "declare":
10695
- {
10696
- const declaration = this.tsTryParseDeclare(node);
10697
- if (declaration) {
10698
- declaration.declare = true;
10699
- }
10700
- return declaration;
10701
- }
10702
- case "global":
10703
- if (this.match(5)) {
10704
- this.scope.enter(1024);
10705
- this.prodParam.enter(0);
10706
- const mod = node;
10707
- mod.kind = "global";
10708
- {
10709
- node.global = true;
10710
- }
10711
- mod.id = expr;
10712
- mod.body = this.tsParseModuleBlock();
10713
- this.scope.exit();
10714
- this.prodParam.exit();
10715
- return this.finishNode(mod, "TSModuleDeclaration");
10716
- }
10717
- break;
10718
- default:
10719
- return this.tsParseDeclaration(node, expr.name, false, decorators);
10720
- }
10737
+ return this.tsParseDeclaration(this.startNode(), this.state.type, true, null);
10721
10738
  }
10722
- tsParseDeclaration(node, value, next, decorators) {
10723
- switch (value) {
10724
- case "abstract":
10739
+ tsParseDeclaration(node, type, next, decorators) {
10740
+ switch (type) {
10741
+ case 124:
10725
10742
  if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) {
10726
10743
  return this.tsParseAbstractDeclaration(node, decorators);
10727
10744
  }
10728
10745
  break;
10729
- case "module":
10746
+ case 127:
10730
10747
  if (this.tsCheckLineTerminator(next)) {
10731
10748
  if (this.match(134)) {
10732
10749
  return this.tsParseAmbientExternalModuleDeclaration(node);
@@ -10736,13 +10753,13 @@ function requireLib$2 () {
10736
10753
  }
10737
10754
  }
10738
10755
  break;
10739
- case "namespace":
10756
+ case 128:
10740
10757
  if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {
10741
10758
  node.kind = "namespace";
10742
10759
  return this.tsParseModuleOrNamespaceDeclaration(node);
10743
10760
  }
10744
10761
  break;
10745
- case "type":
10762
+ case 130:
10746
10763
  if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {
10747
10764
  return this.tsParseTypeAliasDeclaration(node);
10748
10765
  }
@@ -10883,8 +10900,8 @@ function requireLib$2 () {
10883
10900
  this.tsCheckForInvalidTypeCasts(exprList);
10884
10901
  return exprList;
10885
10902
  }
10886
- parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
10887
- const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);
10903
+ parseArrayLike(close, isTuple, refExpressionErrors) {
10904
+ const node = super.parseArrayLike(close, isTuple, refExpressionErrors);
10888
10905
  if (node.type === "ArrayExpression") {
10889
10906
  this.tsCheckForInvalidTypeCasts(node.elements);
10890
10907
  }
@@ -10913,6 +10930,7 @@ function requireLib$2 () {
10913
10930
  if (!noCalls && this.atPossibleAsyncArrow(base)) {
10914
10931
  const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc);
10915
10932
  if (asyncArrowFn) {
10933
+ state.stop = true;
10916
10934
  return asyncArrowFn;
10917
10935
  }
10918
10936
  }
@@ -11128,19 +11146,85 @@ function requireLib$2 () {
11128
11146
  return declaration;
11129
11147
  }
11130
11148
  parseStatementContent(flags, decorators) {
11131
- if (this.match(75) && this.isLookaheadContextual("enum")) {
11132
- const node = this.startNode();
11133
- this.expect(75);
11134
- return this.tsParseEnumDeclaration(node, {
11135
- const: true
11136
- });
11137
- }
11138
- if (this.isContextual(126)) {
11139
- return this.tsParseEnumDeclaration(this.startNode());
11140
- }
11141
- if (this.isContextual(129)) {
11142
- const result = this.tsParseInterfaceDeclaration(this.startNode());
11143
- if (result) return result;
11149
+ if (!this.state.containsEsc) {
11150
+ switch (this.state.type) {
11151
+ case 75:
11152
+ {
11153
+ if (this.isLookaheadContextual("enum")) {
11154
+ const node = this.startNode();
11155
+ this.expect(75);
11156
+ return this.tsParseEnumDeclaration(node, {
11157
+ const: true
11158
+ });
11159
+ }
11160
+ break;
11161
+ }
11162
+ case 124:
11163
+ case 125:
11164
+ {
11165
+ if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) {
11166
+ const token = this.state.type;
11167
+ const node = this.startNode();
11168
+ this.next();
11169
+ const declaration = token === 125 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators);
11170
+ if (declaration) {
11171
+ if (token === 125) {
11172
+ declaration.declare = true;
11173
+ }
11174
+ return declaration;
11175
+ } else {
11176
+ node.expression = this.createIdentifier(this.startNodeAt(node.loc.start), token === 125 ? "declare" : "abstract");
11177
+ this.semicolon(false);
11178
+ return this.finishNode(node, "ExpressionStatement");
11179
+ }
11180
+ }
11181
+ break;
11182
+ }
11183
+ case 126:
11184
+ return this.tsParseEnumDeclaration(this.startNode());
11185
+ case 112:
11186
+ {
11187
+ const nextCh = this.lookaheadCharCode();
11188
+ if (nextCh === 123) {
11189
+ const node = this.startNode();
11190
+ return this.tsParseAmbientExternalModuleDeclaration(node);
11191
+ }
11192
+ break;
11193
+ }
11194
+ case 129:
11195
+ {
11196
+ const result = this.tsParseInterfaceDeclaration(this.startNode());
11197
+ if (result) return result;
11198
+ break;
11199
+ }
11200
+ case 127:
11201
+ {
11202
+ if (this.nextTokenIsIdentifierOrStringLiteralOnSameLine()) {
11203
+ const node = this.startNode();
11204
+ this.next();
11205
+ return this.tsParseDeclaration(node, 127, false, decorators);
11206
+ }
11207
+ break;
11208
+ }
11209
+ case 128:
11210
+ {
11211
+ if (this.nextTokenIsIdentifierOnSameLine()) {
11212
+ const node = this.startNode();
11213
+ this.next();
11214
+ return this.tsParseDeclaration(node, 128, false, decorators);
11215
+ }
11216
+ break;
11217
+ }
11218
+ case 130:
11219
+ {
11220
+ if (this.nextTokenIsIdentifierOnSameLine()) {
11221
+ const node = this.startNode();
11222
+ this.next();
11223
+ return this.tsParseTypeAliasDeclaration(node);
11224
+ }
11225
+ break;
11226
+ }
11227
+ }
11144
11228
  }
11145
11229
  return super.parseStatementContent(flags, decorators);
11146
11230
  }
@@ -11224,10 +11308,6 @@ function requireLib$2 () {
11224
11308
  this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp);
11225
11309
  }
11226
11310
  }
11227
- parseExpressionStatement(node, expr, decorators) {
11228
- const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined;
11229
- return decl || super.parseExpressionStatement(node, expr, decorators);
11230
- }
11231
11311
  shouldParseExportDeclaration() {
11232
11312
  if (this.tsIsDeclarationStart()) return true;
11233
11313
  return super.shouldParseExportDeclaration();
@@ -11552,7 +11632,7 @@ function requireLib$2 () {
11552
11632
  super.checkToRestConversion(node, allowPattern);
11553
11633
  }
11554
11634
  }
11555
- isValidLVal(type, isUnparenthesizedInAssign, binding) {
11635
+ isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) {
11556
11636
  switch (type) {
11557
11637
  case "TSTypeCastExpression":
11558
11638
  return true;
@@ -11565,7 +11645,7 @@ function requireLib$2 () {
11565
11645
  case "TSTypeAssertion":
11566
11646
  return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true];
11567
11647
  default:
11568
- return super.isValidLVal(type, isUnparenthesizedInAssign, binding);
11648
+ return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding);
11569
11649
  }
11570
11650
  }
11571
11651
  parseBindingAtom() {
@@ -11727,10 +11807,11 @@ function requireLib$2 () {
11727
11807
  node.abstract = true;
11728
11808
  this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node);
11729
11809
  return this.tsParseInterfaceDeclaration(node);
11810
+ } else {
11811
+ return null;
11730
11812
  }
11731
- } else {
11732
- this.unexpected(null, 80);
11733
11813
  }
11814
+ throw this.unexpected(null, 80);
11734
11815
  }
11735
11816
  parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) {
11736
11817
  const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);
@@ -11840,7 +11921,7 @@ function requireLib$2 () {
11840
11921
  }
11841
11922
  }
11842
11923
  fillOptionalPropertiesForTSESLint(node) {
11843
- var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$declare7, _node$global, _node$const2, _node$in, _node$out;
11924
+ var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$optional5, _node$readonly4, _node$declare7, _node$global, _node$const2, _node$in, _node$out;
11844
11925
  switch (node.type) {
11845
11926
  case "ExpressionStatement":
11846
11927
  (_node$directive = node.directive) != null ? _node$directive : node.directive = undefined;
@@ -11931,6 +12012,10 @@ function requireLib$2 () {
11931
12012
  (_node$declare6 = node.declare) != null ? _node$declare6 : node.declare = false;
11932
12013
  (_node$extends = node.extends) != null ? _node$extends : node.extends = [];
11933
12014
  return;
12015
+ case "TSMappedType":
12016
+ (_node$optional5 = node.optional) != null ? _node$optional5 : node.optional = false;
12017
+ (_node$readonly4 = node.readonly) != null ? _node$readonly4 : node.readonly = undefined;
12018
+ return;
11934
12019
  case "TSModuleDeclaration":
11935
12020
  (_node$declare7 = node.declare) != null ? _node$declare7 : node.declare = false;
11936
12021
  (_node$global = node.global) != null ? _node$global : node.global = node.kind === "global";
@@ -11942,6 +12027,32 @@ function requireLib$2 () {
11942
12027
  return;
11943
12028
  }
11944
12029
  }
12030
+ chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) {
12031
+ if (isIdentifierStart(ch)) {
12032
+ keywordAndTSRelationalOperator.lastIndex = pos;
12033
+ if (keywordAndTSRelationalOperator.test(this.input)) {
12034
+ const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex);
12035
+ if (!isIdentifierChar(endCh) && endCh !== 92) {
12036
+ return false;
12037
+ }
12038
+ }
12039
+ return true;
12040
+ } else if (ch === 92) {
12041
+ return true;
12042
+ } else {
12043
+ return false;
12044
+ }
12045
+ }
12046
+ nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() {
12047
+ const next = this.nextTokenInLineStart();
12048
+ const nextCh = this.codePointAtPos(next);
12049
+ return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next);
12050
+ }
12051
+ nextTokenIsIdentifierOrStringLiteralOnSameLine() {
12052
+ const next = this.nextTokenInLineStart();
12053
+ const nextCh = this.codePointAtPos(next);
12054
+ return this.chStartsBindingIdentifier(nextCh, next) || nextCh === 34 || nextCh === 39;
12055
+ }
11945
12056
  };
11946
12057
  function isPossiblyLiteralEnum(expression) {
11947
12058
  if (expression.type !== "MemberExpression") return false;
@@ -12070,8 +12181,8 @@ function requireLib$2 () {
12070
12181
  parseBindingAtom() {
12071
12182
  return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
12072
12183
  }
12073
- isValidLVal(type, isParenthesized, binding) {
12074
- return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding);
12184
+ isValidLVal(type, disallowCallExpression, isParenthesized, binding) {
12185
+ return type === "Placeholder" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding);
12075
12186
  }
12076
12187
  toAssignable(node, isLHS) {
12077
12188
  if (node && node.type === "Placeholder" && node.expectedNode === "Expression") {
@@ -12471,7 +12582,7 @@ function requireLib$2 () {
12471
12582
  }
12472
12583
  this.next();
12473
12584
  node.right = this.parseMaybeAssign();
12474
- this.checkLVal(left, this.finishNode(node, "AssignmentExpression"));
12585
+ this.checkLVal(left, this.finishNode(node, "AssignmentExpression"), undefined, undefined, undefined, undefined, operator === "||=" || operator === "&&=" || operator === "??=");
12475
12586
  return node;
12476
12587
  } else if (ownExpressionErrors) {
12477
12588
  this.checkExpressionErrors(refExpressionErrors, true);
@@ -12945,7 +13056,7 @@ function requireLib$2 () {
12945
13056
  }
12946
13057
  case 0:
12947
13058
  {
12948
- return this.parseArrayLike(3, true, false, refExpressionErrors);
13059
+ return this.parseArrayLike(3, false, refExpressionErrors);
12949
13060
  }
12950
13061
  case 5:
12951
13062
  {
@@ -13002,25 +13113,22 @@ function requireLib$2 () {
13002
13113
  if (pipeProposal) {
13003
13114
  return this.parseTopicReference(pipeProposal);
13004
13115
  }
13005
- this.unexpected();
13006
- break;
13116
+ throw this.unexpected();
13007
13117
  }
13008
13118
  case 47:
13009
13119
  {
13010
13120
  const lookaheadCh = this.input.codePointAt(this.nextTokenStart());
13011
13121
  if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) {
13012
- this.expectOnePlugin(["jsx", "flow", "typescript"]);
13013
- } else {
13014
- this.unexpected();
13122
+ throw this.expectOnePlugin(["jsx", "flow", "typescript"]);
13015
13123
  }
13016
- break;
13124
+ throw this.unexpected();
13017
13125
  }
13018
13126
  default:
13019
13127
  {
13020
13128
  if (type === 137) {
13021
13129
  return this.parseDecimalLiteral(this.state.value);
13022
13130
  } else if (type === 2 || type === 1) {
13023
- return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true);
13131
+ return this.parseArrayLike(this.state.type === 2 ? 4 : 3, true);
13024
13132
  } else if (type === 6 || type === 7) {
13025
13133
  return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true);
13026
13134
  }
@@ -13057,7 +13165,7 @@ function requireLib$2 () {
13057
13165
  }
13058
13166
  return id;
13059
13167
  } else {
13060
- this.unexpected();
13168
+ throw this.unexpected();
13061
13169
  }
13062
13170
  }
13063
13171
  }
@@ -13070,9 +13178,8 @@ function requireLib$2 () {
13070
13178
  this.state.end--;
13071
13179
  this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);
13072
13180
  return this.parseTopicReference(pipeProposal);
13073
- } else {
13074
- this.unexpected();
13075
13181
  }
13182
+ throw this.unexpected();
13076
13183
  }
13077
13184
  parseTopicReference(pipeProposal) {
13078
13185
  const node = this.startNode();
@@ -13148,10 +13255,18 @@ function requireLib$2 () {
13148
13255
  parseSuper() {
13149
13256
  const node = this.startNode();
13150
13257
  this.next();
13151
- if (this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16)) {
13152
- this.raise(Errors.SuperNotAllowed, node);
13153
- } else if (!this.scope.allowSuper && !(this.optionFlags & 16)) {
13154
- this.raise(Errors.UnexpectedSuper, node);
13258
+ if (this.match(10) && !this.scope.allowDirectSuper) {
13259
+ {
13260
+ if (!(this.optionFlags & 16)) {
13261
+ this.raise(Errors.SuperNotAllowed, node);
13262
+ }
13263
+ }
13264
+ } else if (!this.scope.allowSuper) {
13265
+ {
13266
+ if (!(this.optionFlags & 16)) {
13267
+ this.raise(Errors.UnexpectedSuper, node);
13268
+ }
13269
+ }
13155
13270
  }
13156
13271
  if (!this.match(10) && !this.match(0) && !this.match(16)) {
13157
13272
  this.raise(Errors.UnsupportedSuper, node);
@@ -13665,7 +13780,7 @@ function requireLib$2 () {
13665
13780
  this.scope.exit();
13666
13781
  return finishedNode;
13667
13782
  }
13668
- parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
13783
+ parseArrayLike(close, isTuple, refExpressionErrors) {
13669
13784
  if (isTuple) {
13670
13785
  this.expectPlugin("recordAndTuple");
13671
13786
  }
@@ -14291,9 +14406,7 @@ function requireLib$2 () {
14291
14406
  if (!this.isContextual(107)) {
14292
14407
  return false;
14293
14408
  }
14294
- const next = this.nextTokenInLineStart();
14295
- const nextCh = this.codePointAtPos(next);
14296
- return this.chStartsBindingIdentifier(nextCh, next);
14409
+ return this.nextTokenIsIdentifierOnSameLine();
14297
14410
  }
14298
14411
  isForUsing() {
14299
14412
  if (!this.isContextual(107)) {
@@ -14312,6 +14425,11 @@ function requireLib$2 () {
14312
14425
  }
14313
14426
  return false;
14314
14427
  }
14428
+ nextTokenIsIdentifierOnSameLine() {
14429
+ const next = this.nextTokenInLineStart();
14430
+ const nextCh = this.codePointAtPos(next);
14431
+ return this.chStartsBindingIdentifier(nextCh, next);
14432
+ }
14315
14433
  isAwaitUsing() {
14316
14434
  if (!this.isContextual(96)) {
14317
14435
  return false;
@@ -15454,7 +15572,7 @@ function requireLib$2 () {
15454
15572
  this.sawUnambiguousESM = true;
15455
15573
  return this.finishNode(node2, "ExportDefaultDeclaration");
15456
15574
  }
15457
- this.unexpected(null, 5);
15575
+ throw this.unexpected(null, 5);
15458
15576
  }
15459
15577
  eatExportStar(node) {
15460
15578
  return this.eat(55);
@@ -16046,54 +16164,54 @@ function requireLib$2 () {
16046
16164
  }
16047
16165
  class Parser extends StatementParser {
16048
16166
  constructor(options, input, pluginsMap) {
16049
- options = getOptions(options);
16050
- super(options, input);
16051
- this.options = options;
16167
+ const normalizedOptions = getOptions(options);
16168
+ super(normalizedOptions, input);
16169
+ this.options = normalizedOptions;
16052
16170
  this.initializeScopes();
16053
16171
  this.plugins = pluginsMap;
16054
- this.filename = options.sourceFilename;
16055
- this.startIndex = options.startIndex;
16172
+ this.filename = normalizedOptions.sourceFilename;
16173
+ this.startIndex = normalizedOptions.startIndex;
16056
16174
  let optionFlags = 0;
16057
- if (options.allowAwaitOutsideFunction) {
16175
+ if (normalizedOptions.allowAwaitOutsideFunction) {
16058
16176
  optionFlags |= 1;
16059
16177
  }
16060
- if (options.allowReturnOutsideFunction) {
16178
+ if (normalizedOptions.allowReturnOutsideFunction) {
16061
16179
  optionFlags |= 2;
16062
16180
  }
16063
- if (options.allowImportExportEverywhere) {
16181
+ if (normalizedOptions.allowImportExportEverywhere) {
16064
16182
  optionFlags |= 8;
16065
16183
  }
16066
- if (options.allowSuperOutsideMethod) {
16184
+ if (normalizedOptions.allowSuperOutsideMethod) {
16067
16185
  optionFlags |= 16;
16068
16186
  }
16069
- if (options.allowUndeclaredExports) {
16187
+ if (normalizedOptions.allowUndeclaredExports) {
16070
16188
  optionFlags |= 64;
16071
16189
  }
16072
- if (options.allowNewTargetOutsideFunction) {
16190
+ if (normalizedOptions.allowNewTargetOutsideFunction) {
16073
16191
  optionFlags |= 4;
16074
16192
  }
16075
- if (options.allowYieldOutsideFunction) {
16193
+ if (normalizedOptions.allowYieldOutsideFunction) {
16076
16194
  optionFlags |= 32;
16077
16195
  }
16078
- if (options.ranges) {
16196
+ if (normalizedOptions.ranges) {
16079
16197
  optionFlags |= 128;
16080
16198
  }
16081
- if (options.tokens) {
16199
+ if (normalizedOptions.tokens) {
16082
16200
  optionFlags |= 256;
16083
16201
  }
16084
- if (options.createImportExpressions) {
16202
+ if (normalizedOptions.createImportExpressions) {
16085
16203
  optionFlags |= 512;
16086
16204
  }
16087
- if (options.createParenthesizedExpressions) {
16205
+ if (normalizedOptions.createParenthesizedExpressions) {
16088
16206
  optionFlags |= 1024;
16089
16207
  }
16090
- if (options.errorRecovery) {
16208
+ if (normalizedOptions.errorRecovery) {
16091
16209
  optionFlags |= 2048;
16092
16210
  }
16093
- if (options.attachComment) {
16211
+ if (normalizedOptions.attachComment) {
16094
16212
  optionFlags |= 4096;
16095
16213
  }
16096
- if (options.annexB) {
16214
+ if (normalizedOptions.annexB) {
16097
16215
  optionFlags |= 8192;
16098
16216
  }
16099
16217
  this.optionFlags = optionFlags;
@@ -16107,10 +16225,10 @@ function requireLib$2 () {
16107
16225
  const program = this.startNode();
16108
16226
  this.nextToken();
16109
16227
  file.errors = null;
16110
- this.parseTopLevel(file, program);
16111
- file.errors = this.state.errors;
16112
- file.comments.length = this.state.commentsLen;
16113
- return file;
16228
+ const result = this.parseTopLevel(file, program);
16229
+ result.errors = this.state.errors;
16230
+ result.comments.length = this.state.commentsLen;
16231
+ return result;
16114
16232
  }
16115
16233
  }
16116
16234
  function parse(input, options) {
@@ -16442,16 +16560,34 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
16442
16560
  (id) => markScopeIdentifier(node, id, knownIds)
16443
16561
  );
16444
16562
  }
16563
+ } else if (node.type === "SwitchStatement") {
16564
+ if (node.scopeIds) {
16565
+ node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
16566
+ } else {
16567
+ walkSwitchStatement(
16568
+ node,
16569
+ false,
16570
+ (id) => markScopeIdentifier(node, id, knownIds)
16571
+ );
16572
+ }
16445
16573
  } else if (node.type === "CatchClause" && node.param) {
16446
- for (const id of extractIdentifiers(node.param)) {
16447
- markScopeIdentifier(node, id, knownIds);
16574
+ if (node.scopeIds) {
16575
+ node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
16576
+ } else {
16577
+ for (const id of extractIdentifiers(node.param)) {
16578
+ markScopeIdentifier(node, id, knownIds);
16579
+ }
16448
16580
  }
16449
16581
  } else if (isForStatement(node)) {
16450
- walkForStatement(
16451
- node,
16452
- false,
16453
- (id) => markScopeIdentifier(node, id, knownIds)
16454
- );
16582
+ if (node.scopeIds) {
16583
+ node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
16584
+ } else {
16585
+ walkForStatement(
16586
+ node,
16587
+ false,
16588
+ (id) => markScopeIdentifier(node, id, knownIds)
16589
+ );
16590
+ }
16455
16591
  }
16456
16592
  },
16457
16593
  leave(node, parent) {
@@ -16474,14 +16610,15 @@ function isReferencedIdentifier(id, parent, parentStack) {
16474
16610
  if (id.name === "arguments") {
16475
16611
  return false;
16476
16612
  }
16477
- if (isReferenced$1(id, parent)) {
16613
+ if (isReferenced$1(id, parent, parentStack[parentStack.length - 2])) {
16478
16614
  return true;
16479
16615
  }
16480
16616
  switch (parent.type) {
16481
16617
  case "AssignmentExpression":
16482
16618
  case "AssignmentPattern":
16483
16619
  return true;
16484
- case "ObjectPattern":
16620
+ case "ObjectProperty":
16621
+ return parent.key !== id && isInDestructureAssignment(parent, parentStack);
16485
16622
  case "ArrayPattern":
16486
16623
  return isInDestructureAssignment(parent, parentStack);
16487
16624
  }
@@ -16509,7 +16646,8 @@ function walkFunctionParams(node, onIdent) {
16509
16646
  }
16510
16647
  }
16511
16648
  function walkBlockDeclarations(block, onIdent) {
16512
- for (const stmt of block.body) {
16649
+ const body = block.type === "SwitchCase" ? block.consequent : block.body;
16650
+ for (const stmt of body) {
16513
16651
  if (stmt.type === "VariableDeclaration") {
16514
16652
  if (stmt.declare) continue;
16515
16653
  for (const decl of stmt.declarations) {
@@ -16522,6 +16660,8 @@ function walkBlockDeclarations(block, onIdent) {
16522
16660
  onIdent(stmt.id);
16523
16661
  } else if (isForStatement(stmt)) {
16524
16662
  walkForStatement(stmt, true, onIdent);
16663
+ } else if (stmt.type === "SwitchStatement") {
16664
+ walkSwitchStatement(stmt, true, onIdent);
16525
16665
  }
16526
16666
  }
16527
16667
  }
@@ -16538,6 +16678,20 @@ function walkForStatement(stmt, isVar, onIdent) {
16538
16678
  }
16539
16679
  }
16540
16680
  }
16681
+ function walkSwitchStatement(stmt, isVar, onIdent) {
16682
+ for (const cs of stmt.cases) {
16683
+ for (const stmt2 of cs.consequent) {
16684
+ if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) {
16685
+ for (const decl of stmt2.declarations) {
16686
+ for (const id of extractIdentifiers(decl.id)) {
16687
+ onIdent(id);
16688
+ }
16689
+ }
16690
+ }
16691
+ }
16692
+ walkBlockDeclarations(cs, onIdent);
16693
+ }
16694
+ }
16541
16695
  function extractIdentifiers(param, nodes = []) {
16542
16696
  switch (param.type) {
16543
16697
  case "Identifier":
@@ -16637,7 +16791,7 @@ function isReferenced$1(node, parent, grandparent) {
16637
16791
  if (parent.key === node) {
16638
16792
  return !!parent.computed;
16639
16793
  }
16640
- return true;
16794
+ return !grandparent || grandparent.type !== "ObjectPattern";
16641
16795
  // no: class { NODE = value; }
16642
16796
  // yes: class { [NODE] = value; }
16643
16797
  // yes: class { key = NODE; }
@@ -16687,6 +16841,9 @@ function isReferenced$1(node, parent, grandparent) {
16687
16841
  // yes: export { NODE as foo };
16688
16842
  // no: export { NODE as foo } from "foo";
16689
16843
  case "ExportSpecifier":
16844
+ if (grandparent == null ? void 0 : grandparent.source) {
16845
+ return false;
16846
+ }
16690
16847
  return parent.local === node;
16691
16848
  // no: import NODE from "foo";
16692
16849
  // no: import * as NODE from "foo";
@@ -16820,7 +16977,7 @@ function isCoreComponent(tag) {
16820
16977
  return BASE_TRANSITION;
16821
16978
  }
16822
16979
  }
16823
- const nonIdentifierRE = /^\d|[^\$\w\xA0-\uFFFF]/;
16980
+ const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/;
16824
16981
  const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);
16825
16982
  const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;
16826
16983
  const isMemberExpressionNode = (exp, context) => {
@@ -16910,6 +17067,9 @@ function hasDynamicKeyVBind(node) {
16910
17067
  // v-bind:[foo]
16911
17068
  );
16912
17069
  }
17070
+ function isVPre(p) {
17071
+ return p.type === 7 && p.name === "pre";
17072
+ }
16913
17073
  function isVSlot(p) {
16914
17074
  return p.type === 7 && p.name === "slot";
16915
17075
  }
@@ -17077,7 +17237,7 @@ const tokenizer = new Tokenizer(stack, {
17077
17237
  ondirarg(start, end) {
17078
17238
  if (start === end) return;
17079
17239
  const arg = getSlice(start, end);
17080
- if (inVPre) {
17240
+ if (inVPre && !isVPre(currentProp)) {
17081
17241
  currentProp.name += arg;
17082
17242
  setLocEnd(currentProp.nameLoc, end);
17083
17243
  } else {
@@ -17092,7 +17252,7 @@ const tokenizer = new Tokenizer(stack, {
17092
17252
  },
17093
17253
  ondirmodifier(start, end) {
17094
17254
  const mod = getSlice(start, end);
17095
- if (inVPre) {
17255
+ if (inVPre && !isVPre(currentProp)) {
17096
17256
  currentProp.name += "." + mod;
17097
17257
  setLocEnd(currentProp.nameLoc, end);
17098
17258
  } else if (currentProp.name === "slot") {
@@ -21187,6 +21347,44 @@ const resolveModifiers = (key, modifiers, context, loc) => {
21187
21347
  };
21188
21348
  };
21189
21349
 
21350
+ function postTransformTransition(node, onError, hasMultipleChildren = defaultHasMultipleChildren) {
21351
+ return () => {
21352
+ if (!node.children.length) {
21353
+ return;
21354
+ }
21355
+ if (hasMultipleChildren(node)) {
21356
+ onError(
21357
+ createDOMCompilerError(62, {
21358
+ start: node.children[0].loc.start,
21359
+ end: node.children[node.children.length - 1].loc.end,
21360
+ source: ""
21361
+ })
21362
+ );
21363
+ }
21364
+ const child = node.children[0];
21365
+ if (child.type === 1) {
21366
+ for (const p of child.props) {
21367
+ if (p.type === 7 && p.name === "show") {
21368
+ node.props.push({
21369
+ type: 6,
21370
+ name: "persisted",
21371
+ nameLoc: node.loc,
21372
+ value: void 0,
21373
+ loc: node.loc
21374
+ });
21375
+ }
21376
+ }
21377
+ }
21378
+ };
21379
+ }
21380
+ function defaultHasMultipleChildren(node) {
21381
+ const children = node.children = node.children.filter(
21382
+ (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())
21383
+ );
21384
+ const child = children[0];
21385
+ return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(defaultHasMultipleChildren);
21386
+ }
21387
+
21190
21388
  function isValidHTMLNesting(parent, child) {
21191
21389
  if (parent === "template") {
21192
21390
  return true;
@@ -21367,7 +21565,8 @@ const newBlock = (node) => ({
21367
21565
  effect: [],
21368
21566
  operation: [],
21369
21567
  returns: [],
21370
- tempId: 0
21568
+ tempId: 0,
21569
+ hasDeferredVShow: false
21371
21570
  });
21372
21571
  function wrapTemplate(node, dirs) {
21373
21572
  if (node.tagType === 3) {
@@ -21431,6 +21630,40 @@ function getLiteralExpressionValue(exp) {
21431
21630
  }
21432
21631
  return exp.isStatic ? exp.content : null;
21433
21632
  }
21633
+ function isInTransition(context) {
21634
+ const parentNode = context.parent && context.parent.node;
21635
+ return !!(parentNode && isTransitionNode(parentNode));
21636
+ }
21637
+ function isTransitionNode(node) {
21638
+ return node.type === 1 && isTransitionTag(node.tag);
21639
+ }
21640
+ function isTransitionTag(tag) {
21641
+ tag = tag.toLowerCase();
21642
+ return tag === "transition" || tag === "vaportransition";
21643
+ }
21644
+ function isTransitionGroupTag(tag) {
21645
+ tag = tag.toLowerCase().replace(/-/g, "");
21646
+ return tag === "transitiongroup" || tag === "vaportransitiongroup";
21647
+ }
21648
+ function isKeepAliveTag(tag) {
21649
+ tag = tag.toLowerCase();
21650
+ return tag === "keepalive" || tag === "vaporkeepalive";
21651
+ }
21652
+ function isTeleportTag(tag) {
21653
+ tag = tag.toLowerCase();
21654
+ return tag === "teleport" || tag === "vaporteleport";
21655
+ }
21656
+ function isBuiltInComponent(tag) {
21657
+ if (isTeleportTag(tag)) {
21658
+ return "VaporTeleport";
21659
+ } else if (isKeepAliveTag(tag)) {
21660
+ return "VaporKeepAlive";
21661
+ } else if (isTransitionTag(tag)) {
21662
+ return "VaporTransition";
21663
+ } else if (isTransitionGroupTag(tag)) {
21664
+ return "VaporTransitionGroup";
21665
+ }
21666
+ }
21434
21667
 
21435
21668
  class TransformContext {
21436
21669
  constructor(ir, node, options = {}) {
@@ -21643,13 +21876,13 @@ const DELIMITERS_ARRAY = ["[", "]", ", "];
21643
21876
  const DELIMITERS_ARRAY_NEWLINE = [
21644
21877
  ["[", INDENT_START, NEWLINE],
21645
21878
  [INDENT_END, NEWLINE, "]"],
21646
- [", ", NEWLINE]
21879
+ [",", NEWLINE]
21647
21880
  ];
21648
21881
  const DELIMITERS_OBJECT = ["{ ", " }", ", "];
21649
21882
  const DELIMITERS_OBJECT_NEWLINE = [
21650
21883
  ["{", INDENT_START, NEWLINE],
21651
21884
  [INDENT_END, NEWLINE, "}"],
21652
- [", ", NEWLINE]
21885
+ [",", NEWLINE]
21653
21886
  ];
21654
21887
  function genCall(name, ...frags) {
21655
21888
  const hasPlaceholder = isArray(name);
@@ -24630,7 +24863,6 @@ function requireGenerated$3 () {
24630
24863
  case "AssignmentPattern":
24631
24864
  case "ArrayPattern":
24632
24865
  case "ObjectPattern":
24633
- case "OptionalMemberExpression":
24634
24866
  case "TSParameterProperty":
24635
24867
  case "TSAsExpression":
24636
24868
  case "TSSatisfiesExpression":
@@ -25502,13 +25734,13 @@ function requireIdentifier () {
25502
25734
  identifier.isIdentifierChar = isIdentifierChar;
25503
25735
  identifier.isIdentifierName = isIdentifierName;
25504
25736
  identifier.isIdentifierStart = isIdentifierStart;
25505
- let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
25506
- let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
25737
+ let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
25738
+ let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
25507
25739
  const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
25508
25740
  const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
25509
25741
  nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
25510
- const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
25511
- const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
25742
+ const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
25743
+ const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
25512
25744
  function isInAstralSet(code, set) {
25513
25745
  let pos = 0x10000;
25514
25746
  for (let i = 0, length = set.length; i < length; i += 2) {
@@ -25755,7 +25987,7 @@ function requireUtils () {
25755
25987
  Object.defineProperty(utils, "__esModule", {
25756
25988
  value: true
25757
25989
  });
25758
- utils.allExpandedTypes = utils.VISITOR_KEYS = utils.NODE_PARENT_VALIDATIONS = utils.NODE_FIELDS = utils.FLIPPED_ALIAS_KEYS = utils.DEPRECATED_KEYS = utils.BUILDER_KEYS = utils.ALIAS_KEYS = void 0;
25990
+ utils.allExpandedTypes = utils.VISITOR_KEYS = utils.NODE_UNION_SHAPES__PRIVATE = utils.NODE_PARENT_VALIDATIONS = utils.NODE_FIELDS = utils.FLIPPED_ALIAS_KEYS = utils.DEPRECATED_KEYS = utils.BUILDER_KEYS = utils.ALIAS_KEYS = void 0;
25759
25991
  utils.arrayOf = arrayOf;
25760
25992
  utils.arrayOfType = arrayOfType;
25761
25993
  utils.assertEach = assertEach;
@@ -25782,6 +26014,7 @@ function requireUtils () {
25782
26014
  const BUILDER_KEYS = utils.BUILDER_KEYS = {};
25783
26015
  const DEPRECATED_KEYS = utils.DEPRECATED_KEYS = {};
25784
26016
  const NODE_PARENT_VALIDATIONS = utils.NODE_PARENT_VALIDATIONS = {};
26017
+ const NODE_UNION_SHAPES__PRIVATE = utils.NODE_UNION_SHAPES__PRIVATE = {};
25785
26018
  function getType(val) {
25786
26019
  if (Array.isArray(val)) {
25787
26020
  return "array";
@@ -25958,7 +26191,7 @@ function requireUtils () {
25958
26191
  }
25959
26192
  return validate;
25960
26193
  }
25961
- const validTypeOpts = new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]);
26194
+ const validTypeOpts = new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate", "unionShape"]);
25962
26195
  const validFieldKeys = new Set(["default", "optional", "deprecated", "validate"]);
25963
26196
  const store = {};
25964
26197
  function defineAliasedType(...aliases) {
@@ -26038,6 +26271,9 @@ function requireUtils () {
26038
26271
  if (opts.validate) {
26039
26272
  NODE_PARENT_VALIDATIONS[type] = opts.validate;
26040
26273
  }
26274
+ if (opts.unionShape) {
26275
+ NODE_UNION_SHAPES__PRIVATE[type] = opts.unionShape;
26276
+ }
26041
26277
  store[type] = opts;
26042
26278
  }
26043
26279
 
@@ -26153,6 +26389,12 @@ function requireDefinitions () {
26153
26389
  return _utils.NODE_PARENT_VALIDATIONS;
26154
26390
  }
26155
26391
  });
26392
+ Object.defineProperty(exports, "NODE_UNION_SHAPES__PRIVATE", {
26393
+ enumerable: true,
26394
+ get: function () {
26395
+ return _utils.NODE_UNION_SHAPES__PRIVATE;
26396
+ }
26397
+ });
26156
26398
  Object.defineProperty(exports, "PLACEHOLDERS", {
26157
26399
  enumerable: true,
26158
26400
  get: function () {
@@ -28835,7 +29077,7 @@ function requireLowercase () {
28835
29077
  validate(defs.typeAnnotation, node, "typeAnnotation", typeAnnotation, 1);
28836
29078
  return node;
28837
29079
  }
28838
- function tsTypeOperator(typeAnnotation, operator) {
29080
+ function tsTypeOperator(typeAnnotation, operator = "keyof") {
28839
29081
  const node = {
28840
29082
  type: "TSTypeOperator",
28841
29083
  typeAnnotation,
@@ -33612,18 +33854,26 @@ function genFor(oper, context) {
33612
33854
  keyProp,
33613
33855
  idMap
33614
33856
  );
33615
- const patternFrag = [];
33857
+ const selectorDeclarations = [];
33858
+ const selectorSetup = [];
33616
33859
  for (let i = 0; i < selectorPatterns.length; i++) {
33617
33860
  const { selector } = selectorPatterns[i];
33618
33861
  const selectorName = `_selector${id}_${i}`;
33619
- patternFrag.push(
33862
+ selectorDeclarations.push(`let ${selectorName}`, NEWLINE);
33863
+ if (i === 0) {
33864
+ selectorSetup.push(`({ createSelector }) => {`, INDENT_START);
33865
+ }
33866
+ selectorSetup.push(
33620
33867
  NEWLINE,
33621
- `const ${selectorName} = `,
33622
- ...genCall(`n${id}.useSelector`, [
33868
+ `${selectorName} = `,
33869
+ ...genCall(`createSelector`, [
33623
33870
  `() => `,
33624
33871
  ...genExpression(selector, context)
33625
33872
  ])
33626
33873
  );
33874
+ if (i === selectorPatterns.length - 1) {
33875
+ selectorSetup.push(INDENT_END, NEWLINE, "}");
33876
+ }
33627
33877
  }
33628
33878
  const blockFn = context.withId(() => {
33629
33879
  const frag = [];
@@ -33631,25 +33881,25 @@ function genFor(oper, context) {
33631
33881
  if (selectorPatterns.length || keyOnlyBindingPatterns.length) {
33632
33882
  frag.push(
33633
33883
  ...genBlockContent(render, context, false, () => {
33634
- const patternFrag2 = [];
33884
+ const patternFrag = [];
33635
33885
  for (let i = 0; i < selectorPatterns.length; i++) {
33636
33886
  const { effect } = selectorPatterns[i];
33637
- patternFrag2.push(
33887
+ patternFrag.push(
33638
33888
  NEWLINE,
33639
33889
  `_selector${id}_${i}(() => {`,
33640
33890
  INDENT_START
33641
33891
  );
33642
33892
  for (const oper2 of effect.operations) {
33643
- patternFrag2.push(...genOperation(oper2, context));
33893
+ patternFrag.push(...genOperation(oper2, context));
33644
33894
  }
33645
- patternFrag2.push(INDENT_END, NEWLINE, `})`);
33895
+ patternFrag.push(INDENT_END, NEWLINE, `})`);
33646
33896
  }
33647
33897
  for (const { effect } of keyOnlyBindingPatterns) {
33648
33898
  for (const oper2 of effect.operations) {
33649
- patternFrag2.push(...genOperation(oper2, context));
33899
+ patternFrag.push(...genOperation(oper2, context));
33650
33900
  }
33651
33901
  }
33652
- return patternFrag2;
33902
+ return patternFrag;
33653
33903
  })
33654
33904
  );
33655
33905
  } else {
@@ -33671,16 +33921,17 @@ function genFor(oper, context) {
33671
33921
  }
33672
33922
  return [
33673
33923
  NEWLINE,
33924
+ ...selectorDeclarations,
33674
33925
  `const n${id} = `,
33675
33926
  ...genCall(
33676
- helper("createFor"),
33927
+ [helper("createFor"), "undefined"],
33677
33928
  sourceExpr,
33678
33929
  blockFn,
33679
33930
  genCallback(keyProp),
33680
- flags ? String(flags) : void 0
33931
+ flags ? String(flags) : void 0,
33932
+ selectorSetup.length ? selectorSetup : void 0
33681
33933
  // todo: hydrationNode
33682
- ),
33683
- ...patternFrag
33934
+ )
33684
33935
  ];
33685
33936
  function parseValueDestructure() {
33686
33937
  const map = /* @__PURE__ */ new Map();
@@ -33942,10 +34193,15 @@ function isKeyOnlyBinding(expr, keyAst) {
33942
34193
 
33943
34194
  function genSetHtml(oper, context) {
33944
34195
  const { helper } = context;
33945
- const { value, element } = oper;
34196
+ const { value, element, isComponent } = oper;
33946
34197
  return [
33947
34198
  NEWLINE,
33948
- ...genCall(helper("setHtml"), `n${element}`, genExpression(value, context))
34199
+ ...genCall(
34200
+ // use setBlockHtml for component
34201
+ isComponent ? helper("setBlockHtml") : helper("setHtml"),
34202
+ `n${element}`,
34203
+ genExpression(value, context)
34204
+ )
33949
34205
  ];
33950
34206
  }
33951
34207
 
@@ -34034,7 +34290,7 @@ function genLiteralObjectProps(props, context) {
34034
34290
  }
34035
34291
  function genPropKey({ key: node, modifier, runtimeCamelize, handler, handlerModifiers }, context) {
34036
34292
  const { helper } = context;
34037
- const handlerModifierPostfix = handlerModifiers ? handlerModifiers.map(capitalize).join("") : "";
34293
+ const handlerModifierPostfix = handlerModifiers && handlerModifiers.options ? handlerModifiers.options.map(capitalize).join("") : "";
34038
34294
  if (node.isStatic) {
34039
34295
  const keyName = (handler ? toHandlerKey(node.content) : node.content) + handlerModifierPostfix;
34040
34296
  return [
@@ -34109,6 +34365,7 @@ function getSpecialHelper(keyName, tagName) {
34109
34365
 
34110
34366
  const setTemplateRefIdent = `_setTemplateRef`;
34111
34367
  function genSetTemplateRef(oper, context) {
34368
+ const [refValue, refKey] = genRefValue(oper.value, context);
34112
34369
  return [
34113
34370
  NEWLINE,
34114
34371
  oper.effect && `r${oper.element} = `,
@@ -34116,9 +34373,10 @@ function genSetTemplateRef(oper, context) {
34116
34373
  setTemplateRefIdent,
34117
34374
  // will be generated in root scope
34118
34375
  `n${oper.element}`,
34119
- genRefValue(oper.value, context),
34376
+ refValue,
34120
34377
  oper.effect ? `r${oper.element}` : oper.refFor ? "void 0" : void 0,
34121
- oper.refFor && "true"
34378
+ oper.refFor && "true",
34379
+ refKey
34122
34380
  )
34123
34381
  ];
34124
34382
  }
@@ -34129,19 +34387,24 @@ function genRefValue(value, context) {
34129
34387
  if (value && context.options.inline) {
34130
34388
  const binding = context.options.bindingMetadata[value.content];
34131
34389
  if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") {
34132
- return [value.content];
34390
+ return [[value.content], JSON.stringify(value.content)];
34133
34391
  }
34134
34392
  }
34135
- return genExpression(value, context);
34393
+ return [genExpression(value, context)];
34136
34394
  }
34137
34395
 
34138
34396
  function genSetText(oper, context) {
34139
34397
  const { helper } = context;
34140
- const { element, values, generated, jsx } = oper;
34398
+ const { element, values, generated, jsx, isComponent } = oper;
34141
34399
  const texts = combineValues(values, context, jsx);
34142
34400
  return [
34143
34401
  NEWLINE,
34144
- ...genCall(helper("setText"), `${generated ? "x" : "n"}${element}`, texts)
34402
+ ...genCall(
34403
+ // use setBlockText for component
34404
+ isComponent ? helper("setBlockText") : helper("setText"),
34405
+ `${generated && !isComponent ? "x" : "n"}${element}`,
34406
+ texts
34407
+ )
34145
34408
  ];
34146
34409
  }
34147
34410
  function combineValues(values, context, jsx) {
@@ -34159,18 +34422,21 @@ function combineValues(values, context, jsx) {
34159
34422
  function genGetTextChild(oper, context) {
34160
34423
  return [
34161
34424
  NEWLINE,
34162
- `const x${oper.parent} = ${context.helper("child")}(n${oper.parent})`
34425
+ `const x${oper.parent} = ${context.helper("txt")}(n${oper.parent})`
34163
34426
  ];
34164
34427
  }
34165
34428
 
34166
34429
  function genVShow(oper, context) {
34430
+ const { deferred, element } = oper;
34167
34431
  return [
34168
34432
  NEWLINE,
34169
- ...genCall(context.helper("applyVShow"), `n${oper.element}`, [
34433
+ deferred ? `deferredApplyVShows.push(() => ` : void 0,
34434
+ ...genCall(context.helper("applyVShow"), `n${element}`, [
34170
34435
  `() => (`,
34171
34436
  ...genExpression(oper.dir.exp, context),
34172
34437
  `)`
34173
- ])
34438
+ ]),
34439
+ deferred ? `)` : void 0
34174
34440
  ];
34175
34441
  }
34176
34442
 
@@ -34309,8 +34575,14 @@ function genCreateComponent(operation, context) {
34309
34575
  } else if (operation.asset) {
34310
34576
  return toValidAssetId(operation.tag, "component");
34311
34577
  } else {
34578
+ const { tag: tag2 } = operation;
34579
+ const builtInTag = isBuiltInComponent(tag2);
34580
+ if (builtInTag) {
34581
+ helper(builtInTag);
34582
+ return `_${builtInTag}`;
34583
+ }
34312
34584
  return genExpression(
34313
- extend(createSimpleExpression(operation.tag, false), { ast: null }),
34585
+ extend(createSimpleExpression(tag2, false), { ast: null }),
34314
34586
  context
34315
34587
  );
34316
34588
  }
@@ -34318,6 +34590,7 @@ function genCreateComponent(operation, context) {
34318
34590
  }
34319
34591
  function getUniqueHandlerName(context, name) {
34320
34592
  const { seenInlineHandlerNames } = context;
34593
+ name = genVarName(name);
34321
34594
  const count = seenInlineHandlerNames[name] || 0;
34322
34595
  seenInlineHandlerNames[name] = count + 1;
34323
34596
  return count === 0 ? name : `${name}${count}`;
@@ -34333,7 +34606,10 @@ function processInlineHandlers(props, context) {
34333
34606
  prop.values.forEach((value, i2) => {
34334
34607
  const isMemberExp = isMemberExpression$1(value, context.options);
34335
34608
  if (!isMemberExp) {
34336
- const name = getUniqueHandlerName(context, `_on_${prop.key.content}`);
34609
+ const name = getUniqueHandlerName(
34610
+ context,
34611
+ `_on_${prop.key.content.replace(/-/g, "_")}`
34612
+ );
34337
34613
  handlers.push({ name, value });
34338
34614
  ids[name] = null;
34339
34615
  prop.values[i2] = extend({ ast: null }, createSimpleExpression(name));
@@ -34400,7 +34676,7 @@ function genProp(prop, context, isStatic) {
34400
34676
  ...prop.handler ? genEventHandler(
34401
34677
  context,
34402
34678
  prop.values[0],
34403
- void 0,
34679
+ prop.handlerModifiers,
34404
34680
  true
34405
34681
  ) : isStatic ? ["() => (", ...values, ")"] : values,
34406
34682
  ...prop.model ? [...genModelEvent(prop, context), ...genModelModifiers(prop, context)] : []
@@ -34532,7 +34808,7 @@ function genSlotBlockWithProps(oper, context) {
34532
34808
  let propsName;
34533
34809
  let exitScope;
34534
34810
  let depth;
34535
- const { props } = oper;
34811
+ const { props, key, node } = oper;
34536
34812
  const idsOfProps = /* @__PURE__ */ new Set();
34537
34813
  if (props) {
34538
34814
  rawProps = props.content;
@@ -34554,17 +34830,39 @@ function genSlotBlockWithProps(oper, context) {
34554
34830
  idsOfProps.forEach(
34555
34831
  (id) => idMap[id] = isDestructureAssignment ? `${propsName}[${JSON.stringify(id)}]` : null
34556
34832
  );
34557
- const blockFn = context.withId(
34833
+ let blockFn = context.withId(
34558
34834
  () => genBlock(oper, context, [propsName]),
34559
34835
  idMap
34560
34836
  );
34561
34837
  exitScope && exitScope();
34838
+ if (key) {
34839
+ blockFn = [
34840
+ `() => {`,
34841
+ INDENT_START,
34842
+ NEWLINE,
34843
+ `return `,
34844
+ ...genCall(
34845
+ context.helper("createKeyedFragment"),
34846
+ [`() => `, ...genExpression(key, context)],
34847
+ blockFn
34848
+ ),
34849
+ INDENT_END,
34850
+ NEWLINE,
34851
+ `}`
34852
+ ];
34853
+ }
34854
+ if (node.type === 1 && // Not a real component
34855
+ !isTeleportTag(node.tag) && // Needs to determine whether to activate/deactivate based on instance.parent being KeepAlive
34856
+ !isKeepAliveTag(node.tag) && // Slot updates need to trigger TransitionGroup's onBeforeUpdate/onUpdated hook
34857
+ !isTransitionGroupTag(node.tag)) {
34858
+ blockFn = [`${context.helper("withVaporCtx")}(`, ...blockFn, `)`];
34859
+ }
34562
34860
  return blockFn;
34563
34861
  }
34564
34862
 
34565
34863
  function genSlotOutlet(oper, context) {
34566
34864
  const { helper } = context;
34567
- const { id, name, fallback } = oper;
34865
+ const { id, name, fallback, noSlotted } = oper;
34568
34866
  const [frag, push] = buildCodeFragment();
34569
34867
  const nameExpr = name.isStatic ? genExpression(name, context) : ["() => (", ...genExpression(name, context), ")"];
34570
34868
  let fallbackArg;
@@ -34578,7 +34876,11 @@ function genSlotOutlet(oper, context) {
34578
34876
  helper("createSlot"),
34579
34877
  nameExpr,
34580
34878
  genRawProps(oper.props, context) || "null",
34581
- fallbackArg
34879
+ fallbackArg,
34880
+ noSlotted && "undefined",
34881
+ // instance
34882
+ noSlotted && "true"
34883
+ // noSlotted
34582
34884
  )
34583
34885
  );
34584
34886
  return frag;
@@ -34694,12 +34996,18 @@ function genEffect({ operations }, context) {
34694
34996
  return frag;
34695
34997
  }
34696
34998
  function genInsertionState(operation, context) {
34999
+ const { parent, anchor, append, last } = operation;
34697
35000
  return [
34698
35001
  NEWLINE,
34699
35002
  ...genCall(
34700
35003
  context.helper("setInsertionState"),
34701
- `n${operation.parent}`,
34702
- operation.anchor == null ? void 0 : operation.anchor === -1 ? `0` : `n${operation.anchor}`
35004
+ `n${parent}`,
35005
+ anchor == null ? void 0 : anchor === -1 ? `0` : append ? (
35006
+ // null or anchor > 0 for append
35007
+ // anchor > 0 is the logical index of append node - used for locate node during hydration
35008
+ anchor === 0 ? "null" : `${anchor}`
35009
+ ) : `n${anchor}`,
35010
+ last && "true"
34703
35011
  )
34704
35012
  ];
34705
35013
  }
@@ -34714,7 +35022,7 @@ function genTemplates(templates, rootIndex, { helper }) {
34714
35022
  }
34715
35023
  function genSelf(dynamic, context) {
34716
35024
  const [frag, push] = buildCodeFragment();
34717
- const { id, template, operation } = dynamic;
35025
+ const { id, template, operation, hasDynamicChild } = dynamic;
34718
35026
  if (id !== void 0 && template !== void 0) {
34719
35027
  push(NEWLINE, `const n${id} = t${template}()`);
34720
35028
  push(...genDirectivesForElement(id, context));
@@ -34722,6 +35030,9 @@ function genSelf(dynamic, context) {
34722
35030
  if (operation) {
34723
35031
  push(...genOperationWithInsertionState(operation, context));
34724
35032
  }
35033
+ if (hasDynamicChild) {
35034
+ push(...genChildren(dynamic, context, push, `n${id}`));
35035
+ }
34725
35036
  return frag;
34726
35037
  }
34727
35038
  function genChildren(dynamic, context, pushBlock, from = `n${dynamic.id}`) {
@@ -34730,51 +35041,65 @@ function genChildren(dynamic, context, pushBlock, from = `n${dynamic.id}`) {
34730
35041
  const { children } = dynamic;
34731
35042
  let offset = 0;
34732
35043
  let prev;
34733
- const childrenToGen = [];
35044
+ let ifBranchCount = 0;
35045
+ let prependCount = 0;
34734
35046
  for (const [index, child] of children.entries()) {
35047
+ if (child.operation && child.operation.anchor === -1) {
35048
+ prependCount++;
35049
+ }
34735
35050
  if (child.flags & 2) {
34736
35051
  offset--;
35052
+ } else if (child.ifBranch) {
35053
+ ifBranchCount++;
34737
35054
  }
34738
35055
  const id = child.flags & 1 ? child.flags & 4 ? child.anchor : child.id : void 0;
34739
35056
  if (id === void 0 && !child.hasDynamicChild) {
34740
35057
  push(...genSelf(child, context));
34741
35058
  continue;
34742
35059
  }
34743
- const elementIndex = Number(index) + offset;
35060
+ const elementIndex = index + offset;
35061
+ const logicalIndex = elementIndex - ifBranchCount + prependCount;
34744
35062
  const variable = id === void 0 ? `p${context.block.tempId++}` : `n${id}`;
34745
35063
  pushBlock(NEWLINE, `const ${variable} = `);
34746
35064
  if (prev) {
34747
35065
  if (elementIndex - prev[1] === 1) {
34748
- pushBlock(...genCall(helper("next"), prev[0]));
35066
+ pushBlock(...genCall(helper("next"), prev[0], String(logicalIndex)));
34749
35067
  } else {
34750
- pushBlock(...genCall(helper("nthChild"), from, String(elementIndex)));
35068
+ pushBlock(
35069
+ ...genCall(
35070
+ helper("nthChild"),
35071
+ from,
35072
+ String(elementIndex),
35073
+ String(logicalIndex)
35074
+ )
35075
+ );
34751
35076
  }
34752
35077
  } else {
34753
35078
  if (elementIndex === 0) {
34754
- pushBlock(...genCall(helper("child"), from));
35079
+ pushBlock(...genCall(helper("child"), from, String(logicalIndex)));
34755
35080
  } else {
34756
35081
  let init = genCall(helper("child"), from);
34757
35082
  if (elementIndex === 1) {
34758
- init = genCall(helper("next"), init);
35083
+ init = genCall(helper("next"), init, String(logicalIndex));
34759
35084
  } else if (elementIndex > 1) {
34760
- init = genCall(helper("nthChild"), from, String(elementIndex));
35085
+ init = genCall(
35086
+ helper("nthChild"),
35087
+ from,
35088
+ String(elementIndex),
35089
+ String(logicalIndex)
35090
+ );
34761
35091
  }
34762
35092
  pushBlock(...init);
34763
35093
  }
34764
35094
  }
34765
- if (id === child.anchor) {
35095
+ if (id === child.anchor && !child.hasDynamicChild) {
34766
35096
  push(...genSelf(child, context));
34767
35097
  }
34768
35098
  if (id !== void 0) {
34769
35099
  push(...genDirectivesForElement(id, context));
34770
35100
  }
34771
35101
  prev = [variable, elementIndex];
34772
- childrenToGen.push([child, variable]);
34773
- }
34774
- if (childrenToGen.length) {
34775
- for (const [child, from2] of childrenToGen) {
34776
- push(...genChildren(child, context, pushBlock, from2));
34777
- }
35102
+ push(...genChildren(child, context, pushBlock, variable));
34778
35103
  }
34779
35104
  return frag;
34780
35105
  }
@@ -34793,8 +35118,11 @@ function genBlock(oper, context, args = [], root) {
34793
35118
  }
34794
35119
  function genBlockContent(block, context, root, genEffectsExtraFrag) {
34795
35120
  const [frag, push] = buildCodeFragment();
34796
- const { dynamic, effect, operation, returns } = block;
35121
+ const { dynamic, effect, operation, returns, key } = block;
34797
35122
  const resetBlock = context.enterBlock(block);
35123
+ if (block.hasDeferredVShow) {
35124
+ push(NEWLINE, `const deferredApplyVShows = []`);
35125
+ }
34798
35126
  if (root) {
34799
35127
  for (let name of context.ir.component) {
34800
35128
  const id = toValidAssetId(name, "component");
@@ -34817,10 +35145,21 @@ function genBlockContent(block, context, root, genEffectsExtraFrag) {
34817
35145
  push(...genSelf(child, context));
34818
35146
  }
34819
35147
  for (const child of dynamic.children) {
34820
- push(...genChildren(child, context, push, `n${child.id}`));
35148
+ if (!child.hasDynamicChild) {
35149
+ push(...genChildren(child, context, push, `n${child.id}`));
35150
+ }
34821
35151
  }
34822
35152
  push(...genOperations(operation, context));
34823
35153
  push(...genEffects(effect, context, genEffectsExtraFrag));
35154
+ if (block.hasDeferredVShow) {
35155
+ push(NEWLINE, `deferredApplyVShows.forEach(fn => fn())`);
35156
+ }
35157
+ if (dynamic.needsKey) {
35158
+ for (const child of dynamic.children) {
35159
+ const keyValue = key ? genExpression(key, context) : JSON.stringify(child.id);
35160
+ push(NEWLINE, `n${child.id}.$key = `, ...keyValue);
35161
+ }
35162
+ }
34824
35163
  push(NEWLINE, `return `);
34825
35164
  const returnNodes = returns.map((n) => `n${n}`);
34826
35165
  const returnsCode = returnNodes.length > 1 ? genMulti(DELIMITERS_ARRAY, ...returnNodes) : [returnNodes[0] || "null"];
@@ -34979,15 +35318,17 @@ const transformChildren = (node, context) => {
34979
35318
  };
34980
35319
  function processDynamicChildren(context) {
34981
35320
  let prevDynamics = [];
34982
- let hasStaticTemplate = false;
35321
+ let staticCount = 0;
35322
+ let dynamicCount = 0;
35323
+ let lastInsertionChild;
34983
35324
  const children = context.dynamic.children;
34984
35325
  for (const [index, child] of children.entries()) {
34985
35326
  if (child.flags & 4) {
34986
- prevDynamics.push(child);
35327
+ prevDynamics.push(lastInsertionChild = child);
34987
35328
  }
34988
35329
  if (!(child.flags & 2)) {
34989
35330
  if (prevDynamics.length) {
34990
- if (hasStaticTemplate) {
35331
+ if (staticCount) {
34991
35332
  context.childrenTemplate[index - prevDynamics.length] = `<!>`;
34992
35333
  prevDynamics[0].flags -= 2;
34993
35334
  const anchor = prevDynamics[0].anchor = context.increaseId();
@@ -35000,27 +35341,38 @@ function processDynamicChildren(context) {
35000
35341
  /* prepend */
35001
35342
  );
35002
35343
  }
35344
+ dynamicCount += prevDynamics.length;
35003
35345
  prevDynamics = [];
35004
35346
  }
35005
- hasStaticTemplate = true;
35347
+ staticCount++;
35006
35348
  }
35007
35349
  }
35008
35350
  if (prevDynamics.length) {
35009
- registerInsertion(prevDynamics, context);
35351
+ registerInsertion(
35352
+ prevDynamics,
35353
+ context,
35354
+ // the logical index of append child
35355
+ dynamicCount + staticCount,
35356
+ true
35357
+ );
35358
+ }
35359
+ if (lastInsertionChild && lastInsertionChild.operation) {
35360
+ lastInsertionChild.operation.last = true;
35010
35361
  }
35011
35362
  }
35012
- function registerInsertion(dynamics, context, anchor) {
35363
+ function registerInsertion(dynamics, context, anchor, append) {
35013
35364
  for (const child of dynamics) {
35014
35365
  if (child.template != null) {
35015
35366
  context.registerOperation({
35016
35367
  type: 9,
35017
35368
  elements: dynamics.map((child2) => child2.id),
35018
35369
  parent: context.reference(),
35019
- anchor
35370
+ anchor: append ? void 0 : anchor
35020
35371
  });
35021
35372
  } else if (child.operation && isBlockOperation(child.operation)) {
35022
35373
  child.operation.parent = context.reference();
35023
35374
  child.operation.anchor = anchor;
35375
+ child.operation.append = append;
35024
35376
  }
35025
35377
  }
35026
35378
  }
@@ -35088,6 +35440,11 @@ function transformComponentElement(node, propsResult, singleRoot, context, isDyn
35088
35440
  tag = fromSetup;
35089
35441
  asset = false;
35090
35442
  }
35443
+ const builtInTag = isBuiltInComponent(tag);
35444
+ if (builtInTag) {
35445
+ tag = builtInTag;
35446
+ asset = false;
35447
+ }
35091
35448
  const dotIndex = tag.indexOf(".");
35092
35449
  if (dotIndex > 0) {
35093
35450
  const ns = resolveSetupReference(tag.slice(0, dotIndex), context);
@@ -35144,6 +35501,7 @@ function resolveSetupReference(name, context) {
35144
35501
  const PascalName = capitalize(camelName);
35145
35502
  return bindings[name] ? name : bindings[camelName] ? camelName : bindings[PascalName] ? PascalName : void 0;
35146
35503
  }
35504
+ const dynamicKeys = ["indeterminate"];
35147
35505
  function transformNativeElement(node, propsResult, singleRoot, context, getEffectIndex) {
35148
35506
  const { tag } = node;
35149
35507
  const { scopeId } = context.options;
@@ -35166,7 +35524,7 @@ function transformNativeElement(node, propsResult, singleRoot, context, getEffec
35166
35524
  } else {
35167
35525
  for (const prop of propsResult[1]) {
35168
35526
  const { key, values } = prop;
35169
- if (key.isStatic && values.length === 1 && values[0].isStatic) {
35527
+ if (key.isStatic && values.length === 1 && values[0].isStatic && !dynamicKeys.includes(key.content)) {
35170
35528
  template += ` ${key.content}`;
35171
35529
  if (values[0].content) template += `="${values[0].content}"`;
35172
35530
  } else {
@@ -35322,7 +35680,7 @@ function dedupeProperties(results) {
35322
35680
  }
35323
35681
  const name = prop.key.content;
35324
35682
  const existing = knownProps.get(name);
35325
- if (existing) {
35683
+ if (existing && existing.handler === prop.handler) {
35326
35684
  if (name === "style" || name === "class") {
35327
35685
  mergePropValues(existing, prop);
35328
35686
  }
@@ -35364,7 +35722,8 @@ const transformVHtml = (dir, node, context) => {
35364
35722
  context.registerEffect([exp], {
35365
35723
  type: 7,
35366
35724
  element: context.reference(),
35367
- value: exp
35725
+ value: exp,
35726
+ isComponent: node.tagType === 1
35368
35727
  });
35369
35728
  };
35370
35729
 
@@ -35390,15 +35749,19 @@ const transformVText = (dir, node, context) => {
35390
35749
  context.childrenTemplate = [String(literal)];
35391
35750
  } else {
35392
35751
  context.childrenTemplate = [" "];
35393
- context.registerOperation({
35394
- type: 17,
35395
- parent: context.reference()
35396
- });
35752
+ const isComponent = node.tagType === 1;
35753
+ if (!isComponent) {
35754
+ context.registerOperation({
35755
+ type: 17,
35756
+ parent: context.reference()
35757
+ });
35758
+ }
35397
35759
  context.registerEffect([exp], {
35398
35760
  type: 4,
35399
35761
  element: context.reference(),
35400
35762
  values: [exp],
35401
- generated: true
35763
+ generated: true,
35764
+ isComponent
35402
35765
  });
35403
35766
  }
35404
35767
  };
@@ -35488,7 +35851,11 @@ const transformVOn = (dir, node, context) => {
35488
35851
  key: arg,
35489
35852
  value: handler,
35490
35853
  handler: true,
35491
- handlerModifiers: eventOptionModifiers
35854
+ handlerModifiers: {
35855
+ keys: keyModifiers,
35856
+ nonKeys: nonKeyModifiers,
35857
+ options: eventOptionModifiers
35858
+ }
35492
35859
  };
35493
35860
  }
35494
35861
  const delegate = arg.isStatic && !eventOptionModifiers.length && delegatedEvents(arg.content);
@@ -35526,12 +35893,21 @@ const transformVShow = (dir, node, context) => {
35526
35893
  );
35527
35894
  return;
35528
35895
  }
35896
+ let shouldDeferred = false;
35897
+ const parentNode = context.parent && context.parent.node;
35898
+ if (parentNode && parentNode.type === 1) {
35899
+ shouldDeferred = !!(isTransitionTag(parentNode.tag) && findProp(parentNode, "appear", false, true));
35900
+ if (shouldDeferred) {
35901
+ context.parent.parent.block.hasDeferredVShow = true;
35902
+ }
35903
+ }
35529
35904
  context.registerOperation({
35530
35905
  type: 13,
35531
35906
  element: context.reference(),
35532
35907
  dir,
35533
35908
  name: "show",
35534
- builtin: true
35909
+ builtin: true,
35910
+ deferred: shouldDeferred
35535
35911
  });
35536
35912
  };
35537
35913
 
@@ -35601,11 +35977,12 @@ const transformText = (node, context) => {
35601
35977
  } else if (node.type === 5) {
35602
35978
  processInterpolation(context);
35603
35979
  } else if (node.type === 2) {
35604
- context.template += node.content;
35980
+ context.template += escapeHtml(node.content);
35605
35981
  }
35606
35982
  };
35607
35983
  function processInterpolation(context) {
35608
- const children = context.parent.node.children;
35984
+ const parentNode = context.parent.node;
35985
+ const children = parentNode.children;
35609
35986
  const nexts = children.slice(context.index);
35610
35987
  const idx = nexts.findIndex((n) => !isTextLike(n));
35611
35988
  const nodes = idx > -1 ? nexts.slice(0, idx) : nexts;
@@ -35613,9 +35990,15 @@ function processInterpolation(context) {
35613
35990
  if (prev && prev.type === 2) {
35614
35991
  nodes.unshift(prev);
35615
35992
  }
35993
+ const values = processTextLikeChildren(nodes, context);
35994
+ if (values.length === 0 && parentNode.type !== 0) {
35995
+ return;
35996
+ }
35616
35997
  context.template += " ";
35617
35998
  const id = context.reference();
35618
- const values = nodes.map((node) => createTextLikeExpression(node, context));
35999
+ if (values.length === 0) {
36000
+ return;
36001
+ }
35619
36002
  const nonConstantExps = values.filter((v) => !isConstantExpression(v));
35620
36003
  const isStatic = !nonConstantExps.length || nonConstantExps.every(
35621
36004
  (e) => isStaticExpression(e, context.options.bindingMetadata)
@@ -35635,10 +36018,10 @@ function processInterpolation(context) {
35635
36018
  }
35636
36019
  }
35637
36020
  function processTextContainer(children, context) {
35638
- const values = children.map((child) => createTextLikeExpression(child, context));
36021
+ const values = processTextLikeChildren(children, context);
35639
36022
  const literals = values.map(getLiteralExpressionValue);
35640
36023
  if (literals.every((l) => l != null)) {
35641
- context.childrenTemplate = literals.map((l) => String(l));
36024
+ context.childrenTemplate = literals.map((l) => escapeHtml(String(l)));
35642
36025
  } else {
35643
36026
  context.childrenTemplate = [" "];
35644
36027
  context.registerOperation({
@@ -35654,13 +36037,19 @@ function processTextContainer(children, context) {
35654
36037
  });
35655
36038
  }
35656
36039
  }
35657
- function createTextLikeExpression(node, context) {
35658
- markNonTemplate(node, context);
35659
- if (node.type === 2) {
35660
- return createSimpleExpression(node.content, true, node.loc);
35661
- } else {
35662
- return node.content;
36040
+ function processTextLikeChildren(nodes, context) {
36041
+ const exps = [];
36042
+ for (const node of nodes) {
36043
+ let exp;
36044
+ markNonTemplate(node, context);
36045
+ if (node.type === 2) {
36046
+ exp = createSimpleExpression(node.content, true, node.loc);
36047
+ } else {
36048
+ exp = node.content;
36049
+ }
36050
+ if (exp.content) exps.push(exp);
35663
36051
  }
36052
+ return exps;
35664
36053
  }
35665
36054
  function isTextLike(node) {
35666
36055
  return node.type === 5 || node.type === 2;
@@ -35783,7 +36172,7 @@ const transformComment = (node, context) => {
35783
36172
  context.comment.push(node);
35784
36173
  context.dynamic.flags |= 2;
35785
36174
  } else {
35786
- context.template += `<!--${node.content}-->`;
36175
+ context.template += `<!--${escapeHtml(node.content)}-->`;
35787
36176
  }
35788
36177
  };
35789
36178
  function getSiblingIf(context, reverse) {
@@ -35837,6 +36226,7 @@ function processIf(node, dir, context) {
35837
36226
  };
35838
36227
  } else {
35839
36228
  const siblingIf = getSiblingIf(context, true);
36229
+ context.dynamic.ifBranch = true;
35840
36230
  const siblings = context.parent && context.parent.dynamic.children;
35841
36231
  let lastIfNode;
35842
36232
  if (siblings) {
@@ -35893,6 +36283,7 @@ function createIfBranch(node, context) {
35893
36283
  const branch = newBlock(node);
35894
36284
  const exitBlock = context.enterBlock(branch);
35895
36285
  context.reference();
36286
+ branch.dynamic.needsKey = isInTransition(context);
35896
36287
  return [branch, exitBlock];
35897
36288
  }
35898
36289
 
@@ -35917,7 +36308,8 @@ function processFor(node, dir, context) {
35917
36308
  const { source, value, key, index } = parseResult;
35918
36309
  const keyProp = findProp(node, "key");
35919
36310
  const keyProperty = keyProp && propToExpression(keyProp);
35920
- const isComponent = node.tagType === 1;
36311
+ const isComponent = node.tagType === 1 || // template v-for with a single component child
36312
+ isTemplateWithSingleComponent(node);
35921
36313
  context.node = node = wrapTemplate(node, ["for"]);
35922
36314
  context.dynamic.flags |= 2 | 4;
35923
36315
  const id = context.reference();
@@ -35946,6 +36338,13 @@ function processFor(node, dir, context) {
35946
36338
  };
35947
36339
  };
35948
36340
  }
36341
+ function isTemplateWithSingleComponent(node) {
36342
+ if (node.tag !== "template") return false;
36343
+ const nonCommentChildren = node.children.filter(
36344
+ (c) => c.type !== 3
36345
+ );
36346
+ return nonCommentChildren.length === 1 && nonCommentChildren[0].type === 1 && nonCommentChildren[0].tagType === 1;
36347
+ }
35949
36348
 
35950
36349
  const transformSlotOutlet = (node, context) => {
35951
36350
  if (node.type !== 1 || node.tag !== "slot") {
@@ -36019,7 +36418,8 @@ const transformSlotOutlet = (node, context) => {
36019
36418
  id,
36020
36419
  name: slotName,
36021
36420
  props: irProps,
36022
- fallback
36421
+ fallback,
36422
+ noSlotted: !!(context.options.scopeId && !context.options.slotted)
36023
36423
  };
36024
36424
  };
36025
36425
  };
@@ -36081,7 +36481,22 @@ function transformComponentSlot(node, dir, context) {
36081
36481
  markNonTemplate(n, context);
36082
36482
  });
36083
36483
  }
36084
- const [block, onExit] = createSlotBlock(node, dir, context);
36484
+ let slotKey;
36485
+ if (isTransitionNode(node) && nonSlotTemplateChildren.length) {
36486
+ const nonCommentChild = nonSlotTemplateChildren.find(
36487
+ (n) => n.type !== 3
36488
+ );
36489
+ if (nonCommentChild) {
36490
+ const keyProp = findProp(
36491
+ nonCommentChild,
36492
+ "key"
36493
+ );
36494
+ if (keyProp) {
36495
+ slotKey = keyProp.exp;
36496
+ }
36497
+ }
36498
+ }
36499
+ const [block, onExit] = createSlotBlock(node, dir, context, slotKey);
36085
36500
  const { slots } = context;
36086
36501
  return () => {
36087
36502
  onExit();
@@ -36215,9 +36630,13 @@ function hasStaticSlot(slots, name) {
36215
36630
  if (slot.slotType === 0) return !!slot.slots[name];
36216
36631
  });
36217
36632
  }
36218
- function createSlotBlock(slotNode, dir, context) {
36633
+ function createSlotBlock(slotNode, dir, context, key = void 0) {
36219
36634
  const block = newBlock(slotNode);
36220
36635
  block.props = dir && dir.exp;
36636
+ if (key) {
36637
+ block.key = key;
36638
+ block.dynamic.needsKey = true;
36639
+ }
36221
36640
  const exitBlock = context.enterBlock(block);
36222
36641
  return [block, exitBlock];
36223
36642
  }
@@ -36226,6 +36645,37 @@ function isNonWhitespaceContent(node) {
36226
36645
  return !!node.content.trim();
36227
36646
  }
36228
36647
 
36648
+ const transformTransition = (node, context) => {
36649
+ if (node.type === 1 && node.tagType === 1) {
36650
+ if (isTransitionTag(node.tag)) {
36651
+ return postTransformTransition(
36652
+ node,
36653
+ context.options.onError,
36654
+ hasMultipleChildren
36655
+ );
36656
+ }
36657
+ }
36658
+ };
36659
+ function hasMultipleChildren(node) {
36660
+ const children = node.children = node.children.filter(
36661
+ (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())
36662
+ );
36663
+ const first = children[0];
36664
+ if (children.length === 1 && first.type === 1 && (findDir(first, "for") || isTemplateNode(first))) {
36665
+ return true;
36666
+ }
36667
+ const hasElse = (node2) => findDir(node2, "else-if") || findDir(node2, "else", true);
36668
+ if (children.every(
36669
+ (c, index) => c.type === 1 && // not template
36670
+ !isTemplateNode(c) && // not has v-for
36671
+ !findDir(c, "for") && // if the first child has v-if, the rest should also have v-else-if/v-else
36672
+ (index === 0 ? findDir(c, "if") : hasElse(c)) && !hasMultipleChildren(c)
36673
+ )) {
36674
+ return false;
36675
+ }
36676
+ return children.length > 1;
36677
+ }
36678
+
36229
36679
  function compile(source, options = {}) {
36230
36680
  const resolvedOptions = extend({}, options);
36231
36681
  const ast = isString(source) ? parse(source, resolvedOptions) : source;
@@ -36244,6 +36694,7 @@ function compile(source, options = {}) {
36244
36694
  extend({}, resolvedOptions, {
36245
36695
  nodeTransforms: [
36246
36696
  ...nodeTransforms,
36697
+ ...[transformTransition] ,
36247
36698
  ...options.nodeTransforms || []
36248
36699
  // user transforms
36249
36700
  ],