aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/napi_external.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/napi_external.cpp')
-rw-r--r--src/bun.js/bindings/napi_external.cpp60
1 files changed, 15 insertions, 45 deletions
diff --git a/src/bun.js/bindings/napi_external.cpp b/src/bun.js/bindings/napi_external.cpp
index 15e46aa97..eb5786b6f 100644
--- a/src/bun.js/bindings/napi_external.cpp
+++ b/src/bun.js/bindings/napi_external.cpp
@@ -1,50 +1,20 @@
+#include "napi_external.h"
+#include "napi.h"
+namespace Bun {
-// #pragma once
+NapiExternal::~NapiExternal()
+{
+ if (finalizer) {
+ finalizer(toNapi(globalObject()), m_value, m_finalizerHint);
+ }
+}
-// #include "root.h"
+void NapiExternal::destroy(JSC::JSCell* cell)
+{
+ jsCast<NapiExternal*>(cell)->~NapiExternal();
+}
-// #include "BunBuiltinNames.h"
-// #include "BunClientData.h"
+const ClassInfo NapiExternal::s_info = { "External"_s, &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(NapiExternal) };
-// namespace Zig {
-
-// using namespace JSC;
-
-// class NapiExternal : public JSC::JSNonFinalObject {
-// using Base = JSC::JSNonFinalObject;
-
-// public:
-// NapiExternal(JSC::VM& vm, JSC::Structure* structure)
-// : Base(vm, structure)
-// {
-// }
-
-// DECLARE_INFO;
-
-// static constexpr unsigned StructureFlags = Base::StructureFlags;
-
-// template<typename CellType, SubspaceAccess> static GCClient::IsoSubspace* subspaceFor(VM& vm)
-// {
-// return &vm.plainObjectSpace();
-// }
-
-// static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject,
-// JSC::JSValue prototype)
-// {
-// return JSC::Structure::create(vm, globalObject, prototype,
-// JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
-// }
-
-// static NapiExternal* create(JSC::VM& vm, JSC::Structure* structure)
-// {
-// NapiExternal* accessor = new (NotNull, JSC::allocateCell<NapiExternal>(vm)) NapiExternal(vm, structure);
-// accessor->finishCreation(vm);
-// return accessor;
-// }
-
-// void finishCreation(JSC::VM& vm);
-// void* m_value;
-// };
-
-// } // namespace Zig \ No newline at end of file
+} \ No newline at end of file