From 4dd2b5989facdfff17b35456c8426c0cbf73f00a Mon Sep 17 00:00:00 2001 From: Claude Bot Date: Wed, 22 Oct 2025 07:50:42 +0000 Subject: [PATCH] Fix malformed error message in ReadableStream.getReader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The error message for an invalid 'mode' argument in ReadableStream.getReader was missing the "must be" part, resulting in a confusing error message like: "The argument 'mode' byob. Received 'invalid'" This fix updates the error message to properly say: "The argument 'mode' must be 'byob'. Received 'invalid'" A regression test has been added to ensure the error message is correct. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/js/builtins/ReadableStream.ts | 2 +- test/js/web/streams/streams.test.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/js/builtins/ReadableStream.ts b/src/js/builtins/ReadableStream.ts index c4c17f5cab..91323b7103 100644 --- a/src/js/builtins/ReadableStream.ts +++ b/src/js/builtins/ReadableStream.ts @@ -395,7 +395,7 @@ export function getReader(this, options) { return new ReadableStreamBYOBReader(this); } - throw $ERR_INVALID_ARG_VALUE("mode", mode, "byob"); + throw $ERR_INVALID_ARG_VALUE("mode", mode, "must be 'byob'"); } export function pipeThrough(this, streams, options) { diff --git a/test/js/web/streams/streams.test.js b/test/js/web/streams/streams.test.js index ca15d245c6..d91590a299 100644 --- a/test/js/web/streams/streams.test.js +++ b/test/js/web/streams/streams.test.js @@ -1142,3 +1142,17 @@ it("pipeThrough doesn't cause unhandled rejections on readable errors", async () expect(unhandledRejectionCaught).toBe(false); }); + +it("ReadableStream.getReader with invalid mode should show correct error message", () => { + const stream = new ReadableStream(); + + // Test with invalid mode value + try { + stream.getReader({ mode: "invalid" }); + expect.unreachable("Should have thrown an error"); + } catch (error) { + expect(error.code).toBe("ERR_INVALID_ARG_VALUE"); + expect(error.message).toContain("must be 'byob'"); + expect(error.message).toContain("mode"); + } +});