diff --git a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp index ccf4c15f015..5ad849e1532 100644 --- a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp +++ b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp @@ -306,9 +306,11 @@ JS::NonnullGCPtr readable_stream_pipe_to(ReadableStream& source // FIXME: Currently a naive implementation that uses ReadableStreamDefaultReader::read_all_chunks() to read all chunks // from the source and then through the callback success_steps writes those chunks to the destination. - auto chunk_steps = [&realm, writer](ByteBuffer chunk) { - auto buffer = JS::ArrayBuffer::create(realm, move(chunk)); - auto promise = writable_stream_default_writer_write(writer, JS::Value { buffer }); + auto chunk_steps = [&realm, writer](ByteBuffer buffer) { + auto array_buffer = JS::ArrayBuffer::create(realm, move(buffer)); + auto chunk = JS::Uint8Array::create(realm, array_buffer->byte_length(), *array_buffer); + + auto promise = writable_stream_default_writer_write(writer, chunk); WebIDL::resolve_promise(realm, promise, JS::js_undefined()); };