From d07105aa0b138138ad541b8f9255b5ad2cefa3d9 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Tue, 14 Apr 2020 22:41:45 -0700 Subject: [PATCH] fix: do not capture exceptions while emitting events (#1790) This could've caught user-land exception. --- src/chromium/crConnection.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/chromium/crConnection.ts b/src/chromium/crConnection.ts index 2a1d30c5e1..eeb1fe9c58 100644 --- a/src/chromium/crConnection.ts +++ b/src/chromium/crConnection.ts @@ -121,7 +121,6 @@ export class CRSession extends EventEmitter { private readonly _targetType: string; private readonly _sessionId: string; private readonly _rootSessionId: string; - private _unhandledException: Error | undefined; on: (event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; addListener: (event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; off: (event: T, listener: (payload: T extends symbol ? any : Protocol.Events[T extends keyof Protocol.Events ? T : never]) => void) => this; @@ -146,8 +145,6 @@ export class CRSession extends EventEmitter { method: T, params?: Protocol.CommandParameters[T] ): Promise { - if (this._unhandledException) - throw this._unhandledException; if (!this._connection) throw new Error(`Protocol error (${method}): Session closed. Most likely the ${this._targetType} has been closed.`); const id = this._connection._rawSend(this._sessionId, method, params); @@ -166,7 +163,7 @@ export class CRSession extends EventEmitter { callback.resolve(object.result); } else { assert(!object.id); - Promise.resolve().then(() => this.emit(object.method!, object.params)).catch(e => this._unhandledException = this._unhandledException || e); + Promise.resolve().then(() => this.emit(object.method!, object.params)); } }