Explorar o código

fix(warning): handle errors in warn handler (#396)

Dmitry Sharshakov %!s(int64=6) %!d(string=hai) anos
pai
achega
db7666d0f3
Modificáronse 1 ficheiros con 10 adicións e 4 borrados
  1. 10 4
      packages/runtime-core/src/warning.ts

+ 10 - 4
packages/runtime-core/src/warning.ts

@@ -2,6 +2,7 @@ import { VNode } from './vnode'
 import { Data, ComponentInternalInstance, Component } from './component'
 import { isString, isFunction } from '@vue/shared'
 import { toRaw } from '@vue/reactivity'
+import { callWithErrorHandling, ErrorCodes } from './errorHandling'
 
 type ComponentVNode = VNode & {
   type: Component
@@ -30,10 +31,15 @@ export function warn(msg: string, ...args: any[]) {
   const trace = getComponentTrace()
 
   if (appWarnHandler) {
-    appWarnHandler(
-      msg + args.join(''),
-      instance && instance.renderProxy,
-      formatTrace(trace).join('')
+    callWithErrorHandling(
+      appWarnHandler,
+      instance,
+      ErrorCodes.APP_WARN_HANDLER,
+      [
+        msg + args.join(''),
+        instance && instance.renderProxy,
+        formatTrace(trace).join('')
+      ]
     )
     return
   }