diff --git a/packages/web-worker/src/shared-worker.ts b/packages/web-worker/src/shared-worker.ts index d890d4196..cb15a89af 100644 --- a/packages/web-worker/src/shared-worker.ts +++ b/packages/web-worker/src/shared-worker.ts @@ -97,7 +97,9 @@ export function createSharedWorkerConstructor(): typeof SharedWorker { addEventListener: (...args: any[]) => { return this._vw_workerTarget.addEventListener(...args as [any, any]) }, - removeEventListener: this._vw_workerTarget.removeEventListener, + removeEventListener: (...args: any[]) => { + return this._vw_workerTarget.removeEventListener(...args as [any, any]) + }, get self() { return selfProxy }, diff --git a/packages/web-worker/src/worker.ts b/packages/web-worker/src/worker.ts index 821c5cc1e..e8862cc20 100644 --- a/packages/web-worker/src/worker.ts +++ b/packages/web-worker/src/worker.ts @@ -75,7 +75,9 @@ export function createWorkerConstructor( } return this._vw_workerTarget.addEventListener(...args as [any, any]) }, - removeEventListener: this._vw_workerTarget.removeEventListener, + removeEventListener: (...args: any[]) => { + return this._vw_workerTarget.removeEventListener(...args as [any, any]) + }, postMessage: (...args: any[]) => { if (!args.length) { throw new SyntaxError( diff --git a/test/core/src/web-worker/eventListenerWorker.ts b/test/core/src/web-worker/eventListenerWorker.ts index 8fb8afde7..acae3731f 100644 --- a/test/core/src/web-worker/eventListenerWorker.ts +++ b/test/core/src/web-worker/eventListenerWorker.ts @@ -1,3 +1,6 @@ -self.addEventListener('message', (e) => { +function callback(e: MessageEvent) { self.postMessage(`${e.data} world`) -}) + self.removeEventListener('message', callback) +} + +self.addEventListener('message', callback)