mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:17:45 +00:00
LibWeb: Add Streams::ReadableStreamDefaultReader::read_all_bytes
This commit is contained in:
parent
46f9a49bd8
commit
3df10d7fb6
2 changed files with 18 additions and 0 deletions
|
@ -169,6 +169,22 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Promise>> ReadableStreamDefaultReader::
|
|||
return JS::NonnullGCPtr { verify_cast<JS::Promise>(*promise_capability->promise()) };
|
||||
}
|
||||
|
||||
// https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes
|
||||
WebIDL::ExceptionOr<void> ReadableStreamDefaultReader::read_all_bytes(ReadLoopReadRequest::SuccessSteps success_steps, ReadLoopReadRequest::FailureSteps failure_steps)
|
||||
{
|
||||
auto& realm = this->realm();
|
||||
auto& vm = realm.vm();
|
||||
|
||||
// 1. Let readRequest be a new read request with the following items:
|
||||
// NOTE: items and steps in ReadLoopReadRequest.
|
||||
auto read_request = adopt_ref(*new ReadLoopReadRequest(vm, realm, *this, move(success_steps), move(failure_steps)));
|
||||
|
||||
// 2. Perform ! ReadableStreamDefaultReaderRead(this, readRequest).
|
||||
TRY(readable_stream_default_reader_read(*this, read_request));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
// https://streams.spec.whatwg.org/#default-reader-release-lock
|
||||
WebIDL::ExceptionOr<void> ReadableStreamDefaultReader::release_lock()
|
||||
{
|
||||
|
|
|
@ -66,6 +66,8 @@ public:
|
|||
virtual ~ReadableStreamDefaultReader() override = default;
|
||||
|
||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Promise>> read();
|
||||
|
||||
WebIDL::ExceptionOr<void> read_all_bytes(ReadLoopReadRequest::SuccessSteps, ReadLoopReadRequest::FailureSteps);
|
||||
WebIDL::ExceptionOr<void> release_lock();
|
||||
|
||||
SinglyLinkedList<NonnullRefPtr<ReadRequest>>& read_requests() { return m_read_requests; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue