@vue/runtime-core 3.4.0-alpha.3 → 3.4.0-beta.1

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.
@@ -12,6 +12,38 @@ function assertNumber(val, type) {
12
12
  return;
13
13
  }
14
14
 
15
+ const ErrorCodes = {
16
+ "SETUP_FUNCTION": 0,
17
+ "0": "SETUP_FUNCTION",
18
+ "RENDER_FUNCTION": 1,
19
+ "1": "RENDER_FUNCTION",
20
+ "WATCH_GETTER": 2,
21
+ "2": "WATCH_GETTER",
22
+ "WATCH_CALLBACK": 3,
23
+ "3": "WATCH_CALLBACK",
24
+ "WATCH_CLEANUP": 4,
25
+ "4": "WATCH_CLEANUP",
26
+ "NATIVE_EVENT_HANDLER": 5,
27
+ "5": "NATIVE_EVENT_HANDLER",
28
+ "COMPONENT_EVENT_HANDLER": 6,
29
+ "6": "COMPONENT_EVENT_HANDLER",
30
+ "VNODE_HOOK": 7,
31
+ "7": "VNODE_HOOK",
32
+ "DIRECTIVE_HOOK": 8,
33
+ "8": "DIRECTIVE_HOOK",
34
+ "TRANSITION_HOOK": 9,
35
+ "9": "TRANSITION_HOOK",
36
+ "APP_ERROR_HANDLER": 10,
37
+ "10": "APP_ERROR_HANDLER",
38
+ "APP_WARN_HANDLER": 11,
39
+ "11": "APP_WARN_HANDLER",
40
+ "FUNCTION_REF": 12,
41
+ "12": "FUNCTION_REF",
42
+ "ASYNC_COMPONENT_LOADER": 13,
43
+ "13": "ASYNC_COMPONENT_LOADER",
44
+ "SCHEDULER": 14,
45
+ "14": "SCHEDULER"
46
+ };
15
47
  function callWithErrorHandling(fn, instance, type, args) {
16
48
  let res;
17
49
  try {
@@ -139,10 +171,13 @@ function queuePostFlushCb(cb) {
139
171
  }
140
172
  queueFlush();
141
173
  }
142
- function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {
174
+ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
143
175
  for (; i < queue.length; i++) {
144
176
  const cb = queue[i];
145
177
  if (cb && cb.pre) {
178
+ if (instance && cb.id !== instance.uid) {
179
+ continue;
180
+ }
146
181
  queue.splice(i, 1);
147
182
  i--;
148
183
  cb();
@@ -572,9 +607,17 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
572
607
  return false;
573
608
  }
574
609
  function updateHOCHostEl({ vnode, parent }, el) {
575
- while (parent && parent.subTree === vnode) {
576
- (vnode = parent.vnode).el = el;
577
- parent = parent.parent;
610
+ while (parent) {
611
+ const root = parent.subTree;
612
+ if (root.suspense && root.suspense.activeBranch === vnode) {
613
+ root.el = vnode.el;
614
+ }
615
+ if (root === vnode) {
616
+ (vnode = parent.vnode).el = el;
617
+ parent = parent.parent;
618
+ } else {
619
+ break;
620
+ }
578
621
  }
579
622
  }
580
623
 
@@ -625,6 +668,7 @@ function resolve(registry, name) {
625
668
  }
626
669
 
627
670
  const isSuspense = (type) => type.__isSuspense;
671
+ let suspenseId = 0;
628
672
  const SuspenseImpl = {
629
673
  name: "Suspense",
630
674
  // In order to make Suspense tree-shakable, we need to avoid importing it
@@ -632,7 +676,7 @@ const SuspenseImpl = {
632
676
  // on a vnode's type and calls the `process` method, passing in renderer
633
677
  // internals.
634
678
  __isSuspense: true,
635
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
679
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
636
680
  if (n1 == null) {
637
681
  mountSuspense(
638
682
  n2,
@@ -640,7 +684,7 @@ const SuspenseImpl = {
640
684
  anchor,
641
685
  parentComponent,
642
686
  parentSuspense,
643
- isSVG,
687
+ namespace,
644
688
  slotScopeIds,
645
689
  optimized,
646
690
  rendererInternals
@@ -652,7 +696,7 @@ const SuspenseImpl = {
652
696
  container,
653
697
  anchor,
654
698
  parentComponent,
655
- isSVG,
699
+ namespace,
656
700
  slotScopeIds,
657
701
  optimized,
658
702
  rendererInternals
@@ -670,7 +714,7 @@ function triggerEvent(vnode, name) {
670
714
  eventListener();
671
715
  }
672
716
  }
673
- function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
717
+ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
674
718
  const {
675
719
  p: patch,
676
720
  o: { createElement }
@@ -683,7 +727,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
683
727
  container,
684
728
  hiddenContainer,
685
729
  anchor,
686
- isSVG,
730
+ namespace,
687
731
  slotScopeIds,
688
732
  optimized,
689
733
  rendererInternals
@@ -695,7 +739,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
695
739
  null,
696
740
  parentComponent,
697
741
  suspense,
698
- isSVG,
742
+ namespace,
699
743
  slotScopeIds
700
744
  );
701
745
  if (suspense.deps > 0) {
@@ -709,7 +753,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
709
753
  parentComponent,
710
754
  null,
711
755
  // fallback tree will not have suspense context
712
- isSVG,
756
+ namespace,
713
757
  slotScopeIds
714
758
  );
715
759
  setActiveBranch(suspense, vnode.ssFallback);
@@ -717,7 +761,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
717
761
  suspense.resolve(false, true);
718
762
  }
719
763
  }
720
- function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
764
+ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
721
765
  const suspense = n2.suspense = n1.suspense;
722
766
  suspense.vnode = n2;
723
767
  n2.el = n1.el;
@@ -734,29 +778,31 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
734
778
  null,
735
779
  parentComponent,
736
780
  suspense,
737
- isSVG,
781
+ namespace,
738
782
  slotScopeIds,
739
783
  optimized
740
784
  );
741
785
  if (suspense.deps <= 0) {
742
786
  suspense.resolve();
743
787
  } else if (isInFallback) {
744
- patch(
745
- activeBranch,
746
- newFallback,
747
- container,
748
- anchor,
749
- parentComponent,
750
- null,
751
- // fallback tree will not have suspense context
752
- isSVG,
753
- slotScopeIds,
754
- optimized
755
- );
756
- setActiveBranch(suspense, newFallback);
788
+ if (!isHydrating) {
789
+ patch(
790
+ activeBranch,
791
+ newFallback,
792
+ container,
793
+ anchor,
794
+ parentComponent,
795
+ null,
796
+ // fallback tree will not have suspense context
797
+ namespace,
798
+ slotScopeIds,
799
+ optimized
800
+ );
801
+ setActiveBranch(suspense, newFallback);
802
+ }
757
803
  }
758
804
  } else {
759
- suspense.pendingId++;
805
+ suspense.pendingId = suspenseId++;
760
806
  if (isHydrating) {
761
807
  suspense.isHydrating = false;
762
808
  suspense.activeBranch = pendingBranch;
@@ -774,7 +820,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
774
820
  null,
775
821
  parentComponent,
776
822
  suspense,
777
- isSVG,
823
+ namespace,
778
824
  slotScopeIds,
779
825
  optimized
780
826
  );
@@ -789,7 +835,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
789
835
  parentComponent,
790
836
  null,
791
837
  // fallback tree will not have suspense context
792
- isSVG,
838
+ namespace,
793
839
  slotScopeIds,
794
840
  optimized
795
841
  );
@@ -803,7 +849,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
803
849
  anchor,
804
850
  parentComponent,
805
851
  suspense,
806
- isSVG,
852
+ namespace,
807
853
  slotScopeIds,
808
854
  optimized
809
855
  );
@@ -816,7 +862,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
816
862
  null,
817
863
  parentComponent,
818
864
  suspense,
819
- isSVG,
865
+ namespace,
820
866
  slotScopeIds,
821
867
  optimized
822
868
  );
@@ -834,7 +880,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
834
880
  anchor,
835
881
  parentComponent,
836
882
  suspense,
837
- isSVG,
883
+ namespace,
838
884
  slotScopeIds,
839
885
  optimized
840
886
  );
@@ -842,7 +888,11 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
842
888
  } else {
843
889
  triggerEvent(n2, "onPending");
844
890
  suspense.pendingBranch = newBranch;
845
- suspense.pendingId++;
891
+ if (newBranch.shapeFlag & 512) {
892
+ suspense.pendingId = newBranch.component.suspenseId;
893
+ } else {
894
+ suspense.pendingId = suspenseId++;
895
+ }
846
896
  patch(
847
897
  null,
848
898
  newBranch,
@@ -850,7 +900,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
850
900
  null,
851
901
  parentComponent,
852
902
  suspense,
853
- isSVG,
903
+ namespace,
854
904
  slotScopeIds,
855
905
  optimized
856
906
  );
@@ -871,7 +921,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
871
921
  }
872
922
  }
