From 93b663e43d2288cea5f7b2e8f045c719427a914f Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 17 Aug 2022 07:36:18 -0700 Subject: New Zig <> C++ bindings generator. +20% faster HTTP server --- .../bindings/ZigGeneratedClasses+lazyStructureImpl.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h (limited to 'src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h') diff --git a/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h new file mode 100644 index 000000000..5a7fcc406 --- /dev/null +++ b/src/bun.js/bindings/ZigGeneratedClasses+lazyStructureImpl.h @@ -0,0 +1,20 @@ +void GlobalObject::initGeneratedLazyClasses() { + m_JSRequest.initLater( + [](LazyClassStructure::Initializer& init) { + init.setPrototype(WebCore::JSRequest::createPrototype(init.vm, reinterpret_cast(init.global))); + init.setStructure(WebCore::JSRequest::createStructure(init.vm, init.global, init.prototype)); + init.setConstructor(WebCore::JSRequestConstructor::create(init.vm, init.global, WebCore::JSRequestConstructor::createStructure(init.vm, init.global, init.global->functionPrototype()), jsCast(init.prototype))); + }); + m_JSResponse.initLater( + [](LazyClassStructure::Initializer& init) { + init.setPrototype(WebCore::JSResponse::createPrototype(init.vm, reinterpret_cast(init.global))); + init.setStructure(WebCore::JSResponse::createStructure(init.vm, init.global, init.prototype)); + init.setConstructor(WebCore::JSResponseConstructor::create(init.vm, init.global, WebCore::JSResponseConstructor::createStructure(init.vm, init.global, init.global->functionPrototype()), jsCast(init.prototype))); + }); +} +template +void GlobalObject::visitGeneratedLazyClasses(GlobalObject *thisObject, Visitor& visitor) +{ + thisObject->m_JSRequest.visit(visitor); + thisObject->m_JSResponse.visit(visitor); +} \ No newline at end of file -- cgit v1.2.3