@vue/runtime-core 3.5.40 → 3.5.41

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.40
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -328,7 +328,9 @@ function queuePostFlushCb(cb) {
328
328
  cb.flags |= 1;
329
329
  }
330
330
  } else {
331
- pendingPostFlushCbs.push(...cb);
331
+ for (let i = 0; i < cb.length; i++) {
332
+ pendingPostFlushCbs.push(cb[i]);
333
+ }
332
334
  }
333
335
  queueFlush();
334
336
  }
@@ -364,7 +366,9 @@ function flushPostFlushCbs(seen) {
364
366
  );
365
367
  pendingPostFlushCbs.length = 0;
366
368
  if (activePostFlushCbs) {
367
- activePostFlushCbs.push(...deduped);
369
+ for (let i = 0; i < deduped.length; i++) {
370
+ activePostFlushCbs.push(deduped[i]);
371
+ }
368
372
  return;
369
373
  }
370
374
  activePostFlushCbs = deduped;
@@ -1653,7 +1657,11 @@ function getInnerChild$1(vnode) {
1653
1657
  function setTransitionHooks(vnode, hooks) {
1654
1658
  if (vnode.shapeFlag & 6 && vnode.component) {
1655
1659
  vnode.transition = hooks;
1656
- setTransitionHooks(vnode.component.subTree, hooks);
1660
+ const subTree = vnode.component.subTree;
1661
+ setTransitionHooks(
1662
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1663
+ hooks
1664
+ );
1657
1665
  } else if (vnode.shapeFlag & 128) {
1658
1666
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1659
1667
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -2193,6 +2201,9 @@ Server rendered element contains more child nodes than client vdom.`
2193
2201
  }
2194
2202
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2195
2203
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2204
+ if (isUnchangedResourceProp(el, key, props[key])) {
2205
+ continue;
2206
+ }
2196
2207
  patchProp(el, key, null, props[key], namespace, parentComponent);
2197
2208
  }
2198
2209
  }
@@ -2375,6 +2386,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2375
2386
  };
2376
2387
  return [hydrate, hydrateNode];
2377
2388
  }
2389
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2390
+ function isUnchangedResourceProp(el, key, clientValue) {
2391
+ if (!resourceProps.has(key)) {
2392
+ return false;
2393
+ }
2394
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2395
+ }
2378
2396
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2379
2397
  let mismatchType;
2380
2398
  let mismatchKey;
@@ -2412,7 +2430,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2412
2430
  mismatchKey = "style";
2413
2431
  }
2414
2432
  } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) {
2415
- if (shared.isBooleanAttr(key)) {
2433
+ if (key === "hidden") {
2434
+ actual = normalizeHiddenValue(el.getAttribute(key));
2435
+ expected = normalizeHiddenValue(clientValue);
2436
+ } else if (shared.isBooleanAttr(key)) {
2416
2437
  actual = el.hasAttribute(key);
2417
2438
  expected = shared.includeBooleanAttr(clientValue);
2418
2439
  } else if (clientValue == null) {
@@ -2448,6 +2469,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2448
2469
  }
2449
2470
  return false;
2450
2471
  }
2472
+ function normalizeHiddenValue(value) {
2473
+ if (!shared.isRenderableAttrValue(value)) {
2474
+ return false;
2475
+ }
2476
+ if (shared.isString(value)) {
2477
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2478
+ }
2479
+ return shared.includeBooleanAttr(value) ? "" : false;
2480
+ }
2451
2481
  function toClassSet(str) {
2452
2482
  return new Set(str.trim().split(/\s+/));
2453
2483
  }
@@ -3264,7 +3294,8 @@ function createSlots(slots, dynamicSlots) {
3264
3294
  return slots;
3265
3295
  }
3266
3296
 
3267
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
3297
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3298
+ if (props == null) props = {};
3268
3299
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3269
3300
  const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
3270
3301
  const hasProps = Object.keys(slotProps).length > 0;
@@ -4688,12 +4719,13 @@ function renderComponentRoot(instance) {
4688
4719
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4689
4720
  }
4690
4721
  if (vnode.transition) {
4691
- if (!isElementRoot(root)) {
4722
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4723
+ if (!isElementRoot(child)) {
4692
4724
  warn$1(
4693
4725
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4694
4726
  );
4695
4727
  }
4696
- setTransitionHooks(root, vnode.transition);
4728
+ setTransitionHooks(child, vnode.transition);
4697
4729
  }
4698
4730
  if (setRoot) {
4699
4731
  setRoot(root);
@@ -7341,7 +7373,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7341
7373
  let hasUnresolvedAncestor = false;
7342
7374
  while (parent) {
7343
7375
  if (parent.pendingBranch) {
7344
- parent.effects.push(...effects);
7376
+ for (let i = 0; i < effects.length; i++) {
7377
+ parent.effects.push(effects[i]);
7378
+ }
7345
7379
  hasUnresolvedAncestor = true;
7346
7380
  break;
7347
7381
  }
@@ -7706,6 +7740,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7706
7740
  if (vnode.key !== vnode.key) {
7707
7741
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7708
7742
  }
7743
+ if (props && vnode.shapeFlag & 1) {
7744
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7745
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7746
+ warn$1(
7747
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7748
+ );
7749
+ }
7750
+ }
7709
7751
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7710
7752
  !isBlockNode && // has current parent block
7711
7753
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7719,6 +7761,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7719
7761
  }
7720
7762
  return vnode;
7721
7763
  }
7764
+ function hasContentChildren(children) {
7765
+ if (shared.isString(children)) return children !== "";
7766
+ if (shared.isArray(children)) return children.length > 0;
7767
+ return false;
7768
+ }
7722
7769
  const createVNode = createVNodeWithArgsTransform ;
7723
7770
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7724
7771
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8167,7 +8214,12 @@ function setupStatefulComponent(instance, isSSR) {
8167
8214
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8168
8215
  if (isSSR) {
8169
8216
  return setupResult.then((resolvedResult) => {
8170
- handleSetupResult(instance, resolvedResult, isSSR);
8217
+ setInSSRSetupState(true);
8218
+ try {
8219
+ handleSetupResult(instance, resolvedResult, isSSR);
8220
+ } finally {
8221
+ setInSSRSetupState(false);
8222
+ }
8171
8223
  }).catch((e) => {
8172
8224
  handleError(e, instance, 0);
8173
8225
  });
@@ -8633,7 +8685,7 @@ function isMemoSame(cached, memo) {
8633
8685
  return true;
8634
8686
  }
8635
8687
 
8636
- const version = "3.5.40";
8688
+ const version = "3.5.41";
8637
8689
  const warn = warn$1 ;
8638
8690
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8639
8691
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.40
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -199,7 +199,9 @@ function queuePostFlushCb(cb) {
199
199
  cb.flags |= 1;
200
200
  }
201
201
  } else {
202
- pendingPostFlushCbs.push(...cb);
202
+ for (let i = 0; i < cb.length; i++) {
203
+ pendingPostFlushCbs.push(cb[i]);
204
+ }
203
205
  }
204
206
  queueFlush();
205
207
  }
@@ -229,7 +231,9 @@ function flushPostFlushCbs(seen) {
229
231
  );
230
232
  pendingPostFlushCbs.length = 0;
231
233
  if (activePostFlushCbs) {
232
- activePostFlushCbs.push(...deduped);
234
+ for (let i = 0; i < deduped.length; i++) {
235
+ activePostFlushCbs.push(deduped[i]);
236
+ }
233
237
  return;
234
238
  }
235
239
  activePostFlushCbs = deduped;
@@ -1187,7 +1191,11 @@ function getInnerChild$1(vnode) {
1187
1191
  function setTransitionHooks(vnode, hooks) {
1188
1192
  if (vnode.shapeFlag & 6 && vnode.component) {
1189
1193
  vnode.transition = hooks;
1190
- setTransitionHooks(vnode.component.subTree, hooks);
1194
+ const subTree = vnode.component.subTree;
1195
+ setTransitionHooks(
1196
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1197
+ hooks
1198
+ );
1191
1199
  } else if (vnode.shapeFlag & 128) {
1192
1200
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1193
1201
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -1655,6 +1663,9 @@ function createHydrationFunctions(rendererInternals) {
1655
1663
  for (const key in props) {
1656
1664
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
1657
1665
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
1666
+ if (isUnchangedResourceProp(el, key, props[key])) {
1667
+ continue;
1668
+ }
1658
1669
  patchProp(el, key, null, props[key], namespace, parentComponent);
1659
1670
  }
1660
1671
  }
@@ -1833,6 +1844,13 @@ function createHydrationFunctions(rendererInternals) {
1833
1844
  };
1834
1845
  return [hydrate, hydrateNode];
1835
1846
  }
1847
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
1848
+ function isUnchangedResourceProp(el, key, clientValue) {
1849
+ if (!resourceProps.has(key)) {
1850
+ return false;
1851
+ }
1852
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
1853
+ }
1836
1854
  const allowMismatchAttr = "data-allow-mismatch";
1837
1855
  const MismatchTypeString = {
1838
1856
  [0 /* TEXT */]: "text",
@@ -2555,7 +2573,8 @@ function createSlots(slots, dynamicSlots) {
2555
2573
  return slots;
2556
2574
  }
2557
2575
 
2558
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
2576
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
2577
+ if (props == null) props = {};
2559
2578
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
2560
2579
  const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
2561
2580
  const hasProps = Object.keys(slotProps).length > 0;
@@ -3591,7 +3610,8 @@ function renderComponentRoot(instance) {
3591
3610
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
3592
3611
  }
3593
3612
  if (vnode.transition) {
3594
- setTransitionHooks(root, vnode.transition);
3613
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
3614
+ setTransitionHooks(child, vnode.transition);
3595
3615
  }
3596
3616
  {
3597
3617
  result = root;
@@ -5851,7 +5871,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5851
5871
  let hasUnresolvedAncestor = false;
5852
5872
  while (parent) {
5853
5873
  if (parent.pendingBranch) {
5854
- parent.effects.push(...effects);
5874
+ for (let i = 0; i < effects.length; i++) {
5875
+ parent.effects.push(effects[i]);
5876
+ }
5855
5877
  hasUnresolvedAncestor = true;
5856
5878
  break;
5857
5879
  }
@@ -6598,7 +6620,12 @@ function setupStatefulComponent(instance, isSSR) {
6598
6620
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
6599
6621
  if (isSSR) {
6600
6622
  return setupResult.then((resolvedResult) => {
6601
- handleSetupResult(instance, resolvedResult, isSSR);
6623
+ setInSSRSetupState(true);
6624
+ try {
6625
+ handleSetupResult(instance, resolvedResult, isSSR);
6626
+ } finally {
6627
+ setInSSRSetupState(false);
6628
+ }
6602
6629
  }).catch((e) => {
6603
6630
  handleError(e, instance, 0);
6604
6631
  });
@@ -6779,7 +6806,7 @@ function isMemoSame(cached, memo) {
6779
6806
  return true;
6780
6807
  }
6781
6808
 
6782
- const version = "3.5.40";
6809
+ const version = "3.5.41";
6783
6810
  const warn$1 = shared.NOOP;
6784
6811
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6785
6812
  const devtools = void 0;
@@ -331,17 +331,17 @@ type DefineModelDefault<T> = InferDefault<Data, T>;
331
331
  * const count = defineModel<number>('count', { default: 0 })
332
332
  * ```
333
333
  */
334
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: ({
334
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: DefineModelRuntimeOptions<T, G, S> & ({
335
335
  default: DefineModelDefault<T>;
336
336
  } | {
337
337
  required: true;
338
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
338
+ })): ModelRef<T, M, G, S>;
339
339
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
340
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: ({
340
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelRuntimeOptions<T, G, S> & ({
341
341
  default: DefineModelDefault<T>;
342
342
  } | {
343
343
  required: true;
344
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
344
+ })): ModelRef<T, M, G, S>;
345
345
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
346
346
  type NotUndefined<T> = T extends undefined ? never : T;
347
347
  type MappedOmit<T, K extends keyof any> = {
@@ -1717,7 +1717,7 @@ export declare function toHandlers(obj: Record<string, any>, preserveCaseIfNeces
1717
1717
  * Compiler runtime helper for rendering `<slot/>`
1718
1718
  * @private
1719
1719
  */
1720
- export declare function renderSlot(slots: Slots, name: string, props?: Data, fallback?: () => VNodeArrayChildren, noSlotted?: boolean, branchKey?: PropertyKey): VNode;
1720
+ export declare function renderSlot(slots: Slots, name: string, props?: Data | null, fallback?: () => VNodeArrayChildren, noSlotted?: boolean, branchKey?: PropertyKey): VNode;
1721
1721
 
1722
1722
  type SSRSlot = (...args: any[]) => VNode[] | undefined;
1723
1723
  interface CompiledSlotDescriptor {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.40
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -331,7 +331,9 @@ function queuePostFlushCb(cb) {
331
331
  cb.flags |= 1;
332
332
  }
333
333
  } else {
334
- pendingPostFlushCbs.push(...cb);
334
+ for (let i = 0; i < cb.length; i++) {
335
+ pendingPostFlushCbs.push(cb[i]);
336
+ }
335
337
  }
336
338
  queueFlush();
337
339
  }
@@ -367,7 +369,9 @@ function flushPostFlushCbs(seen) {
367
369
  );
368
370
  pendingPostFlushCbs.length = 0;
369
371
  if (activePostFlushCbs) {
370
- activePostFlushCbs.push(...deduped);
372
+ for (let i = 0; i < deduped.length; i++) {
373
+ activePostFlushCbs.push(deduped[i]);
374
+ }
371
375
  return;
372
376
  }
373
377
  activePostFlushCbs = deduped;
@@ -1657,7 +1661,11 @@ function getInnerChild$1(vnode) {
1657
1661
  function setTransitionHooks(vnode, hooks) {
1658
1662
  if (vnode.shapeFlag & 6 && vnode.component) {
1659
1663
  vnode.transition = hooks;
1660
- setTransitionHooks(vnode.component.subTree, hooks);
1664
+ const subTree = vnode.component.subTree;
1665
+ setTransitionHooks(
1666
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1667
+ hooks
1668
+ );
1661
1669
  } else if (vnode.shapeFlag & 128) {
1662
1670
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1663
1671
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -2198,6 +2206,9 @@ Server rendered element contains more child nodes than client vdom.`
2198
2206
  }
2199
2207
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2200
2208
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2209
+ if (isUnchangedResourceProp(el, key, props[key])) {
2210
+ continue;
2211
+ }
2201
2212
  patchProp(el, key, null, props[key], namespace, parentComponent);
2202
2213
  }
2203
2214
  }
@@ -2391,6 +2402,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2391
2402
  };
2392
2403
  return [hydrate, hydrateNode];
2393
2404
  }
2405
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2406
+ function isUnchangedResourceProp(el, key, clientValue) {
2407
+ if (!resourceProps.has(key)) {
2408
+ return false;
2409
+ }
2410
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2411
+ }
2394
2412
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2395
2413
  let mismatchType;
2396
2414
  let mismatchKey;
@@ -2428,7 +2446,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2428
2446
  mismatchKey = "style";
2429
2447
  }
2430
2448
  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
2431
- if (isBooleanAttr(key)) {
2449
+ if (key === "hidden") {
2450
+ actual = normalizeHiddenValue(el.getAttribute(key));
2451
+ expected = normalizeHiddenValue(clientValue);
2452
+ } else if (isBooleanAttr(key)) {
2432
2453
  actual = el.hasAttribute(key);
2433
2454
  expected = includeBooleanAttr(clientValue);
2434
2455
  } else if (clientValue == null) {
@@ -2464,6 +2485,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2464
2485
  }
2465
2486
  return false;
2466
2487
  }
2488
+ function normalizeHiddenValue(value) {
2489
+ if (!isRenderableAttrValue(value)) {
2490
+ return false;
2491
+ }
2492
+ if (isString(value)) {
2493
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2494
+ }
2495
+ return includeBooleanAttr(value) ? "" : false;
2496
+ }
2467
2497
  function toClassSet(str) {
2468
2498
  return new Set(str.trim().split(/\s+/));
2469
2499
  }
@@ -3283,7 +3313,8 @@ function createSlots(slots, dynamicSlots) {
3283
3313
  return slots;
3284
3314
  }
3285
3315
 
3286
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
3316
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3317
+ if (props == null) props = {};
3287
3318
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3288
3319
  const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
3289
3320
  const hasProps = Object.keys(slotProps).length > 0;
@@ -4711,12 +4742,13 @@ function renderComponentRoot(instance) {
4711
4742
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4712
4743
  }
4713
4744
  if (vnode.transition) {
4714
- if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) {
4745
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4746
+ if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(child)) {
4715
4747
  warn$1(
4716
4748
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4717
4749
  );
4718
4750
  }
4719
- setTransitionHooks(root, vnode.transition);
4751
+ setTransitionHooks(child, vnode.transition);
4720
4752
  }
4721
4753
  if (!!(process.env.NODE_ENV !== "production") && setRoot) {
4722
4754
  setRoot(root);
@@ -7402,7 +7434,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7402
7434
  let hasUnresolvedAncestor = false;
7403
7435
  while (parent) {
7404
7436
  if (parent.pendingBranch) {
7405
- parent.effects.push(...effects);
7437
+ for (let i = 0; i < effects.length; i++) {
7438
+ parent.effects.push(effects[i]);
7439
+ }
7406
7440
  hasUnresolvedAncestor = true;
7407
7441
  break;
7408
7442
  }
@@ -7767,6 +7801,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7767
7801
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) {
7768
7802
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7769
7803
  }
7804
+ if (!!(process.env.NODE_ENV !== "production") && props && vnode.shapeFlag & 1) {
7805
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7806
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7807
+ warn$1(
7808
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7809
+ );
7810
+ }
7811
+ }
7770
7812
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7771
7813
  !isBlockNode && // has current parent block
7772
7814
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7780,6 +7822,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7780
7822
  }
7781
7823
  return vnode;
7782
7824
  }
7825
+ function hasContentChildren(children) {
7826
+ if (isString(children)) return children !== "";
7827
+ if (isArray(children)) return children.length > 0;
7828
+ return false;
7829
+ }
7783
7830
  const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode;
7784
7831
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7785
7832
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8230,7 +8277,12 @@ function setupStatefulComponent(instance, isSSR) {
8230
8277
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8231
8278
  if (isSSR) {
8232
8279
  return setupResult.then((resolvedResult) => {
8233
- handleSetupResult(instance, resolvedResult, isSSR);
8280
+ setInSSRSetupState(true);
8281
+ try {
8282
+ handleSetupResult(instance, resolvedResult, isSSR);
8283
+ } finally {
8284
+ setInSSRSetupState(false);
8285
+ }
8234
8286
  }).catch((e) => {
8235
8287
  handleError(e, instance, 0);
8236
8288
  });
@@ -8708,7 +8760,7 @@ function isMemoSame(cached, memo) {
8708
8760
  return true;
8709
8761
  }
8710
8762
 
8711
- const version = "3.5.40";
8763
+ const version = "3.5.41";
8712
8764
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8713
8765
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8714
8766
  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.40",
3
+ "version": "3.5.41",
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.40",
50
- "@vue/reactivity": "3.5.40"
49
+ "@vue/shared": "3.5.41",
50
+ "@vue/reactivity": "3.5.41"
51
51
  }
52
52
  }