873
923
  }
874
- function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
924
+ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
875
925
  const {
876
926
  p: patch,
877
927
  m: move,
@@ -892,7 +942,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
892
942
  vnode,
893
943
  parent: parentSuspense,
894
944
  parentComponent,
895
- isSVG,
945
+ namespace,
896
946
  container,
897
947
  hiddenContainer,
898
948
  anchor,
@@ -901,7 +951,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
901
951
  timeout: typeof timeout === "number" ? timeout : -1,
902
952
  activeBranch: null,
903
953
  pendingBranch: null,
904
- isInFallback: true,
954
+ isInFallback: !isHydrating,
905
955
  isHydrating,
906
956
  isUnmounted: false,
907
957
  effects: [],
@@ -923,7 +973,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
923
973
  if (delayEnter) {
924
974
  activeBranch.transition.afterLeave = () => {
925
975
  if (pendingId === suspense.pendingId) {
926
- move(pendingBranch, container2, anchor2, 0);
976
+ move(
977
+ pendingBranch,
978
+ container2,
979
+ next(activeBranch),
980
+ 0
981
+ );
927
982
  queuePostFlushCb(effects);
928
983
  }
929
984
  };
@@ -968,7 +1023,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
968
1023
  if (!suspense.pendingBranch) {
969
1024
  return;
970
1025
  }
971
- const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;
1026
+ const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
972
1027
  triggerEvent(vnode2, "onFallback");
973
1028
  const anchor2 = next(activeBranch);
974
1029
  const mountFallback = () => {
@@ -983,7 +1038,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
983
1038
  parentComponent2,
984
1039
  null,
985
1040
  // fallback tree will not have suspense context
986
- isSVG2,
1041
+ namespace2,
987
1042
  slotScopeIds,
988
1043
  optimized
989
1044
  );
@@ -1043,7 +1098,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1043
1098
  // consider the comment placeholder case.
1044
1099
  hydratedEl ? null : next(instance.subTree),
1045
1100
  suspense,
1046
- isSVG,
1101
+ namespace,
1047
1102
  optimized
1048
1103
  );
1049
1104
  if (placeholder) {
@@ -1077,7 +1132,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1077
1132
  };
1078
1133
  return suspense;
1079
1134
  }
