diff --git a/packages/core/src/component.ts b/packages/core/src/component.ts index 3cd9ea97e..b010e8362 100644 --- a/packages/core/src/component.ts +++ b/packages/core/src/component.ts @@ -55,7 +55,11 @@ export interface MountedComponent updated?(vnode: VNode): void beforeUnmount?(): void unmounted?(): void - errorCaptured?(): (err: Error, type: ErrorTypes) => boolean | void + errorCaptured?(): ( + err: Error, + type: ErrorTypes, + target: MountedComponent + ) => boolean | void activated?(): void deactivated?(): void diff --git a/packages/core/src/errorHandling.ts b/packages/core/src/errorHandling.ts index 9294ab502..b6d040f72 100644 --- a/packages/core/src/errorHandling.ts +++ b/packages/core/src/errorHandling.ts @@ -45,17 +45,17 @@ export function handleError( const handler = cur.errorCaptured if (handler) { try { - const captured = handler.call(cur, err, type) + const captured = handler.call(cur, err, type, instance) if (captured) return } catch (err2) { - logError(err2, cur, ErrorTypes.ERROR_CAPTURED) + logError(err2, ErrorTypes.ERROR_CAPTURED) } } } - logError(err, instance, type) + logError(err, type) } -function logError(err: Error, instance: MountedComponent, type: ErrorTypes) { +function logError(err: Error, type: ErrorTypes) { if (__DEV__) { const info = ErrorTypeStrings[type] console.warn(`Unhandled error${info ? ` in ${info}` : ``}:`)