aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/JSSink.cpp
diff options
context:
space:
mode:
authorGravatar Ciro Spaciari <ciro.spaciari@gmail.com> 2023-09-14 23:25:01 -0700
committerGravatar GitHub <noreply@github.com> 2023-09-14 23:25:01 -0700
commitda7db2230f1710d5bcb479df26c3742fac6baa0e (patch)
tree96f54d60c8ce4799f1c9043bdded265ad73ea54d /src/bun.js/bindings/JSSink.cpp
parent94e9f8bdca5f88b5405c5a212051815659ab8b75 (diff)
downloadbun-da7db2230f1710d5bcb479df26c3742fac6baa0e.tar.gz
bun-da7db2230f1710d5bcb479df26c3742fac6baa0e.tar.zst
bun-da7db2230f1710d5bcb479df26c3742fac6baa0e.zip
fix(nitro) fix sourcemaps and JSSink closing (#5422)
* fix JSSink progress on sourcemap checking * fix sourcemaps * update JSSink fix * undo + tests --------- Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Diffstat (limited to 'src/bun.js/bindings/JSSink.cpp')
-rw-r--r--src/bun.js/bindings/JSSink.cpp56
1 files changed, 32 insertions, 24 deletions
diff --git a/src/bun.js/bindings/JSSink.cpp b/src/bun.js/bindings/JSSink.cpp
index d986ae590..e0abede33 100644
--- a/src/bun.js/bindings/JSSink.cpp
+++ b/src/bun.js/bindings/JSSink.cpp
@@ -798,17 +798,19 @@ void JSReadableArrayBufferSinkController::detach()
auto readableStream = m_weakReadableStream.get();
auto onClose = m_onClose.get();
- m_onClose.clear();
if (readableStream && onClose) {
- JSC::JSGlobalObject* globalObject = this->globalObject();
auto callData = JSC::getCallData(onClose);
- JSC::MarkedArgumentBuffer arguments;
- arguments.append(readableStream);
- arguments.append(jsUndefined());
- call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ if (callData.type != JSC::CallData::Type::None) {
+ JSC::JSGlobalObject* globalObject = this->globalObject();
+ JSC::MarkedArgumentBuffer arguments;
+ arguments.append(readableStream);
+ arguments.append(jsUndefined());
+ call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ }
}
+ m_onClose.clear();
m_weakReadableStream.clear();
}
@@ -1052,17 +1054,19 @@ void JSReadableFileSinkController::detach()
auto readableStream = m_weakReadableStream.get();
auto onClose = m_onClose.get();
- m_onClose.clear();
if (readableStream && onClose) {
- JSC::JSGlobalObject* globalObject = this->globalObject();
auto callData = JSC::getCallData(onClose);
- JSC::MarkedArgumentBuffer arguments;
- arguments.append(readableStream);
- arguments.append(jsUndefined());
- call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ if (callData.type != JSC::CallData::Type::None) {
+ JSC::JSGlobalObject* globalObject = this->globalObject();
+ JSC::MarkedArgumentBuffer arguments;
+ arguments.append(readableStream);
+ arguments.append(jsUndefined());
+ call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ }
}
+ m_onClose.clear();
m_weakReadableStream.clear();
}
@@ -1306,17 +1310,19 @@ void JSReadableHTTPResponseSinkController::detach()
auto readableStream = m_weakReadableStream.get();
auto onClose = m_onClose.get();
- m_onClose.clear();
if (readableStream && onClose) {
- JSC::JSGlobalObject* globalObject = this->globalObject();
auto callData = JSC::getCallData(onClose);
- JSC::MarkedArgumentBuffer arguments;
- arguments.append(readableStream);
- arguments.append(jsUndefined());
- call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ if (callData.type != JSC::CallData::Type::None) {
+ JSC::JSGlobalObject* globalObject = this->globalObject();
+ JSC::MarkedArgumentBuffer arguments;
+ arguments.append(readableStream);
+ arguments.append(jsUndefined());
+ call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ }
}
+ m_onClose.clear();
m_weakReadableStream.clear();
}
@@ -1560,17 +1566,19 @@ void JSReadableHTTPSResponseSinkController::detach()
auto readableStream = m_weakReadableStream.get();
auto onClose = m_onClose.get();
- m_onClose.clear();
if (readableStream && onClose) {
- JSC::JSGlobalObject* globalObject = this->globalObject();
auto callData = JSC::getCallData(onClose);
- JSC::MarkedArgumentBuffer arguments;
- arguments.append(readableStream);
- arguments.append(jsUndefined());
- call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ if (callData.type != JSC::CallData::Type::None) {
+ JSC::JSGlobalObject* globalObject = this->globalObject();
+ JSC::MarkedArgumentBuffer arguments;
+ arguments.append(readableStream);
+ arguments.append(jsUndefined());
+ call(globalObject, onClose, callData, JSC::jsUndefined(), arguments);
+ }
}
+ m_onClose.clear();
m_weakReadableStream.clear();
}