@vue/runtime-core 3.4.24 → 3.4.26

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.4.24
2
+ * @vue/runtime-core v3.4.26
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -904,7 +904,7 @@ function renderComponentRoot(instance) {
904
904
  true ? {
905
905
  get attrs() {
906
906
  markAttrsAccessed();
907
- return attrs;
907
+ return reactivity.shallowReadonly(attrs);
908
908
  },
909
909
  slots,
910
910
  emit
@@ -937,7 +937,7 @@ function renderComponentRoot(instance) {
937
937
  propsOptions
938
938
  );
939
939
  }
940
- root = cloneVNode(root, fallthroughAttrs);
940
+ root = cloneVNode(root, fallthroughAttrs, false, true);
941
941
  } else if (!accessedAttrs && root.type !== Comment) {
942
942
  const allAttrs = Object.keys(attrs);
943
943
  const eventAttrs = [];
@@ -971,7 +971,7 @@ function renderComponentRoot(instance) {
971
971
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
972
972
  );
973
973
  }
974
- root = cloneVNode(root);
974
+ root = cloneVNode(root, null, false, true);
975
975
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
976
976
  }
977
977
  if (vnode.transition) {
@@ -1462,7 +1462,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1462
1462
  let parentSuspenseId;
1463
1463
  const isSuspensible = isVNodeSuspensible(vnode);
1464
1464
  if (isSuspensible) {
1465
- if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
1465
+ if (parentSuspense && parentSuspense.pendingBranch) {
1466
1466
  parentSuspenseId = parentSuspense.pendingId;
1467
1467
  parentSuspense.deps++;
1468
1468
  }
@@ -1774,8 +1774,8 @@ function setActiveBranch(suspense, branch) {
1774
1774
  }
1775
1775
  }
1776
1776
  function isVNodeSuspensible(vnode) {
1777
- var _a;
1778
- return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
1777
+ const suspensible = vnode.props && vnode.props.suspensible;
1778
+ return suspensible != null && suspensible !== false;
1779
1779
  }
1780
1780
 
1781
1781
  const ssrContextKey = Symbol.for("v-scx");
@@ -2029,34 +2029,29 @@ function createPathGetter(ctx, path) {
2029
2029
  return cur;
2030
2030
  };
2031
2031
  }
