vue 3.5.28 → 3.5.29

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 v3.5.28
2
+ * vue v3.5.29
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -3761,6 +3761,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3761
3761
  callHook(hook, [el]);
3762
3762
  },
3763
3763
  enter(el) {
3764
+ if (leavingVNodesCache[key] === vnode) return;
3764
3765
  let hook = onEnter;
3765
3766
  let afterHook = onAfterEnter;
3766
3767
  let cancelHook = onEnterCancelled;
@@ -5860,13 +5861,24 @@ function withAsyncContext(getAwaitable) {
5860
5861
  }
5861
5862
  let awaitable = getAwaitable();
5862
5863
  unsetCurrentInstance();
5864
+ const cleanup = () => {
5865
+ if (getCurrentInstance() !== ctx) ctx.scope.off();
5866
+ unsetCurrentInstance();
5867
+ };
5863
5868
  if (isPromise(awaitable)) {
5864
5869
  awaitable = awaitable.catch((e) => {
5865
5870
  setCurrentInstance(ctx);
5871
+ Promise.resolve().then(() => Promise.resolve().then(cleanup));
5866
5872
  throw e;
5867
5873
  });
5868
5874
  }
5869
- return [awaitable, () => setCurrentInstance(ctx)];
5875
+ return [
5876
+ awaitable,
5877
+ () => {
5878
+ setCurrentInstance(ctx);
5879
+ Promise.resolve().then(cleanup);
5880
+ }
5881
+ ];
5870
5882
  }
5871
5883
 
5872
5884
  function createDuplicateChecker() {
@@ -10720,7 +10732,7 @@ function isMemoSame(cached, memo) {
10720
10732
  return true;
10721
10733
  }
10722
10734
 
10723
- const version = "3.5.28";
10735
+ const version = "3.5.29";
10724
10736
  const warn = warn$1 ;
10725
10737
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10726
10738
  const devtools = devtools$1 ;