aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/blob.cpp
diff options
context:
space:
mode:
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