diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp index 7c9e5d6cf4..e4a543d7c1 100644 --- a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp +++ b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp @@ -30,6 +30,17 @@ WebIDL::ExceptionOr> ReadableStreamBY return reader; } +// https://streams.spec.whatwg.org/#byob-reader-release-lock +void ReadableStreamBYOBReader::release_lock() +{ + // 1. If this.[[stream]] is undefined, return. + if (!m_stream) + return; + + // 2. Perform ! ReadableStreamBYOBReaderRelease(this). + readable_stream_byob_reader_release(*this); +} + void ReadableStreamBYOBReader::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h index ad6597de34..7187f8e6c6 100644 --- a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h +++ b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h @@ -41,6 +41,8 @@ public: virtual ~ReadableStreamBYOBReader() override = default; + void release_lock(); + Vector>& read_into_requests() { return m_read_into_requests; } private: diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.idl b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.idl index 96a6d4e121..f2039ee1a4 100644 --- a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.idl +++ b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.idl @@ -8,6 +8,6 @@ interface ReadableStreamBYOBReader { // FIXME: Implement // Promise read(ArrayBufferView view); - // undefined releaseLock(); + undefined releaseLock(); }; ReadableStreamBYOBReader includes ReadableStreamGenericReader;