@vue/runtime-core 3.5.17 → 3.5.19

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/runtime-core v3.5.17
2
+ * @vue/runtime-core v3.5.19
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -492,7 +492,9 @@ function rerender(id, newRender) {
492
492
  }
493
493
  instance.renderCache = [];
494
494
  isHmrUpdating = true;
495
- instance.update();
495
+ if (!(instance.job.flags & 8)) {
496
+ instance.update();
497
+ }
496
498
  isHmrUpdating = false;
497
499
  });
498
500
  }
@@ -1553,7 +1555,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1553
1555
  const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs;
1554
1556
  const setupState = owner.setupState;
1555
1557
  const rawSetupState = reactivity.toRaw(setupState);
1556
- const canSetSetupRef = setupState === shared.EMPTY_OBJ ? () => false : (key) => {
1558
+ const canSetSetupRef = setupState === shared.EMPTY_OBJ ? shared.NO : (key) => {
1557
1559
  {
1558
1560
  if (shared.hasOwn(rawSetupState, key) && !reactivity.isRef(rawSetupState[key])) {
1559
1561
  warn$1(
@@ -1566,6 +1568,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1566
1568
  }
1567
1569
  return shared.hasOwn(rawSetupState, key);
1568
1570
  };
1571
+ const canSetRef = (ref2) => {
1572
+ return !knownTemplateRefs.has(ref2);
1573
+ };
1569
1574
  if (oldRef != null && oldRef !== ref) {
1570
1575
  if (shared.isString(oldRef)) {
1571
1576
  refs[oldRef] = null;
@@ -1573,7 +1578,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1573
1578
  setupState[oldRef] = null;
1574
1579
  }
1575
1580
  } else if (reactivity.isRef(oldRef)) {
1576
- oldRef.value = null;
1581
+ if (canSetRef(oldRef)) {
1582
+ oldRef.value = null;
1583
+ }
1584
+ const oldRawRefAtom = oldRawRef;
1585
+ if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1577
1586
  }
1578
1587
  }
1579
1588
  if (shared.isFunction(ref)) {
@@ -1584,7 +1593,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1584
1593
  if (_isString || _isRef) {
1585
1594
  const doSet = () => {
1586
1595
  if (rawRef.f) {
1587
- const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;
1596
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
1588
1597
  if (isUnmount) {
1589
1598
  shared.isArray(existing) && shared.remove(existing, refValue);
1590
1599
  } else {
@@ -1595,8 +1604,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1595
1604
  setupState[ref] = refs[ref];
1596
1605
  }
1597
1606
  } else {
1598
- ref.value = [refValue];
1599
- if (rawRef.k) refs[rawRef.k] = ref.value;
1607
+ const newVal = [refValue];
1608
+ if (canSetRef(ref)) {
1609
+ ref.value = newVal;
1610
+ }
1611
+ if (rawRef.k) refs[rawRef.k] = newVal;
1600
1612
  }
1601
1613
  } else if (!existing.includes(refValue)) {
1602
1614
  existing.push(refValue);
@@ -1608,7 +1620,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1608
1620
  setupState[ref] = value;
1609
1621
  }
1610
1622
  } else if (_isRef) {
1611
- ref.value = value;
1623
+ if (canSetRef(ref)) {
1624
+ ref.value = value;
1625
+ }
1612
1626
  if (rawRef.k) refs[rawRef.k] = value;
1613
1627
  } else {
1614
1628
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@@ -2229,10 +2243,8 @@ function resolveCssVars(instance, vnode, expectedMap) {
2229
2243
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
2230
2244
  const cssVars = instance.getCssVars();
2231
2245
  for (const key in cssVars) {
2232
- expectedMap.set(
2233
- `--${shared.getEscapedCssVarName(key, false)}`,
2234
- String(cssVars[key])
2235
- );
2246
+ const value = shared.normalizeCssVarValue(cssVars[key]);
2247
+ expectedMap.set(`--${shared.getEscapedCssVarName(key, false)}`, value);
2236
2248
  }
2237
2249
  }
2238
2250
  if (vnode === root && instance.parent) {
@@ -2421,16 +2433,19 @@ function defineAsyncComponent(source) {
2421
2433
  __asyncLoader: load,
2422
2434
  __asyncHydrate(el, instance, hydrate) {
2423
2435
  let patched = false;
2424
- const doHydrate = hydrateStrategy ? () => {
2425
- const performHydrate = () => {
2426
- if (patched) {
2436
+ (instance.bu || (instance.bu = [])).push(() => patched = true);
2437
+ const performHydrate = () => {
2438
+ if (patched) {
2439
+ {
2427
2440
  warn$1(
2428
- `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
2441
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`
2429
2442
  );
2430
- return;
2431
2443
  }
2432
- hydrate();
2433
- };
2444
+ return;
2445
+ }
2446
+ hydrate();
2447
+ };
2448
+ const doHydrate = hydrateStrategy ? () => {
2434
2449
  const teardown = hydrateStrategy(
2435
2450
  performHydrate,
2436
2451
  (cb) => forEachElement(el, cb)
@@ -2438,8 +2453,7 @@ function defineAsyncComponent(source) {
2438
2453
  if (teardown) {
2439
2454
  (instance.bum || (instance.bum = [])).push(teardown);
2440
2455
  }
2441
- (instance.u || (instance.u = [])).push(() => patched = true);
2442
- } : hydrate;
2456
+ } : performHydrate;
2443
2457
  if (resolvedComp) {
2444
2458
  doHydrate();
2445
2459
  } else {
@@ -3174,10 +3188,10 @@ const PublicInstanceProxyHandlers = {
3174
3188
  return true;
3175
3189
  },
3176
3190
  has({
3177
- _: { data, setupState, accessCache, ctx, appContext, propsOptions }
3191
+ _: { data, setupState, accessCache, ctx, appContext, propsOptions, type }
3178
3192
  }, key) {
3179
- let normalizedProps;
3180
- return !!accessCache[key] || data !== shared.EMPTY_OBJ && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key);
3193
+ let normalizedProps, cssModules;
3194
+ return !!(accessCache[key] || data !== shared.EMPTY_OBJ && key[0] !== "$" && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
3181
3195
  },
3182
3196
  defineProperty(target, key, descriptor) {
3183
3197
  if (descriptor.get != null) {
@@ -3315,15 +3329,15 @@ function withDefaults(props, defaults) {
3315
3329
  return null;
3316
3330
  }
3317
3331
  function useSlots() {
3318
- return getContext().slots;
3332
+ return getContext("useSlots").slots;
3319
3333
  }
3320
3334
  function useAttrs() {
3321
- return getContext().attrs;
3335
+ return getContext("useAttrs").attrs;
3322
3336
  }
3323
- function getContext() {
3337
+ function getContext(calledFunctionName) {
3324
3338
  const i = getCurrentInstance();
3325
3339
  if (!i) {
3326
- warn$1(`useContext() called without active instance.`);
3340
+ warn$1(`${calledFunctionName}() called without active instance.`);
3327
3341
  }
3328
3342
  return i.setupContext || (i.setupContext = createSetupContext(i));
3329
3343
  }
@@ -3574,7 +3588,8 @@ function applyOptions(instance) {
3574
3588
  expose.forEach((key) => {
3575
3589
  Object.defineProperty(exposed, key, {
3576
3590
  get: () => publicThis[key],
3577
- set: (val) => publicThis[key] = val
3591
+ set: (val) => publicThis[key] = val,
3592
+ enumerable: true
3578
3593
  });
3579
3594
  });
3580
3595
  } else if (!instance.exposed) {
@@ -4024,7 +4039,7 @@ function provide(key, value) {
4024
4039
  }
4025
4040
  }
4026
4041
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
4027
- const instance = currentInstance || currentRenderingInstance;
4042
+ const instance = getCurrentInstance();
4028
4043
  if (instance || currentApp) {
4029
4044
  let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
4030
4045
  if (provides && key in provides) {
@@ -4039,7 +4054,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
4039
4054
  }
4040
4055
  }
4041
4056
  function hasInjectionContext() {
4042
- return !!(currentInstance || currentRenderingInstance || currentApp);
4057
+ return !!(getCurrentInstance() || currentApp);
4043
4058
  }
4044
4059
 
4045
4060
  const internalObjectProto = {};
@@ -4453,7 +4468,7 @@ function isBoolean(...args) {
4453
4468
  return args.some((elem) => elem.toLowerCase() === "boolean");
4454
4469
  }
4455
4470
 
4456
- const isInternalKey = (key) => key[0] === "_" || key === "$stable";
4471
+ const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
4457
4472
  const normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
4458
4473
  const normalizeSlot = (key, rawSlot, ctx) => {
4459
4474
  if (rawSlot._n) {
@@ -4507,8 +4522,6 @@ const assignSlots = (slots, children, optimized) => {
4507
4522
  const initSlots = (instance, children, optimized) => {
4508
4523
  const slots = instance.slots = createInternalObject();
4509
4524
  if (instance.vnode.shapeFlag & 32) {
4510
- const cacheIndexes = children.__;
4511
- if (cacheIndexes) shared.def(slots, "__", cacheIndexes, true);
4512
4525
  const type = children._;
4513
4526
  if (type) {
4514
4527
  assignSlots(slots, children, optimized);
@@ -4569,12 +4582,10 @@ function endMeasure(instance, type) {
4569
4582
  if (instance.appContext.config.performance && isSupported()) {
4570
4583
  const startTag = `vue-${type}-${instance.uid}`;
4571
4584
  const endTag = startTag + `:end`;
4585
+ const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;
4572
4586
  perf.mark(endTag);
4573
- perf.measure(
4574
- `<${formatComponentName(instance, instance.type)}> ${type}`,
4575
- startTag,
4576
- endTag
4577
- );
4587
+ perf.measure(measureName, startTag, endTag);
4588
+ perf.clearMeasures(measureName);
4578
4589
  perf.clearMarks(startTag);
4579
4590
  perf.clearMarks(endTag);
4580
4591
  }
@@ -5195,6 +5206,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5195
5206
  if (!initialVNode.el) {
5196
5207
  const placeholder = instance.subTree = createVNode(Comment);
5197
5208
  processCommentNode(null, placeholder, container, anchor);
5209
+ initialVNode.placeholder = placeholder.el;
5198
5210
  }
5199
5211
  } else {
5200
5212
  setupRenderEffect(
@@ -5696,7 +5708,11 @@ function baseCreateRenderer(options, createHydrationFns) {
5696
5708
  for (i = toBePatched - 1; i >= 0; i--) {
5697
5709
  const nextIndex = s2 + i;
5698
5710
  const nextChild = c2[nextIndex];
5699
- const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
5711
+ const anchorVNode = c2[nextIndex + 1];
5712
+ const anchor = nextIndex + 1 < l2 ? (
5713
+ // #13559, fallback to el placeholder for unresolved async component
5714
+ anchorVNode.el || anchorVNode.placeholder
5715
+ ) : parentAnchor;
5700
5716
  if (newIndexToOldIndexMap[i] === 0) {
5701
5717
  patch(
5702
5718
  null,
@@ -5761,6 +5777,12 @@ function baseCreateRenderer(options, createHydrationFns) {
5761
5777
  }
5762
5778
  };
5763
5779
  const performLeave = () => {
5780
+ if (el._isLeaving) {
5781
+ el[leaveCbKey](
5782
+ true
5783
+ /* cancelled */
5784
+ );
5785
+ }
5764
5786
  leave(el, () => {
5765
5787
  remove2();
5766
5788
  afterLeave && afterLeave();
@@ -5906,27 +5928,12 @@ function baseCreateRenderer(options, createHydrationFns) {
5906
5928
  if (instance.type.__hmrId) {
5907
5929
  unregisterHMR(instance);
5908
5930
  }
5909
- const {
5910
- bum,
5911
- scope,
5912
- job,
5913
- subTree,
5914
- um,
5915
- m,
5916
- a,
5917
- parent,
5918
- slots: { __: slotCacheKeys }
5919
- } = instance;
5931
+ const { bum, scope, job, subTree, um, m, a } = instance;
5920
5932
  invalidateMount(m);
5921
5933
  invalidateMount(a);
5922
5934
  if (bum) {
5923
5935
  shared.invokeArrayFns(bum);
5924
5936
  }
5925
- if (parent && shared.isArray(slotCacheKeys)) {
5926
- slotCacheKeys.forEach((v) => {
5927
- parent.renderCache[v] = void 0;
5928
- });
5929
- }
5930
5937
  scope.stop();
5931
5938
  if (job) {
5932
5939
  job.flags |= 8;
@@ -5938,12 +5945,6 @@ function baseCreateRenderer(options, createHydrationFns) {
5938
5945
  queuePostRenderEffect(() => {
5939
5946
  instance.isUnmounted = true;
5940
5947
  }, parentSuspense);
5941
- if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
5942
- parentSuspense.deps--;
5943
- if (parentSuspense.deps === 0) {
5944
- parentSuspense.resolve();
5945
- }
5946
- }
5947
5948
  {
5948
5949
  devtoolsComponentRemoved(instance);
5949
5950
  }
@@ -6044,7 +6045,8 @@ function traverseStaticChildren(n1, n2, shallow = false) {
6044
6045
  if (!shallow && c2.patchFlag !== -2)
6045
6046
  traverseStaticChildren(c1, c2);
6046
6047
  }
6047
- if (c2.type === Text) {
6048
+ if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
6049
+ c2.patchFlag !== -1) {
6048
6050
  c2.el = c1.el;
6049
6051
  }
6050
6052
  if (c2.type === Comment && !c2.el) {
@@ -7589,6 +7591,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7589
7591
  suspense: vnode.suspense,
7590
7592
  ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
7591
7593
  ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
7594
+ placeholder: vnode.placeholder,
7592
7595
  el: vnode.el,
7593
7596
  anchor: vnode.anchor,
7594
7597
  ctx: vnode.ctx,
@@ -8380,7 +8383,7 @@ function isMemoSame(cached, memo) {
8380
8383
  return true;
8381
8384
  }
8382
8385
 
8383
- const version = "3.5.17";
8386
+ const version = "3.5.19";
8384
8387
  const warn = warn$1 ;
8385
8388
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8386
8389
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.17
2
+ * @vue/runtime-core v3.5.19
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1109,7 +1109,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1109
1109
  const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs;
1110
1110
  const setupState = owner.setupState;
1111
1111
  const rawSetupState = reactivity.toRaw(setupState);
1112
- const canSetSetupRef = setupState === shared.EMPTY_OBJ ? () => false : (key) => {
1112
+ const canSetSetupRef = setupState === shared.EMPTY_OBJ ? shared.NO : (key) => {
1113
1113
  return shared.hasOwn(rawSetupState, key);
1114
1114
  };
1115
1115
  if (oldRef != null && oldRef !== ref) {
@@ -1119,7 +1119,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1119
1119
  setupState[oldRef] = null;
1120
1120
  }
1121
1121
  } else if (reactivity.isRef(oldRef)) {
1122
- oldRef.value = null;
1122
+ {
1123
+ oldRef.value = null;
1124
+ }
1125
+ const oldRawRefAtom = oldRawRef;
1126
+ if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1123
1127
  }
1124
1128
  }
1125
1129
  if (shared.isFunction(ref)) {
@@ -1130,7 +1134,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1130
1134
  if (_isString || _isRef) {
1131
1135
  const doSet = () => {
1132
1136
  if (rawRef.f) {
1133
- const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;
1137
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value ;
1134
1138
  if (isUnmount) {
1135
1139
  shared.isArray(existing) && shared.remove(existing, refValue);
1136
1140
  } else {
@@ -1141,8 +1145,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1141
1145
  setupState[ref] = refs[ref];
1142
1146
  }
1143
1147
  } else {
1144
- ref.value = [refValue];
1145
- if (rawRef.k) refs[rawRef.k] = ref.value;
1148
+ const newVal = [refValue];
1149
+ {
1150
+ ref.value = newVal;
1151
+ }
1152
+ if (rawRef.k) refs[rawRef.k] = newVal;
1146
1153
  }
1147
1154
  } else if (!existing.includes(refValue)) {
1148
1155
  existing.push(refValue);
@@ -1154,7 +1161,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1154
1161
  setupState[ref] = value;
1155
1162
  }
1156
1163
  } else if (_isRef) {
1157
- ref.value = value;
1164
+ {
1165
+ ref.value = value;
1166
+ }
1158
1167
  if (rawRef.k) refs[rawRef.k] = value;
1159
1168
  } else ;
1160
1169
  };
@@ -1781,10 +1790,15 @@ function defineAsyncComponent(source) {
1781
1790
  name: "AsyncComponentWrapper",
1782
1791
  __asyncLoader: load,
1783
1792
  __asyncHydrate(el, instance, hydrate) {
1793
+ let patched = false;
1794
+ (instance.bu || (instance.bu = [])).push(() => patched = true);
1795
+ const performHydrate = () => {
1796
+ if (patched) {
1797
+ return;
1798
+ }
1799
+ hydrate();
1800
+ };
1784
1801
  const doHydrate = hydrateStrategy ? () => {
1785
- const performHydrate = () => {
1786
- hydrate();
1787
- };
1788
1802
  const teardown = hydrateStrategy(
1789
1803
  performHydrate,
1790
1804
  (cb) => forEachElement(el, cb)
@@ -1792,8 +1806,7 @@ function defineAsyncComponent(source) {
1792
1806
  if (teardown) {
1793
1807
  (instance.bum || (instance.bum = [])).push(teardown);
1794
1808
  }
1795
- (instance.u || (instance.u = [])).push(() => true);
1796
- } : hydrate;
1809
+ } : performHydrate;
1797
1810
  if (resolvedComp) {
1798
1811
  doHydrate();
1799
1812
  } else {
@@ -2455,10 +2468,10 @@ const PublicInstanceProxyHandlers = {
2455
2468
  return true;
2456
2469
  },
2457
2470
  has({
2458
- _: { data, setupState, accessCache, ctx, appContext, propsOptions }
2471
+ _: { data, setupState, accessCache, ctx, appContext, propsOptions, type }
2459
2472
  }, key) {
2460
- let normalizedProps;
2461
- return !!accessCache[key] || data !== shared.EMPTY_OBJ && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key);
2473
+ let normalizedProps, cssModules;
2474
+ return !!(accessCache[key] || data !== shared.EMPTY_OBJ && key[0] !== "$" && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
2462
2475
  },
2463
2476
  defineProperty(target, key, descriptor) {
2464
2477
  if (descriptor.get != null) {
@@ -2506,7 +2519,7 @@ function useSlots() {
2506
2519
  function useAttrs() {
2507
2520
  return getContext().attrs;
2508
2521
  }
2509
- function getContext() {
2522
+ function getContext(calledFunctionName) {
2510
2523
  const i = getCurrentInstance();
2511
2524
  return i.setupContext || (i.setupContext = createSetupContext(i));
2512
2525
  }
@@ -2685,7 +2698,8 @@ function applyOptions(instance) {
2685
2698
  expose.forEach((key) => {
2686
2699
  Object.defineProperty(exposed, key, {
2687
2700
  get: () => publicThis[key],
2688
- set: (val) => publicThis[key] = val
2701
+ set: (val) => publicThis[key] = val,
2702
+ enumerable: true
2689
2703
  });
2690
2704
  });
2691
2705
  } else if (!instance.exposed) {
@@ -3046,7 +3060,7 @@ function provide(key, value) {
3046
3060
  }
3047
3061
  }
3048
3062
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
3049
- const instance = currentInstance || currentRenderingInstance;
3063
+ const instance = getCurrentInstance();
3050
3064
  if (instance || currentApp) {
3051
3065
  let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
3052
3066
  if (provides && key in provides) {
@@ -3057,7 +3071,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
3057
3071
  }
3058
3072
  }
3059
3073
  function hasInjectionContext() {
3060
- return !!(currentInstance || currentRenderingInstance || currentApp);
3074
+ return !!(getCurrentInstance() || currentApp);
3061
3075
  }
3062
3076
 
3063
3077
  const internalObjectProto = {};
@@ -3336,7 +3350,7 @@ function validatePropName(key) {
3336
3350
  return false;
3337
3351
  }
3338
3352
 
3339
- const isInternalKey = (key) => key[0] === "_" || key === "$stable";
3353
+ const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
3340
3354
  const normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
3341
3355
  const normalizeSlot = (key, rawSlot, ctx) => {
3342
3356
  if (rawSlot._n) {
@@ -3376,8 +3390,6 @@ const assignSlots = (slots, children, optimized) => {
3376
3390
  const initSlots = (instance, children, optimized) => {
3377
3391
  const slots = instance.slots = createInternalObject();
3378
3392
  if (instance.vnode.shapeFlag & 32) {
3379
- const cacheIndexes = children.__;
3380
- if (cacheIndexes) shared.def(slots, "__", cacheIndexes, true);
3381
3393
  const type = children._;
3382
3394
  if (type) {
3383
3395
  assignSlots(slots, children, optimized);
@@ -3970,6 +3982,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3970
3982
  if (!initialVNode.el) {
3971
3983
  const placeholder = instance.subTree = createVNode(Comment);
3972
3984
  processCommentNode(null, placeholder, container, anchor);
3985
+ initialVNode.placeholder = placeholder.el;
3973
3986
  }
3974
3987
  } else {
3975
3988
  setupRenderEffect(
@@ -4402,7 +4415,11 @@ function baseCreateRenderer(options, createHydrationFns) {
4402
4415
  for (i = toBePatched - 1; i >= 0; i--) {
4403
4416
  const nextIndex = s2 + i;
4404
4417
  const nextChild = c2[nextIndex];
4405
- const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
4418
+ const anchorVNode = c2[nextIndex + 1];
4419
+ const anchor = nextIndex + 1 < l2 ? (
4420
+ // #13559, fallback to el placeholder for unresolved async component
4421
+ anchorVNode.el || anchorVNode.placeholder
4422
+ ) : parentAnchor;
4406
4423
  if (newIndexToOldIndexMap[i] === 0) {
4407
4424
  patch(
4408
4425
  null,
@@ -4467,6 +4484,12 @@ function baseCreateRenderer(options, createHydrationFns) {
4467
4484
  }
4468
4485
  };
4469
4486
  const performLeave = () => {
4487
+ if (el._isLeaving) {
4488
+ el[leaveCbKey](
4489
+ true
4490
+ /* cancelled */
4491
+ );
4492
+ }
4470
4493
  leave(el, () => {
4471
4494
  remove2();
4472
4495
  afterLeave && afterLeave();
@@ -4601,27 +4624,12 @@ function baseCreateRenderer(options, createHydrationFns) {
4601
4624
  hostRemove(end);
4602
4625
  };
4603
4626
  const unmountComponent = (instance, parentSuspense, doRemove) => {
4604
- const {
4605
- bum,
4606
- scope,
4607
- job,
4608
- subTree,
4609
- um,
4610
- m,
4611
- a,
4612
- parent,
4613
- slots: { __: slotCacheKeys }
4614
- } = instance;
4627
+ const { bum, scope, job, subTree, um, m, a } = instance;
4615
4628
  invalidateMount(m);
4616
4629
  invalidateMount(a);
4617
4630
  if (bum) {
4618
4631
  shared.invokeArrayFns(bum);
4619
4632
  }
4620
- if (parent && shared.isArray(slotCacheKeys)) {
4621
- slotCacheKeys.forEach((v) => {
4622
- parent.renderCache[v] = void 0;
4623
- });
4624
- }
4625
4633
  scope.stop();
4626
4634
  if (job) {
4627
4635
  job.flags |= 8;
@@ -4633,12 +4641,6 @@ function baseCreateRenderer(options, createHydrationFns) {
4633
4641
  queuePostRenderEffect(() => {
4634
4642
  instance.isUnmounted = true;
4635
4643
  }, parentSuspense);
4636
- if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
4637
- parentSuspense.deps--;
4638
- if (parentSuspense.deps === 0) {
4639
- parentSuspense.resolve();
4640
- }
4641
- }
4642
4644
  };
4643
4645
  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
4644
4646
  for (let i = start; i < children.length; i++) {
@@ -4736,7 +4738,8 @@ function traverseStaticChildren(n1, n2, shallow = false) {
4736
4738
  if (!shallow && c2.patchFlag !== -2)
4737
4739
  traverseStaticChildren(c1, c2);
4738
4740
  }
4739
- if (c2.type === Text) {
4741
+ if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
4742
+ c2.patchFlag !== -1) {
4740
4743
  c2.el = c1.el;
4741
4744
  }
4742
4745
  if (c2.type === Comment && !c2.el) {
@@ -6061,6 +6064,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
6061
6064
  suspense: vnode.suspense,
6062
6065
  ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
6063
6066
  ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
6067
+ placeholder: vnode.placeholder,
6064
6068
  el: vnode.el,
6065
6069
  anchor: vnode.anchor,
6066
6070
  ctx: vnode.ctx,
@@ -6526,7 +6530,7 @@ function isMemoSame(cached, memo) {
6526
6530
  return true;
6527
6531
  }
6528
6532
 
6529
- const version = "3.5.17";
6533
+ const version = "3.5.19";
6530
6534
  const warn$1 = shared.NOOP;
6531
6535
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6532
6536
  const devtools = void 0;
@@ -1220,6 +1220,7 @@ export interface VNode<HostNode = RendererNode, HostElement = RendererElement, E
1220
1220
  dirs: DirectiveBinding[] | null;
1221
1221
  transition: TransitionHooks<HostElement> | null;
1222
1222
  el: HostNode | null;
1223
+ placeholder: HostNode | null;
1223
1224
  anchor: HostNode | null;
1224
1225
  target: HostElement | null;
1225
1226
  targetStart: HostNode | null;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.17
2
+ * @vue/runtime-core v3.5.19
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
6
  import { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';
7
7
  export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
8
- import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, NO, EMPTY_ARR, hyphenate, makeMap, toRawType, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';
8
+ import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, EMPTY_ARR, hyphenate, makeMap, toRawType, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';
9
9
  export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
10
10
 
11
11
  const stack = [];
@@ -495,7 +495,9 @@ function rerender(id, newRender) {
495
495
  }
496
496
  instance.renderCache = [];
497
497
  isHmrUpdating = true;
498
- instance.update();
498
+ if (!(instance.job.flags & 8)) {
499
+ instance.update();
500
+ }
499
501
  isHmrUpdating = false;
500
502
  });
501
503
  }
@@ -1557,7 +1559,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1557
1559
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
1558
1560
  const setupState = owner.setupState;
1559
1561
  const rawSetupState = toRaw(setupState);
1560
- const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
1562
+ const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {
1561
1563
  if (!!(process.env.NODE_ENV !== "production")) {
1562
1564
  if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
1563
1565
  warn$1(
@@ -1570,6 +1572,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1570
1572
  }
1571
1573
  return hasOwn(rawSetupState, key);
1572
1574
  };
1575
+ const canSetRef = (ref2) => {
1576
+ return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
1577
+ };
1573
1578
  if (oldRef != null && oldRef !== ref) {
1574
1579
  if (isString(oldRef)) {
1575
1580
  refs[oldRef] = null;
@@ -1577,7 +1582,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1577
1582
  setupState[oldRef] = null;
1578
1583
  }
1579
1584
  } else if (isRef(oldRef)) {
1580
- oldRef.value = null;
1585
+ if (canSetRef(oldRef)) {
1586
+ oldRef.value = null;
1587
+ }
1588
+ const oldRawRefAtom = oldRawRef;
1589
+ if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1581
1590
  }
1582
1591
  }
1583
1592
  if (isFunction(ref)) {
@@ -1588,7 +1597,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1588
1597
  if (_isString || _isRef) {
1589
1598
  const doSet = () => {
1590
1599
  if (rawRef.f) {
1591
- const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;
1600
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
1592
1601
  if (isUnmount) {
1593
1602
  isArray(existing) && remove(existing, refValue);
1594
1603
  } else {
@@ -1599,8 +1608,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1599
1608
  setupState[ref] = refs[ref];
1600
1609
  }
1601
1610
  } else {
1602
- ref.value = [refValue];
1603
- if (rawRef.k) refs[rawRef.k] = ref.value;
1611
+ const newVal = [refValue];
1612
+ if (canSetRef(ref)) {
1613
+ ref.value = newVal;
1614
+ }
1615
+ if (rawRef.k) refs[rawRef.k] = newVal;
1604
1616
  }
1605
1617
  } else if (!existing.includes(refValue)) {
1606
1618
  existing.push(refValue);
@@ -1612,7 +1624,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1612
1624
  setupState[ref] = value;
1613
1625
  }
1614
1626
  } else if (_isRef) {
1615
- ref.value = value;
1627
+ if (canSetRef(ref)) {
1628
+ ref.value = value;
1629
+ }
1616
1630
  if (rawRef.k) refs[rawRef.k] = value;
1617
1631
  } else if (!!(process.env.NODE_ENV !== "production")) {
1618
1632
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@@ -2244,10 +2258,8 @@ function resolveCssVars(instance, vnode, expectedMap) {
2244
2258
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
2245
2259
  const cssVars = instance.getCssVars();
2246
2260
  for (const key in cssVars) {
2247
- expectedMap.set(
2248
- `--${getEscapedCssVarName(key, false)}`,
2249
- String(cssVars[key])
2250
- );
2261
+ const value = normalizeCssVarValue(cssVars[key]);
2262
+ expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);
2251
2263
  }
2252
2264
  }
2253
2265
  if (vnode === root && instance.parent) {
@@ -2436,16 +2448,19 @@ function defineAsyncComponent(source) {
2436
2448
  __asyncLoader: load,
2437
2449
  __asyncHydrate(el, instance, hydrate) {
2438
2450
  let patched = false;
2439
- const doHydrate = hydrateStrategy ? () => {
2440
- const performHydrate = () => {
2441
- if (!!(process.env.NODE_ENV !== "production") && patched) {
2451
+ (instance.bu || (instance.bu = [])).push(() => patched = true);
2452
+ const performHydrate = () => {
2453
+ if (patched) {
2454
+ if (!!(process.env.NODE_ENV !== "production")) {
2442
2455
  warn$1(
2443
- `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
2456
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`
2444
2457
  );
2445
- return;
2446
2458
  }
2447
- hydrate();
2448
- };
2459
+ return;
2460
+ }
2461
+ hydrate();
2462
+ };
2463
+ const doHydrate = hydrateStrategy ? () => {
2449
2464
  const teardown = hydrateStrategy(
2450
2465
  performHydrate,
2451
2466
  (cb) => forEachElement(el, cb)
@@ -2453,8 +2468,7 @@ function defineAsyncComponent(source) {
2453
2468
  if (teardown) {
2454
2469
  (instance.bum || (instance.bum = [])).push(teardown);
2455
2470
  }
2456
- (instance.u || (instance.u = [])).push(() => patched = true);
2457
- } : hydrate;
2471
+ } : performHydrate;
2458
2472
  if (resolvedComp) {
2459
2473
  doHydrate();
2460
2474
  } else {
@@ -3192,10 +3206,10 @@ const PublicInstanceProxyHandlers = {
3192
3206
  return true;
3193
3207
  },
3194
3208
  has({
3195
- _: { data, setupState, accessCache, ctx, appContext, propsOptions }
3209
+ _: { data, setupState, accessCache, ctx, appContext, propsOptions, type }
3196
3210
  }, key) {
3197
- let normalizedProps;
3198
- return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);
3211
+ let normalizedProps, cssModules;
3212
+ return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
3199
3213
  },
3200
3214
  defineProperty(target, key, descriptor) {
3201
3215
  if (descriptor.get != null) {
@@ -3333,15 +3347,15 @@ function withDefaults(props, defaults) {
3333
3347
  return null;
3334
3348
  }
3335
3349
  function useSlots() {
3336
- return getContext().slots;
3350
+ return getContext("useSlots").slots;
3337
3351
  }
3338
3352
  function useAttrs() {
3339
- return getContext().attrs;
3353
+ return getContext("useAttrs").attrs;
3340
3354
  }
3341
- function getContext() {
3355
+ function getContext(calledFunctionName) {
3342
3356
  const i = getCurrentInstance();
3343
3357
  if (!!(process.env.NODE_ENV !== "production") && !i) {
3344
- warn$1(`useContext() called without active instance.`);
3358
+ warn$1(`${calledFunctionName}() called without active instance.`);
3345
3359
  }
3346
3360
  return i.setupContext || (i.setupContext = createSetupContext(i));
3347
3361
  }
@@ -3594,7 +3608,8 @@ function applyOptions(instance) {
3594
3608
  expose.forEach((key) => {
3595
3609
  Object.defineProperty(exposed, key, {
3596
3610
  get: () => publicThis[key],
3597
- set: (val) => publicThis[key] = val
3611
+ set: (val) => publicThis[key] = val,
3612
+ enumerable: true
3598
3613
  });
3599
3614
  });
3600
3615
  } else if (!instance.exposed) {
@@ -4046,7 +4061,7 @@ function provide(key, value) {
4046
4061
  }
4047
4062
  }
4048
4063
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
4049
- const instance = currentInstance || currentRenderingInstance;
4064
+ const instance = getCurrentInstance();
4050
4065
  if (instance || currentApp) {
4051
4066
  let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
4052
4067
  if (provides && key in provides) {
@@ -4061,7 +4076,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
4061
4076
  }
4062
4077
  }
4063
4078
  function hasInjectionContext() {
4064
- return !!(currentInstance || currentRenderingInstance || currentApp);
4079
+ return !!(getCurrentInstance() || currentApp);
4065
4080
  }
4066
4081
 
4067
4082
  const internalObjectProto = {};
@@ -4475,7 +4490,7 @@ function isBoolean(...args) {
4475
4490
  return args.some((elem) => elem.toLowerCase() === "boolean");
4476
4491
  }
4477
4492
 
4478
- const isInternalKey = (key) => key[0] === "_" || key === "$stable";
4493
+ const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
4479
4494
  const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
4480
4495
  const normalizeSlot = (key, rawSlot, ctx) => {
4481
4496
  if (rawSlot._n) {
@@ -4529,8 +4544,6 @@ const assignSlots = (slots, children, optimized) => {
4529
4544
  const initSlots = (instance, children, optimized) => {
4530
4545
  const slots = instance.slots = createInternalObject();
4531
4546
  if (instance.vnode.shapeFlag & 32) {
4532
- const cacheIndexes = children.__;
4533
- if (cacheIndexes) def(slots, "__", cacheIndexes, true);
4534
4547
  const type = children._;
4535
4548
  if (type) {
4536
4549
  assignSlots(slots, children, optimized);
@@ -4591,12 +4604,10 @@ function endMeasure(instance, type) {
4591
4604
  if (instance.appContext.config.performance && isSupported()) {
4592
4605
  const startTag = `vue-${type}-${instance.uid}`;
4593
4606
  const endTag = startTag + `:end`;
4607
+ const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;
4594
4608
  perf.mark(endTag);
4595
- perf.measure(
4596
- `<${formatComponentName(instance, instance.type)}> ${type}`,
4597
- startTag,
4598
- endTag
4599
- );
4609
+ perf.measure(measureName, startTag, endTag);
4610
+ perf.clearMeasures(measureName);
4600
4611
  perf.clearMarks(startTag);
4601
4612
  perf.clearMarks(endTag);
4602
4613
  }
@@ -5255,6 +5266,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5255
5266
  if (!initialVNode.el) {
5256
5267
  const placeholder = instance.subTree = createVNode(Comment);
5257
5268
  processCommentNode(null, placeholder, container, anchor);
5269
+ initialVNode.placeholder = placeholder.el;
5258
5270
  }
5259
5271
  } else {
5260
5272
  setupRenderEffect(
@@ -5756,7 +5768,11 @@ function baseCreateRenderer(options, createHydrationFns) {
5756
5768
  for (i = toBePatched - 1; i >= 0; i--) {
5757
5769
  const nextIndex = s2 + i;
5758
5770
  const nextChild = c2[nextIndex];
5759
- const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
5771
+ const anchorVNode = c2[nextIndex + 1];
5772
+ const anchor = nextIndex + 1 < l2 ? (
5773
+ // #13559, fallback to el placeholder for unresolved async component
5774
+ anchorVNode.el || anchorVNode.placeholder
5775
+ ) : parentAnchor;
5760
5776
  if (newIndexToOldIndexMap[i] === 0) {
5761
5777
  patch(
5762
5778
  null,
@@ -5821,6 +5837,12 @@ function baseCreateRenderer(options, createHydrationFns) {
5821
5837
  }
5822
5838
  };
5823
5839
  const performLeave = () => {
5840
+ if (el._isLeaving) {
5841
+ el[leaveCbKey](
5842
+ true
5843
+ /* cancelled */
5844
+ );
5845
+ }
5824
5846
  leave(el, () => {
5825
5847
  remove2();
5826
5848
  afterLeave && afterLeave();
@@ -5966,27 +5988,12 @@ function baseCreateRenderer(options, createHydrationFns) {
5966
5988
  if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) {
5967
5989
  unregisterHMR(instance);
5968
5990
  }
5969
- const {
5970
- bum,
5971
- scope,
5972
- job,
5973
- subTree,
5974
- um,
5975
- m,
5976
- a,
5977
- parent,
5978
- slots: { __: slotCacheKeys }
5979
- } = instance;
5991
+ const { bum, scope, job, subTree, um, m, a } = instance;
5980
5992
  invalidateMount(m);
5981
5993
  invalidateMount(a);
5982
5994
  if (bum) {
5983
5995
  invokeArrayFns(bum);
5984
5996
  }
5985
- if (parent && isArray(slotCacheKeys)) {
5986
- slotCacheKeys.forEach((v) => {
5987
- parent.renderCache[v] = void 0;
5988
- });
5989
- }
5990
5997
  scope.stop();
5991
5998
  if (job) {
5992
5999
  job.flags |= 8;
@@ -5998,12 +6005,6 @@ function baseCreateRenderer(options, createHydrationFns) {
5998
6005
  queuePostRenderEffect(() => {
5999
6006
  instance.isUnmounted = true;
6000
6007
  }, parentSuspense);
6001
- if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
6002
- parentSuspense.deps--;
6003
- if (parentSuspense.deps === 0) {
6004
- parentSuspense.resolve();
6005
- }
6006
- }
6007
6008
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
6008
6009
  devtoolsComponentRemoved(instance);
6009
6010
  }
@@ -6104,7 +6105,8 @@ function traverseStaticChildren(n1, n2, shallow = false) {
6104
6105
  if (!shallow && c2.patchFlag !== -2)
6105
6106
  traverseStaticChildren(c1, c2);
6106
6107
  }
6107
- if (c2.type === Text) {
6108
+ if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
6109
+ c2.patchFlag !== -1) {
6108
6110
  c2.el = c1.el;
6109
6111
  }
6110
6112
  if (c2.type === Comment && !c2.el) {
@@ -7649,6 +7651,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7649
7651
  suspense: vnode.suspense,
7650
7652
  ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
7651
7653
  ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
7654
+ placeholder: vnode.placeholder,
7652
7655
  el: vnode.el,
7653
7656
  anchor: vnode.anchor,
7654
7657
  ctx: vnode.ctx,
@@ -8454,7 +8457,7 @@ function isMemoSame(cached, memo) {
8454
8457
  return true;
8455
8458
  }
8456
8459
 
8457
- const version = "3.5.17";
8460
+ const version = "3.5.19";
8458
8461
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8459
8462
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8460
8463
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.5.17",
3
+ "version": "3.5.19",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.5.17",
50
- "@vue/reactivity": "3.5.17"
49
+ "@vue/shared": "3.5.19",
50
+ "@vue/reactivity": "3.5.19"
51
51
  }
52
52
  }