diff --git a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp index 2e39925f61..af3d9a72bd 100644 --- a/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp +++ b/Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp @@ -1178,6 +1178,20 @@ WebIDL::ExceptionOr> create_writable_stream(JS: return stream; } +// https://streams.spec.whatwg.org/#initialize-readable-stream +void initialize_readable_stream(ReadableStream& stream) +{ + // 1. Set stream.[[state]] to "readable". + stream.set_state(ReadableStream::State::Readable); + + // 2. Set stream.[[reader]] and stream.[[storedError]] to undefined. + stream.set_reader({}); + stream.set_stored_error({}); + + // 3. Set stream.[[disturbed]] to false. + stream.set_disturbed(false); +} + // https://streams.spec.whatwg.org/#initialize-writable-stream void initialize_writable_stream(WritableStream& stream) { diff --git a/Userland/Libraries/LibWeb/Streams/AbstractOperations.h b/Userland/Libraries/LibWeb/Streams/AbstractOperations.h index 27b8d74423..f45f5c55cf 100644 --- a/Userland/Libraries/LibWeb/Streams/AbstractOperations.h +++ b/Userland/Libraries/LibWeb/Streams/AbstractOperations.h @@ -91,6 +91,7 @@ void readable_byte_stream_controller_invalidate_byob_request(ReadableByteStreamC bool readable_byte_stream_controller_should_call_pull(ReadableByteStreamController const&); WebIDL::ExceptionOr> create_writable_stream(JS::Realm& realm, StartAlgorithm&& start_algorithm, WriteAlgorithm&& write_algorithm, CloseAlgorithm&& close_algorithm, AbortAlgorithm&& abort_algorithm, double high_water_mark, SizeAlgorithm&& size_algorithm); +void initialize_readable_stream(ReadableStream&); void initialize_writable_stream(WritableStream&); WebIDL::ExceptionOr> acquire_writable_stream_default_writer(WritableStream&);