diff options
author | 2022-08-15 01:48:31 -0700 | |
---|---|---|
committer | 2022-08-17 07:36:35 -0700 | |
commit | 6a65631cbdcae75bfa1e64323a6ad613a922cd1a (patch) | |
tree | d6a8c56e9455eafbcb944fd29b5ba066ab31bca0 /src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h | |
parent | 382be2cb46eac458e7f619ee1ee05c9efadcce51 (diff) | |
download | bun-6a65631cbdcae75bfa1e64323a6ad613a922cd1a.tar.gz bun-6a65631cbdcae75bfa1e64323a6ad613a922cd1a.tar.zst bun-6a65631cbdcae75bfa1e64323a6ad613a922cd1a.zip |
[bun:ffi] Improve `ptr()` performance and implement code generation for DOMJIT
Diffstat (limited to 'src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h')
-rw-r--r-- | src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h | 162 |
1 files changed, 26 insertions, 136 deletions
diff --git a/src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h b/src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h index ebef57b4a..c97393723 100644 --- a/src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h +++ b/src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h @@ -3,141 +3,31 @@ namespace Zig { - template<typename Visitor> - void LazyStaticFunctions::visit(Visitor& visitor) { - this->m_Bun__HTTPRequestContext__reject.visit(visitor); - this->m_Bun__HTTPRequestContext__resolve.visit(visitor); - this->m_Bun__HTTPRequestContextTLS__reject.visit(visitor); - this->m_Bun__HTTPRequestContextTLS__resolve.visit(visitor); - this->m_Bun__HTTPRequestContextDebug__reject.visit(visitor); - this->m_Bun__HTTPRequestContextDebug__resolve.visit(visitor); - this->m_Bun__HTTPRequestContextDebugTLS__reject.visit(visitor); - this->m_Bun__HTTPRequestContextDebugTLS__resolve.visit(visitor); - - } - - void LazyStaticFunctions::init(Zig::GlobalObject *globalObject) { - - m_Bun__HTTPRequestContext__reject.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("reject"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContext__reject, - JSC::NoIntrinsic, - Bun__HTTPRequestContext__reject - ); - init.set(function); - }); - - m_Bun__HTTPRequestContext__resolve.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("resolve"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContext__resolve, - JSC::NoIntrinsic, - Bun__HTTPRequestContext__resolve - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextTLS__reject.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("reject"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextTLS__reject, - JSC::NoIntrinsic, - Bun__HTTPRequestContextTLS__reject - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextTLS__resolve.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("resolve"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextTLS__resolve, - JSC::NoIntrinsic, - Bun__HTTPRequestContextTLS__resolve - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextDebug__reject.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("reject"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextDebug__reject, - JSC::NoIntrinsic, - Bun__HTTPRequestContextDebug__reject - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextDebug__resolve.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("resolve"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextDebug__resolve, - JSC::NoIntrinsic, - Bun__HTTPRequestContextDebug__resolve - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextDebugTLS__reject.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("reject"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextDebugTLS__reject, - JSC::NoIntrinsic, - Bun__HTTPRequestContextDebugTLS__reject - ); - init.set(function); - }); - - m_Bun__HTTPRequestContextDebugTLS__resolve.initLater( - [](const JSC::LazyProperty<Zig::GlobalObject, Zig::JSFFIFunction>::Initializer& init) { - WTF::String functionName = WTF::String("resolve"_s); - Zig::JSFFIFunction* function = Zig::JSFFIFunction::create( - init.vm, - init.owner, - 1, - functionName, - Bun__HTTPRequestContextDebugTLS__resolve, - JSC::NoIntrinsic, - Bun__HTTPRequestContextDebugTLS__resolve - ); - init.set(function); - }); - - } +/* -- BEGIN DOMCall DEFINITIONS -- */ + +static void DOMCall__FFI__ptr__put(JSC::JSGlobalObject* globalObject, JSC::EncodedJSValue value) +{ + JSC::JSObject* thisObject = JSC::jsCast<JSC::JSObject*>(JSC::JSValue::decode(value)); + static const JSC::DOMJIT::Signature DOMJIT_ptr_signature( + FFI__ptr__fastpath, + thisObject->classInfo(), + JSC::DOMJIT::Effect::forPure(), + JSC::SpecHeapTop, + JSC::SpecUint8Array); + JSFunction* function = JSFunction::create( + globalObject->vm(), + globalObject, + 1, + String("ptr"_s), + FFI__ptr__slowpath, ImplementationVisibility::Public, NoIntrinsic, FFI__ptr__slowpath, + &DOMJIT_ptr_signature); + thisObject->putDirect( + globalObject->vm(), + Identifier::fromString(globalObject->vm(), "ptr"_s), + function, + JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0); +} + +/* -- END DOMCall DEFINITIONS-- */ } // namespace Zig |