1080
- function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {
1135
+ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
1081
1136
  const suspense = vnode.suspense = createSuspenseBoundary(
1082
1137
  vnode,
1083
1138
  parentSuspense,
@@ -1085,7 +1140,7 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, sl
1085
1140
  node.parentNode,
1086
1141
  document.createElement("div"),
1087
1142
  null,
1088
- isSVG,
1143
+ namespace,
1089
1144
  slotScopeIds,
1090
1145
  optimized,
1091
1146
  rendererInternals,
@@ -1934,7 +1989,7 @@ const KeepAliveImpl = {
1934
1989
  }
1935
1990
  } = sharedContext;
1936
1991
  const storageContainer = createElement("div");
1937
- sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
1992
+ sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
1938
1993
  const instance2 = vnode.component;
1939
1994
  move(vnode, container, anchor, 0, parentSuspense);
1940
1995
  patch(
@@ -1944,7 +1999,7 @@ const KeepAliveImpl = {
1944
1999
  anchor,
1945
2000
  instance2,
1946
2001
  parentSuspense,
1947
- isSVG,
2002
+ namespace,
1948
2003
  vnode.slotScopeIds,
1949
2004
  optimized
1950
2005
  );
@@ -2454,31 +2509,26 @@ function useSlots() {
2454
2509
  function useAttrs() {
2455
2510
  return getContext().attrs;
2456
2511
  }
2457
- function useModel(props, name, options) {
2512
+ function useModel(props, name) {
2458
2513
  const i = getCurrentInstance();
2459
- if (options && options.local) {
2460
- const proxy = reactivity.ref(props[name]);
2461
- watch(
2462
- () => props[name],
2463
- (v) => proxy.value = v
2464
- );
2465
- watch(proxy, (value) => {
2466
- if (value !== props[name]) {
2467
- i.emit(`update:${name}`, value);
2468
- }
2469
- });
2470
- return proxy;
2471
- } else {
2472
- return {
2473
- __v_isRef: true,
2474
- get value() {
2475
- return props[name];
2476
- },
2477
- set value(value) {
2478
- i.emit(`update:${name}`, value);
2514
+ let localValue;
2515
+ watchSyncEffect(() => {
2516
+ localValue = props[name];
2517
+ });
2518
+ return reactivity.customRef((track, trigger) => ({
2519
+ get() {
2520
+ track();
2521
+ return localValue;
2522
+ },
2523
+ set(value) {
2524
+ const rawProps = i.vnode.props;
2525
+ if (!(rawProps && name in rawProps) && shared.hasChanged(value, localValue)) {
2526
+ localValue = value;
2527
+ trigger();
2479
2528
  }
2480
- };
2481
- }
2529
+ i.emit(`update:${name}`, value);
2530
+ }
2531
+ }));
2482
2532
  }
2483
2533
  function getContext() {
2484
2534
  const i = getCurrentInstance();
@@ -2956,14 +3006,19 @@ function createAppAPI(render, hydrate) {
2956
3006
  context.directives[name] = directive;
2957
3007
  return app;
2958
3008
  },
2959
- mount(rootContainer, isHydrate, isSVG) {
3009
+ mount(rootContainer, isHydrate, namespace) {
2960
3010
  if (!isMounted) {
2961
3011
  const vnode = createVNode(rootComponent, rootProps);
2962
3012
  vnode.appContext = context;
3013
+ if (namespace === true) {
3014
+ namespace = "svg";
3015
+ } else if (namespace === false) {
3016
+ namespace = void 0;
3017
+ }
2963
3018
  if (isHydrate && hydrate) {
2964
3019
  hydrate(vnode, rootContainer);
2965
3020
  } else {
2966
- render(vnode, rootContainer, isSVG);
3021
+ render(vnode, rootContainer, namespace);
2967
3022
  }
2968
3023
  isMounted = true;
2969
3024
  app._container = rootContainer;
@@ -3458,7 +3513,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3458
3513
  }
3459
3514
 
3460
3515
  let hasMismatch = false;
3461
- const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject";
3516
+ const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3517
+ const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3518
+ const getContainerType = (container) => {
3519
+ if (isSVGContainer(container))
3520
+ return "svg";
3521
+ if (isMathMLContainer(container))
3522
+ return "mathml";
3523
+ return void 0;
3524
+ };
3462
3525
  const isComment = (node) => node.nodeType === 8 /* COMMENT */;
3463
3526
  function createHydrationFunctions(rendererInternals) {
3464
3527
  const {
@@ -3603,7 +3666,7 @@ function createHydrationFunctions(rendererInternals) {
3603
3666
  null,
3604
3667
  parentComponent,
3605
3668
  parentSuspense,
3606
- isSVGContainer(container),
3669
+ getContainerType(container),
3607
3670
  optimized
3608
3671
  );
3609
3672
  if (isAsyncWrapper(vnode)) {
@@ -3638,7 +3701,7 @@ function createHydrationFunctions(rendererInternals) {
3638
3701
  vnode,
3639
3702
  parentComponent,
3640
3703
  parentSuspense,
3641
- isSVGContainer(parentNode(node)),
3704
+ getContainerType(parentNode(node)),
3642
3705
  slotScopeIds,
3643
3706
  optimized,
3644
3707
  rendererInternals,
@@ -3659,6 +3722,39 @@ function createHydrationFunctions(rendererInternals) {
3659
3722
  if (dirs) {
3660
3723
  invokeDirectiveHook(vnode, null, parentComponent, "created");
3661
3724
  }
3725
+ let needCallTransitionHooks = false;
3726
+ if (isTemplateNode(el)) {
3727
+ needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
3728
+ const content = el.content.firstChild;
3729
+ if (needCallTransitionHooks) {
3730
+ transition.beforeEnter(content);
3731
+ }
3732
+ replaceNode(content, el, parentComponent);
3733
+ vnode.el = el = content;
3734
+ }
3735
+ if (shapeFlag & 16 && // skip if element has innerHTML / textContent
3736
+ !(props && (props.innerHTML || props.textContent))) {
3737
+ let next = hydrateChildren(
3738
+ el.firstChild,
3739
+ vnode,
3740
+ el,
3741
+ parentComponent,
3742
+ parentSuspense,
3743
+ slotScopeIds,
3744
+ optimized
3745
+ );
3746
+ while (next) {
3747
+ hasMismatch = true;
3748
+ const cur = next;
3749
+ next = next.nextSibling;
3750
+ remove(cur);
3751
+ }
3752
+ } else if (shapeFlag & 8) {
3753
+ if (el.textContent !== vnode.children) {
3754
+ hasMismatch = true;
3755
+ el.textContent = vnode.children;
3756
+ }
3757
+ }
3662
3758
  if (props) {
3663
3759
  if (forcePatch || !optimized || patchFlag & (16 | 32)) {
3664
3760
  for (const key in props) {
@@ -3669,7 +3765,7 @@ function createHydrationFunctions(rendererInternals) {
3669
3765
  key,
3670
3766
  null,
3671
3767
  props[key],
3672
- false,
3768
+ void 0,
3673
3769
  void 0,
3674
3770
  parentComponent
3675
3771
  );
@@ -3681,7 +3777,7 @@ function createHydrationFunctions(rendererInternals) {
3681
3777
  "onClick",
3682
3778
  null,
3683
3779
  props.onClick,
3684
- false,
3780
+ void 0,
3685
3781
  void 0,
3686
3782
  parentComponent
3687
3783
  );
@@ -3691,16 +3787,6 @@ function createHydrationFunctions(rendererInternals) {
3691
3787
  if (vnodeHooks = props && props.onVnodeBeforeMount) {
3692
3788
  invokeVNodeHook(vnodeHooks, parentComponent, vnode);
3693
3789
  }
3694
- let needCallTransitionHooks = false;
3695
- if (isTemplateNode(el)) {
3696
- needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
3697
- const content = el.content.firstChild;
3698
- if (needCallTransitionHooks) {
3699
- transition.beforeEnter(content);
3700
- }
3701
- replaceNode(content, el, parentComponent);
3702
- vnode.el = el = content;
3703
- }
3704
3790
  if (dirs) {
3705
3791
  invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
3706
3792
  }
@@ -3711,29 +3797,6 @@ function createHydrationFunctions(rendererInternals) {
3711
3797
  dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
3712
3798
  }, parentSuspense);
3713
3799
  }
3714
- if (shapeFlag & 16 && // skip if element has innerHTML / textContent
3715
- !(props && (props.innerHTML || props.textContent))) {
3716
- let next = hydrateChildren(
3717
- el.firstChild,
3718
- vnode,
3719
- el,
3720
- parentComponent,
3721
- parentSuspense,
3722
- slotScopeIds,
3723
- optimized
3724
- );
3725
- while (next) {
3726
- hasMismatch = true;
3727
- const cur = next;
3728
- next = next.nextSibling;
3729
- remove(cur);
3730
- }
3731
- } else if (shapeFlag & 8) {
3732
- if (el.textContent !== vnode.children) {
3733
- hasMismatch = true;
3734
- el.textContent = vnode.children;
3735
- }
3736
- }
3737
3800
  }
3738
3801
  return el.nextSibling;
3739
3802
  };
@@ -3763,7 +3826,7 @@ function createHydrationFunctions(rendererInternals) {
3763
3826
  null,
3764
3827
  parentComponent,
3765
3828
  parentSuspense,
3766
- isSVGContainer(container),
3829
+ getContainerType(container),
3767
3830
  slotScopeIds
3768
3831
  );
3769
3832
  }
@@ -3817,7 +3880,7 @@ function createHydrationFunctions(rendererInternals) {
3817
3880
  next,
3818
3881
  parentComponent,
3819
3882
  parentSuspense,
3820
- isSVGContainer(container),
3883
+ getContainerType(container),
3821
3884
  slotScopeIds
3822
3885
  );
3823
3886
  return next;
@@ -3883,7 +3946,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3883
3946
  setScopeId: hostSetScopeId = shared.NOOP,
3884
3947
  insertStaticContent: hostInsertStaticContent
3885
3948
  } = options;
3886
- const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
3949
+ const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
3887
3950
  if (n1 === n2) {
3888
3951
  return;
3889
3952
  }
@@ -3906,7 +3969,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3906
3969
  break;
3907
3970
  case Static:
3908
3971
  if (n1 == null) {
3909
- mountStaticNode(n2, container, anchor, isSVG);
3972
+ mountStaticNode(n2, container, anchor, namespace);
3910
3973
  }
3911
3974
  break;
3912
3975
  case Fragment:
@@ -3917,7 +3980,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3917
3980
  anchor,
3918
3981
  parentComponent,
3919
3982
  parentSuspense,
3920
- isSVG,
3983
+ namespace,
3921
3984
  slotScopeIds,
3922
3985
  optimized
3923
3986
  );
@@ -3931,7 +3994,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3931
3994
  anchor,
3932
3995
  parentComponent,
3933
3996
  parentSuspense,
3934
- isSVG,
3997
+ namespace,
3935
3998
  slotScopeIds,
3936
3999
  optimized
3937
4000
  );
@@ -3943,7 +4006,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3943
4006
  anchor,
3944
4007
  parentComponent,
3945
4008
  parentSuspense,
3946
- isSVG,
4009
+ namespace,
3947
4010
  slotScopeIds,
3948
4011
  optimized
3949
4012
  );
@@ -3955,7 +4018,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3955
4018
  anchor,
3956
4019
  parentComponent,
3957
4020
  parentSuspense,
3958
- isSVG,
4021
+ namespace,
3959
4022
  slotScopeIds,
3960
4023
  optimized,
3961
4024
  internals
@@ -3968,7 +4031,7 @@ function baseCreateRenderer(options, createHydrationFns) {
3968
4031
  anchor,
3969
4032
  parentComponent,
3970
4033
  parentSuspense,
3971
- isSVG,
4034
+ namespace,
3972
4035
  slotScopeIds,
3973
4036
  optimized,
3974
4037
  internals
@@ -4004,12 +4067,12 @@ function baseCreateRenderer(options, createHydrationFns) {
4004
4067
  n2.el = n1.el;
4005
4068
  }
4006
4069
  };
4007
- const mountStaticNode = (n2, container, anchor, isSVG) => {
4070
+ const mountStaticNode = (n2, container, anchor, namespace) => {
4008
4071
  [n2.el, n2.anchor] = hostInsertStaticContent(
4009
4072
  n2.children,
4010
4073
  container,
4011
4074
  anchor,
4012
- isSVG,
4075
+ namespace,
4013
4076
  n2.el,
4014
4077
  n2.anchor
4015
4078
  );
@@ -4032,8 +4095,12 @@ function baseCreateRenderer(options, createHydrationFns) {
4032
4095
  }
4033
4096
  hostRemove(anchor);
4034
4097
  };
4035
- const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4036
- isSVG = isSVG || n2.type === "svg";
4098
+ const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4099
+ if (n2.type === "svg") {
4100
+ namespace = "svg";
4101
+ } else if (n2.type === "math") {
4102
+ namespace = "mathml";
4103
+ }
4037
4104
  if (n1 == null) {
4038
4105
  mountElement(
4039
4106
  n2,
@@ -4041,7 +4108,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4041
4108
  anchor,
4042
4109
  parentComponent,
4043
4110
  parentSuspense,
4044
- isSVG,
4111
+ namespace,
4045
4112
  slotScopeIds,
4046
4113
  optimized
4047
4114
  );
@@ -4051,19 +4118,19 @@ function baseCreateRenderer(options, createHydrationFns) {
4051
4118
  n2,
4052
4119
  parentComponent,
4053
4120
  parentSuspense,
4054
- isSVG,
4121
+ namespace,
4055
4122
  slotScopeIds,
4056
4123
  optimized
4057
4124
  );
4058
4125
  }
4059
4126
  };
4060
- const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4127
+ const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4061
4128
  let el;
4062
4129
  let vnodeHook;
4063
- const { type, props, shapeFlag, transition, dirs } = vnode;
4130
+ const { props, shapeFlag, transition, dirs } = vnode;
4064
4131
  el = vnode.el = hostCreateElement(
4065
4132
  vnode.type,
4066
- isSVG,
4133
+ namespace,
4067
4134
  props && props.is,
4068
4135
  props
4069
4136
  );
@@ -4076,7 +4143,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4076
4143
  null,
4077
4144
  parentComponent,
4078
4145
  parentSuspense,
4079
- isSVG && type !== "foreignObject",
4146
+ resolveChildrenNamespace(vnode, namespace),
4080
4147
  slotScopeIds,
4081
4148
  optimized
4082
4149
  );
@@ -4093,7 +4160,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4093
4160
  key,
4094
4161
  null,
4095
4162
  props[key],
4096
- isSVG,
4163
+ namespace,
4097
4164
  vnode.children,
4098
4165
  parentComponent,
4099
4166
  parentSuspense,
@@ -4102,7 +4169,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4102
4169
  }
4103
4170
  }
4104
4171
  if ("value" in props) {
4105
- hostPatchProp(el, "value", null, props.value);
4172
+ hostPatchProp(el, "value", null, props.value, namespace);
4106
4173
  }
4107
4174
  if (vnodeHook = props.onVnodeBeforeMount) {
4108
4175
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
@@ -4147,7 +4214,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4147
4214
  }
4148
4215
  }
4149
4216
  };
4150
- const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {
4217
+ const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
4151
4218
  for (let i = start; i < children.length; i++) {
4152
4219
  const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
4153
4220
  patch(
@@ -4157,13 +4224,13 @@ function baseCreateRenderer(options, createHydrationFns) {
4157
4224
  anchor,
4158
4225
  parentComponent,
4159
4226
  parentSuspense,
4160
- isSVG,
4227
+ namespace,
4161
4228
  slotScopeIds,
4162
4229
  optimized
4163
4230
  );
4164
4231
  }
4165
4232
  };
4166
- const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4233
+ const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4167
4234
  const el = n2.el = n1.el;
4168
4235
  let { patchFlag, dynamicChildren, dirs } = n2;
4169
4236
  patchFlag |= n1.patchFlag & 16;
@@ -4178,7 +4245,6 @@ function baseCreateRenderer(options, createHydrationFns) {
4178
4245
  invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
4179
4246
  }
4180
4247
  parentComponent && toggleRecurse(parentComponent, true);
4181
- const areChildrenSVG = isSVG && n2.type !== "foreignObject";
4182
4248
  if (dynamicChildren) {
4183
4249
  patchBlockChildren(
4184
4250
  n1.dynamicChildren,
@@ -4186,7 +4252,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4186
4252
  el,
4187
4253
  parentComponent,
4188
4254
  parentSuspense,
4189
- areChildrenSVG,
4255
+ resolveChildrenNamespace(n2, namespace),
4190
4256
  slotScopeIds
4191
4257
  );
4192
4258
  } else if (!optimized) {
@@ -4197,7 +4263,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4197
4263
  null,
4198
4264
  parentComponent,
4199
4265
  parentSuspense,
4200
- areChildrenSVG,
4266
+ resolveChildrenNamespace(n2, namespace),
4201
4267
  slotScopeIds,
4202
4268
  false
4203
4269
  );
@@ -4211,16 +4277,16 @@ function baseCreateRenderer(options, createHydrationFns) {
4211
4277
  newProps,
4212
4278
  parentComponent,
4213
4279
  parentSuspense,
4214
- isSVG
4280
+ namespace
4215
4281
  );
4216
4282
  } else {
4217
4283
  if (patchFlag & 2) {
4218
4284
  if (oldProps.class !== newProps.class) {
4219
- hostPatchProp(el, "class", null, newProps.class, isSVG);
4285
+ hostPatchProp(el, "class", null, newProps.class, namespace);
4220
4286
  }
4221
4287
  }
4222
4288
  if (patchFlag & 4) {
4223
- hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG);
4289
+ hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
4224
4290
  }
4225
4291
  if (patchFlag & 8) {
4226
4292
  const propsToUpdate = n2.dynamicProps;
@@ -4234,7 +4300,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4234
4300
  key,
4235
4301
  prev,
4236
4302
  next,
4237
- isSVG,
4303
+ namespace,
4238
4304
  n1.children,
4239
4305
  parentComponent,
4240
4306
  parentSuspense,
@@ -4257,7 +4323,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4257
4323
  newProps,
4258
4324
  parentComponent,
4259
4325
  parentSuspense,
4260
- isSVG
4326
+ namespace
4261
4327
  );
4262
4328
  }
4263
4329
  if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
@@ -4267,7 +4333,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4267
4333
  }, parentSuspense);
