diff options
author | 2022-08-18 23:49:14 -0700 | |
---|---|---|
committer | 2022-08-18 23:49:14 -0700 | |
commit | fe7180bc74ac0ea9d2ec91f8446c1780d21c5973 (patch) | |
tree | d6aa0a410c31400b3ad1933d49dc2e8b1b67ad52 /src | |
parent | bdf733973c72b8e156cd1cf1c6c8a8b4649fedbe (diff) | |
download | bun-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.cpp | 5 |
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) { |