Skip to content

Commit 3b99f68

Browse files
authored
fix(ext/websocket): initialize error attribute of WebSocket ErrorEvent (#26796)
Fixes #26216 Not required by the spec but Discord.js depends on it, see #26216 (comment)
1 parent c3c2b37 commit 3b99f68

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

ext/websocket/01_websocket.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const {
2828
ArrayPrototypePush,
2929
ArrayPrototypeShift,
3030
ArrayPrototypeSome,
31+
Error,
3132
ErrorPrototypeToString,
3233
ObjectDefineProperties,
3334
ObjectPrototypeIsPrototypeOf,
@@ -488,8 +489,11 @@ class WebSocket extends EventTarget {
488489
/* error */
489490
this[_readyState] = CLOSED;
490491

492+
const message = op_ws_get_error(rid);
493+
const error = new Error(message);
491494
const errorEv = new ErrorEvent("error", {
492-
message: op_ws_get_error(rid),
495+
error,
496+
message,
493497
});
494498
this.dispatchEvent(errorEv);
495499

tests/unit/websocket_test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,8 @@ Deno.test("invalid server", async () => {
453453
const { promise, resolve } = Promise.withResolvers<void>();
454454
const ws = new WebSocket("ws://localhost:2121");
455455
let err = false;
456-
ws.onerror = () => {
456+
ws.onerror = (e) => {
457+
assert("error" in e);
457458
err = true;
458459
};
459460
ws.onclose = () => {

0 commit comments

Comments
 (0)