aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/ZigConsoleClient.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-01-21 03:39:27 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-01-21 03:39:27 -0800
commit9a5aa95893d047db0ab6d83303e30aaf3c9908cc (patch)
tree9889bde668b538aa4a80e72a7495b3dac93f3318 /src/javascript/jsc/bindings/ZigConsoleClient.cpp
parent8d623e21b672065f0ad29c5183f56761fec37891 (diff)
downloadbun-9a5aa95893d047db0ab6d83303e30aaf3c9908cc.tar.gz
bun-9a5aa95893d047db0ab6d83303e30aaf3c9908cc.tar.zst
bun-9a5aa95893d047db0ab6d83303e30aaf3c9908cc.zip
[Bun.js] `Bun.Transpiler.transform` & `Bun.Transpiler.transformSync` APIs
Diffstat (limited to 'src/javascript/jsc/bindings/ZigConsoleClient.cpp')
-rw-r--r--src/javascript/jsc/bindings/ZigConsoleClient.cpp206
1 files changed, 96 insertions, 110 deletions
diff --git a/src/javascript/jsc/bindings/ZigConsoleClient.cpp b/src/javascript/jsc/bindings/ZigConsoleClient.cpp
index b88bb8064..9e7bf7d3f 100644
--- a/src/javascript/jsc/bindings/ZigConsoleClient.cpp
+++ b/src/javascript/jsc/bindings/ZigConsoleClient.cpp
@@ -3,10 +3,9 @@
#include "ZigConsoleClient.h"
#include <JavaScriptCore/ConsoleClient.h>
#include <JavaScriptCore/ConsoleMessage.h>
+#include <JavaScriptCore/JSString.h>
#include <JavaScriptCore/ScriptArguments.h>
#include <wtf/text/WTFString.h>
-#include <JavaScriptCore/JSString.h>
-
using ScriptArguments = Inspector::ScriptArguments;
using MessageType = JSC::MessageType;
using MessageLevel = JSC::MessageLevel;
@@ -14,124 +13,111 @@ using JSGlobalObject = JSC__JSGlobalObject;
using String = WTF::String;
-extern "C" {
-JSC__JSValue Inspector__ScriptArguments__argumentAt( Inspector__ScriptArguments* arg0, size_t i) {
-return JSC::JSValue::encode(arg0->argumentAt(i));
-}
-size_t Inspector__ScriptArguments__argumentCount( Inspector__ScriptArguments* arg0) {
- return arg0->argumentCount();
-}
-bWTF__String Inspector__ScriptArguments__getFirstArgumentAsString( Inspector__ScriptArguments* arg0) {
- auto scope = DECLARE_CATCH_SCOPE(arg0->globalObject()->vm());
- JSC::JSValue val0 = arg0->argumentAt(0);
- auto type = val0.asCell()->type();
- Wrap<WTF::String, bWTF__String> wrap;
- wrap.cpp = new (wrap.alignedBuffer()) WTF::String(val0.getString(arg0->globalObject()) );
- scope.clearException();
- return wrap.result;
-}
+namespace JSC {
-bool Inspector__ScriptArguments__isEqual( Inspector__ScriptArguments* arg0, Inspector__ScriptArguments* arg1) {
- return arg0->isEqual(*arg1);
-}
+ALWAYS_INLINE GCDeferralContext::GCDeferralContext(Heap &heap) : m_heap(heap) {}
-void Inspector__ScriptArguments__release(Inspector__ScriptArguments* arg0) {
- auto count = arg0->argumentCount();
- for (int i = 0; i < count; i++) {
- JSC::gcUnprotect(arg0->argumentAt(i));
- }
- arg0->deref();
-}
+ALWAYS_INLINE GCDeferralContext::~GCDeferralContext() {
+ if constexpr (validateDFGDoesGC) m_heap.verifyCanGC();
+ if (UNLIKELY(m_shouldGC)) m_heap.collectIfNecessaryOrDefer();
}
-void Zig::ConsoleClient::messageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::JSGlobalObject* globalObject, Ref<ScriptArguments>&& arguments) {
- // JSC::JSLockHolder holder(arguments->globalObject()->vm());
-
- auto args = arguments.ptr();
- JSC__JSValue jsArgs[255];
- auto count = std::min(args->argumentCount(), (size_t)255);
- for (size_t i = 0; i < count; i++) {
- auto val = args->argumentAt(i);
- // JSC::gcProtect(val);
- jsArgs[i] = JSC::JSValue::encode(val);
-
- }
-
- auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
- Zig__ConsoleClient__messageWithTypeAndLevel(
- this->m_client,
- static_cast<uint32_t>(type),
- static_cast<uint32_t>(level),
- globalObject,
- jsArgs,
- count
- );
- scope.clearException();
-
- // for (size_t i = 0; i < count; i++) {
- // JSC::gcUnprotect(JSC::JSValue::decode(jsArgs[i]));
- // }
+} // namespace JSC
+extern "C" {
+JSC__JSValue Inspector__ScriptArguments__argumentAt(Inspector__ScriptArguments *arg0, size_t i) {
+ return JSC::JSValue::encode(arg0->argumentAt(i));
+}
+size_t Inspector__ScriptArguments__argumentCount(Inspector__ScriptArguments *arg0) {
+ return arg0->argumentCount();
+}
+bWTF__String
+Inspector__ScriptArguments__getFirstArgumentAsString(Inspector__ScriptArguments *arg0) {
+ auto scope = DECLARE_CATCH_SCOPE(arg0->globalObject()->vm());
+ JSC::JSValue val0 = arg0->argumentAt(0);
+ auto type = val0.asCell()->type();
+ Wrap<WTF::String, bWTF__String> wrap;
+ wrap.cpp = new (wrap.alignedBuffer()) WTF::String(val0.getString(arg0->globalObject()));
+ scope.clearException();
+ return wrap.result;
}
-void Zig::ConsoleClient::count(JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__count(this->m_client, globalObject, ptr, label.length());
+
+bool Inspector__ScriptArguments__isEqual(Inspector__ScriptArguments *arg0,
+ Inspector__ScriptArguments *arg1) {
+ return arg0->isEqual(*arg1);
}
-void Zig::ConsoleClient::countReset(JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__countReset(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::profile(JSC::JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__profile(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::profileEnd(JSC::JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__profileEnd(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::takeHeapSnapshot(JSC::JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__takeHeapSnapshot(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::time(JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__time(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::timeLog(JSGlobalObject* globalObject, const String& label, Ref<ScriptArguments>&& arguments)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__timeLog(this->m_client, globalObject, ptr, label.length(), arguments.ptr());
-}
-void Zig::ConsoleClient::timeEnd(JSGlobalObject* globalObject, const String& label)
-{
- auto ptr = label.characters8();
- Zig__ConsoleClient__timeEnd(this->m_client, globalObject, ptr, label.length());
-}
-void Zig::ConsoleClient::timeStamp(JSGlobalObject* globalObject, Ref<ScriptArguments>&& args)
-{
- Zig__ConsoleClient__timeStamp(this->m_client, globalObject, args.ptr());
-}
-void Zig::ConsoleClient::record(JSGlobalObject*, Ref<ScriptArguments>&&)
-{
-
-}
-void Zig::ConsoleClient::recordEnd(JSGlobalObject*, Ref<ScriptArguments>&&)
-{
+void Inspector__ScriptArguments__release(Inspector__ScriptArguments *arg0) {
+ auto count = arg0->argumentCount();
+ for (int i = 0; i < count; i++) { JSC::gcUnprotect(arg0->argumentAt(i)); }
+ arg0->deref();
+}
+}
+void Zig::ConsoleClient::messageWithTypeAndLevel(MessageType type, MessageLevel level,
+ JSC::JSGlobalObject *globalObject,
+ Ref<ScriptArguments> &&arguments) {
+ JSC::VM &vm = globalObject->vm();
+ JSC::GCDeferralContext deferralContext(vm.heap);
+ JSC::DisallowGC disallowGC;
+ auto args = arguments.ptr();
+ JSC__JSValue jsArgs[255];
+
+ auto count = std::min(args->argumentCount(), (size_t)255);
+ for (size_t i = 0; i < count; i++) {
+ auto val = args->argumentAt(i);
+ // JSC::gcProtect(val);
+ jsArgs[i] = JSC::JSValue::encode(val);
+ }
+
+ auto scope = DECLARE_THROW_SCOPE(vm);
+ Zig__ConsoleClient__messageWithTypeAndLevel(this->m_client, static_cast<uint32_t>(type),
+ static_cast<uint32_t>(level), globalObject, jsArgs,
+ count);
+ scope.clearException();
+ // for (size_t i = 0; i < count; i++) {
+ // JSC::gcUnprotect(JSC::JSValue::decode(jsArgs[i]));
+ // }
}
-void Zig::ConsoleClient::screenshot(JSGlobalObject*, Ref<ScriptArguments>&&)
-{
-
+void Zig::ConsoleClient::count(JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__count(this->m_client, globalObject, ptr, label.length());
}
-void Zig::ConsoleClient::warnUnimplemented(const String& method)
-{
-} \ No newline at end of file
+void Zig::ConsoleClient::countReset(JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__countReset(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::profile(JSC::JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__profile(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::profileEnd(JSC::JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__profileEnd(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::takeHeapSnapshot(JSC::JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__takeHeapSnapshot(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::time(JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__time(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::timeLog(JSGlobalObject *globalObject, const String &label,
+ Ref<ScriptArguments> &&arguments) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__timeLog(this->m_client, globalObject, ptr, label.length(), arguments.ptr());
+}
+void Zig::ConsoleClient::timeEnd(JSGlobalObject *globalObject, const String &label) {
+ auto ptr = label.characters8();
+ Zig__ConsoleClient__timeEnd(this->m_client, globalObject, ptr, label.length());
+}
+void Zig::ConsoleClient::timeStamp(JSGlobalObject *globalObject, Ref<ScriptArguments> &&args) {
+ Zig__ConsoleClient__timeStamp(this->m_client, globalObject, args.ptr());
+}
+void Zig::ConsoleClient::record(JSGlobalObject *, Ref<ScriptArguments> &&) {}
+void Zig::ConsoleClient::recordEnd(JSGlobalObject *, Ref<ScriptArguments> &&) {}
+void Zig::ConsoleClient::screenshot(JSGlobalObject *, Ref<ScriptArguments> &&) {}
+void Zig::ConsoleClient::warnUnimplemented(const String &method) {} \ No newline at end of file