diff options
author | 2022-08-17 07:36:18 -0700 | |
---|---|---|
committer | 2022-08-17 07:37:14 -0700 | |
commit | 93b663e43d2288cea5f7b2e8f045c719427a914f (patch) | |
tree | a7849c913b6c4814636da3ea08ed98beadaad469 /src/bun.js/api/bun.zig | |
parent | 65820893c966d4f8af2c0058682d30fa6330a219 (diff) | |
download | bun-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/api/bun.zig')
-rw-r--r-- | src/bun.js/api/bun.zig | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 8408ce339..ac5366a45 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -231,7 +231,7 @@ pub fn registerMacro( return js.JSValueMakeUndefined(ctx); } - if (!js.JSValueIsObject(ctx, arguments[1]) or !js.JSObjectIsFunction(ctx, arguments[1])) { + if (!arguments[1].?.value().isCell() or !arguments[1].?.value().isCallable(ctx.vm())) { JSError(getAllocator(ctx), "Macro must be a function. Received: {s}", .{@tagName(js.JSValueGetType(ctx, arguments[1]))}, ctx, exception); return js.JSValueMakeUndefined(ctx); } @@ -1283,20 +1283,33 @@ pub const Crypto = struct { }, ); - pub const Class = JSC.NewClass( + pub const codgen = JSC.codegen( @This(), + @as(string, name), .{ - .name = name, + .update = JSC.wrapSync(@This(), "update"), + .digest = JSC.wrapSync(@This(), "digest"), + .finalize = finalize, + + .byteLength = .{ + .get = byteLength2, + }, }, .{ - .update = .{ - .rfn = JSC.wrapSync(@This(), "update"), - }, - .digest = .{ - .rfn = JSC.wrapSync(@This(), "digest"), + .constructor = constructor, + .hash = JSC.wrapWithHasContainer(@This(), "hash", false, false, true), + .byteLength = .{ + .get = byteLength, }, - .finalize = finalize, }, + ); + + pub const Class = JSC.NewClass( + @This(), + .{ + .name = name, + }, + .{}, .{ .byteLength = .{ .get = byteLength2, @@ -1620,12 +1633,12 @@ pub export fn Bun__escapeHTML( globalObject: *JSGlobalObject, callframe: *JSC.CallFrame, ) JSC.JSValue { - const arguments = callframe.arguments(); + const arguments = callframe.arguments(2); if (arguments.len < 1) { return ZigString.Empty.toValue(globalObject); } - const input_value = arguments[0]; + const input_value = arguments.ptr[0]; const zig_str = input_value.getZigString(globalObject); if (zig_str.len == 0) return ZigString.Empty.toValue(globalObject); |