@vue/compat 3.5.42 → 3.5.43

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,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.42
2
+ * @vue/compat v3.5.43
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -128,10 +128,10 @@ function normalizeStyle(value) {
128
128
  }
129
129
  const listDelimiterRE = /;(?![^(]*\))/g;
130
130
  const propertyDelimiterRE = /:([^]+)/;
131
- const styleCommentRE = /\/\*[^]*?\*\//g;
131
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
132
132
  function parseStringStyle(cssText) {
133
133
  const ret = {};
134
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
134
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
135
135
  if (item) {
136
136
  const tmp = item.split(propertyDelimiterRE);
137
137
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -221,22 +221,22 @@ function getEscapedCssVarName(key, doubleEscape) {
221
221
  );
222
222
  }
223
223
 
224
- function looseCompareArrays(a, b) {
224
+ function looseCompareArrays(a, b, seen) {
225
225
  if (a.length !== b.length) return false;
226
226
  let equal = true;
227
227
  for (let i = 0; equal && i < a.length; i++) {
228
- equal = looseEqual(a[i], b[i]);
228
+ equal = looseEqual(a[i], b[i], seen);
229
229
  }
230
230
  return equal;
231
231
  }
232
- function looseCompareCollections(a, b) {
232
+ function looseCompareCollections(a, b, seen) {
233
233
  if (a.size !== b.size) return false;
234
234
  const candidates = Array.from(b);
235
235
  const matched = new Uint8Array(candidates.length);
236
236
  for (const item of a) {
237
237
  let index = -1;
238
238
  for (let i = 0; i < candidates.length; i++) {
239
- if (!matched[i] && looseEqual(item, candidates[i])) {
239
+ if (!matched[i] && looseEqual(item, candidates[i], seen)) {
240
240
  index = i;
241
241
  break;
242
242
  }
@@ -246,7 +246,47 @@ function looseCompareCollections(a, b) {
246
246
  }
247
247
  return true;
248
248
  }
249
- function looseEqual(a, b) {
249
+ function looseCompareObjects(a, b, seen) {
250
+ let aValidType = isMap(a);
251
+ let bValidType = isMap(b);
252
+ if (aValidType || bValidType) {
253
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
254
+ }
255
+ aValidType = isSet(a);
256
+ bValidType = isSet(b);
257
+ if (aValidType || bValidType) {
258
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
259
+ }
260
+ const aKeysCount = Object.keys(a).length;
261
+ const bKeysCount = Object.keys(b).length;
262
+ if (aKeysCount !== bKeysCount) {
263
+ return false;
264
+ }
265
+ for (const key in a) {
266
+ const aHasKey = a.hasOwnProperty(key);
267
+ const bHasKey = b.hasOwnProperty(key);
268
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) {
269
+ return false;
270
+ }
271
+ }
272
+ return String(a) === String(b);
273
+ }
274
+ function looseCompareNested(a, b, seen, compare) {
275
+ if (!seen) {
276
+ seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
277
+ }
278
+ const [seenA, seenB] = seen;
279
+ if (seenA.has(a) || seenB.has(b)) {
280
+ return seenA.get(a) === b && seenB.get(b) === a;
281
+ }
282
+ seenA.set(a, b);
283
+ seenB.set(b, a);
284
+ const equal = compare(a, b, seen);
285
+ seenA.delete(a);
286
+ seenB.delete(b);
287
+ return equal;
288
+ }
289
+ function looseEqual(a, b, seen) {
250
290
  if (a === b) return true;
251
291
  let aValidType = isDate(a);
252
292
  let bValidType = isDate(b);
@@ -261,7 +301,7 @@ function looseEqual(a, b) {
261
301
  aValidType = isArray(a);
262
302
  bValidType = isArray(b);
263
303
  if (aValidType || bValidType) {
264
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
304
+ return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
265
305
  }
266
306
  aValidType = isObject(a);
267
307
  bValidType = isObject(b);
@@ -269,28 +309,7 @@ function looseEqual(a, b) {
269
309
  if (!aValidType || !bValidType) {
270
310
  return false;
271
311
  }
272
- aValidType = isMap(a);
273
- bValidType = isMap(b);
274
- if (aValidType || bValidType) {
275
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
276
- }
277
- aValidType = isSet(a);
278
- bValidType = isSet(b);
279
- if (aValidType || bValidType) {
280
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
281
- }
282
- const aKeysCount = Object.keys(a).length;
283
- const bKeysCount = Object.keys(b).length;
284
- if (aKeysCount !== bKeysCount) {
285
- return false;
286
- }
287
- for (const key in a) {
288
- const aHasKey = a.hasOwnProperty(key);
289
- const bHasKey = b.hasOwnProperty(key);
290
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
291
- return false;
292
- }
293
- }
312
+ return looseCompareNested(a, b, seen, looseCompareObjects);
294
313
  }
295
314
  return String(a) === String(b);
296
315
  }
@@ -1095,7 +1114,9 @@ function reactiveReadArray(array) {
1095
1114
  const raw = toRaw(array);
1096
1115
  if (raw === array) return raw;
1097
1116
  track(raw, "iterate", ARRAY_ITERATE_KEY);
1098
- return isShallow(array) ? raw : raw.map(toReactive);
1117
+ if (isShallow(array)) return raw;
1118
+ if (!isReadonly(array)) return raw.map(toReactive);
1119
+ return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
1099
1120
  }
1100
1121
  function shallowReadArray(arr) {
1101
1122
  track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
@@ -4851,13 +4872,15 @@ function createHydrationFunctions(rendererInternals) {
4851
4872
  getContainerType(container),
4852
4873
  optimized
4853
4874
  );
4854
- if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4875
+ if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
4855
4876
  let subTree;
4856
4877
  if (isFragmentStart) {
4857
4878
  subTree = createVNode(Static);
4858
4879
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4859
4880
  } else {
4860
- subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4881
+ subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(
4882
+ node.nodeType === 8 ? Comment : "div"
4883
+ );
4861
4884
  }
4862
4885
  subTree.el = node;
4863
4886
  vnode.component.subTree = subTree;
@@ -7649,7 +7672,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7649
7672
  return vm;
7650
7673
  }
7651
7674
  }
7652
- Vue.version = `2.6.14-compat:${"3.5.42"}`;
7675
+ Vue.version = `2.6.14-compat:${"3.5.43"}`;
7653
7676
  Vue.config = singletonApp.config;
7654
7677
  Vue.use = (plugin, ...options) => {
7655
7678
  if (plugin && isFunction(plugin.install)) {
@@ -9534,6 +9557,12 @@ function baseCreateRenderer(options, createHydrationFns) {
9534
9557
  optimized = false;
9535
9558
  n2.dynamicChildren = null;
9536
9559
  }
9560
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
9561
+ if (n2.dynamicChildren === EMPTY_ARR) {
9562
+ n2.dynamicChildren = [];
9563
+ }
9564
+ n2.dynamicChildren.hasOnce = true;
9565
+ }
9537
9566
  const { type, ref, shapeFlag } = n2;
9538
9567
  switch (type) {
9539
9568
  case Text:
@@ -10153,6 +10182,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10153
10182
  if (!!(process.env.NODE_ENV !== "production")) {
10154
10183
  pushWarningContext(n2);
10155
10184
  }
10185
+ n2.el = n1.el;
10156
10186
  updateComponentPreRender(instance, n2, optimized);
10157
10187
  if (!!(process.env.NODE_ENV !== "production")) {
10158
10188
  popWarningContext();
@@ -10768,7 +10798,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10768
10798
  cacheIndex,
10769
10799
  memo
10770
10800
  } = vnode;
10771
- if (patchFlag === -2) {
10801
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) {
10772
10802
  optimized = false;
10773
10803
  }
10774
10804
  if (ref != null) {
@@ -10776,7 +10806,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10776
10806
  setRef(ref, null, parentSuspense, vnode, true);
10777
10807
  resetTracking();
10778
10808
  }
10779
- if (cacheIndex != null) {
10809
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
10780
10810
  parentComponent.renderCache[cacheIndex] = void 0;
10781
10811
  }
10782
10812
  if (shapeFlag & 256) {
@@ -10857,6 +10887,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10857
10887
  }
10858
10888
  if (type === Static) {
10859
10889
  removeStaticNode(vnode);
10890
+ if (transition && !transition.persisted && transition.afterLeave) {
10891
+ transition.afterLeave();
10892
+ }
10860
10893
  return;
10861
10894
  }
10862
10895
  const performRemove = () => {
@@ -10903,6 +10936,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10903
10936
  if (job) {
10904
10937
  job.flags |= 8;
10905
10938
  unmount(subTree, instance, parentSuspense, doRemove);
10939
+ } else if (instance.vnode.el && subTree) {
10940
+ subTree.transition = instance.vnode.transition;
10941
+ unmount(subTree, instance, parentSuspense, doRemove);
10906
10942
  }
10907
10943
  if (um) {
10908
10944
  queuePostRenderEffect(um, parentSuspense);
@@ -11123,7 +11159,7 @@ const SuspenseImpl = {
11123
11159
  rendererInternals
11124
11160
  );
11125
11161
  } else {
11126
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
11162
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
11127
11163
  n2.suspense = n1.suspense;
11128
11164
  n2.suspense.vnode = n2;
11129
11165
  n2.el = n1.el;
@@ -11209,10 +11245,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11209
11245
  if (pendingBranch) {
11210
11246
  suspense.pendingBranch = newBranch;
11211
11247
  if (isSameVNodeType(pendingBranch, newBranch)) {
11248
+ suspense.deps++;
11212
11249
  patch(
11213
11250
  pendingBranch,
11214
11251
  newBranch,
11215
- suspense.hiddenContainer,
11252
+ // a hydrating pending branch is adopted SSR DOM, already in place
11253
+ isHydrating ? container : suspense.hiddenContainer,
11216
11254
  null,
11217
11255
  parentComponent,
11218
11256
  suspense,
@@ -11220,6 +11258,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11220
11258
  slotScopeIds,
11221
11259
  optimized
11222
11260
  );
11261
+ suspense.deps--;
11223
11262
  if (suspense.deps <= 0) {
11224
11263
  suspense.resolve();
11225
11264
  } else if (isInFallback) {
@@ -11485,6 +11524,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11485
11524
  suspense.effects = [];
11486
11525
  if (isSuspensible) {
11487
11526
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
11527
+ parentSuspenseId = void 0;
11488
11528
  parentSuspense.deps--;
11489
11529
  if (parentSuspense.deps === 0 && !sync) {
11490
11530
  parentSuspense.resolve();
@@ -11558,6 +11598,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11558
11598
  return;
11559
11599
  }
11560
11600
  unsetCurrentInstance();
11601
+ if (hydratedEl && !instance.scope.active) {
11602
+ if (isInPendingSuspense && --suspense.deps === 0) {
11603
+ suspense.resolve();
11604
+ }
11605
+ return;
11606
+ }
11561
11607
  instance.asyncResolved = true;
11562
11608
  const { vnode: vnode2 } = instance;
11563
11609
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -12043,7 +12089,8 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
12043
12089
  el: vnode.el,
12044
12090
  anchor: vnode.anchor,
12045
12091
  ctx: vnode.ctx,
12046
- ce: vnode.ce
12092
+ ce: vnode.ce,
12093
+ cacheIndex: vnode.cacheIndex
12047
12094
  };
12048
12095
  if (transition && cloneTransition) {
12049
12096
  setTransitionHooks(
@@ -12877,7 +12924,7 @@ function isMemoSame(cached, memo) {
12877
12924
  return true;
12878
12925
  }
12879
12926
 
12880
- const version = "3.5.42";
12927
+ const version = "3.5.43";
12881
12928
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12882
12929
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12883
12930
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.42
2
+ * @vue/compat v3.5.43
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -131,10 +131,10 @@ var Vue = (function () {
131
131
  }
132
132
  const listDelimiterRE = /;(?![^(]*\))/g;
133
133
  const propertyDelimiterRE = /:([^]+)/;
134
- const styleCommentRE = /\/\*[^]*?\*\//g;
134
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
135
135
  function parseStringStyle(cssText) {
136
136
  const ret = {};
137
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
137
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
138
138
  if (item) {
139
139
  const tmp = item.split(propertyDelimiterRE);
140
140
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -224,22 +224,22 @@ var Vue = (function () {
224
224
  );
225
225
  }
226
226
 
227
- function looseCompareArrays(a, b) {
227
+ function looseCompareArrays(a, b, seen) {
228
228
  if (a.length !== b.length) return false;
229
229
  let equal = true;
230
230
  for (let i = 0; equal && i < a.length; i++) {
231
- equal = looseEqual(a[i], b[i]);
231
+ equal = looseEqual(a[i], b[i], seen);
232
232
  }
233
233
  return equal;
234
234
  }
235
- function looseCompareCollections(a, b) {
235
+ function looseCompareCollections(a, b, seen) {
236
236
  if (a.size !== b.size) return false;
237
237
  const candidates = Array.from(b);
238
238
  const matched = new Uint8Array(candidates.length);
239
239
  for (const item of a) {
240
240
  let index = -1;
241
241
  for (let i = 0; i < candidates.length; i++) {
242
- if (!matched[i] && looseEqual(item, candidates[i])) {
242
+ if (!matched[i] && looseEqual(item, candidates[i], seen)) {
243
243
  index = i;
244
244
  break;
245
245
  }
@@ -249,7 +249,47 @@ var Vue = (function () {
249
249
  }
250
250
  return true;
251
251
  }
252
- function looseEqual(a, b) {
252
+ function looseCompareObjects(a, b, seen) {
253
+ let aValidType = isMap(a);
254
+ let bValidType = isMap(b);
255
+ if (aValidType || bValidType) {
256
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
257
+ }
258
+ aValidType = isSet(a);
259
+ bValidType = isSet(b);
260
+ if (aValidType || bValidType) {
261
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
262
+ }
263
+ const aKeysCount = Object.keys(a).length;
264
+ const bKeysCount = Object.keys(b).length;
265
+ if (aKeysCount !== bKeysCount) {
266
+ return false;
267
+ }
268
+ for (const key in a) {
269
+ const aHasKey = a.hasOwnProperty(key);
270
+ const bHasKey = b.hasOwnProperty(key);
271
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) {
272
+ return false;
273
+ }
274
+ }
275
+ return String(a) === String(b);
276
+ }
277
+ function looseCompareNested(a, b, seen, compare) {
278
+ if (!seen) {
279
+ seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
280
+ }
281
+ const [seenA, seenB] = seen;
282
+ if (seenA.has(a) || seenB.has(b)) {
283
+ return seenA.get(a) === b && seenB.get(b) === a;
284
+ }
285
+ seenA.set(a, b);
286
+ seenB.set(b, a);
287
+ const equal = compare(a, b, seen);
288
+ seenA.delete(a);
289
+ seenB.delete(b);
290
+ return equal;
291
+ }
292
+ function looseEqual(a, b, seen) {
253
293
  if (a === b) return true;
254
294
  let aValidType = isDate(a);
255
295
  let bValidType = isDate(b);
@@ -264,7 +304,7 @@ var Vue = (function () {
264
304
  aValidType = isArray(a);
265
305
  bValidType = isArray(b);
266
306
  if (aValidType || bValidType) {
267
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
307
+ return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
268
308
  }
269
309
  aValidType = isObject(a);
270
310
  bValidType = isObject(b);
@@ -272,28 +312,7 @@ var Vue = (function () {
272
312
  if (!aValidType || !bValidType) {
273
313
  return false;
274
314
  }
275
- aValidType = isMap(a);
276
- bValidType = isMap(b);
277
- if (aValidType || bValidType) {
278
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
279
- }
280
- aValidType = isSet(a);
281
- bValidType = isSet(b);
282
- if (aValidType || bValidType) {
283
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
284
- }
285
- const aKeysCount = Object.keys(a).length;
286
- const bKeysCount = Object.keys(b).length;
287
- if (aKeysCount !== bKeysCount) {
288
- return false;
289
- }
290
- for (const key in a) {
291
- const aHasKey = a.hasOwnProperty(key);
292
- const bHasKey = b.hasOwnProperty(key);
293
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
294
- return false;
295
- }
296
- }
315
+ return looseCompareNested(a, b, seen, looseCompareObjects);
297
316
  }
298
317
  return String(a) === String(b);
299
318
  }
@@ -1094,7 +1113,9 @@ var Vue = (function () {
1094
1113
  const raw = toRaw(array);
1095
1114
  if (raw === array) return raw;
1096
1115
  track(raw, "iterate", ARRAY_ITERATE_KEY);
1097
- return isShallow(array) ? raw : raw.map(toReactive);
1116
+ if (isShallow(array)) return raw;
1117
+ if (!isReadonly(array)) return raw.map(toReactive);
1118
+ return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
1098
1119
  }
1099
1120
  function shallowReadArray(arr) {
1100
1121
  track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
@@ -4807,13 +4828,15 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4807
4828
  getContainerType(container),
4808
4829
  optimized
4809
4830
  );
4810
- if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4831
+ if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
4811
4832
  let subTree;
4812
4833
  if (isFragmentStart) {
4813
4834
  subTree = createVNode(Static);
4814
4835
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4815
4836
  } else {
4816
- subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4837
+ subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(
4838
+ node.nodeType === 8 ? Comment : "div"
4839
+ );
4817
4840
  }
4818
4841
  subTree.el = node;
4819
4842
  vnode.component.subTree = subTree;
@@ -7582,7 +7605,7 @@ If this is a native custom element, make sure to exclude it from component resol
7582
7605
  return vm;
7583
7606
  }
7584
7607
  }
7585
- Vue.version = `2.6.14-compat:${"3.5.42"}`;
7608
+ Vue.version = `2.6.14-compat:${"3.5.43"}`;
7586
7609
  Vue.config = singletonApp.config;
7587
7610
  Vue.use = (plugin, ...options) => {
7588
7611
  if (plugin && isFunction(plugin.install)) {
@@ -9438,6 +9461,12 @@ If you want to remount the same app, move your app creation logic into a factory
9438
9461
  optimized = false;
9439
9462
  n2.dynamicChildren = null;
9440
9463
  }
9464
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
9465
+ if (n2.dynamicChildren === EMPTY_ARR) {
9466
+ n2.dynamicChildren = [];
9467
+ }
9468
+ n2.dynamicChildren.hasOnce = true;
9469
+ }
9441
9470
  const { type, ref, shapeFlag } = n2;
9442
9471
  switch (type) {
9443
9472
  case Text:
@@ -10046,6 +10075,7 @@ If you want to remount the same app, move your app creation logic into a factory
10046
10075
  {
10047
10076
  pushWarningContext(n2);
10048
10077
  }
10078
+ n2.el = n1.el;
10049
10079
  updateComponentPreRender(instance, n2, optimized);
10050
10080
  {
10051
10081
  popWarningContext();
@@ -10661,7 +10691,7 @@ If you want to remount the same app, move your app creation logic into a factory
10661
10691
  cacheIndex,
10662
10692
  memo
10663
10693
  } = vnode;
10664
- if (patchFlag === -2) {
10694
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) {
10665
10695
  optimized = false;
10666
10696
  }
10667
10697
  if (ref != null) {
@@ -10669,7 +10699,7 @@ If you want to remount the same app, move your app creation logic into a factory
10669
10699
  setRef(ref, null, parentSuspense, vnode, true);
10670
10700
  resetTracking();
10671
10701
  }
10672
- if (cacheIndex != null) {
10702
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
10673
10703
  parentComponent.renderCache[cacheIndex] = void 0;
10674
10704
  }
10675
10705
  if (shapeFlag & 256) {
@@ -10750,6 +10780,9 @@ If you want to remount the same app, move your app creation logic into a factory
10750
10780
  }
10751
10781
  if (type === Static) {
10752
10782
  removeStaticNode(vnode);
10783
+ if (transition && !transition.persisted && transition.afterLeave) {
10784
+ transition.afterLeave();
10785
+ }
10753
10786
  return;
10754
10787
  }
10755
10788
  const performRemove = () => {
@@ -10796,6 +10829,9 @@ If you want to remount the same app, move your app creation logic into a factory
10796
10829
  if (job) {
10797
10830
  job.flags |= 8;
10798
10831
  unmount(subTree, instance, parentSuspense, doRemove);
10832
+ } else if (instance.vnode.el && subTree) {
10833
+ subTree.transition = instance.vnode.transition;
10834
+ unmount(subTree, instance, parentSuspense, doRemove);
10799
10835
  }
10800
10836
  if (um) {
10801
10837
  queuePostRenderEffect(um, parentSuspense);
@@ -11016,7 +11052,7 @@ If you want to remount the same app, move your app creation logic into a factory
11016
11052
  rendererInternals
11017
11053
  );
11018
11054
  } else {
11019
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
11055
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
11020
11056
  n2.suspense = n1.suspense;
11021
11057
  n2.suspense.vnode = n2;
11022
11058
  n2.el = n1.el;
@@ -11102,10 +11138,12 @@ If you want to remount the same app, move your app creation logic into a factory
11102
11138
  if (pendingBranch) {
11103
11139
  suspense.pendingBranch = newBranch;
11104
11140
  if (isSameVNodeType(pendingBranch, newBranch)) {
11141
+ suspense.deps++;
11105
11142
  patch(
11106
11143
  pendingBranch,
11107
11144
  newBranch,
11108
- suspense.hiddenContainer,
11145
+ // a hydrating pending branch is adopted SSR DOM, already in place
11146
+ isHydrating ? container : suspense.hiddenContainer,
11109
11147
  null,
11110
11148
  parentComponent,
11111
11149
  suspense,
@@ -11113,6 +11151,7 @@ If you want to remount the same app, move your app creation logic into a factory
11113
11151
  slotScopeIds,
11114
11152
  optimized
11115
11153
  );
11154
+ suspense.deps--;
11116
11155
  if (suspense.deps <= 0) {
11117
11156
  suspense.resolve();
11118
11157
  } else if (isInFallback) {
@@ -11378,6 +11417,7 @@ If you want to remount the same app, move your app creation logic into a factory
11378
11417
  suspense.effects = [];
11379
11418
  if (isSuspensible) {
11380
11419
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
11420
+ parentSuspenseId = void 0;
11381
11421
  parentSuspense.deps--;
11382
11422
  if (parentSuspense.deps === 0 && !sync) {
11383
11423
  parentSuspense.resolve();
@@ -11451,6 +11491,12 @@ If you want to remount the same app, move your app creation logic into a factory
11451
11491
  return;
11452
11492
  }
11453
11493
  unsetCurrentInstance();
11494
+ if (hydratedEl && !instance.scope.active) {
11495
+ if (isInPendingSuspense && --suspense.deps === 0) {
11496
+ suspense.resolve();
11497
+ }
11498
+ return;
11499
+ }
11454
11500
  instance.asyncResolved = true;
11455
11501
  const { vnode: vnode2 } = instance;
11456
11502
  {
@@ -11936,7 +11982,8 @@ Component that was made reactive: `,
11936
11982
  el: vnode.el,
11937
11983
  anchor: vnode.anchor,
11938
11984
  ctx: vnode.ctx,
11939
- ce: vnode.ce
11985
+ ce: vnode.ce,
11986
+ cacheIndex: vnode.cacheIndex
11940
11987
  };
11941
11988
  if (transition && cloneTransition) {
11942
11989
  setTransitionHooks(
@@ -12742,7 +12789,7 @@ Component that was made reactive: `,
12742
12789
  return true;
12743
12790
  }
12744
12791
 
12745
- const version = "3.5.42";
12792
+ const version = "3.5.43";
12746
12793
  const warn = warn$1 ;
12747
12794
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12748
12795
  const devtools = devtools$1 ;