diff options
| author | 2022-12-29 05:53:12 -0800 | |
|---|---|---|
| committer | 2022-12-29 06:05:43 -0800 | |
| commit | 85eda2058755261bf5ac64a3d82112d7bad5419c (patch) | |
| tree | 924056e03bab81bf3d991fceaa2bee1b97b8181b /src/bun.js/base.zig | |
| parent | 940ecd05a8a3a1f0326256148a93306b71936c1e (diff) | |
| download | bun-85eda2058755261bf5ac64a3d82112d7bad5419c.tar.gz bun-85eda2058755261bf5ac64a3d82112d7bad5419c.tar.zst bun-85eda2058755261bf5ac64a3d82112d7bad5419c.zip | |
Introduce `Bun.CryptoHasher`
Diffstat (limited to 'src/bun.js/base.zig')
| -rw-r--r-- | src/bun.js/base.zig | 72 |
1 files changed, 57 insertions, 15 deletions
diff --git a/src/bun.js/base.zig b/src/bun.js/base.zig index 79f1fe46a..427def275 100644 --- a/src/bun.js/base.zig +++ b/src/bun.js/base.zig @@ -2669,11 +2669,30 @@ pub fn wrapWithHasContainer( }, ?JSC.Node.StringOrBuffer => { if (iter.nextEat()) |arg| { - args[i] = JSC.Node.StringOrBuffer.fromJS(ctx.ptr(), iter.arena.allocator(), arg, exception) orelse { - exception.* = JSC.toInvalidArguments("expected string or buffer", .{}, ctx).asObjectRef(); - iter.deinit(); - return null; - }; + if (!arg.isEmptyOrUndefinedOrNull()) { + args[i] = JSC.Node.StringOrBuffer.fromJS(ctx.ptr(), iter.arena.allocator(), arg, exception) orelse { + exception.* = JSC.toInvalidArguments("expected string or buffer", .{}, ctx).asObjectRef(); + iter.deinit(); + return null; + }; + } else { + args[i] = null; + } + } else { + args[i] = null; + } + }, + ?JSC.Node.SliceOrBuffer => { + if (iter.nextEat()) |arg| { + if (!arg.isEmptyOrUndefinedOrNull()) { + args[i] = JSC.Node.SliceOrBuffer.fromJS(ctx.ptr(), iter.arena.allocator(), arg, exception) orelse { + exception.* = JSC.toInvalidArguments("expected string or buffer", .{}, ctx).asObjectRef(); + iter.deinit(); + return null; + }; + } else { + args[i] = null; + } } else { args[i] = null; } @@ -2693,11 +2712,15 @@ pub fn wrapWithHasContainer( }, ?JSC.ArrayBuffer => { if (iter.nextEat()) |arg| { - args[i] = arg.asArrayBuffer(ctx.ptr()) orelse { - exception.* = JSC.toInvalidArguments("expected TypedArray", .{}, ctx).asObjectRef(); - iter.deinit(); - return null; - }; + if (!arg.isEmptyOrUndefinedOrNull()) { + args[i] = arg.asArrayBuffer(ctx.ptr()) orelse { + exception.* = JSC.toInvalidArguments("expected TypedArray", .{}, ctx).asObjectRef(); + iter.deinit(); + return null; + }; + } else { + args[i] = null; + } } else { args[i] = null; } @@ -2855,11 +2878,30 @@ pub fn wrapInstanceMethod( }, ?JSC.Node.StringOrBuffer => { if (iter.nextEat()) |arg| { - args[i] = JSC.Node.StringOrBuffer.fromJS(globalThis.ptr(), iter.arena.allocator(), arg, null) orelse { - globalThis.throwInvalidArguments("expected string or buffer", .{}); - iter.deinit(); - return JSC.JSValue.zero; - }; + if (!arg.isEmptyOrUndefinedOrNull()) { + args[i] = JSC.Node.StringOrBuffer.fromJS(globalThis.ptr(), iter.arena.allocator(), arg, null) orelse { + globalThis.throwInvalidArguments("expected string or buffer", .{}); + iter.deinit(); + return JSC.JSValue.zero; + }; + } else { + args[i] = null; + } + } else { + args[i] = null; + } + }, + ?JSC.Node.SliceOrBuffer => { + if (iter.nextEat()) |arg| { + if (!arg.isEmptyOrUndefinedOrNull()) { + args[i] = JSC.Node.SliceOrBuffer.fromJS(globalThis.ptr(), iter.arena.allocator(), arg) orelse { + globalThis.throwInvalidArguments("expected string or buffer", .{}); + iter.deinit(); + return JSC.JSValue.zero; + }; + } else { + args[i] = null; + } } else { args[i] = null; } |
