@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
  **/
@@ -199,10 +199,10 @@ function normalizeStyle(value) {
199
199
  }
200
200
  const listDelimiterRE = /;(?![^(]*\))/g;
201
201
  const propertyDelimiterRE = /:([^]+)/;
202
- const styleCommentRE = /\/\*[^]*?\*\//g;
202
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
203
203
  function parseStringStyle(cssText) {
204
204
  const ret = {};
205
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
205
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
206
206
  if (item) {
207
207
  const tmp = item.split(propertyDelimiterRE);
208
208
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -294,22 +294,22 @@ function getEscapedCssVarName(key, doubleEscape) {
294
294
  );
295
295
  }
296
296
 
297
- function looseCompareArrays(a, b) {
297
+ function looseCompareArrays(a, b, seen) {
298
298
  if (a.length !== b.length) return false;
299
299
  let equal = true;
300
300
  for (let i = 0; equal && i < a.length; i++) {
301
- equal = looseEqual(a[i], b[i]);
301
+ equal = looseEqual(a[i], b[i], seen);
302
302
  }
303
303
  return equal;
304
304
  }
305
- function looseCompareCollections(a, b) {
305
+ function looseCompareCollections(a, b, seen) {
306
306
  if (a.size !== b.size) return false;
307
307
  const candidates = Array.from(b);
308
308
  const matched = new Uint8Array(candidates.length);
309
309
  for (const item of a) {
310
310
  let index = -1;
311
311
  for (let i = 0; i < candidates.length; i++) {
312
- if (!matched[i] && looseEqual(item, candidates[i])) {
312
+ if (!matched[i] && looseEqual(item, candidates[i], seen)) {
313
313
  index = i;
314
314
  break;
315
315
  }
@@ -319,7 +319,47 @@ function looseCompareCollections(a, b) {
319
319
  }
320
320
  return true;
321
321
  }
322
- function looseEqual(a, b) {
322
+ function looseCompareObjects(a, b, seen) {
323
+ let aValidType = isMap(a);
324
+ let bValidType = isMap(b);
325
+ if (aValidType || bValidType) {
326
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
327
+ }
328
+ aValidType = isSet(a);
329
+ bValidType = isSet(b);
330
+ if (aValidType || bValidType) {
331
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
332
+ }
333
+ const aKeysCount = Object.keys(a).length;
334
+ const bKeysCount = Object.keys(b).length;
335
+ if (aKeysCount !== bKeysCount) {
336
+ return false;
337
+ }
338
+ for (const key in a) {
339
+ const aHasKey = a.hasOwnProperty(key);
340
+ const bHasKey = b.hasOwnProperty(key);
341
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) {
342
+ return false;
343
+ }
344
+ }
345
+ return String(a) === String(b);
346
+ }
347
+ function looseCompareNested(a, b, seen, compare) {
348
+ if (!seen) {
349
+ seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
350
+ }
351
+ const [seenA, seenB] = seen;
352
+ if (seenA.has(a) || seenB.has(b)) {
353
+ return seenA.get(a) === b && seenB.get(b) === a;
354
+ }
355
+ seenA.set(a, b);
356
+ seenB.set(b, a);
357
+ const equal = compare(a, b, seen);
358
+ seenA.delete(a);
359
+ seenB.delete(b);
360
+ return equal;
361
+ }
362
+ function looseEqual(a, b, seen) {
323
363
  if (a === b) return true;
324
364
  let aValidType = isDate(a);
325
365
  let bValidType = isDate(b);
@@ -334,7 +374,7 @@ function looseEqual(a, b) {
334
374
  aValidType = isArray(a);
335
375
  bValidType = isArray(b);
336
376
  if (aValidType || bValidType) {
337
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
377
+ return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
338
378
  }
339
379
  aValidType = isObject(a);
340
380
  bValidType = isObject(b);
@@ -342,28 +382,7 @@ function looseEqual(a, b) {
342
382
  if (!aValidType || !bValidType) {
343
383
  return false;
344
384
  }
345
- aValidType = isMap(a);
346
- bValidType = isMap(b);
347
- if (aValidType || bValidType) {
348
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
349
- }
350
- aValidType = isSet(a);
351
- bValidType = isSet(b);
352
- if (aValidType || bValidType) {
353
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
354
- }
355
- const aKeysCount = Object.keys(a).length;
356
- const bKeysCount = Object.keys(b).length;
357
- if (aKeysCount !== bKeysCount) {
358
- return false;
359
- }
360
- for (const key in a) {
361
- const aHasKey = a.hasOwnProperty(key);
362
- const bHasKey = b.hasOwnProperty(key);
363
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
364
- return false;
365
- }
366
- }
385
+ return looseCompareNested(a, b, seen, looseCompareObjects);
367
386
  }
368
387
  return String(a) === String(b);
369
388
  }
@@ -1168,7 +1187,9 @@ function reactiveReadArray(array) {
1168
1187
  const raw = toRaw(array);
1169
1188
  if (raw === array) return raw;
1170
1189
  track(raw, "iterate", ARRAY_ITERATE_KEY);
1171
- return isShallow(array) ? raw : raw.map(toReactive);
1190
+ if (isShallow(array)) return raw;
1191
+ if (!isReadonly(array)) return raw.map(toReactive);
1192
+ return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
1172
1193
  }
1173
1194
  function shallowReadArray(arr) {
1174
1195
  track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
@@ -4924,13 +4945,15 @@ function createHydrationFunctions(rendererInternals) {
4924
4945
  getContainerType(container),
4925
4946
  optimized
4926
4947
  );
4927
- if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4948
+ if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
4928
4949
  let subTree;
4929
4950
  if (isFragmentStart) {
4930
4951
  subTree = createVNode(Static);
4931
4952
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4932
4953
  } else {
4933
- subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4954
+ subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(
4955
+ node.nodeType === 8 ? Comment : "div"
4956
+ );
4934
4957
  }
4935
4958
  subTree.el = node;
4936
4959
  vnode.component.subTree = subTree;
@@ -7722,7 +7745,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7722
7745
  return vm;
7723
7746
  }
7724
7747
  }
7725
- Vue.version = `2.6.14-compat:${"3.5.42"}`;
7748
+ Vue.version = `2.6.14-compat:${"3.5.43"}`;
7726
7749
  Vue.config = singletonApp.config;
7727
7750
  Vue.use = (plugin, ...options) => {
7728
7751
  if (plugin && isFunction(plugin.install)) {
@@ -9607,6 +9630,12 @@ function baseCreateRenderer(options, createHydrationFns) {
9607
9630
  optimized = false;
9608
9631
  n2.dynamicChildren = null;
9609
9632
  }
9633
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
9634
+ if (n2.dynamicChildren === EMPTY_ARR) {
9635
+ n2.dynamicChildren = [];
9636
+ }
9637
+ n2.dynamicChildren.hasOnce = true;
9638
+ }
9610
9639
  const { type, ref, shapeFlag } = n2;
9611
9640
  switch (type) {
9612
9641
  case Text:
@@ -10226,6 +10255,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10226
10255
  if (!!(process.env.NODE_ENV !== "production")) {
10227
10256
  pushWarningContext(n2);
10228
10257
  }
10258
+ n2.el = n1.el;
10229
10259
  updateComponentPreRender(instance, n2, optimized);
10230
10260
  if (!!(process.env.NODE_ENV !== "production")) {
10231
10261
  popWarningContext();
@@ -10841,7 +10871,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10841
10871
  cacheIndex,
10842
10872
  memo
10843
10873
  } = vnode;
10844
- if (patchFlag === -2) {
10874
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) {
10845
10875
  optimized = false;
10846
10876
  }
10847
10877
  if (ref != null) {
@@ -10849,7 +10879,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10849
10879
  setRef(ref, null, parentSuspense, vnode, true);
10850
10880
  resetTracking();
10851
10881
  }
10852
- if (cacheIndex != null) {
10882
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
10853
10883
  parentComponent.renderCache[cacheIndex] = void 0;
10854
10884
  }
10855
10885
  if (shapeFlag & 256) {
@@ -10930,6 +10960,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10930
10960
  }
10931
10961
  if (type === Static) {
10932
10962
  removeStaticNode(vnode);
10963
+ if (transition && !transition.persisted && transition.afterLeave) {
10964
+ transition.afterLeave();
10965
+ }
10933
10966
  return;
10934
10967
  }
10935
10968
  const performRemove = () => {
@@ -10976,6 +11009,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10976
11009
  if (job) {
10977
11010
  job.flags |= 8;
10978
11011
  unmount(subTree, instance, parentSuspense, doRemove);
11012
+ } else if (instance.vnode.el && subTree) {
11013
+ subTree.transition = instance.vnode.transition;
11014
+ unmount(subTree, instance, parentSuspense, doRemove);
10979
11015
  }
10980
11016
  if (um) {
10981
11017
  queuePostRenderEffect(um, parentSuspense);
@@ -11196,7 +11232,7 @@ const SuspenseImpl = {
11196
11232
  rendererInternals
11197
11233
  );
11198
11234
  } else {
11199
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
11235
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
11200
11236
  n2.suspense = n1.suspense;
11201
11237
  n2.suspense.vnode = n2;
11202
11238
  n2.el = n1.el;
@@ -11282,10 +11318,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11282
11318
  if (pendingBranch) {
11283
11319
  suspense.pendingBranch = newBranch;
11284
11320
  if (isSameVNodeType(pendingBranch, newBranch)) {
11321
+ suspense.deps++;
11285
11322
  patch(
11286
11323
  pendingBranch,
11287
11324
  newBranch,
11288
- suspense.hiddenContainer,
11325
+ // a hydrating pending branch is adopted SSR DOM, already in place
11326
+ isHydrating ? container : suspense.hiddenContainer,
11289
11327
  null,
11290
11328
  parentComponent,
11291
11329
  suspense,
@@ -11293,6 +11331,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11293
11331
  slotScopeIds,
11294
11332
  optimized
11295
11333
  );
11334
+ suspense.deps--;
11296
11335
  if (suspense.deps <= 0) {
11297
11336
  suspense.resolve();
11298
11337
  } else if (isInFallback) {
@@ -11558,6 +11597,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11558
11597
  suspense.effects = [];
11559
11598
  if (isSuspensible) {
11560
11599
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
11600
+ parentSuspenseId = void 0;
11561
11601
  parentSuspense.deps--;
11562
11602
  if (parentSuspense.deps === 0 && !sync) {
11563
11603
  parentSuspense.resolve();
@@ -11631,6 +11671,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11631
11671
  return;
11632
11672
  }
11633
11673
  unsetCurrentInstance();
11674
+ if (hydratedEl && !instance.scope.active) {
11675
+ if (isInPendingSuspense && --suspense.deps === 0) {
11676
+ suspense.resolve();
11677
+ }
11678
+ return;
11679
+ }
11634
11680
  instance.asyncResolved = true;
11635
11681
  const { vnode: vnode2 } = instance;
11636
11682
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -12116,7 +12162,8 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
12116
12162
  el: vnode.el,
12117
12163
  anchor: vnode.anchor,
12118
12164
  ctx: vnode.ctx,
12119
- ce: vnode.ce
12165
+ ce: vnode.ce,
12166
+ cacheIndex: vnode.cacheIndex
12120
12167
  };
12121
12168
  if (transition && cloneTransition) {
12122
12169
  setTransitionHooks(
@@ -12950,7 +12997,7 @@ function isMemoSame(cached, memo) {
12950
12997
  return true;
12951
12998
  }
12952
12999
 
12953
- const version = "3.5.42";
13000
+ const version = "3.5.43";
12954
13001
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12955
13002
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12956
13003
  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
  **/
@@ -202,10 +202,10 @@ var Vue = (function () {
202
202
  }
203
203
  const listDelimiterRE = /;(?![^(]*\))/g;
204
204
  const propertyDelimiterRE = /:([^]+)/;
205
- const styleCommentRE = /\/\*[^]*?\*\//g;
205
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
206
206
  function parseStringStyle(cssText) {
207
207
  const ret = {};
208
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
208
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
209
209
  if (item) {
210
210
  const tmp = item.split(propertyDelimiterRE);
211
211
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -297,22 +297,22 @@ var Vue = (function () {
297
297
  );
298
298
  }
299
299
 
300
- function looseCompareArrays(a, b) {
300
+ function looseCompareArrays(a, b, seen) {
301
301
  if (a.length !== b.length) return false;
302
302
  let equal = true;
303
303
  for (let i = 0; equal && i < a.length; i++) {
304
- equal = looseEqual(a[i], b[i]);
304
+ equal = looseEqual(a[i], b[i], seen);
305
305
  }
306
306
  return equal;
307
307
  }
308
- function looseCompareCollections(a, b) {
308
+ function looseCompareCollections(a, b, seen) {
309
309
  if (a.size !== b.size) return false;
310
310
  const candidates = Array.from(b);
311
311
  const matched = new Uint8Array(candidates.length);
312
312
  for (const item of a) {
313
313
  let index = -1;
314
314
  for (let i = 0; i < candidates.length; i++) {
315
- if (!matched[i] && looseEqual(item, candidates[i])) {
315
+ if (!matched[i] && looseEqual(item, candidates[i], seen)) {
316
316
  index = i;
317
317
  break;
318
318
  }
@@ -322,7 +322,47 @@ var Vue = (function () {
322
322
  }
323
323
  return true;
324
324
  }
325
- function looseEqual(a, b) {
325
+ function looseCompareObjects(a, b, seen) {
326
+ let aValidType = isMap(a);
327
+ let bValidType = isMap(b);
328
+ if (aValidType || bValidType) {
329
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
330
+ }
331
+ aValidType = isSet(a);
332
+ bValidType = isSet(b);
333
+ if (aValidType || bValidType) {
334
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
335
+ }
336
+ const aKeysCount = Object.keys(a).length;
337
+ const bKeysCount = Object.keys(b).length;
338
+ if (aKeysCount !== bKeysCount) {
339
+ return false;
340
+ }
341
+ for (const key in a) {
342
+ const aHasKey = a.hasOwnProperty(key);
343
+ const bHasKey = b.hasOwnProperty(key);
344
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) {
345
+ return false;
346
+ }
347
+ }
348
+ return String(a) === String(b);
349
+ }
350
+ function looseCompareNested(a, b, seen, compare) {
351
+ if (!seen) {
352
+ seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
353
+ }
354
+ const [seenA, seenB] = seen;
355
+ if (seenA.has(a) || seenB.has(b)) {
356
+ return seenA.get(a) === b && seenB.get(b) === a;
357
+ }
358
+ seenA.set(a, b);
359
+ seenB.set(b, a);
360
+ const equal = compare(a, b, seen);
361
+ seenA.delete(a);
362
+ seenB.delete(b);
363
+ return equal;
364
+ }
365
+ function looseEqual(a, b, seen) {
326
366
  if (a === b) return true;
327
367
  let aValidType = isDate(a);
328
368
  let bValidType = isDate(b);
@@ -337,7 +377,7 @@ var Vue = (function () {
337
377
  aValidType = isArray(a);
338
378
  bValidType = isArray(b);
339
379
  if (aValidType || bValidType) {
340
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
380
+ return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
341
381
  }
342
382
  aValidType = isObject(a);
343
383
  bValidType = isObject(b);
@@ -345,28 +385,7 @@ var Vue = (function () {
345
385
  if (!aValidType || !bValidType) {
346
386
  return false;
347
387
  }
348
- aValidType = isMap(a);
349
- bValidType = isMap(b);
350
- if (aValidType || bValidType) {
351
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
352
- }
353
- aValidType = isSet(a);
354
- bValidType = isSet(b);
355
- if (aValidType || bValidType) {
356
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
357
- }
358
- const aKeysCount = Object.keys(a).length;
359
- const bKeysCount = Object.keys(b).length;
360
- if (aKeysCount !== bKeysCount) {
361
- return false;
362
- }
363
- for (const key in a) {
364
- const aHasKey = a.hasOwnProperty(key);
365
- const bHasKey = b.hasOwnProperty(key);
366
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
367
- return false;
368
- }
369
- }
388
+ return looseCompareNested(a, b, seen, looseCompareObjects);
370
389
  }
371
390
  return String(a) === String(b);
372
391
  }
@@ -1167,7 +1186,9 @@ var Vue = (function () {
1167
1186
  const raw = toRaw(array);
1168
1187
  if (raw === array) return raw;
1169
1188
  track(raw, "iterate", ARRAY_ITERATE_KEY);
1170
- return isShallow(array) ? raw : raw.map(toReactive);
1189
+ if (isShallow(array)) return raw;
1190
+ if (!isReadonly(array)) return raw.map(toReactive);
1191
+ return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
1171
1192
  }
1172
1193
  function shallowReadArray(arr) {
1173
1194
  track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
@@ -4880,13 +4901,15 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4880
4901
  getContainerType(container),
4881
4902
  optimized
4882
4903
  );
4883
- if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4904
+ if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
4884
4905
  let subTree;
4885
4906
  if (isFragmentStart) {
4886
4907
  subTree = createVNode(Static);
4887
4908
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4888
4909
  } else {
4889
- subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4910
+ subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(
4911
+ node.nodeType === 8 ? Comment : "div"
4912
+ );
4890
4913
  }
4891
4914
  subTree.el = node;
4892
4915
  vnode.component.subTree = subTree;
@@ -7655,7 +7678,7 @@ If this is a native custom element, make sure to exclude it from component resol
7655
7678
  return vm;
7656
7679
  }
7657
7680
  }
7658
- Vue.version = `2.6.14-compat:${"3.5.42"}`;
7681
+ Vue.version = `2.6.14-compat:${"3.5.43"}`;
7659
7682
  Vue.config = singletonApp.config;
7660
7683
  Vue.use = (plugin, ...options) => {
7661
7684
  if (plugin && isFunction(plugin.install)) {
@@ -9511,6 +9534,12 @@ If you want to remount the same app, move your app creation logic into a factory
9511
9534
  optimized = false;
9512
9535
  n2.dynamicChildren = null;
9513
9536
  }
9537
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
9538
+ if (n2.dynamicChildren === EMPTY_ARR) {
9539
+ n2.dynamicChildren = [];
9540
+ }
9541
+ n2.dynamicChildren.hasOnce = true;
9542
+ }
9514
9543
  const { type, ref, shapeFlag } = n2;
9515
9544
  switch (type) {
9516
9545
  case Text:
@@ -10119,6 +10148,7 @@ If you want to remount the same app, move your app creation logic into a factory
10119
10148
  {
10120
10149
  pushWarningContext(n2);
10121
10150
  }
10151
+ n2.el = n1.el;
10122
10152
  updateComponentPreRender(instance, n2, optimized);
10123
10153
  {
10124
10154
  popWarningContext();
@@ -10734,7 +10764,7 @@ If you want to remount the same app, move your app creation logic into a factory
10734
10764
  cacheIndex,
10735
10765
  memo
10736
10766
  } = vnode;
10737
- if (patchFlag === -2) {
10767
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) {
10738
10768
  optimized = false;
10739
10769
  }
10740
10770
  if (ref != null) {
@@ -10742,7 +10772,7 @@ If you want to remount the same app, move your app creation logic into a factory
10742
10772
  setRef(ref, null, parentSuspense, vnode, true);
10743
10773
  resetTracking();
10744
10774
  }
10745
- if (cacheIndex != null) {
10775
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
10746
10776
  parentComponent.renderCache[cacheIndex] = void 0;
10747
10777
  }
10748
10778
  if (shapeFlag & 256) {
@@ -10823,6 +10853,9 @@ If you want to remount the same app, move your app creation logic into a factory
10823
10853
  }
10824
10854
  if (type === Static) {
10825
10855
  removeStaticNode(vnode);
10856
+ if (transition && !transition.persisted && transition.afterLeave) {
10857
+ transition.afterLeave();
10858
+ }
10826
10859
  return;
10827
10860
  }
10828
10861
  const performRemove = () => {
@@ -10869,6 +10902,9 @@ If you want to remount the same app, move your app creation logic into a factory
10869
10902
  if (job) {
10870
10903
  job.flags |= 8;
10871
10904
  unmount(subTree, instance, parentSuspense, doRemove);
10905
+ } else if (instance.vnode.el && subTree) {
10906
+ subTree.transition = instance.vnode.transition;
10907
+ unmount(subTree, instance, parentSuspense, doRemove);
10872
10908
  }
10873
10909
  if (um) {
10874
10910
  queuePostRenderEffect(um, parentSuspense);
@@ -11089,7 +11125,7 @@ If you want to remount the same app, move your app creation logic into a factory
11089
11125
  rendererInternals
11090
11126
  );
11091
11127
  } else {
11092
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
11128
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
11093
11129
  n2.suspense = n1.suspense;
11094
11130
  n2.suspense.vnode = n2;
11095
11131
  n2.el = n1.el;
@@ -11175,10 +11211,12 @@ If you want to remount the same app, move your app creation logic into a factory
11175
11211
  if (pendingBranch) {
11176
11212
  suspense.pendingBranch = newBranch;
11177
11213
  if (isSameVNodeType(pendingBranch, newBranch)) {
11214
+ suspense.deps++;
11178
11215
  patch(
11179
11216
  pendingBranch,
11180
11217
  newBranch,
11181
- suspense.hiddenContainer,
11218
+ // a hydrating pending branch is adopted SSR DOM, already in place
11219
+ isHydrating ? container : suspense.hiddenContainer,
11182
11220
  null,
11183
11221
  parentComponent,
11184
11222
  suspense,
@@ -11186,6 +11224,7 @@ If you want to remount the same app, move your app creation logic into a factory
11186
11224
  slotScopeIds,
11187
11225
  optimized
11188
11226
  );
11227
+ suspense.deps--;
11189
11228
  if (suspense.deps <= 0) {
11190
11229
  suspense.resolve();
11191
11230
  } else if (isInFallback) {
@@ -11451,6 +11490,7 @@ If you want to remount the same app, move your app creation logic into a factory
11451
11490
  suspense.effects = [];
11452
11491
  if (isSuspensible) {
11453
11492
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
11493
+ parentSuspenseId = void 0;
11454
11494
  parentSuspense.deps--;
11455
11495
  if (parentSuspense.deps === 0 && !sync) {
11456
11496
  parentSuspense.resolve();
@@ -11524,6 +11564,12 @@ If you want to remount the same app, move your app creation logic into a factory
11524
11564
  return;
11525
11565
  }
11526
11566
  unsetCurrentInstance();
11567
+ if (hydratedEl && !instance.scope.active) {
11568
+ if (isInPendingSuspense && --suspense.deps === 0) {
11569
+ suspense.resolve();
11570
+ }
11571
+ return;
11572
+ }
11527
11573
  instance.asyncResolved = true;
11528
11574
  const { vnode: vnode2 } = instance;
11529
11575
  {
@@ -12009,7 +12055,8 @@ Component that was made reactive: `,
12009
12055
  el: vnode.el,
12010
12056
  anchor: vnode.anchor,
12011
12057
  ctx: vnode.ctx,
12012
- ce: vnode.ce
12058
+ ce: vnode.ce,
12059
+ cacheIndex: vnode.cacheIndex
12013
12060
  };
12014
12061
  if (transition && cloneTransition) {
12015
12062
  setTransitionHooks(
@@ -12815,7 +12862,7 @@ Component that was made reactive: `,
12815
12862
  return true;
12816
12863
  }
12817
12864
 
12818
- const version = "3.5.42";
12865
+ const version = "3.5.43";
12819
12866
  const warn = warn$1 ;
12820
12867
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12821
12868
  const devtools = devtools$1 ;