From: Bas van Meurs Date: Fri, 4 Dec 2020 23:03:10 +0000 (+0100) Subject: fix(runtime-core): component mount anchor memory leak (#2459) X-Git-Tag: v3.0.5~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3867bb4c14131ef94098a62bffba97a5b7d1fe66;p=thirdparty%2Fvuejs%2Fcore.git fix(runtime-core): component mount anchor memory leak (#2459) fix #2458 --- diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 3baaf2405e..da86040d0a 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -1395,8 +1395,9 @@ function baseCreateRenderer( } // onVnodeMounted if ((vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode queuePostRenderEffect(() => { - invokeVNodeHook(vnodeHook!, parent, initialVNode) + invokeVNodeHook(vnodeHook!, parent, scopedInitialVNode) }, parentSuspense) } // activated hook for keep-alive roots. @@ -1410,6 +1411,9 @@ function baseCreateRenderer( queuePostRenderEffect(a, parentSuspense) } instance.isMounted = true + + // #2458: deference mount-only object parameters to prevent memleaks + initialVNode = container = anchor = null as any } else { // updateComponent // This is triggered by mutation of component's own state (next: null)