diff --git a/Source/WebCore/bindings/js/ReadableStream.cpp b/Source/WebCore/bindings/js/ReadableStream.cpp
index 722740f..cf48697 100644
--- a/Source/WebCore/bindings/js/ReadableStream.cpp
+++ b/Source/WebCore/bindings/js/ReadableStream.cpp
@@ -27,6 +27,7 @@
 #include "ReadableStream.h"
 
 #include "JSDOMConvertSequences.h"
+#include "JSReadableStreamSink.h"
 #include "JSReadableStreamSource.h"
 #include "WebCoreJSClientData.h"
 
@@ -54,6 +55,24 @@
     return create(globalObject, *newReadableStream);
 }
 
+void ReadableStream::pipeTo(ReadableStreamSink& sink)
+{
+    auto& state = *m_globalObject->globalExec();
+    JSVMClientData* clientData = static_cast<JSVMClientData*>(state.vm().clientData);
+    const Identifier& privateName = clientData->builtinFunctions().readableStreamInternalsBuiltins().readableStreamPipeToPrivateName();
+
+    auto readableStreamPipeTo = m_globalObject->get(&state, privateName);
+    ASSERT(readableStreamPipeTo.isFunction());
+
+    CallData callData;
+    CallType callType = getCallData(readableStreamPipeTo, callData);
+    ASSERT(callType != JSC::CallType::None);
+    MarkedArgumentBuffer arguments;
+    arguments.append(readableStream());
+    arguments.append(toJS(&state, m_globalObject.get(), sink));
+    JSC::call(&state, readableStreamPipeTo, callType, callData, JSC::jsUndefined(), arguments);
+}
+
 std::pair<Ref<ReadableStream>, Ref<ReadableStream>> ReadableStream::tee()
 {
     auto& state = *m_globalObject->globalExec();
diff --git a/Source/WebCore/bindings/js/ReadableStream.h b/Source/WebCore/bindings/js/ReadableStream.h
index a0c26a4..ae5b0d5 100644
--- a/Source/WebCore/bindings/js/ReadableStream.h
+++ b/Source/WebCore/bindings/js/ReadableStream.h
@@ -32,6 +32,7 @@
 
 namespace WebCore {
 
+class ReadableStreamSink;
 class ReadableStreamSource;
 
 class ReadableStream final : public DOMGuarded<JSReadableStream> {
@@ -42,6 +43,8 @@
 
     std::pair<Ref<ReadableStream>, Ref<ReadableStream>> tee();
 
+    void pipeTo(ReadableStreamSink&);
+
     JSReadableStream* readableStream() { return guarded(); }
 
 protected:
