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"); + } +});