4268
4334
  }
4269
4335
  };
4270
- const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {
4336
+ const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
4271
4337
  for (let i = 0; i < newChildren.length; i++) {
4272
4338
  const oldVNode = oldChildren[i];
4273
4339
  const newVNode = newChildren[i];
@@ -4292,13 +4358,13 @@ function baseCreateRenderer(options, createHydrationFns) {
4292
4358
  null,
4293
4359
  parentComponent,
4294
4360
  parentSuspense,
4295
- isSVG,
4361
+ namespace,
4296
4362
  slotScopeIds,
4297
4363
  true
4298
4364
  );
4299
4365
  }
4300
4366
  };
4301
- const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {
4367
+ const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {
4302
4368
  if (oldProps !== newProps) {
4303
4369
  if (oldProps !== shared.EMPTY_OBJ) {
4304
4370
  for (const key in oldProps) {
@@ -4308,7 +4374,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4308
4374
  key,
4309
4375
  oldProps[key],
4310
4376
  null,
4311
- isSVG,
4377
+ namespace,
4312
4378
  vnode.children,
4313
4379
  parentComponent,
4314
4380
  parentSuspense,
@@ -4328,7 +4394,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4328
4394
  key,
4329
4395
  prev,
4330
4396
  next,
4331
- isSVG,
4397
+ namespace,
4332
4398
  vnode.children,
4333
4399
  parentComponent,
4334
4400
  parentSuspense,
@@ -4337,11 +4403,11 @@ function baseCreateRenderer(options, createHydrationFns) {
4337
4403
  }
4338
4404
  }
4339
4405
  if ("value" in newProps) {
4340
- hostPatchProp(el, "value", oldProps.value, newProps.value);
4406
+ hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
4341
4407
  }
4342
4408
  }
4343
4409
  };
4344
- const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4410
+ const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4345
4411
  const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
4346
4412
  const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
4347
4413
  let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
@@ -4357,7 +4423,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4357
4423
  fragmentEndAnchor,
4358
4424
  parentComponent,
4359
4425
  parentSuspense,
4360
- isSVG,
4426
+ namespace,
4361
4427
  slotScopeIds,
4362
4428
  optimized
4363
4429
  );
@@ -4371,7 +4437,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4371
4437
  container,
4372
4438
  parentComponent,
4373
4439
  parentSuspense,
4374
- isSVG,
4440
+ namespace,
4375
4441
  slotScopeIds
4376
4442
  );
