diff options
author | Matt Mastracci <matthew@mastracci.com> | 2023-06-29 07:24:01 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-29 07:24:01 -0600 |
commit | 93b3ff017078b2c1e993457ef43af6b52e715ba6 (patch) | |
tree | 856d339ae30fef01566d5ea919d4738c1e3fa65d /ext/websocket/01_websocket.js | |
parent | b6253370cc8e430c575acd3fce0da44e057eb5b9 (diff) |
fix(ext/websocket): Ensure that errors are available after async response returns (#19642)
Fixes the WPT tests that test w/invalid codes. Also explicitly ignoring
some h2 tests to hopefully prevent flakes.
The previous changes to WebSocketStream introduced a bug where the close
errors were not made available if the `pull` method was re-entrant.
Diffstat (limited to 'ext/websocket/01_websocket.js')
-rw-r--r-- | ext/websocket/01_websocket.js | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index e6b0053c6..50e110444 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -467,6 +467,7 @@ class WebSocket extends EventTarget { default: { /* close */ const code = kind; + const reason = code == 1005 ? "" : op_ws_get_error(rid); const prevState = this[_readyState]; this[_readyState] = CLOSED; clearTimeout(this[_idleTimeoutTimeout]); @@ -476,7 +477,7 @@ class WebSocket extends EventTarget { await op_ws_close( rid, code, - op_ws_get_error(rid), + reason, ); } catch { // ignore failures @@ -486,7 +487,7 @@ class WebSocket extends EventTarget { const event = new CloseEvent("close", { wasClean: true, code: code, - reason: op_ws_get_error(rid), + reason, }); this.dispatchEvent(event); core.tryClose(rid); |