diff --git a/src/bun.js/webcore/Blob.zig b/src/bun.js/webcore/Blob.zig index ffaa35af51..90d6b452ea 100644 --- a/src/bun.js/webcore/Blob.zig +++ b/src/bun.js/webcore/Blob.zig @@ -1980,14 +1980,13 @@ pub fn getStream( return cached; } var recommended_chunk_size: SizeType = 0; - var arguments_ = callframe.arguments_old(2); - var arguments = arguments_.ptr[0..arguments_.len]; - if (arguments.len > 0) { - if (!arguments[0].isNumber() and !arguments[0].isUndefinedOrNull()) { + const recommended_chunk_size_value = callframe.argument(0); + if (!recommended_chunk_size_value.isUndefinedOrNull()) { + if (!recommended_chunk_size_value.isNumber()) { return globalThis.throwInvalidArguments("chunkSize must be a number", .{}); } - recommended_chunk_size = @as(SizeType, @intCast(@max(0, @as(i52, @truncate(arguments[0].toInt64()))))); + recommended_chunk_size = @intCast(@max(0, @as(i52, @truncate(recommended_chunk_size_value.toInt64())))); } const stream = try jsc.WebCore.ReadableStream.fromBlobCopyRef( globalThis, diff --git a/test/internal/ban-limits.json b/test/internal/ban-limits.json index 699a509b0d..82ae899b8b 100644 --- a/test/internal/ban-limits.json +++ b/test/internal/ban-limits.json @@ -4,7 +4,7 @@ " catch bun.outOfMemory()": 0, "!= alloc.ptr": 0, "!= allocator.ptr": 0, - ".arguments_old(": 265, + ".arguments_old(": 264, ".jsBoolean(false)": 0, ".jsBoolean(true)": 0, ".stdDir()": 42, diff --git a/test/js/web/streams/streams.test.js b/test/js/web/streams/streams.test.js index 2d03f58f87..d1c5bd8b9c 100644 --- a/test/js/web/streams/streams.test.js +++ b/test/js/web/streams/streams.test.js @@ -1059,6 +1059,14 @@ it("new Response(stream).blob() (direct)", async () => { expect(await blob.text()).toBe('{"hello":true}'); }); +it("Blob.stream(undefined) does not crash", () => { + var blob = new Blob(["abdefgh"]); + var stream = blob.stream(undefined); + expect(stream instanceof ReadableStream).toBeTrue(); + stream = blob.stream(null); + expect(stream instanceof ReadableStream).toBeTrue(); +}); + it("Blob.stream() -> new Response(stream).text()", async () => { var blob = new Blob(["abdefgh"]); var stream = blob.stream();