aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-15 01:48:31 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-17 07:36:35 -0700
commit6a65631cbdcae75bfa1e64323a6ad613a922cd1a (patch)
treed6a8c56e9455eafbcb944fd29b5ba066ab31bca0 /src/bun.js/bindings/ZigLazyStaticFunctions-inlines.h
parent382be2cb46eac458e7f619ee1ee05c9efadcce51 (diff)
downloadbun-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.h162
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