4377
4443
  if (
@@ -4396,14 +4462,14 @@ function baseCreateRenderer(options, createHydrationFns) {
4396
4462
  fragmentEndAnchor,
4397
4463
  parentComponent,
4398
4464
  parentSuspense,
4399
- isSVG,
4465
+ namespace,
4400
4466
  slotScopeIds,
4401
4467
  optimized
4402
4468
  );
4403
4469
  }
4404
4470
  }
4405
4471
  };
4406
- const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4472
+ const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4407
4473
  n2.slotScopeIds = slotScopeIds;
4408
4474
  if (n1 == null) {
4409
4475
  if (n2.shapeFlag & 512) {
@@ -4411,7 +4477,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4411
4477
  n2,
4412
4478
  container,
4413
4479
  anchor,
4414
- isSVG,
4480
+ namespace,
4415
4481
  optimized
4416
4482
  );
4417
4483
  } else {
@@ -4421,7 +4487,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4421
4487
  anchor,
4422
4488
  parentComponent,
4423
4489
  parentSuspense,
4424
- isSVG,
4490
+ namespace,
4425
4491
  optimized
4426
4492
  );
4427
4493
  }
@@ -4429,7 +4495,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4429
4495
  updateComponent(n1, n2, optimized);
4430
4496
  }