2032
- function traverse(value, depth, currentDepth = 0, seen) {
2033
- if (!shared.isObject(value) || value["__v_skip"]) {
2032
+ function traverse(value, depth = Infinity, seen) {
2033
+ if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) {
2034
2034
  return value;
2035
2035
  }
2036
- if (depth && depth > 0) {
2037
- if (currentDepth >= depth) {
2038
- return value;
2039
- }
2040
- currentDepth++;
2041
- }
2042
2036
  seen = seen || /* @__PURE__ */ new Set();
2043
2037
  if (seen.has(value)) {
2044
2038
  return value;
2045
2039
  }
2046
2040
  seen.add(value);
2041
+ depth--;
2047
2042
  if (reactivity.isRef(value)) {
2048
- traverse(value.value, depth, currentDepth, seen);
2043
+ traverse(value.value, depth, seen);
2049
2044
  } else if (shared.isArray(value)) {
2050
2045
  for (let i = 0; i < value.length; i++) {
2051
- traverse(value[i], depth, currentDepth, seen);
2046
+ traverse(value[i], depth, seen);
2052
2047
  }
2053
2048
  } else if (shared.isSet(value) || shared.isMap(value)) {
2054
2049
  value.forEach((v) => {
2055
- traverse(v, depth, currentDepth, seen);
2050
+ traverse(v, depth, seen);
2056
2051
  });
2057
2052
  } else if (shared.isPlainObject(value)) {
2058
2053
  for (const key in value) {
2059
- traverse(value[key], depth, currentDepth, seen);
2054
+ traverse(value[key], depth, seen);
2060
2055
  }
2061
2056
  }
2062
2057
  return value;
@@ -2214,7 +2209,7 @@ const BaseTransitionImpl = {
2214
2209
  instance
2215
2210
  );
2216
2211
  setTransitionHooks(oldInnerChild, leavingHooks);
2217
- if (mode === "out-in") {
2212
+ if (mode === "out-in" && innerChild.type !== Comment) {
2218
2213
  state.isLeaving = true;
2219
2214
  leavingHooks.afterLeave = () => {
2220
2215
  state.isLeaving = false;
@@ -2406,11 +2401,13 @@ function getKeepAliveChild(vnode) {
2406
2401
  return vnode.component.subTree;
2407
2402
  }
2408
2403
  const { shapeFlag, children } = vnode;
2409
- if (shapeFlag & 16) {
2410
- return children[0];
2411
- }
2412
- if (shapeFlag & 32 && shared.isFunction(children.default)) {
2413
- return children.default();
2404
+ if (children) {
2405
+ if (shapeFlag & 16) {
2406
+ return children[0];
2407
+ }
2408
+ if (shapeFlag & 32 && shared.isFunction(children.default)) {
2409
+ return children.default();
2410
+ }
2414
2411
  }
2415
2412
  }
2416
2413
  function setTransitionHooks(vnode, hooks) {
@@ -2733,7 +2730,7 @@ const KeepAliveImpl = {
2733
2730
  return () => {
2734
2731
  pendingCacheKey = null;
2735
2732
  if (!slots.default) {
2736
- return current = null;
2733
+ return null;
2737
2734
  }
2738
2735
  const children = slots.default();
2739
2736
  const rawVNode = children[0];
@@ -4016,7 +4013,7 @@ function hasInjectionContext() {
4016
4013
  return !!(currentInstance || currentRenderingInstance || currentApp);
4017
4014
  }
4018
4015
 
4019
- const internalObjectProto = /* @__PURE__ */ Object.create(null);
4016
+ const internalObjectProto = {};
4020
4017
  const createInternalObject = () => Object.create(internalObjectProto);
4021
4018
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
4022
4019
 
@@ -4474,7 +4471,7 @@ const initSlots = (instance, children) => {
4474
4471
  const type = children._;
4475
4472
  if (type) {
4476
4473
  shared.extend(slots, children);
4477
- shared.def(slots, "_", type);
4474
+ shared.def(slots, "_", type, true);
4478
4475
  } else {
4479
4476
  normalizeObjectSlots(children, slots);
4480
4477
  }
@@ -7221,8 +7218,8 @@ function guardReactiveProps(props) {
7221
7218
  return null;
7222
7219
  return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props;
7223
7220
  }
7224
- function cloneVNode(vnode, extraProps, mergeRef = false) {
7225
- const { props, ref, patchFlag, children } = vnode;
7221
+ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
7222
+ const { props, ref, patchFlag, children, transition } = vnode;
7226
7223
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
7227
7224
  const cloned = {
7228
7225
  __v_isVNode: true,
@@ -7252,7 +7249,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
7252
7249
  dynamicChildren: vnode.dynamicChildren,
7253
7250
  appContext: vnode.appContext,
7254
7251
  dirs: vnode.dirs,
7255
- transition: vnode.transition,
7252
+ transition,
7256
7253
  // These should technically only be non-null on mounted VNodes. However,
7257
7254
  // they *should* be copied for kept-alive vnodes. So we just always copy
7258
7255
  // them since them being non-null during a mount doesn't affect the logic as
@@ -7266,6 +7263,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
7266
7263
  ctx: vnode.ctx,
7267
7264
  ce: vnode.ce
7268
7265
  };
7266
+ if (transition && cloneTransition) {
7267
+ cloned.transition = transition.clone(cloned);
7268
+ }
7269
7269
  return cloned;
7270
7270
  }
7271
7271
  function deepCloneVNode(vnode) {
@@ -8090,7 +8090,7 @@ function isMemoSame(cached, memo) {
8090
8090
  return true;
8091
8091
  }
8092
8092
 
8093
- const version = "3.4.24";
8093
+ const version = "3.4.26";
8094
8094
  const warn = warn$1 ;
8095
8095
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8096
8096
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.4.24
2
+ * @vue/runtime-core v3.4.26
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -470,7 +470,7 @@ function renderComponentRoot(instance) {
470
470
  false ? {
471
471
  get attrs() {
472
472
  markAttrsAccessed();
473
- return attrs;
473
+ return shallowReadonly(attrs);
474
474
  },
475
475
  slots,
476
476
  emit
@@ -499,12 +499,12 @@ function renderComponentRoot(instance) {
499
499
  propsOptions
500
500
  );
501
501
  }
502
- root = cloneVNode(root, fallthroughAttrs);
502
+ root = cloneVNode(root, fallthroughAttrs, false, true);
503
503
  }
504
504
  }
505
505
  }
506
506
  if (vnode.dirs) {
507
- root = cloneVNode(root);
507
+ root = cloneVNode(root, null, false, true);
508
508
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
509
509
  }
510
510
  if (vnode.transition) {
@@ -940,7 +940,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
940
940
  let parentSuspenseId;
941
941
  const isSuspensible = isVNodeSuspensible(vnode);
942
942
  if (isSuspensible) {
943
- if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
943
+ if (parentSuspense && parentSuspense.pendingBranch) {
944
944
  parentSuspenseId = parentSuspense.pendingId;
945
945
  parentSuspense.deps++;
946
946
  }
@@ -1228,8 +1228,8 @@ function setActiveBranch(suspense, branch) {
1228
1228
  }
1229
1229
  }
1230
1230
  function isVNodeSuspensible(vnode) {
1231
- var _a;
1232
- return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
1231
+ const suspensible = vnode.props && vnode.props.suspensible;
1232
+ return suspensible != null && suspensible !== false;
1233
1233
  }
1234
1234
 
1235
1235
  const ssrContextKey = Symbol.for("v-scx");
@@ -1437,34 +1437,29 @@ function createPathGetter(ctx, path) {
1437
1437
  return cur;
1438
1438
  };
1439
1439
  }
1440
- function traverse(value, depth, currentDepth = 0, seen) {
1441
- if (!shared.isObject(value) || value["__v_skip"]) {
1440
+ function traverse(value, depth = Infinity, seen) {
1441
+ if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) {
1442
1442
  return value;
1443
1443
  }
1444
- if (depth && depth > 0) {
1445
- if (currentDepth >= depth) {
1446
- return value;
1447
- }
1448
- currentDepth++;
1449
- }
1450
1444
  seen = seen || /* @__PURE__ */ new Set();
1451
1445
  if (seen.has(value)) {
1452
1446
  return value;
1453
1447
  }
1454
1448
  seen.add(value);
1449
+ depth--;
1455
1450
  if (reactivity.isRef(value)) {
1456
- traverse(value.value, depth, currentDepth, seen);
1451
+ traverse(value.value, depth, seen);
1457
1452
  } else if (shared.isArray(value)) {
1458
1453
  for (let i = 0; i < value.length; i++) {
1459
- traverse(value[i], depth, currentDepth, seen);
1454
+ traverse(value[i], depth, seen);
1460
1455
  }
1461
1456
  } else if (shared.isSet(value) || shared.isMap(value)) {
1462
1457
  value.forEach((v) => {
1463
- traverse(v, depth, currentDepth, seen);
1458
+ traverse(v, depth, seen);
1464
1459
  });
1465
1460
  } else if (shared.isPlainObject(value)) {
1466
1461
  for (const key in value) {
1467
- traverse(value[key], depth, currentDepth, seen);
1462
+ traverse(value[key], depth, seen);
1468
1463
  }
1469
1464
  }
1470
1465
  return value;
@@ -1606,7 +1601,7 @@ const BaseTransitionImpl = {
1606
1601
  instance
1607
1602
  );
1608
1603
  setTransitionHooks(oldInnerChild, leavingHooks);
1609
- if (mode === "out-in") {
1604
+ if (mode === "out-in" && innerChild.type !== Comment) {
1610
1605
  state.isLeaving = true;
1611
1606
  leavingHooks.afterLeave = () => {
1612
1607
  state.isLeaving = false;
@@ -1795,11 +1790,13 @@ function getKeepAliveChild(vnode) {
1795
1790
  return vnode;
1796
1791
  }
1797
1792
  const { shapeFlag, children } = vnode;
1798
- if (shapeFlag & 16) {
1799
- return children[0];
1800
- }
1801
- if (shapeFlag & 32 && shared.isFunction(children.default)) {
1802
- return children.default();
1793
+ if (children) {
1794
+ if (shapeFlag & 16) {
1795
+ return children[0];
1796
+ }
1797
+ if (shapeFlag & 32 && shared.isFunction(children.default)) {
1798
+ return children.default();
1799
+ }
1803
1800
  }
1804
1801
  }
1805
1802
  function setTransitionHooks(vnode, hooks) {
@@ -2105,7 +2102,7 @@ const KeepAliveImpl = {
2105
2102
  return () => {
2106
2103
  pendingCacheKey = null;
2107
2104
  if (!slots.default) {
2108
- return current = null;
2105
+ return null;
2109
2106
  }
2110
2107
  const children = slots.default();
2111
2108
  const rawVNode = children[0];
@@ -3079,7 +3076,7 @@ function hasInjectionContext() {
3079
3076
  return !!(currentInstance || currentRenderingInstance || currentApp);
3080
3077
  }
3081
3078
 
3082
- const internalObjectProto = /* @__PURE__ */ Object.create(null);
3079
+ const internalObjectProto = {};
3083
3080
  const createInternalObject = () => Object.create(internalObjectProto);
3084
3081
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
3085
3082
 
@@ -3399,7 +3396,7 @@ const initSlots = (instance, children) => {
3399
3396
  const type = children._;
3400
3397
  if (type) {
3401
3398
  shared.extend(slots, children);
3402
- shared.def(slots, "_", type);
3399
+ shared.def(slots, "_", type, true);
3403
3400
  } else {
3404
3401
  normalizeObjectSlots(children, slots);
3405
3402
  }
@@ -5738,8 +5735,8 @@ function guardReactiveProps(props) {
5738
5735
  return null;
5739
5736
  return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props;
5740
5737
  }
5741
- function cloneVNode(vnode, extraProps, mergeRef = false) {
5742
- const { props, ref, patchFlag, children } = vnode;
5738
+ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
5739
+ const { props, ref, patchFlag, children, transition } = vnode;
5743
5740
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
5744
5741
  const cloned = {
5745
5742
  __v_isVNode: true,
@@ -5769,7 +5766,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
5769
5766
  dynamicChildren: vnode.dynamicChildren,
5770
5767
  appContext: vnode.appContext,
5771
5768
  dirs: vnode.dirs,
5772
- transition: vnode.transition,
5769
+ transition,
5773
5770
  // These should technically only be non-null on mounted VNodes. However,
5774
5771
  // they *should* be copied for kept-alive vnodes. So we just always copy
5775
5772
  // them since them being non-null during a mount doesn't affect the logic as
@@ -5783,6 +5780,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
5783
5780
  ctx: vnode.ctx,
5784
5781
  ce: vnode.ce
5785
5782
  };
5783
+ if (transition && cloneTransition) {
5784
+ cloned.transition = transition.clone(cloned);
5785
+ }
5786
5786
  return cloned;
5787
5787
  }
5788
5788
  function createTextVNode(text = " ", flag = 0) {
@@ -6278,7 +6278,7 @@ function isMemoSame(cached, memo) {
6278
6278
  return true;
6279
6279
  }
6280
6280
 
6281
- const version = "3.4.24";
6281
+ const version = "3.4.26";
6282
6282
  const warn$1 = shared.NOOP;
6283
6283
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6284
6284
  const devtools = void 0;
@@ -1000,7 +1000,7 @@ export declare function createBaseVNode(type: VNodeTypes | ClassComponent | type
1000
1000
  export declare const createVNode: typeof _createVNode;
1001
1001
  declare function _createVNode(type: VNodeTypes | ClassComponent | typeof NULL_DYNAMIC_COMPONENT, props?: (Data & VNodeProps) | null, children?: unknown, patchFlag?: number, dynamicProps?: string[] | null, isBlockNode?: boolean): VNode;
1002
1002
  export declare function guardReactiveProps(props: (Data & VNodeProps) | null): (Data & VNodeProps) | null;
1003
- export declare function cloneVNode<T, U>(vnode: VNode<T, U>, extraProps?: (Data & VNodeProps) | null, mergeRef?: boolean): VNode<T, U>;
1003
+ export declare function cloneVNode<T, U>(vnode: VNode<T, U>, extraProps?: (Data & VNodeProps) | null, mergeRef?: boolean, cloneTransition?: boolean): VNode<T, U>;
1004
1004
  /**
1005
1005
  * @private
1006
1006
  */
@@ -1603,7 +1603,8 @@ export type CompatVue = Pick<App, 'version' | 'component' | 'directive'> & {
1603
1603
  version: string;
1604
1604
  config: AppConfig & LegacyConfig;
1605
1605
  nextTick: typeof nextTick;
1606
- use(plugin: Plugin, ...options: any[]): CompatVue;
1606
+ use<Options extends unknown[]>(plugin: Plugin<Options>, ...options: Options): CompatVue;
1607
+ use<Options>(plugin: Plugin<Options>, options: Options): CompatVue;
1607
1608
  mixin(mixin: ComponentOptions): CompatVue;
1608
1609
  component(name: string): Component | undefined;
1609
1610
  component(name: string, component: Component): CompatVue;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.4.24
2
+ * @vue/runtime-core v3.4.26
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -906,7 +906,7 @@ function renderComponentRoot(instance) {
906
906
  !!(process.env.NODE_ENV !== "production") ? {
907
907
  get attrs() {
908
908
  markAttrsAccessed();
909
- return attrs;
909
+ return shallowReadonly(attrs);
910
910
  },
911
911
  slots,
912
912
  emit
@@ -939,7 +939,7 @@ function renderComponentRoot(instance) {
939
939
  propsOptions
940
940
  );
941
941
  }
942
- root = cloneVNode(root, fallthroughAttrs);
942
+ root = cloneVNode(root, fallthroughAttrs, false, true);
943
943
  } else if (!!(process.env.NODE_ENV !== "production") && !accessedAttrs && root.type !== Comment) {
944
944
  const allAttrs = Object.keys(attrs);
945
945
  const eventAttrs = [];
@@ -973,7 +973,7 @@ function renderComponentRoot(instance) {
973
973
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
974
974
  );
975
975
  }
976
- root = cloneVNode(root);
976
+ root = cloneVNode(root, null, false, true);
977
977
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
978
978
  }
979
979
  if (vnode.transition) {
@@ -1464,7 +1464,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1464
1464
  let parentSuspenseId;
1465
1465
  const isSuspensible = isVNodeSuspensible(vnode);
1466
1466
  if (isSuspensible) {
1467
- if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
1467
+ if (parentSuspense && parentSuspense.pendingBranch) {
1468
1468
  parentSuspenseId = parentSuspense.pendingId;
1469
1469
  parentSuspense.deps++;
1470
1470
  }
@@ -1776,8 +1776,8 @@ function setActiveBranch(suspense, branch) {
1776
1776
  }
1777
1777
  }
1778
1778
  function isVNodeSuspensible(vnode) {
1779
- var _a;
1780
- return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
1779
+ const suspensible = vnode.props && vnode.props.suspensible;
1780
+ return suspensible != null && suspensible !== false;
1781
1781
  }
1782
1782
 
1783
1783
  const ssrContextKey = Symbol.for("v-scx");
@@ -2031,34 +2031,29 @@ function createPathGetter(ctx, path) {
2031
2031
  return cur;
2032
2032
  };
2033
2033
  }
2034
- function traverse(value, depth, currentDepth = 0, seen) {
2035
- if (!isObject(value) || value["__v_skip"]) {
2034
+ function traverse(value, depth = Infinity, seen) {
2035
+ if (depth <= 0 || !isObject(value) || value["__v_skip"]) {
2036
2036
  return value;
2037
2037
  }
2038
- if (depth && depth > 0) {
2039
- if (currentDepth >= depth) {
2040
- return value;
2041
- }
2042
- currentDepth++;
2043
- }
2044
2038
  seen = seen || /* @__PURE__ */ new Set();
2045
2039
  if (seen.has(value)) {
2046
2040
  return value;
2047
2041
  }
2048
2042
  seen.add(value);
2043
+ depth--;
2049
2044
  if (isRef(value)) {
2050
- traverse(value.value, depth, currentDepth, seen);
2045
+ traverse(value.value, depth, seen);
2051
2046
  } else if (isArray(value)) {
2052
2047
  for (let i = 0; i < value.length; i++) {
2053
- traverse(value[i], depth, currentDepth, seen);
2048
+ traverse(value[i], depth, seen);
2054
2049
  }
2055
2050
  } else if (isSet(value) || isMap(value)) {
2056
2051
  value.forEach((v) => {
2057
- traverse(v, depth, currentDepth, seen);
2052
+ traverse(v, depth, seen);
2058
2053
  });
2059
2054
  } else if (isPlainObject(value)) {
2060
2055
  for (const key in value) {
2061
- traverse(value[key], depth, currentDepth, seen);
2056
+ traverse(value[key], depth, seen);
2062
2057
  }
2063
2058
  }
2064
2059
  return value;
@@ -2218,7 +2213,7 @@ const BaseTransitionImpl = {
2218
2213
  instance
2219
2214
  );
2220
2215
  setTransitionHooks(oldInnerChild, leavingHooks);
2221
- if (mode === "out-in") {
2216
+ if (mode === "out-in" && innerChild.type !== Comment) {
2222
2217
  state.isLeaving = true;
2223
2218
  leavingHooks.afterLeave = () => {
2224
2219
  state.isLeaving = false;
@@ -2410,11 +2405,13 @@ function getKeepAliveChild(vnode) {
2410
2405
  return vnode.component.subTree;
2411
2406
  }
2412
2407
  const { shapeFlag, children } = vnode;
2413
- if (shapeFlag & 16) {
2414
- return children[0];
2415
- }
2416
- if (shapeFlag & 32 && isFunction(children.default)) {
2417
- return children.default();
2408
+ if (children) {
2409
+ if (shapeFlag & 16) {
2410
+ return children[0];
2411
+ }
2412
+ if (shapeFlag & 32 && isFunction(children.default)) {
2413
+ return children.default();
2414
+ }
2418
2415
  }
2419
2416
  }
2420
2417
  function setTransitionHooks(vnode, hooks) {
@@ -2737,7 +2734,7 @@ const KeepAliveImpl = {
2737
2734
  return () => {
2738
2735
  pendingCacheKey = null;
2739
2736
  if (!slots.default) {
2740
- return current = null;
2737
+ return null;
2741
2738
  }
2742
2739
  const children = slots.default();
2743
2740
  const rawVNode = children[0];
@@ -4024,7 +4021,7 @@ function hasInjectionContext() {
4024
4021
  return !!(currentInstance || currentRenderingInstance || currentApp);
4025
4022
  }
4026
4023
 
4027
- const internalObjectProto = /* @__PURE__ */ Object.create(null);
4024
+ const internalObjectProto = {};
4028
4025
  const createInternalObject = () => Object.create(internalObjectProto);
4029
4026
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
4030
4027
 
@@ -4482,7 +4479,7 @@ const initSlots = (instance, children) => {
4482
4479
  const type = children._;
4483
4480
  if (type) {
4484
4481
  extend(slots, children);
4485
- def(slots, "_", type);
4482
+ def(slots, "_", type, true);
4486
4483
  } else {
4487
4484
  normalizeObjectSlots(children, slots);
4488
4485
  }
@@ -7277,8 +7274,8 @@ function guardReactiveProps(props) {
7277
7274
  return null;
7278
7275
  return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
7279
7276
  }
7280
- function cloneVNode(vnode, extraProps, mergeRef = false) {
7281
- const { props, ref, patchFlag, children } = vnode;
7277
+ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
7278
+ const { props, ref, patchFlag, children, transition } = vnode;
7282
7279
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
7283
7280
  const cloned = {
7284
7281
  __v_isVNode: true,
@@ -7308,7 +7305,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
7308
7305
  dynamicChildren: vnode.dynamicChildren,
7309
7306
  appContext: vnode.appContext,
7310
7307
  dirs: vnode.dirs,
7311
- transition: vnode.transition,
7308
+ transition,
7312
7309
  // These should technically only be non-null on mounted VNodes. However,
7313
7310
  // they *should* be copied for kept-alive vnodes. So we just always copy
7314
7311
  // them since them being non-null during a mount doesn't affect the logic as
@@ -7322,6 +7319,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
7322
7319
  ctx: vnode.ctx,
7323
7320
  ce: vnode.ce
7324
7321
  };
7322
+ if (transition && cloneTransition) {
7323
+ cloned.transition = transition.clone(cloned);
7324
+ }
7325
7325
  return cloned;
7326
7326
  }
7327
7327
  function deepCloneVNode(vnode) {
@@ -8160,7 +8160,7 @@ function isMemoSame(cached, memo) {
8160
8160
  return true;
8161
8161
  }
8162
8162
 
8163
- const version = "3.4.24";
8163
+ const version = "3.4.26";
8164
8164
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8165
8165
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8166
8166
  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.4.24",
3
+ "version": "3.4.26",
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.4.24",
50
- "@vue/reactivity": "3.4.24"
49
+ "@vue/shared": "3.4.26",
50
+ "@vue/reactivity": "3.4.26"
51
51
  }
52
52
  }