diff options
-rw-r--r-- | src/env.zig | 2 | ||||
-rw-r--r-- | src/global.zig | 5 | ||||
-rw-r--r-- | src/javascript/jsc/api/router.zig | 10 | ||||
-rw-r--r-- | src/javascript/jsc/base.zig | 66 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/ZigGlobalObject.cpp | 21 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/bindings.zig | 12 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/exports.zig | 6 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/headers-cpp.h | 2 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/headers.h | 8 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/headers.zig | 31 | ||||
-rw-r--r-- | src/javascript/jsc/javascript.zig | 1 | ||||
-rw-r--r-- | src/runtime.version | 1 |
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 |