4431
4497
  };
4432
- const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {
4498
+ const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
4433
4499
  const instance = (initialVNode.component = createComponentInstance(
4434
4500
  initialVNode,
4435
4501
  parentComponent,
@@ -4447,17 +4513,17 @@ function baseCreateRenderer(options, createHydrationFns) {
4447
4513
  const placeholder = instance.subTree = createVNode(Comment);
4448
4514
  processCommentNode(null, placeholder, container, anchor);
4449
4515
  }
4450
- return;
4516
+ } else {
4517
+ setupRenderEffect(
4518
+ instance,
4519
+ initialVNode,
4520
+ container,
4521
+ anchor,
4522
+ parentSuspense,
4523
+ namespace,
4524
+ optimized
4525
+ );
4451
4526
  }
4452
- setupRenderEffect(
4453
- instance,
4454
- initialVNode,
4455
- container,
4456
- anchor,
4457
- parentSuspense,
4458
- isSVG,
4459
- optimized
4460
- );
4461
4527
  };
4462
4528
  const updateComponent = (n1, n2, optimized) => {
4463
4529
  const instance = n2.component = n1.component;
@@ -4476,7 +4542,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4476
4542
  instance.vnode = n2;
4477
4543
  }
4478
4544
  };
4479
- const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
4545
+ const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
4480
4546
  const componentUpdateFn = () => {
4481
4547
  if (!instance.isMounted) {
4482
4548
  let vnodeHook;
@@ -4522,7 +4588,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4522
4588
  anchor,
4523
4589
  instance,
4524
4590
  parentSuspense,
4525
- isSVG
4591
+ namespace
4526
4592
  );
4527
4593
  initialVNode.el = subTree.el;
4528
4594
  }
@@ -4543,6 +4609,21 @@ function baseCreateRenderer(options, createHydrationFns) {
4543
4609
  initialVNode = container = anchor = null;
4544
4610
  } else {
4545
4611
  let { next, bu, u, parent, vnode } = instance;
4612
+ {
4613
+ const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
4614
+ if (nonHydratedAsyncRoot) {
4615
+ if (next) {
4616
+ next.el = vnode.el;
4617
+ updateComponentPreRender(instance, next, optimized);
4618
+ }
4619
+ nonHydratedAsyncRoot.asyncDep.then(() => {
4620
+ if (!instance.isUnmounted) {
4621
+ componentUpdateFn();
4622
+ }
4623
+ });
4624
+ return;
4625
+ }
4626
+ }
4546
4627
  let originNext = next;
4547
4628
  let vnodeHook;
4548
4629
  toggleRecurse(instance, false);
@@ -4571,7 +4652,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4571
4652
  getNextHostNode(prevTree),
4572
4653
  instance,
4573
4654
  parentSuspense,
4574
- isSVG
4655
+ namespace
4575
4656
  );
4576
4657
  next.el = nextTree.el;
4577
4658
  if (originNext === null) {
@@ -4612,10 +4693,10 @@ function baseCreateRenderer(options, createHydrationFns) {
4612
4693
  updateProps(instance, nextVNode.props, prevProps, optimized);
4613
4694
  updateSlots(instance, nextVNode.children, optimized);
4614
4695
  reactivity.pauseTracking();
4615
- flushPreFlushCbs();
4696
+ flushPreFlushCbs(instance);
4616
4697
  reactivity.resetTracking();
4617
4698
  };
4618
- const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
4699
+ const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
4619
4700
  const c1 = n1 && n1.children;
4620
4701
  const prevShapeFlag = n1 ? n1.shapeFlag : 0;
4621
4702
  const c2 = n2.children;
@@ -4629,7 +4710,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4629
4710
  anchor,
4630
4711
  parentComponent,
4631
4712
  parentSuspense,
4632
- isSVG,
4713
+ namespace,
4633
4714
  slotScopeIds,
4634
4715
  optimized
4635
4716
  );
@@ -4642,7 +4723,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4642
4723
  anchor,
4643
4724
  parentComponent,
4644
4725
  parentSuspense,
4645
- isSVG,
4726
+ namespace,
4646
4727
  slotScopeIds,
4647
4728
  optimized
