aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGeneratedCode.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-17 07:36:18 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-17 07:37:14 -0700
commit93b663e43d2288cea5f7b2e8f045c719427a914f (patch)
treea7849c913b6c4814636da3ea08ed98beadaad469 /src/bun.js/bindings/ZigGeneratedCode.cpp
parent65820893c966d4f8af2c0058682d30fa6330a219 (diff)
downloadbun-93b663e43d2288cea5f7b2e8f045c719427a914f.tar.gz
bun-93b663e43d2288cea5f7b2e8f045c719427a914f.tar.zst
bun-93b663e43d2288cea5f7b2e8f045c719427a914f.zip
New Zig <> C++ bindings generator. +20% faster HTTP server
Diffstat (limited to 'src/bun.js/bindings/ZigGeneratedCode.cpp')
-rw-r--r--src/bun.js/bindings/ZigGeneratedCode.cpp105
1 files changed, 53 insertions, 52 deletions
diff --git a/src/bun.js/bindings/ZigGeneratedCode.cpp b/src/bun.js/bindings/ZigGeneratedCode.cpp
index e5e377d82..c563597b8 100644
--- a/src/bun.js/bindings/ZigGeneratedCode.cpp
+++ b/src/bun.js/bindings/ZigGeneratedCode.cpp
@@ -1,60 +1,61 @@
-#include "root.h"
-
-#include <JavaScriptCore/DOMJITAbstractHeap.h>
-#include "DOMJITIDLConvert.h"
-#include "DOMJITIDLType.h"
-#include "DOMJITIDLTypeFilter.h"
-#include "DOMJITHelpers.h"
-#include <JavaScriptCore/DFGAbstractHeap.h>
-
-#include "JSDOMConvertBufferSource.h"
-
-using namespace JSC;
-using namespace WebCore;
-
-/* -- BEGIN DOMCall DEFINITIONS -- */
+ #include "root.h"
+
+ #include <JavaScriptCore/DOMJITAbstractHeap.h>
+ #include "DOMJITIDLConvert.h"
+ #include "DOMJITIDLType.h"
+ #include "DOMJITIDLTypeFilter.h"
+ #include "DOMJITHelpers.h"
+ #include <JavaScriptCore/DFGAbstractHeap.h>
+
+ #include "JSDOMConvertBufferSource.h"
+
+ using namespace JSC;
+ using namespace WebCore;
+
+
+ /* -- BEGIN DOMCall DEFINITIONS -- */
+
extern "C" JSC_DECLARE_HOST_FUNCTION(FFI__ptr__slowpathWrapper);
-extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(FFI__ptr__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject * lexicalGlobalObject, void* thisValue, JSC::JSUint8Array*));
-
-JSC_DEFINE_JIT_OPERATION(FFI__ptr__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject * lexicalGlobalObject, void* thisValue, JSC::JSUint8Array* arg1))
-{
- VM& vm = JSC::getVM(lexicalGlobalObject);
- IGNORE_WARNINGS_BEGIN("frame-address")
- CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
- IGNORE_WARNINGS_END
- JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
- return FFI__ptr__fastpath(lexicalGlobalObject, thisValue, arg1);
+extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(FFI__ptr__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, JSC::JSUint8Array*));
+
+JSC_DEFINE_JIT_OPERATION(FFI__ptr__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, JSC::JSUint8Array* arg1)) {
+VM& vm = JSC::getVM(lexicalGlobalObject);
+IGNORE_WARNINGS_BEGIN("frame-address")
+CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
+IGNORE_WARNINGS_END
+JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
+return FFI__ptr__fastpath(lexicalGlobalObject, thisValue, arg1);
}
-JSC_DEFINE_HOST_FUNCTION(FFI__ptr__slowpathWrapper, (JSC::JSGlobalObject * globalObject, JSC::CallFrame* frame))
-{
+JSC_DEFINE_HOST_FUNCTION(FFI__ptr__slowpathWrapper, (JSC::JSGlobalObject *globalObject, JSC::CallFrame* frame)) {
return FFI__ptr__slowpath(globalObject, JSValue::encode(frame->thisValue()), reinterpret_cast<JSC::EncodedJSValue*>(frame->addressOfArgumentsStart()), frame->argumentCount());
}
-constexpr JSC::DFG::AbstractHeapKind encodeIntoRead[4] = { JSC::DFG::Absolute, JSC::DFG::MiscFields, JSC::DFG::TypedArrayProperties };
-constexpr JSC::DFG::AbstractHeapKind encodeIntoWrite[4] = { JSC::DFG::Absolute, JSC::DFG::TypedArrayProperties };
-
-extern "C" void 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__fastpathWrapper,
- thisObject->classInfo(),
- JSC::DOMJIT::Effect::forReadWriteKinds(encodeIntoRead, encodeIntoWrite),
- JSC::SpecNonIntAsDouble,
- JSC::SpecUint8Array);
- JSFunction* function = JSFunction::create(
- globalObject->vm(),
- globalObject,
- 1,
- String("ptr"_s),
- FFI__ptr__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, FFI__ptr__slowpathWrapper,
- &DOMJIT_ptr_signature);
- thisObject->putDirect(
- globalObject->vm(),
- Identifier::fromString(globalObject->vm(), "ptr"_s),
- function,
- JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0);
+extern "C" void 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__fastpathWrapper,
+ thisObject->classInfo(),
+ JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()),
+ JSC::SpecNonIntAsDouble,
+ JSC::SpecUint8Array
+ );
+ JSFunction* function = JSFunction::create(
+ globalObject->vm(),
+ globalObject,
+ 1,
+ String("ptr"_s),
+ FFI__ptr__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, FFI__ptr__slowpathWrapper,
+ &DOMJIT_ptr_signature
+ );
+ thisObject->putDirect(
+ globalObject->vm(),
+ Identifier::fromString(globalObject->vm(), "ptr"_s),
+ function,
+ JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0
+ );
}
-/* -- END DOMCall DEFINITIONS-- */
+
+ /* -- END DOMCall DEFINITIONS-- */
+