diff --git a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.cpp b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.cpp index d22a51f320..cd23db1e0f 100644 --- a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.cpp +++ b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.cpp @@ -43,6 +43,15 @@ Optional TransformStreamDefaultController::desired_size() return readable_stream_default_controller_get_desired_size(*readable_controller); } +// https://streams.spec.whatwg.org/#ts-default-controller-enqueue +WebIDL::ExceptionOr TransformStreamDefaultController::enqueue(Optional chunk) +{ + // 1. Perform ? TransformStreamDefaultControllerEnqueue(this, chunk). + TRY(transform_stream_default_controller_enqueue(*this, chunk.has_value() ? chunk.value() : JS::js_undefined())); + + return {}; +} + // https://streams.spec.whatwg.org/#ts-default-controller-error WebIDL::ExceptionOr TransformStreamDefaultController::error(Optional reason) { diff --git a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.h b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.h index 5d14122b44..e2bef2f2cc 100644 --- a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.h +++ b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.h @@ -19,6 +19,7 @@ public: virtual ~TransformStreamDefaultController() override; Optional desired_size(); + WebIDL::ExceptionOr enqueue(Optional chunk); WebIDL::ExceptionOr error(Optional reason = {}); auto& flush_algorithm() { return m_flush_algorithm; } diff --git a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.idl b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.idl index 9b2859062e..4bb99ac60c 100644 --- a/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.idl +++ b/Userland/Libraries/LibWeb/Streams/TransformStreamDefaultController.idl @@ -3,7 +3,7 @@ interface TransformStreamDefaultController { readonly attribute unrestricted double? desiredSize; - // FIXME: undefined enqueue(optional any chunk); + undefined enqueue(optional any chunk); undefined error(optional any reason); // FIXME: undefined terminate(); };