summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/websocket/01_websocket.js6
-rw-r--r--tests/unit/websocket_test.ts3
2 files changed, 7 insertions, 2 deletions
diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js
index 58f477310..468999b95 100644
--- a/ext/websocket/01_websocket.js
+++ b/ext/websocket/01_websocket.js
@@ -28,6 +28,7 @@ const {
ArrayPrototypePush,
ArrayPrototypeShift,
ArrayPrototypeSome,
+ Error,
ErrorPrototypeToString,
ObjectDefineProperties,
ObjectPrototypeIsPrototypeOf,
@@ -488,8 +489,11 @@ class WebSocket extends EventTarget {
/* error */
this[_readyState] = CLOSED;
+ const message = op_ws_get_error(rid);
+ const error = new Error(message);
const errorEv = new ErrorEvent("error", {
- message: op_ws_get_error(rid),
+ error,
+ message,
});
this.dispatchEvent(errorEv);
diff --git a/tests/unit/websocket_test.ts b/tests/unit/websocket_test.ts
index 7db876b17..3aafe8da2 100644
--- a/tests/unit/websocket_test.ts
+++ b/tests/unit/websocket_test.ts
@@ -453,7 +453,8 @@ Deno.test("invalid server", async () => {
const { promise, resolve } = Promise.withResolvers<void>();
const ws = new WebSocket("ws://localhost:2121");
let err = false;
- ws.onerror = () => {
+ ws.onerror = (e) => {
+ assert("error" in e);
err = true;
};
ws.onclose = () => {