aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/env.zig2
-rw-r--r--src/global.zig5
-rw-r--r--src/javascript/jsc/api/router.zig10
-rw-r--r--src/javascript/jsc/base.zig66
-rw-r--r--src/javascript/jsc/bindings/ZigGlobalObject.cpp21
-rw-r--r--src/javascript/jsc/bindings/bindings.zig12
-rw-r--r--src/javascript/jsc/bindings/exports.zig6
-rw-r--r--src/javascript/jsc/bindings/headers-cpp.h2
-rw-r--r--src/javascript/jsc/bindings/headers.h8
-rw-r--r--src/javascript/jsc/bindings/headers.zig31
-rw-r--r--src/javascript/jsc/javascript.zig1
-rw-r--r--src/runtime.version1
12 files changed, 126 insertions, 39 deletions
diff --git a/src/env.zig b/src/env.zig
index d7e0072e6..d7e2c509e 100644
--- a/src/env.zig
+++ b/src/env.zig
@@ -20,3 +20,5 @@ pub const isWindows = std.Target.current.os.tag == .windows;
pub const isDebug = std.builtin.Mode.Debug == std.builtin.mode;
pub const isRelease = std.builtin.Mode.Debug != std.builtin.mode and !isTest;
pub const isTest = std.builtin.is_test;
+
+pub const isAarch64 = std.Target.current.cpu.arch == .aarch64; \ No newline at end of file
diff --git a/src/global.zig b/src/global.zig
index 2ca225aeb..dac2eebd5 100644
--- a/src/global.zig
+++ b/src/global.zig
@@ -7,6 +7,7 @@ pub const C = @import("c.zig");
pub usingnamespace @import("env.zig");
pub const FeatureFlags = @import("feature_flags.zig");
+const root = @import("root");
pub const Output = struct {
// These are threadlocal so we don't have stdout/stderr writing on top of each other
@@ -134,7 +135,6 @@ pub const Output = struct {
if (comptime isWasm) {
try source.stream.seekTo(0);
try source.stream.writer().print(fmt, args);
- const root = @import("root");
root.console_log(root.Uint8Array.fromSlice(source.out_buffer[0..source.stream.pos]));
} else {
std.fmt.format(source.stream.writer(), fmt, args) catch unreachable;
@@ -168,7 +168,7 @@ pub const Output = struct {
if (comptime isWasm) {
source.stream.seekTo(0) catch return;
source.stream.writer().print(fmt, args) catch return;
- const root = @import("root");
+
root.console_log(root.Uint8Array.fromSlice(source.out_buffer[0..source.stream.pos]));
} else {
if (enable_buffering) {
@@ -376,7 +376,6 @@ pub const Output = struct {
if (comptime isWasm) {
source.error_stream.seekTo(0) catch return;
source.error_stream.writer().print(fmt, args) catch unreachable;
- const root = @import("root");
root.console_error(root.Uint8Array.fromSlice(source.err_buffer[0..source.error_stream.pos]));
} else {
std.fmt.format(source.error_stream.writer(), fmt, args) catch unreachable;
diff --git a/src/javascript/jsc/api/router.zig b/src/javascript/jsc/api/router.zig
index 143f8abb9..35bd2a865 100644
--- a/src/javascript/jsc/api/router.zig
+++ b/src/javascript/jsc/api/router.zig
@@ -168,7 +168,7 @@ pub const Instance = NewClass(
},
},
.{
- .@"pathname" = .{
+ .pathname = .{
.get = getPathname,
.ro = true,
.ts = d.ts{
@@ -204,8 +204,8 @@ pub const Instance = NewClass(
.@"return" = "\"exact\" | \"dynamic\" | \"catch-all\" | \"optional-catch-all\"",
},
},
- .@"name" = .{
- .@"get" = getRoute,
+ .name = .{
+ .get = getRoute,
.ro = true,
.ts = d.ts{
.@"return" = "string",
@@ -219,7 +219,7 @@ pub const Instance = NewClass(
},
},
.query = .{
- .@"get" = getQuery,
+ .get = getQuery,
.ro = true,
.ts = d.ts{
.@"return" = "Record<string, string | string[]>",
@@ -236,7 +236,7 @@ pub const Instance = NewClass(
},
},
.params = .{
- .@"get" = getParams,
+ .get = getParams,
.ro = true,
.ts = d.ts{
.@"return" = "Record<string, string | string[]>",
diff --git a/src/javascript/jsc/base.zig b/src/javascript/jsc/base.zig
index 277dc1a53..58075dc38 100644
--- a/src/javascript/jsc/base.zig
+++ b/src/javascript/jsc/base.zig
@@ -724,17 +724,51 @@ pub fn NewClass(
var function_name_refs: [function_names.len]js.JSStringRef = undefined;
var class_name_str = name[0.. :0].ptr;
- const class_name_literal = std.unicode.utf8ToUtf16LeStringLiteral(name);
- var static_functions: [function_name_refs.len + 1]js.JSStaticFunction = undefined;
- var instance_functions: [function_names.len]js.JSObjectRef = undefined;
+ var static_functions = brk: {
+ var funcs: [function_name_refs.len + 1]js.JSStaticFunction = undefined;
+ std.mem.set(js.JSStaticFunction, &funcs, js.JSStaticFunction{
+ .name = @intToPtr([*c]const u8, 0),
+ .callAsFunction = null,
+ .attributes = js.JSPropertyAttributes.kJSPropertyAttributeNone,
+ },);
+ break :brk funcs;
+ };
+ var instance_functions = std.mem.zeroes([function_names.len]js.JSObjectRef);
const property_names = std.meta.fieldNames(@TypeOf(properties));
- var property_name_refs: [property_names.len]js.JSStringRef = undefined;
+ var property_name_refs = std.mem.zeroes([property_names.len]js.JSStringRef);
const property_name_literals = property_names;
- var static_properties: [property_names.len]js.JSStaticValue = undefined;
+ var static_properties = brk: {
+ var props: [property_names.len]js.JSStaticValue = undefined;
+ std.mem.set(js.JSStaticValue, &props, js.JSStaticValue{
+ .name = @intToPtr([*c]const u8, 0),
+ .getProperty = null,
+ .setProperty = null,
+ .attributes = js.JSPropertyAttributes.kJSPropertyAttributeNone,
+ },);
+ break :brk props;
+ };
pub var ref: js.JSClassRef = null;
pub var loaded = false;
- pub var definition: js.JSClassDefinition = undefined;
+ pub var definition: js.JSClassDefinition =.{
+ .version = 0,
+ .attributes = js.JSClassAttributes.kJSClassAttributeNone,
+ .className = name[0..:0].ptr,
+ .parentClass = null,
+ .staticValues = null,
+ .staticFunctions = null,
+ .initialize = null,
+ .finalize = null,
+ .hasProperty = null,
+ .getProperty = null,
+ .setProperty = null,
+ .deleteProperty = null,
+ .getPropertyNames = null,
+ .callAsFunction = null,
+ .callAsConstructor = null,
+ .hasInstance = null,
+ .convertToType = null,
+ };
const ConstructorWrapper = struct {
pub fn rfn(
ctx: js.JSContextRef,
@@ -1274,7 +1308,25 @@ pub fn NewClass(
}
pub fn define() js.JSClassDefinition {
- var def = js.kJSClassDefinitionEmpty;
+ var def = js.JSClassDefinition{
+ .version = 0,
+ .attributes = js.JSClassAttributes.kJSClassAttributeNone,
+ .className = class_name_str,
+ .parentClass = null,
+ .staticValues = null,
+ .staticFunctions = null,
+ .initialize = null,
+ .finalize = null,
+ .hasProperty = null,
+ .getProperty = null,
+ .setProperty = null,
+ .deleteProperty = null,
+ .getPropertyNames = null,
+ .callAsFunction = null,
+ .callAsConstructor = null,
+ .hasInstance = null,
+ .convertToType = null,
+ };
if (static_functions.len > 0) {
std.mem.set(js.JSStaticFunction, &static_functions, std.mem.zeroes(js.JSStaticFunction));
diff --git a/src/javascript/jsc/bindings/ZigGlobalObject.cpp b/src/javascript/jsc/bindings/ZigGlobalObject.cpp
index 226abced6..ea7e89141 100644
--- a/src/javascript/jsc/bindings/ZigGlobalObject.cpp
+++ b/src/javascript/jsc/bindings/ZigGlobalObject.cpp
@@ -221,9 +221,11 @@ JSC::Identifier GlobalObject::moduleLoaderResolve(JSGlobalObject *globalObject,
JSValue referrer, JSValue origin) {
ErrorableZigString res;
res.success = false;
- Zig__GlobalObject__resolve(&res, globalObject, toZigString(key, globalObject),
- referrer.isString() ? toZigString(referrer, globalObject)
- : ZigStringEmpty);
+ ZigString keyZ = toZigString(key, globalObject);
+ ZigString referrerZ = referrer.isString() ? toZigString(referrer, globalObject) : ZigStringEmpty;
+ Zig__GlobalObject__resolve(&res, globalObject, &keyZ,
+ &referrerZ
+ );
if (res.success) {
return toIdentifier(res.result.value, globalObject);
@@ -247,10 +249,12 @@ JSC::JSInternalPromise *GlobalObject::moduleLoaderImportModule(JSGlobalObject *g
auto sourceURL = sourceOrigin.url();
ErrorableZigString resolved;
+ auto moduleNameZ = toZigString(moduleNameValue, globalObject);
+ auto sourceOriginZ = sourceURL.isEmpty() ? ZigStringCwd
+ : toZigString(sourceURL.fileSystemPath());
resolved.success = false;
- Zig__GlobalObject__resolve(&resolved, globalObject, toZigString(moduleNameValue, globalObject),
- sourceURL.isEmpty() ? ZigStringCwd
- : toZigString(sourceURL.fileSystemPath()));
+ Zig__GlobalObject__resolve(&resolved, globalObject, &moduleNameZ, &sourceOriginZ
+ );
if (!resolved.success) {
throwException(scope, resolved.result.err, globalObject);
return promise->rejectWithCaughtException(globalObject, scope);
@@ -372,13 +376,14 @@ JSC::JSInternalPromise *GlobalObject::moduleLoaderFetch(JSGlobalObject *globalOb
auto moduleKey = key.toWTFString(globalObject);
RETURN_IF_EXCEPTION(scope, promise->rejectWithCaughtException(globalObject, scope));
auto moduleKeyZig = toZigString(moduleKey);
+ auto source = Zig::toZigString(value1, globalObject);
ErrorableResolvedSource res;
res.success = false;
res.result.err.code = 0;
res.result.err.ptr = nullptr;
- Zig__GlobalObject__fetch(&res, globalObject, moduleKeyZig,
- Zig::toZigString(value1, globalObject));
+ Zig__GlobalObject__fetch(&res, globalObject, &moduleKeyZig,
+ &source );
if (!res.success) {
throwException(scope, res.result.err, globalObject);
diff --git a/src/javascript/jsc/bindings/bindings.zig b/src/javascript/jsc/bindings/bindings.zig
index 66a938199..42d549ff7 100644
--- a/src/javascript/jsc/bindings/bindings.zig
+++ b/src/javascript/jsc/bindings/bindings.zig
@@ -257,22 +257,22 @@ pub fn NewGlobalObject(comptime Type: type) type {
const importNotImpl = "Import not implemented";
const resolveNotImpl = "resolve not implemented";
const moduleNotImpl = "Module fetch not implemented";
- pub fn import(global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) ErrorableZigString {
+ pub fn import(global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) ErrorableZigString {
if (comptime @hasDecl(Type, "import")) {
- return @call(.{ .modifier = .always_inline }, Type.import, .{ global, specifier, source });
+ return @call(.{ .modifier = .always_inline }, Type.import, .{ global, specifier.*, source.* });
}
return ErrorableZigString.err(error.ImportFailed, ZigString.init(importNotImpl).toErrorInstance(global).asVoid());
}
- pub fn resolve(res: *ErrorableZigString, global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) void {
+ pub fn resolve(res: *ErrorableZigString, global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) void {
if (comptime @hasDecl(Type, "resolve")) {
- @call(.{ .modifier = .always_inline }, Type.resolve, .{ res, global, specifier, source });
+ @call(.{ .modifier = .always_inline }, Type.resolve, .{ res, global, specifier.*, source.* });
return;
}
res.* = ErrorableZigString.err(error.ResolveFailed, ZigString.init(resolveNotImpl).toErrorInstance(global).asVoid());
}
- pub fn fetch(ret: *ErrorableResolvedSource, global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) void {
+ pub fn fetch(ret: *ErrorableResolvedSource, global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) void {
if (comptime @hasDecl(Type, "fetch")) {
- @call(.{ .modifier = .always_inline }, Type.fetch, .{ ret, global, specifier, source });
+ @call(.{ .modifier = .always_inline }, Type.fetch, .{ ret, global, specifier.*, source.* });
return;
}
ret.* = ErrorableResolvedSource.err(error.FetchFailed, ZigString.init(moduleNotImpl).toErrorInstance(global).asVoid());
diff --git a/src/javascript/jsc/bindings/exports.zig b/src/javascript/jsc/bindings/exports.zig
index 07fd9b02c..b5bcf4902 100644
--- a/src/javascript/jsc/bindings/exports.zig
+++ b/src/javascript/jsc/bindings/exports.zig
@@ -61,20 +61,20 @@ pub const ZigGlobalObject = extern struct {
return shim.cppFn("resetModuleRegistryMap", .{ global, map });
}
- pub fn import(global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) ErrorableZigString {
+ pub fn import(global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) ErrorableZigString {
if (comptime is_bindgen) {
unreachable;
}
return @call(.{ .modifier = .always_inline }, Interface.import, .{ global, specifier, source });
}
- pub fn resolve(res: *ErrorableZigString, global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) void {
+ pub fn resolve(res: *ErrorableZigString, global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) void {
if (comptime is_bindgen) {
unreachable;
}
@call(.{ .modifier = .always_inline }, Interface.resolve, .{ res, global, specifier, source });
}
- pub fn fetch(ret: *ErrorableResolvedSource, global: *JSGlobalObject, specifier: ZigString, source: ZigString) callconv(.C) void {
+ pub fn fetch(ret: *ErrorableResolvedSource, global: *JSGlobalObject, specifier: *ZigString, source: *ZigString) callconv(.C) void {
if (comptime is_bindgen) {
unreachable;
}
diff --git a/src/javascript/jsc/bindings/headers-cpp.h b/src/javascript/jsc/bindings/headers-cpp.h
index de511243a..918138460 100644
--- a/src/javascript/jsc/bindings/headers-cpp.h
+++ b/src/javascript/jsc/bindings/headers-cpp.h
@@ -1,4 +1,4 @@
-//-- AUTOGENERATED FILE -- 1630884061
+//-- AUTOGENERATED FILE -- 1631085611
// clang-format off
#pragma once
diff --git a/src/javascript/jsc/bindings/headers.h b/src/javascript/jsc/bindings/headers.h
index 1f38360d7..a26fecc2f 100644
--- a/src/javascript/jsc/bindings/headers.h
+++ b/src/javascript/jsc/bindings/headers.h
@@ -1,4 +1,4 @@
-//-- AUTOGENERATED FILE -- 1630884061
+//-- AUTOGENERATED FILE -- 1631085611
// clang-format: off
#pragma once
@@ -578,12 +578,12 @@ CPP_DECL bool Zig__GlobalObject__resetModuleRegistryMap(JSC__JSGlobalObject* arg
#ifdef __cplusplus
ZIG_DECL JSC__JSValue Zig__GlobalObject__createImportMetaProperties(JSC__JSGlobalObject* arg0, JSC__JSModuleLoader* arg1, JSC__JSValue JSValue2, JSC__JSModuleRecord* arg3, JSC__JSValue JSValue4);
-ZIG_DECL void Zig__GlobalObject__fetch(ErrorableResolvedSource* arg0, JSC__JSGlobalObject* arg1, ZigString arg2, ZigString arg3);
-ZIG_DECL ErrorableZigString Zig__GlobalObject__import(JSC__JSGlobalObject* arg0, ZigString arg1, ZigString arg2);
+ZIG_DECL void Zig__GlobalObject__fetch(ErrorableResolvedSource* arg0, JSC__JSGlobalObject* arg1, ZigString* arg2, ZigString* arg3);
+ZIG_DECL ErrorableZigString Zig__GlobalObject__import(JSC__JSGlobalObject* arg0, ZigString* arg1, ZigString* arg2);
ZIG_DECL void Zig__GlobalObject__onCrash();
ZIG_DECL JSC__JSValue Zig__GlobalObject__promiseRejectionTracker(JSC__JSGlobalObject* arg0, JSC__JSPromise* arg1, uint32_t JSPromiseRejectionOperation2);
ZIG_DECL JSC__JSValue Zig__GlobalObject__reportUncaughtException(JSC__JSGlobalObject* arg0, JSC__Exception* arg1);
-ZIG_DECL void Zig__GlobalObject__resolve(ErrorableZigString* arg0, JSC__JSGlobalObject* arg1, ZigString arg2, ZigString arg3);
+ZIG_DECL void Zig__GlobalObject__resolve(ErrorableZigString* arg0, JSC__JSGlobalObject* arg1, ZigString* arg2, ZigString* arg3);
#endif
diff --git a/src/javascript/jsc/bindings/headers.zig b/src/javascript/jsc/bindings/headers.zig
index 0227a5d87..c1504a31f 100644
--- a/src/javascript/jsc/bindings/headers.zig
+++ b/src/javascript/jsc/bindings/headers.zig
@@ -37,7 +37,36 @@ pub const __mbstate_t = extern union {
pub const __darwin_mbstate_t = __mbstate_t;
pub const __darwin_ptrdiff_t = c_long;
pub const __darwin_size_t = c_ulong;
-
+pub const __builtin_va_list = [*c]u8;
+pub const __darwin_va_list = __builtin_va_list;
+pub const __darwin_wchar_t = c_int;
+pub const __darwin_rune_t = __darwin_wchar_t;
+pub const __darwin_wint_t = c_int;
+pub const __darwin_clock_t = c_ulong;
+pub const __darwin_socklen_t = __uint32_t;
+pub const __darwin_ssize_t = c_long;
+pub const __darwin_time_t = c_long;
+pub const __darwin_blkcnt_t = __int64_t;
+pub const __darwin_blksize_t = __int32_t;
+pub const __darwin_dev_t = __int32_t;
+pub const __darwin_fsblkcnt_t = c_uint;
+pub const __darwin_fsfilcnt_t = c_uint;
+pub const __darwin_gid_t = __uint32_t;
+pub const __darwin_id_t = __uint32_t;
+pub const __darwin_ino64_t = __uint64_t;
+pub const __darwin_ino_t = __darwin_ino64_t;
+pub const __darwin_mach_port_name_t = __darwin_natural_t;
+pub const __darwin_mach_port_t = __darwin_mach_port_name_t;
+pub const __darwin_mode_t = __uint16_t;
+pub const __darwin_off_t = __int64_t;
+pub const __darwin_pid_t = __int32_t;
+pub const __darwin_sigset_t = __uint32_t;
+pub const __darwin_suseconds_t = __int32_t;
+pub const __darwin_uid_t = __uint32_t;
+pub const __darwin_useconds_t = __uint32_t;
+pub const __darwin_uuid_t = [16]u8;
+pub const __darwin_uuid_string_t = [37]u8;
+
pub const JSC__RegExpPrototype = struct_JSC__RegExpPrototype;
pub const JSC__GeneratorPrototype = struct_JSC__GeneratorPrototype;
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index e4c09c3d2..1d8616ff7 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -299,7 +299,6 @@ pub const Bun = struct {
},
},
.{
- .Route = Router.Instance.GetClass(void){},
.main = .{
.get = getMain,
.ts = d.ts{ .name = "main", .@"return" = "string" },
diff --git a/src/runtime.version b/src/runtime.version
index e69de29bb..288d942c4 100644
--- a/src/runtime.version
+++ b/src/runtime.version
@@ -0,0 +1 @@
+99c14959174b83f \ No newline at end of file