aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings
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
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')
-rw-r--r--src/javascript/jsc/bindings/ZigConsoleClient.cpp206
-rw-r--r--src/javascript/jsc/bindings/bindings.cpp21
-rw-r--r--src/javascript/jsc/bindings/bindings.zig21
-rw-r--r--src/javascript/jsc/bindings/headers-cpp.h2
-rw-r--r--src/javascript/jsc/bindings/headers.h4
-rw-r--r--src/javascript/jsc/bindings/headers.zig2
6 files changed, 140 insertions, 116 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
diff --git a/src/javascript/jsc/bindings/bindings.cpp b/src/javascript/jsc/bindings/bindings.cpp
index c73cb8099..492a65fda 100644
--- a/src/javascript/jsc/bindings/bindings.cpp
+++ b/src/javascript/jsc/bindings/bindings.cpp
@@ -209,6 +209,16 @@ void JSC__JSValue__putRecord(JSC__JSValue objectValue, JSC__JSGlobalObject *glob
scope.release();
}
+JSC__JSInternalPromise *JSC__JSValue__asInternalPromise(JSC__JSValue JSValue0) {
+ JSC::JSValue value = JSC::JSValue::decode(JSValue0);
+ return JSC::jsCast<JSC::JSInternalPromise *>(value);
+}
+JSC__JSValue JSC__JSValue__createInternalPromise(JSC__JSGlobalObject *globalObject) {
+ JSC::VM &vm = globalObject->vm();
+ return JSC::JSValue::encode(
+ JSC::JSValue(JSC::JSInternalPromise::create(vm, globalObject->internalPromiseStructure())));
+}
+
void JSC__JSValue__jsonStringify(JSC__JSValue JSValue0, JSC__JSGlobalObject *arg1, uint32_t arg2,
ZigString *arg3) {
JSC::JSValue value = JSC::JSValue::decode(JSValue0);
@@ -656,13 +666,20 @@ JSC__JSValue ZigString__to16BitValue(const ZigString *arg0, JSC__JSGlobalObject
}
JSC__JSValue ZigString__toValueGC(const ZigString *arg0, JSC__JSGlobalObject *arg1) {
- return JSC::JSValue::encode(
- JSC::JSValue(JSC::jsMakeNontrivialString(arg1->vm(), Zig::toStringCopy(*arg0))));
+ return JSC::JSValue::encode(JSC::JSValue(JSC::jsString(arg1->vm(), Zig::toStringCopy(*arg0))));
}
void JSC__JSValue__toZigString(JSC__JSValue JSValue0, ZigString *arg1, JSC__JSGlobalObject *arg2) {
JSC::JSValue value = JSC::JSValue::decode(JSValue0);
+
+ // if (!value.isString()) {
+ // arg1->len = 0;
+ // arg1->ptr = nullptr;
+ // return;
+ // }
+
auto str = value.toWTFString(arg2);
+
if (str.is8Bit()) {
arg1->ptr = str.characters8();
} else {
diff --git a/src/javascript/jsc/bindings/bindings.zig b/src/javascript/jsc/bindings/bindings.zig
index 77f2bc20c..f7b270a40 100644
--- a/src/javascript/jsc/bindings/bindings.zig
+++ b/src/javascript/jsc/bindings/bindings.zig
@@ -136,10 +136,14 @@ pub const ZigString = extern struct {
}
}
- pub inline fn isGloballyAllocated(this: *ZigString) bool {
+ pub inline fn isGloballyAllocated(this: ZigString) bool {
return (@ptrToInt(this.ptr) & (1 << 62)) != 0;
}
+ pub inline fn deinitGlobal(this: ZigString) void {
+ _global.default_allocator.free(this.slice());
+ }
+
pub inline fn mark(this: *ZigString) void {
this.ptr = @intToPtr([*]const u8, @ptrToInt(this.ptr) | (1 << 62));
}
@@ -1497,6 +1501,7 @@ pub const JSValue = enum(i64) {
u16 => toU16(this),
c_uint => @intCast(c_uint, toU32(this)),
c_int => @intCast(c_int, toInt32(this)),
+ ?*JSInternalPromise => asInternalPromise(this),
// TODO: BigUint64?
u64 => @as(u64, toU32(this)),
@@ -1555,6 +1560,18 @@ pub const JSValue = enum(i64) {
};
}
+ pub fn createInternalPromise(globalObject: *JSGlobalObject) JSValue {
+ return cppFn("createInternalPromise", .{globalObject});
+ }
+
+ pub fn asInternalPromise(
+ value: JSValue,
+ ) ?*JSInternalPromise {
+ return cppFn("asInternalPromise", .{
+ value,
+ });
+ }
+
pub fn jsNumber(number: anytype) JSValue {
return jsNumberWithType(@TypeOf(number), number);
}
@@ -1883,7 +1900,7 @@ pub const JSValue = enum(i64) {
return @intToPtr(*anyopaque, @bitCast(u64, @enumToInt(this)));
}
- pub const Extern = [_][]const u8{ "asArrayBuffer_", "getReadableStreamState", "getWritableStreamState", "fromEntries", "createTypeError", "createRangeError", "createObject2", "getIfPropertyExistsImpl", "jsType", "jsonStringify", "kind_", "isTerminationException", "isSameValue", "getLengthOfArray", "toZigString", "createStringArray", "createEmptyObject", "putRecord", "asPromise", "isClass", "getNameProperty", "getClassName", "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" };
+ pub const Extern = [_][]const u8{ "createInternalPromise", "asInternalPromise", "asArrayBuffer_", "getReadableStreamState", "getWritableStreamState", "fromEntries", "createTypeError", "createRangeError", "createObject2", "getIfPropertyExistsImpl", "jsType", "jsonStringify", "kind_", "isTerminationException", "isSameValue", "getLengthOfArray", "toZigString", "createStringArray", "createEmptyObject", "putRecord", "asPromise", "isClass", "getNameProperty", "getClassName", "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" };
};
extern "c" fn Microtask__run(*Microtask, *JSGlobalObject) void;
diff --git a/src/javascript/jsc/bindings/headers-cpp.h b/src/javascript/jsc/bindings/headers-cpp.h
index 4ea2d08a9..2ba13ed1d 100644
--- a/src/javascript/jsc/bindings/headers-cpp.h
+++ b/src/javascript/jsc/bindings/headers-cpp.h
@@ -1,4 +1,4 @@
-//-- AUTOGENERATED FILE -- 1642723405
+//-- AUTOGENERATED FILE -- 1642736709
// clang-format off
#pragma once
diff --git a/src/javascript/jsc/bindings/headers.h b/src/javascript/jsc/bindings/headers.h
index 73979e4dd..31ccc29ea 100644
--- a/src/javascript/jsc/bindings/headers.h
+++ b/src/javascript/jsc/bindings/headers.h
@@ -1,5 +1,5 @@
// clang-format: off
-//-- AUTOGENERATED FILE -- 1642723405
+//-- AUTOGENERATED FILE -- 1642736709
#pragma once
#include <stddef.h>
@@ -429,10 +429,12 @@ CPP_DECL size_t WTF__String__length(WTF__String* arg0);
CPP_DECL bool JSC__JSValue__asArrayBuffer_(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1, Bun__ArrayBuffer* arg2);
CPP_DECL JSC__JSCell* JSC__JSValue__asCell(JSC__JSValue JSValue0);
+CPP_DECL JSC__JSInternalPromise* JSC__JSValue__asInternalPromise(JSC__JSValue JSValue0);
CPP_DECL double JSC__JSValue__asNumber(JSC__JSValue JSValue0);
CPP_DECL bJSC__JSObject JSC__JSValue__asObject(JSC__JSValue JSValue0);
CPP_DECL JSC__JSString* JSC__JSValue__asString(JSC__JSValue JSValue0);
CPP_DECL JSC__JSValue JSC__JSValue__createEmptyObject(JSC__JSGlobalObject* arg0, size_t arg1);
+CPP_DECL JSC__JSValue JSC__JSValue__createInternalPromise(JSC__JSGlobalObject* arg0);
CPP_DECL JSC__JSValue JSC__JSValue__createObject2(JSC__JSGlobalObject* arg0, const ZigString* arg1, const ZigString* arg2, JSC__JSValue JSValue3, JSC__JSValue JSValue4);
CPP_DECL JSC__JSValue JSC__JSValue__createRangeError(const ZigString* arg0, const ZigString* arg1, JSC__JSGlobalObject* arg2);
CPP_DECL JSC__JSValue JSC__JSValue__createStringArray(JSC__JSGlobalObject* arg0, ZigString* arg1, size_t arg2, bool arg3);
diff --git a/src/javascript/jsc/bindings/headers.zig b/src/javascript/jsc/bindings/headers.zig
index 7ce45a4cc..9b637f427 100644
--- a/src/javascript/jsc/bindings/headers.zig
+++ b/src/javascript/jsc/bindings/headers.zig
@@ -273,10 +273,12 @@ pub extern fn WTF__String__isStatic(arg0: [*c]WTF__String) bool;
pub extern fn WTF__String__length(arg0: [*c]WTF__String) usize;
pub extern fn JSC__JSValue__asArrayBuffer_(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject, arg2: [*c]Bun__ArrayBuffer) bool;
pub extern fn JSC__JSValue__asCell(JSValue0: JSC__JSValue) [*c]JSC__JSCell;
+pub extern fn JSC__JSValue__asInternalPromise(JSValue0: JSC__JSValue) [*c]JSC__JSInternalPromise;
pub extern fn JSC__JSValue__asNumber(JSValue0: JSC__JSValue) f64;
pub extern fn JSC__JSValue__asObject(JSValue0: JSC__JSValue) bJSC__JSObject;
pub extern fn JSC__JSValue__asString(JSValue0: JSC__JSValue) [*c]JSC__JSString;
pub extern fn JSC__JSValue__createEmptyObject(arg0: [*c]JSC__JSGlobalObject, arg1: usize) JSC__JSValue;
+pub extern fn JSC__JSValue__createInternalPromise(arg0: [*c]JSC__JSGlobalObject) JSC__JSValue;
pub extern fn JSC__JSValue__createObject2(arg0: [*c]JSC__JSGlobalObject, arg1: [*c]const ZigString, arg2: [*c]const ZigString, JSValue3: JSC__JSValue, JSValue4: JSC__JSValue) JSC__JSValue;
pub extern fn JSC__JSValue__createRangeError(arg0: [*c]const ZigString, arg1: [*c]const ZigString, arg2: [*c]JSC__JSGlobalObject) JSC__JSValue;
pub extern fn JSC__JSValue__createStringArray(arg0: [*c]JSC__JSGlobalObject, arg1: [*c]ZigString, arg2: usize, arg3: bool) JSC__JSValue;