fix(web-worker): ensure removeEventListener is bound to worker (#7631)

This commit is contained in:
Joel Gallant 2025-03-11 00:40:45 -06:00 committed by GitHub
parent 94b27af595
commit ff42bcb381
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 4 deletions

View File

@ -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
},

View File

@ -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(

View File

@ -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)