diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp index e4a543d7c1..22d800e1e6 100644 --- a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp +++ b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.cpp @@ -45,6 +45,8 @@ void ReadableStreamBYOBReader::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); ReadableStreamGenericReaderMixin::visit_edges(visitor); + for (auto& request : m_read_into_requests) + visitor.visit(request); } } diff --git a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h index 7187f8e6c6..1881f5e1e8 100644 --- a/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h +++ b/Userland/Libraries/LibWeb/Streams/ReadableStreamBYOBReader.h @@ -16,7 +16,9 @@ namespace Web::Streams { // https://streams.spec.whatwg.org/#read-into-request -class ReadIntoRequest : public RefCounted { +class ReadIntoRequest : public JS::Cell { + JS_CELL(ReadIntoRequest, JS::Cell); + public: virtual ~ReadIntoRequest() = default; @@ -43,7 +45,7 @@ public: void release_lock(); - Vector>& read_into_requests() { return m_read_into_requests; } + Vector>& read_into_requests() { return m_read_into_requests; } private: explicit ReadableStreamBYOBReader(JS::Realm&); @@ -52,7 +54,7 @@ private: // https://streams.spec.whatwg.org/#readablestreambyobreader-readintorequests // A list of read-into requests, used when a consumer requests chunks sooner than they are available - Vector> m_read_into_requests; + Vector> m_read_into_requests; }; }