LibWeb: Implement ReadableStreamBYOBReaderRelease Streams AO

This commit is contained in:
Shannon Booth 2023-08-27 13:29:01 +12:00 committed by Andrew Kaster
parent 8ce4f5597c
commit b06d80e6fd
Notes: sideshowbarker 2024-07-17 06:45:52 +09:00
2 changed files with 16 additions and 0 deletions

View File

@ -505,6 +505,21 @@ WebIDL::ExceptionOr<void> readable_stream_default_reader_release(ReadableStreamD
return {};
}
// https://streams.spec.whatwg.org/#abstract-opdef-readablestreambyobreaderrelease
void readable_stream_byob_reader_release(ReadableStreamBYOBReader& reader)
{
auto& realm = reader.realm();
// 1. Perform ! ReadableStreamReaderGenericRelease(reader).
MUST(readable_stream_reader_generic_release(reader));
// 2. Let e be a new TypeError exception.
auto exception = MUST(JS::TypeError::create(realm, "Reader has been released"sv));
// 3. Perform ! ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e).
readable_stream_byob_reader_error_read_into_requests(reader, exception);
}
// https://streams.spec.whatwg.org/#set-up-readable-stream-default-reader
WebIDL::ExceptionOr<void> set_up_readable_stream_default_reader(ReadableStreamDefaultReader& reader, ReadableStream& stream)
{

View File

@ -54,6 +54,7 @@ void readable_stream_byob_reader_error_read_into_requests(ReadableStreamBYOBRead
WebIDL::ExceptionOr<void> readable_stream_default_reader_read(ReadableStreamDefaultReader&, ReadRequest&);
WebIDL::ExceptionOr<void> readable_stream_default_reader_release(ReadableStreamDefaultReader&);
void readable_stream_byob_reader_release(ReadableStreamBYOBReader&);
WebIDL::ExceptionOr<void> set_up_readable_stream_default_reader(ReadableStreamDefaultReader&, ReadableStream&);
WebIDL::ExceptionOr<void> set_up_readable_stream_byob_reader(ReadableStreamBYOBReader&, ReadableStream&);
void readable_stream_default_controller_close(ReadableStreamDefaultController&);