4648
4729
  );
@@ -4666,7 +4747,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4666
4747
  anchor,
4667
4748
  parentComponent,
4668
4749
  parentSuspense,
4669
- isSVG,
4750
+ namespace,
4670
4751
  slotScopeIds,
4671
4752
  optimized
4672
4753
  );
@@ -4684,7 +4765,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4684
4765
  anchor,
4685
4766
  parentComponent,
4686
4767
  parentSuspense,
4687
- isSVG,
4768
+ namespace,
4688
4769
  slotScopeIds,
4689
4770
  optimized
4690
4771
  );
@@ -4692,7 +4773,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4692
4773
  }
4693
4774
  }
4694
4775
  };
4695
- const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4776
+ const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4696
4777
  c1 = c1 || shared.EMPTY_ARR;
4697
4778
  c2 = c2 || shared.EMPTY_ARR;
4698
4779
  const oldLength = c1.length;
@@ -4708,7 +4789,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4708
4789
  null,
4709
4790
  parentComponent,
4710
4791
  parentSuspense,
4711
- isSVG,
4792
+ namespace,
4712
4793
  slotScopeIds,
4713
4794
  optimized
4714
4795
  );
@@ -4729,14 +4810,14 @@ function baseCreateRenderer(options, createHydrationFns) {
4729
4810
  anchor,
4730
4811
  parentComponent,
4731
4812
  parentSuspense,
4732
- isSVG,
4813
+ namespace,
4733
4814
  slotScopeIds,
4734
4815
  optimized,
4735
4816
  commonLength
4736
4817
  );
4737
4818
  }
4738
4819
  };
4739
- const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
4820
+ const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4740
4821
  let i = 0;
4741
4822
  const l2 = c2.length;
4742
4823
  let e1 = c1.length - 1;
@@ -4752,7 +4833,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4752
4833
  null,
4753
4834
  parentComponent,
4754
4835
  parentSuspense,
4755
- isSVG,
4836
+ namespace,
4756
4837
  slotScopeIds,
4757
4838
  optimized
4758
4839
  );
@@ -4772,7 +4853,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4772
4853
  null,
4773
4854
  parentComponent,
4774
4855
  parentSuspense,
4775
- isSVG,
4856
+ namespace,
4776
4857
  slotScopeIds,
4777
4858
  optimized
4778
4859
  );
@@ -4794,7 +4875,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4794
4875
  anchor,
4795
4876
  parentComponent,
4796
4877
  parentSuspense,
4797
- isSVG,
4878
+ namespace,
4798
4879
  slotScopeIds,
4799
4880
  optimized
4800
4881
  );
@@ -4857,7 +4938,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4857
4938
  null,
4858
4939
  parentComponent,
4859
4940
  parentSuspense,
4860
- isSVG,
4941
+ namespace,
4861
4942
  slotScopeIds,
4862
4943
  optimized
4863
4944
  );
@@ -4878,7 +4959,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4878
4959
  anchor,
4879
4960
  parentComponent,
4880
4961
  parentSuspense,
4881
- isSVG,
4962
+ namespace,
4882
4963
  slotScopeIds,
4883
4964
  optimized
4884
4965
  );
@@ -5085,13 +5166,21 @@ function baseCreateRenderer(options, createHydrationFns) {
5085
5166
  }
5086
5167
  return hostNextSibling(vnode.anchor || vnode.el);
5087
5168
  };
5088
- const render = (vnode, container, isSVG) => {
5169
+ const render = (vnode, container, namespace) => {
5089
5170
  if (vnode == null) {
5090
5171
  if (container._vnode) {
5091
5172
  unmount(container._vnode, null, null, true);
5092
5173
  }
5093
5174
  } else {
5094
- patch(container._vnode || null, vnode, container, null, null, null, isSVG);
5175
+ patch(
5176
+ container._vnode || null,
5177
+ vnode,
5178
+ container,
5179
+ null,
5180
+ null,
5181
+ null,
5182
+ namespace
5183
+ );
5095
5184
  }
5096
5185
  flushPreFlushCbs();
5097
5186
  flushPostFlushCbs();
@@ -5122,6 +5211,9 @@ function baseCreateRenderer(options, createHydrationFns) {
5122
5211
  createApp: createAppAPI(render, hydrate)
5123
5212
  };
5124
5213
  }
5214
+ function resolveChildrenNamespace({ type, props }, currentNamespace) {
5215
+ return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
5216
+ }
5125
5217
  function toggleRecurse({ effect, update }, allowed) {
5126
5218
  effect.allowRecurse = update.allowRecurse = allowed;
5127
5219
  }
@@ -5189,10 +5281,21 @@ function getSequence(arr) {
5189
5281
  }
5190
5282
  return result;
5191
5283
  }
5284
+ function locateNonHydratedAsyncRoot(instance) {
5285
+ const subComponent = instance.subTree.component;
5286
+ if (subComponent) {
5287
+ if (subComponent.asyncDep && !subComponent.asyncResolved) {
5288
+ return subComponent;
5289
+ } else {
5290
+ return locateNonHydratedAsyncRoot(subComponent);
5291
+ }
5292
+ }
5293
+ }
5192
5294
 
5193
5295
  const isTeleport = (type) => type.__isTeleport;
5194
5296
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
5195
5297
  const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
