aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-18 23:49:14 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-18 23:49:14 -0700
commitfe7180bc74ac0ea9d2ec91f8446c1780d21c5973 (patch)
treed6aa0a410c31400b3ad1933d49dc2e8b1b67ad52 /src
parentbdf733973c72b8e156cd1cf1c6c8a8b4649fedbe (diff)
downloadbun-fe7180bc74ac0ea9d2ec91f8446c1780d21c5973.tar.gz
bun-fe7180bc74ac0ea9d2ec91f8446c1780d21c5973.tar.zst
bun-fe7180bc74ac0ea9d2ec91f8446c1780d21c5973.zip
Synchronously dispatch `close` event
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/bindings/webcore/WebSocket.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/bun.js/bindings/webcore/WebSocket.cpp b/src/bun.js/bindings/webcore/WebSocket.cpp
index 004b907b5..4cfe39f95 100644
--- a/src/bun.js/bindings/webcore/WebSocket.cpp
+++ b/src/bun.js/bindings/webcore/WebSocket.cpp
@@ -880,6 +880,11 @@ void WebSocket::didClose(unsigned unhandledBufferedAmount, unsigned short code,
this->m_connectedWebSocketKind = ConnectedWebSocketKind::None;
this->m_upgradeClient = nullptr;
+ if (this->hasEventListeners("close"_s)) {
+ this->dispatchEvent(CloseEvent::create(wasClean, code, reason));
+ return;
+ }
+
if (auto* context = scriptExecutionContext()) {
this->m_pendingActivityCount++;
context->postTask([this, code, wasClean, reason, protectedThis = Ref { *this }](ScriptExecutionContext& context) {