aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/JSDOMFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/JSDOMFile.cpp')
-rw-r--r--src/bun.js/bindings/JSDOMFile.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/bun.js/bindings/JSDOMFile.cpp b/src/bun.js/bindings/JSDOMFile.cpp
index 1d7770ac1..1e1f9f2bc 100644
--- a/src/bun.js/bindings/JSDOMFile.cpp
+++ b/src/bun.js/bindings/JSDOMFile.cpp
@@ -17,7 +17,7 @@ class JSDOMFile : public JSC::InternalFunction {
public:
JSDOMFile(JSC::VM& vm, JSC::Structure* structure)
- : Base(vm, structure, nullptr, construct)
+ : Base(vm, structure, call, construct)
{
}
@@ -43,7 +43,8 @@ public:
static JSDOMFile* create(JSC::VM& vm, JSGlobalObject* globalObject)
{
auto* zigGlobal = reinterpret_cast<Zig::GlobalObject*>(globalObject);
- auto* object = new (NotNull, JSC::allocateCell<JSDOMFile>(vm)) JSDOMFile(vm, createStructure(vm, globalObject, zigGlobal->functionPrototype()));
+ auto structure = createStructure(vm, globalObject, zigGlobal->functionPrototype());
+ auto* object = new (NotNull, JSC::allocateCell<JSDOMFile>(vm)) JSDOMFile(vm, structure);
object->finishCreation(vm);
// This is not quite right. But we'll fix it if someone files an issue about it.
@@ -91,6 +92,12 @@ public:
return JSValue::encode(
WebCore::JSBlob::create(vm, globalObject, structure, ptr));
}
+
+ static EncodedJSValue call(JSGlobalObject* lexicalGlobalObject, CallFrame* callFrame)
+ {
+ auto scope = DECLARE_THROW_SCOPE(lexicalGlobalObject->vm());
+ throwTypeError(lexicalGlobalObject, scope, "Class constructor File cannot be invoked without 'new"_s);
+ }
};
const JSC::ClassInfo JSDOMFile::s_info = { "File"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSDOMFile) };