From: Evan You Date: Thu, 25 Mar 2021 22:04:21 +0000 (-0400) Subject: fix(ssr): fix memory leak when vnode component render throws error X-Git-Tag: v3.0.8~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da944cb37987212d1b1a860b79f43a7c85814225;p=thirdparty%2Fvuejs%2Fcore.git fix(ssr): fix memory leak when vnode component render throws error fix #3100 --- diff --git a/packages/runtime-core/src/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts index 89cdcf19c9..eee05f18bb 100644 --- a/packages/runtime-core/src/componentRenderUtils.ts +++ b/packages/runtime-core/src/componentRenderUtils.ts @@ -10,7 +10,8 @@ import { Comment, cloneVNode, VNodeArrayChildren, - isVNode + isVNode, + blockStack } from './vnode' import { handleError, ErrorCodes } from './errorHandling' import { PatchFlags, ShapeFlags, isOn, isModelListener } from '@vue/shared' @@ -201,6 +202,7 @@ export function renderComponentRoot( result = root } } catch (err) { + blockStack.length = 0 handleError(err, instance, ErrorCodes.RENDER_FUNCTION) result = createVNode(Comment) }