Pārlūkot izejas kodu

LibWeb: Add AO readable_stream_default_controller_has_backpressure()

Kenneth Myhra 2 gadi atpakaļ
vecāks
revīzija
d2236e5ca5

+ 11 - 0
Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp

@@ -542,6 +542,17 @@ void readable_stream_default_controller_close(ReadableStreamDefaultController& c
     }
 }
 
+// https://streams.spec.whatwg.org/#rs-default-controller-has-backpressure
+bool readable_stream_default_controller_has_backpressure(ReadableStreamDefaultController& controller)
+{
+    // 1. If ! ReadableStreamDefaultControllerShouldCallPull(controller) is true, return false.
+    if (readable_stream_default_controller_should_call_pull(controller))
+        return false;
+
+    // 2. Otherwise, return true.
+    return true;
+}
+
 // https://streams.spec.whatwg.org/#readable-stream-default-controller-enqueue
 WebIDL::ExceptionOr<void> readable_stream_default_controller_enqueue(ReadableStreamDefaultController& controller, JS::Value chunk)
 {

+ 1 - 0
Userland/Libraries/LibWeb/Streams/AbstractOperations.h

@@ -55,6 +55,7 @@ WebIDL::ExceptionOr<void> readable_stream_default_reader_release(ReadableStreamD
 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&);
+bool readable_stream_default_controller_has_backpressure(ReadableStreamDefaultController&);
 WebIDL::ExceptionOr<void> readable_stream_default_controller_enqueue(ReadableStreamDefaultController&, JS::Value chunk);
 WebIDL::ExceptionOr<void> readable_stream_default_controller_can_pull_if_needed(ReadableStreamDefaultController&);
 bool readable_stream_default_controller_should_call_pull(ReadableStreamDefaultController&);