diff options
author | 2022-06-22 23:21:48 -0700 | |
---|---|---|
committer | 2022-06-22 23:21:48 -0700 | |
commit | 729d445b6885f69dd2c6355f38707bd42851c791 (patch) | |
tree | f87a7c408929ea3f57bbb7ace380cf869da83c0e /src/bun.js/bindings/objects.h | |
parent | 25f820c6bf1d8ec6d444ef579cc036b8c0607b75 (diff) | |
download | bun-jarred/rename.tar.gz bun-jarred/rename.tar.zst bun-jarred/rename.zip |
change the directory structurejarred/rename
Diffstat (limited to 'src/bun.js/bindings/objects.h')
-rw-r--r-- | src/bun.js/bindings/objects.h | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/src/bun.js/bindings/objects.h b/src/bun.js/bindings/objects.h new file mode 100644 index 000000000..622a46804 --- /dev/null +++ b/src/bun.js/bindings/objects.h @@ -0,0 +1,254 @@ +// #pragma once + +// #include "root.h" +// #include "headers.h" + +// #include "JavaScriptCore/JSObject.h" +// +// #include "JavaScriptCore/InternalFunction.h" + +// namespace Zig { + +// class ModulePrototype final : public JSC::JSNonFinalObject { +// public: +// using Base = JSC::JSNonFinalObject; +// DECLARE_EXPORT_INFO; +// static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::ImplementsHasInstance | JSC::ImplementsDefaultHasInstance; +// static constexpr bool needsDestruction = true; + +// template<typename CellType, JSC::SubspaceAccess> +// static JSC::IsoSubspace* subspaceFor(JSC::VM& vm) +// { +// STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(Headers, Base); +// return &vm.plainObjectSpace; +// } + +// static ModulePrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* zigBase) +// { +// ModulePrototype* object = new (NotNull, JSC::allocateCell<ModulePrototype>(vm.heap)) ModulePrototype(vm, structure); +// !!zigBase ? object->finishCreation(vm, globalObject, zigBase) : object->finishCreation(vm, globalObject); +// return object; +// } + +// static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject&); +// static JSC::JSObject* prototype(JSC::VM&, JSC::JSGlobalObject&); + +// 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()); +// } + +// void* m_zigBase; + +// private: +// ModulePrototype(JSC::VM&, JSC::Structure*) : Base(vm, structure) { +// m_zigBase = nullptr; +// }; +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*, void* zigBase); +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*); + +// }; + +// class ModuleExportsMap final : public JSC::JSNonFinalObject { +// public: +// using Base = JSC::JSNonFinalObject; +// DECLARE_EXPORT_INFO; +// static constexpr unsigned StructureFlags = Base::StructureFlags; +// static constexpr bool needsDestruction = true; + +// template<typename CellType, JSC::SubspaceAccess> +// static JSC::IsoSubspace* subspaceFor(JSC::VM& vm) +// { +// STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(Headers, Base); +// return &vm.plainObjectSpace; +// } + +// static ModulePrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* zigBase) +// { +// ModulePrototype* object = new (NotNull, JSC::allocateCell<ModulePrototype>(vm.heap)) ModulePrototype(vm, structure); +// !!zigBase ? object->finishCreation(vm, globalObject, zigBase) : object->finishCreation(vm, globalObject); +// return object; +// } + +// static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject&); +// static JSC::JSObject* prototype(JSC::VM&, JSC::JSGlobalObject&); + +// 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()); +// } + +// void* m_zigBase; + +// private: +// ModulePrototype(JSC::VM&, JSC::Structure*) : Base(vm, structure) { +// m_zigBase = nullptr; +// }; +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*, void* zigBase); +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*); + +// }; + +// } + +// namespace Zig { + +// class HeadersPrototype final : public JSC::JSNonFinalObject { +// public: +// using Base = JSC::JSNonFinalObject; +// DECLARE_EXPORT_INFO; +// static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::ImplementsHasInstance | JSC::ImplementsDefaultHasInstance; +// static constexpr bool needsDestruction = true; + +// template<typename CellType, JSC::SubspaceAccess> +// static JSC::IsoSubspace* subspaceFor(JSC::VM& vm) +// { +// STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(Headers, Base); +// return &vm.plainObjectSpace; +// } + +// static HeadersPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* zigBase) +// { +// HeadersPrototype* object = new (NotNull, JSC::allocateCell<HeadersPrototype>(vm.heap)) HeadersPrototype(vm, structure); +// !!zigBase ? object->finishCreation(vm, globalObject, zigBase) : object->finishCreation(vm, globalObject); +// return object; +// } + +// static HeadersPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) +// { +// HeadersPrototype* object = new (NotNull, JSC::allocateCell<HeadersPrototype>(vm.heap)) HeadersPrototype(vm, structure); +// object->finishCreation(vm, globalObject); +// return object; +// } + +// JSC::JSValue get(JSC::JSGlobalObject&, JSC::JSValue); +// bool put(JSC::JSGlobalObject&, JSC::JSValue, JSC::JSValue); +// bool has(JSC::JSGlobalObject&, JSC::JSValue); +// void remove(JSC::JSGlobalObject&, JSC::JSValue); +// void clear(JSC::JSGlobalObject&, JSC::JSValue); + +// static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject&); +// static JSC::JSObject* prototype(JSC::VM&, JSC::JSGlobalObject&); + +// 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()); +// } + +// void* m_zigBase; + +// private: +// HeadersPrototype(JSC::VM&, JSC::Structure*) : Base(vm, structure) { +// m_zigBase = nullptr; +// }; +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*, void* zigBase); +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*); + +// }; + +// JSC_DECLARE_HOST_FUNCTION(headersFuncPrototypeGet); +// JSC_DECLARE_HOST_FUNCTION(headersFuncPrototypePut); +// JSC_DECLARE_HOST_FUNCTION(headersFuncPrototypeHas); +// JSC_DECLARE_HOST_FUNCTION(headersFuncPrototypeRemove); +// JSC_DECLARE_HOST_FUNCTION(headersFuncPrototypeClear); + +// class HeadersConstructor final : public JSC::InternalFunction { +// public: +// typedef InternalFunction Base; + +// static HeadersConstructor* create(JSC::VM& vm, JSC::Structure* structure, HeadersPrototype* mapPrototype) +// { +// HeadersConstructor* constructor = new (NotNull, JSC::allocateCell<HeadersConstructor>(vm.heap)) HeadersConstructor(vm, structure); +// constructor->finishCreation(vm, mapPrototype); +// return constructor; +// } + +// DECLARE_EXPORT_INFO; + +// static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) +// { +// return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info()); +// } + +// private: +// HeadersConstructor(JSC::VM&, JSC::Structure*); + +// void finishCreation(JSC::VM&, HeadersPrototype*); +// }; + +// JSC_DECLARE_HOST_FUNCTION(headersFuncConstructor); + +// class RequestConstructor final : public JSC::InternalFunction { +// public: +// typedef InternalFunction Base; + +// static RequestConstructor* create(JSC::VM& vm, JSC::Structure* structure, RequestPrototype* mapPrototype) +// { +// RequestConstructor* constructor = new (NotNull, JSC::allocateCell<RequestConstructor>(vm.heap)) RequestConstructor(vm, structure); +// constructor->finishCreation(vm, mapPrototype); +// return constructor; +// } + +// DECLARE_EXPORT_INFO; + +// static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) +// { +// return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::InternalFunctionType, StructureFlags), info()); +// } + +// private: +// RequestConstructor(JSC::VM&, JSC::Structure*); + +// void finishCreation(JSC::VM&, RequestPrototype*); +// }; + +// JSC_DECLARE_HOST_FUNCTION(requestFuncConstructor); + +// class RequestPrototype final : public JSC::JSNonFinalObject { +// public: +// using Base = JSC::JSNonFinalObject; +// DECLARE_EXPORT_INFO; +// static constexpr unsigned StructureFlags = Base::StructureFlags | JSC::ImplementsHasInstance | JSC::ImplementsDefaultHasInstance; +// static constexpr bool needsDestruction = true; + +// template<typename CellType, JSC::SubspaceAccess> +// static JSC::IsoSubspace* subspaceFor(JSC::VM& vm) +// { +// STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(Headers, Base); +// return &vm.plainObjectSpace; +// } + +// static RequestPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure, void* zigBase) +// { +// RequestPrototype* object = new (NotNull, JSC::allocateCell<RequestPrototype>(vm.heap)) RequestPrototype(vm, structure); +// !!zigBase ? object->finishCreation(vm, globalObject, zigBase) : object->finishCreation(vm, globalObject); +// return object; +// } + +// static RequestPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) +// { +// RequestPrototype* object = new (NotNull, JSC::allocateCell<RequestPrototype>(vm.heap)) RequestPrototype(vm, structure); +// object->finishCreation(vm, globalObject); +// return object; +// } + +// static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject&); +// static JSC::JSObject* prototype(JSC::VM&, JSC::JSGlobalObject&); + +// 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()); +// } + +// void* m_zigBase; + +// private: +// RequestPrototype(JSC::VM&, JSC::Structure*) : Base(vm, structure) { +// m_zigBase = nullptr; +// }; +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*, void* zigBase); +// void finishCreation(JSC::VM&, JSC::JSGlobalObject*); + +// }; + +// } |