From 7bf7c2f38867e71336b503df03e79f26e2ebc48d Mon Sep 17 00:00:00 2001 From: momo5502 Date: Wed, 9 Jul 2025 08:39:31 +0200 Subject: [PATCH] Catch emulation errors --- page/src/emulator.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/page/src/emulator.ts b/page/src/emulator.ts index 889ee12b..26473b1f 100644 --- a/page/src/emulator.ts +++ b/page/src/emulator.ts @@ -80,6 +80,7 @@ export class Emulator { /*new URL('./emulator-worker.js', import.meta.url)*/ "./emulator-worker.js", ); + this.worker.onerror = this._onError.bind(this); this.worker.onmessage = this._onMessage.bind(this); } @@ -152,6 +153,20 @@ export class Emulator { this.updateState(); } + logError(message: string) { + this.logHandler([`${message}`]); + } + + _onError(ev: ErrorEvent) { + try { + this.worker.terminate(); + } catch (e) {} + + this.logError(`Emulator encountered fatal error: ${ev.message}`); + this._setState(EmulationState.Failed); + this.terminateResolve(-1); + } + _onMessage(event: MessageEvent) { if (event.data.message == "log") { this.logHandler(event.data.data);