5298
+ const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
5196
5299
  const resolveTarget = (props, select) => {
5197
5300
  const targetSelector = props && props.to;
5198
5301
  if (shared.isString(targetSelector)) {
@@ -5209,7 +5312,7 @@ const resolveTarget = (props, select) => {
5209
5312
  const TeleportImpl = {
5210
5313
  name: "Teleport",
5211
5314
  __isTeleport: true,
5212
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
5315
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
5213
5316
  const {
5214
5317
  mc: mountChildren,
5215
5318
  pc: patchChildren,
@@ -5227,7 +5330,11 @@ const TeleportImpl = {
5227
5330
  const targetAnchor = n2.targetAnchor = createText("");
5228
5331
  if (target) {
5229
5332
  insert(targetAnchor, target);
5230
- isSVG = isSVG || isTargetSVG(target);
5333
+ if (namespace === "svg" || isTargetSVG(target)) {
5334
+ namespace = "svg";
5335
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
5336
+ namespace = "mathml";
5337
+ }
5231
5338
  }
5232
5339
  const mount = (container2, anchor2) => {
5233
5340
  if (shapeFlag & 16) {
@@ -5237,7 +5344,7 @@ const TeleportImpl = {
5237
5344
  anchor2,
5238
5345
  parentComponent,
5239
5346
  parentSuspense,
5240
- isSVG,
5347
+ namespace,
5241
5348
  slotScopeIds,
5242
5349
  optimized
5243
5350
  );
@@ -5256,7 +5363,11 @@ const TeleportImpl = {
5256
5363
  const wasDisabled = isTeleportDisabled(n1.props);
5257
5364
  const currentContainer = wasDisabled ? container : target;
5258
5365
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
5259
- isSVG = isSVG || isTargetSVG(target);
5366
+ if (namespace === "svg" || isTargetSVG(target)) {
5367
+ namespace = "svg";
5368
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
5369
+ namespace = "mathml";
5370
+ }
5260
5371
  if (dynamicChildren) {
5261
5372
  patchBlockChildren(
5262
5373
  n1.dynamicChildren,
@@ -5264,7 +5375,7 @@ const TeleportImpl = {
5264
5375
  currentContainer,
5265
5376
  parentComponent,
5266
5377
  parentSuspense,
5267
- isSVG,
5378
+ namespace,
5268
5379
  slotScopeIds
5269
5380
  );
5270
5381
  traverseStaticChildren(n1, n2, true);
@@ -5276,7 +5387,7 @@ const TeleportImpl = {
5276
5387
  currentAnchor,
5277
5388
  parentComponent,
5278
5389
  parentSuspense,
5279
- isSVG,
5390
+ namespace,
5280
5391
  slotScopeIds,
5281
5392
  false
5282
5393
  );
@@ -5859,20 +5970,29 @@ function createComponentInstance(vnode, parent, suspense) {
5859
5970
  let currentInstance = null;
5860
5971
  const getCurrentInstance = () => currentInstance || currentRenderingInstance;
5861
5972
  let internalSetCurrentInstance;
5862
- let globalCurrentInstanceSetters;
5863
- let settersKey = "__VUE_INSTANCE_SETTERS__";
5973
+ let setInSSRSetupState;
5864
5974
  {
5865
- if (!(globalCurrentInstanceSetters = shared.getGlobalThis()[settersKey])) {
5866
- globalCurrentInstanceSetters = shared.getGlobalThis()[settersKey] = [];
5867
- }
5868
- globalCurrentInstanceSetters.push((i) => currentInstance = i);
5869
- internalSetCurrentInstance = (instance) => {
5870
- if (globalCurrentInstanceSetters.length > 1) {
5871
- globalCurrentInstanceSetters.forEach((s) => s(instance));
5872
- } else {
5873
- globalCurrentInstanceSetters[0](instance);
5874
- }
5975
+ const g = shared.getGlobalThis();
5976
+ const registerGlobalSetter = (key, setter) => {
5977
+ let setters;
5978
+ if (!(setters = g[key]))
5979
+ setters = g[key] = [];
5980
+ setters.push(setter);
5981
+ return (v) => {
5982
+ if (setters.length > 1)
5983
+ setters.forEach((set) => set(v));
5984
+ else
5985
+ setters[0](v);
5986
+ };
5875
5987
  };
5988
+ internalSetCurrentInstance = registerGlobalSetter(
5989
+ `__VUE_INSTANCE_SETTERS__`,
5990
+ (v) => currentInstance = v
5991
+ );
5992
+ setInSSRSetupState = registerGlobalSetter(
5993
+ `__VUE_SSR_SETTERS__`,
5994
+ (v) => isInSSRComponentSetup = v
5995
+ );
5876
5996
  }
5877
5997
  const setCurrentInstance = (instance) => {
5878
5998
  internalSetCurrentInstance(instance);
@@ -5887,13 +6007,13 @@ function isStatefulComponent(instance) {
5887
6007
  }
5888
6008
  let isInSSRComponentSetup = false;
5889
6009
  function setupComponent(instance, isSSR = false) {
5890
- isInSSRComponentSetup = isSSR;
6010
+ isSSR && setInSSRSetupState(isSSR);
5891
6011
  const { props, children } = instance.vnode;
5892
6012
  const isStateful = isStatefulComponent(instance);
5893
6013
  initProps(instance, props, isStateful, isSSR);
5894
6014
  initSlots(instance, children);
5895
6015
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
5896
- isInSSRComponentSetup = false;
6016
+ isSSR && setInSSRSetupState(false);
5897
6017
  return setupResult;
5898
6018
  }
5899
6019
  function setupStatefulComponent(instance, isSSR) {
@@ -6104,7 +6224,7 @@ function isMemoSame(cached, memo) {
6104
6224
  return true;
6105
6225
  }
6106
6226
 
6107
- const version = "3.4.0-alpha.3";
6227
+ const version = "3.4.0-beta.1";
6108
6228
  const ErrorTypeStrings = null;
6109
6229
  const _ssrUtils = {
6110
6230
  createComponentInstance,
@@ -6117,9 +6237,12 @@ const _ssrUtils = {
6117
6237
  const ssrUtils = _ssrUtils ;
6118
6238
  const resolveFilter = null;
6119
6239
  const compatUtils = null;
6240
+ const DeprecationTypes = null;
6120
6241
 
6121
6242
  exports.EffectScope = reactivity.EffectScope;
6122
6243
  exports.ReactiveEffect = reactivity.ReactiveEffect;
6244
+ exports.TrackOpTypes = reactivity.TrackOpTypes;
6245
+ exports.TriggerOpTypes = reactivity.TriggerOpTypes;
6123
6246
  exports.customRef = reactivity.customRef;
6124
6247
  exports.effect = reactivity.effect;
6125
6248
  exports.effectScope = reactivity.effectScope;
@@ -6155,6 +6278,8 @@ exports.toHandlerKey = shared.toHandlerKey;
6155
6278
  exports.BaseTransition = BaseTransition;
6156
6279
  exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators;
6157
6280
  exports.Comment = Comment;
6281
+ exports.DeprecationTypes = DeprecationTypes;
6282
+ exports.ErrorCodes = ErrorCodes;
6158
6283
  exports.ErrorTypeStrings = ErrorTypeStrings;
6159
6284
  exports.Fragment = Fragment;
6160
6285
  exports.KeepAlive = KeepAlive;