]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(ssr): fix memory leak when vnode component render throws error
authorEvan You <yyx990803@gmail.com>
Thu, 25 Mar 2021 22:04:21 +0000 (18:04 -0400)
committerEvan You <yyx990803@gmail.com>
Thu, 25 Mar 2021 22:04:21 +0000 (18:04 -0400)
fix #3100

packages/runtime-core/src/componentRenderUtils.ts

index 89cdcf19c95b37efb27829133119f3be6995d7bb..eee05f18bb67959fa1d42f11f1299bf4beb58f4c 100644 (file)
@@ -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)
   }