From c41e4d019587614e58a60a1843c89c6115084d55 Mon Sep 17 00:00:00 2001 From: PJ Date: Mon, 1 Jun 2026 23:11:05 +0530 Subject: [PATCH] fix(web-runtime): guard global error listeners for non-browser hosts The module registered window error/unhandledrejection listeners at top level, which threw under Node (the spec-api test runner) where globalThis.addEventListener is absent. Register only when the API exists; the real browser run is unaffected. --- pkg/spec/src/web-runtime.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/spec/src/web-runtime.ts b/pkg/spec/src/web-runtime.ts index 17cc05e..a6edb79 100644 --- a/pkg/spec/src/web-runtime.ts +++ b/pkg/spec/src/web-runtime.ts @@ -339,12 +339,14 @@ function recordException(error: unknown): void { }); } -globalThis.addEventListener("error", (event: ErrorEvent) => { - recordException(event.error ?? event.message); -}); -globalThis.addEventListener("unhandledrejection", (event: PromiseRejectionEvent) => { - recordException(event.reason); -}); +if (typeof globalThis.addEventListener === "function") { + globalThis.addEventListener("error", (event: ErrorEvent) => { + recordException(event.error ?? event.message); + }); + globalThis.addEventListener("unhandledrejection", (event: PromiseRejectionEvent) => { + recordException(event.reason); + }); +} function buildState(): unknown { return {