aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/blob.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-08-21 01:29:06 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-08-21 01:29:06 -0700
commitc99a9ba33a36f16f79e38ff77423f5d301f6d2a8 (patch)
tree0ca11cdc93b665668c9c6d07da0ae865cd1f4c77 /src/bun.js/bindings/blob.cpp
parentf75b949524ac4a41e0f015cb981f356444fab331 (diff)
downloadbun-c99a9ba33a36f16f79e38ff77423f5d301f6d2a8.tar.gz
bun-c99a9ba33a36f16f79e38ff77423f5d301f6d2a8.tar.zst
bun-c99a9ba33a36f16f79e38ff77423f5d301f6d2a8.zip
Implement File
Diffstat (limited to 'src/bun.js/bindings/blob.cpp')
-rw-r--r--src/bun.js/bindings/blob.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/bun.js/bindings/blob.cpp b/src/bun.js/bindings/blob.cpp
index 257f230e1..0f255d7c8 100644
--- a/src/bun.js/bindings/blob.cpp
+++ b/src/bun.js/bindings/blob.cpp
@@ -1,17 +1,29 @@
#include "blob.h"
+#include "ZigGeneratedClasses.h"
extern "C" JSC::EncodedJSValue Blob__create(JSC::JSGlobalObject* globalObject, void* impl);
+extern "C" void* Blob__setAsFile(void* impl, BunString* filename);
namespace WebCore {
JSC::JSValue toJS(JSC::JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, WebCore::Blob& impl)
{
+ BunString filename = Bun::toString(impl.fileName());
+ impl.m_impl = Blob__setAsFile(impl.impl(), &filename);
+
return JSC::JSValue::decode(Blob__create(lexicalGlobalObject, Blob__dupe(impl.impl())));
}
JSC::JSValue toJSNewlyCreated(JSC::JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, Ref<WebCore::Blob>&& impl)
{
- return JSC::JSValue::decode(Blob__create(lexicalGlobalObject, impl->impl()));
+ auto fileNameStr = impl->fileName();
+ BunString filename = Bun::toString(fileNameStr);
+
+ EncodedJSValue encoded = Blob__create(lexicalGlobalObject, impl->impl());
+ JSBlob* blob = jsCast<JSBlob*>(JSC::JSValue::decode(encoded));
+ Blob__setAsFile(blob->wrapped(), &filename);
+
+ return JSC::JSValue::decode(encoded);
}
} \ No newline at end of file