Skip to content

Commit be77a20

Browse files
committed
fix: worker.onerror may receive an Event
1 parent 6410f17 commit be77a20

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

packages/wasi-threads/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@emnapi/wasi-threads",
3-
"version": "1.0.1",
3+
"version": "1.0.3",
44
"description": "WASI threads proposal implementation in JavaScript",
55
"type": "module",
66
"main": "./dist/wasi-threads.cjs",

packages/wasi-threads/src/thread-manager.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,19 +228,23 @@ export class ThreadManager {
228228
// eslint-disable-next-line @typescript-eslint/no-this-alias
229229
const _this = this
230230
worker.whenLoaded = new Promise<WorkerLike>((resolve, reject) => {
231-
const handleError = function (e: { message: string }): void {
231+
const handleError = function (e: Event | Error): void {
232232
let message = 'worker sent an error!'
233233
if (worker.__emnapi_tid !== undefined) {
234234
message = 'worker (tid = ' + worker.__emnapi_tid + ') sent an error!'
235235
}
236-
err(message + ' ' + e.message)
237-
if (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1) {
238-
try {
239-
_this.terminateAllThreads()
240-
} catch (_) {}
236+
if ('message' in e) {
237+
err(message + ' ' + e.message)
238+
if (e.message.indexOf('RuntimeError') !== -1 || e.message.indexOf('unreachable') !== -1) {
239+
try {
240+
_this.terminateAllThreads()
241+
} catch (_) {}
242+
}
243+
} else {
244+
err(message)
241245
}
242246
reject(e)
243-
throw e as Error
247+
throw e
244248
}
245249
const handleMessage = (data: MessageEventData<keyof CommandPayloadMap>): void => {
246250
if (data.__emnapi__) {

0 commit comments

Comments
 (0)