diff options
-rw-r--r-- | src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp | 4 | ||||
-rw-r--r-- | src/bun.js/builtins/js/ReadableStream.js | 2 | ||||
-rw-r--r-- | test/bun.js/streams.test.js | 18 |
3 files changed, 21 insertions, 3 deletions
diff --git a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp index 223d8f564..e83da8d67 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp @@ -479,13 +479,13 @@ const char* const s_readableStreamPipeThroughCode = const JSC::ConstructAbility s_readableStreamPipeToCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_readableStreamPipeToCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_readableStreamPipeToCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_readableStreamPipeToCodeLength = 1628; +const int s_readableStreamPipeToCodeLength = 1624; static const JSC::Intrinsic s_readableStreamPipeToCodeIntrinsic = JSC::NoIntrinsic; const char* const s_readableStreamPipeToCode = "(function (destination)\n" \ "{\n" \ " \"use strict\";\n" \ - " if (!@isReadableStream(readable))\n" \ + " if (!@isReadableStream(this))\n" \ " throw @makeTypeError(\"readable should be ReadableStream\");\n" \ "\n" \ " //\n" \ diff --git a/src/bun.js/builtins/js/ReadableStream.js b/src/bun.js/builtins/js/ReadableStream.js index 6417c8ac1..cd5cf5a44 100644 --- a/src/bun.js/builtins/js/ReadableStream.js +++ b/src/bun.js/builtins/js/ReadableStream.js @@ -380,7 +380,7 @@ function pipeThrough(streams, options) function pipeTo(destination) { "use strict"; - if (!@isReadableStream(readable)) + if (!@isReadableStream(this)) throw @makeTypeError("readable should be ReadableStream"); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=159869. diff --git a/test/bun.js/streams.test.js b/test/bun.js/streams.test.js index 577570221..ec803a9dd 100644 --- a/test/bun.js/streams.test.js +++ b/test/bun.js/streams.test.js @@ -48,6 +48,24 @@ describe("WritableStream", () => { throw e; } }); + + it("pipeTo", async () => { + const rs = new ReadableStream({ + start(controller) { + controller.enqueue("hello world"); + controller.close(); + }, + }); + + let received; + const ws = new WritableStream({ + write(chunk, controller) { + received = chunk; + }, + }); + await rs.pipeTo(ws); + expect(received).toBe("hello world"); + }); }); describe("ReadableStream.prototype.tee", () => { |