Browse Source

LibWeb: Use the proper in-flight request to check if a stream is closing

Timothy Flynn 1 year ago
parent
commit
b6501adef8

+ 19 - 0
Tests/LibWeb/Text/expected/Streams/WritableStream-write.txt

@@ -0,0 +1,19 @@
+W
+e
+l
+l
+-
+h
+e
+l
+l
+o
+-
+f
+r
+i
+e
+n
+d
+s
+!

+ 28 - 0
Tests/LibWeb/Text/input/Streams/WritableStream-write.html

@@ -0,0 +1,28 @@
+<script src="../include.js"></script>
+<script>
+    asyncTest(done => {
+        const stream = new WritableStream({
+            write(chunk) {
+                return new Promise(resolve => {
+                    println(chunk);
+                    resolve();
+                });
+            },
+        });
+
+        function sendMessage(message) {
+            const writer = stream.getWriter();
+
+            for (const chunk of message) {
+                writer.ready.then(() => writer.write(chunk));
+            }
+
+            writer.ready.then(() => {
+                writer.close();
+                done();
+            });
+        }
+
+        sendMessage("Well-hello-friends!");
+    });
+</script>

+ 1 - 1
Userland/Libraries/LibWeb/Streams/AbstractOperations.cpp

@@ -3492,7 +3492,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<WebIDL::Promise>> writable_stream_add_write
 bool writable_stream_close_queued_or_in_flight(WritableStream const& stream)
 {
     // 1. If stream.[[closeRequest]] is undefined and stream.[[inFlightCloseRequest]] is undefined, return false.
-    if (!stream.close_request() && !stream.in_flight_write_request())
+    if (!stream.close_request() && !stream.in_flight_close_request())
         return false;
 
     // 2. Return true.