Title: [191956] trunk/Source/WebCore
Revision
191956
Author
youenn.fab...@crf.canon.fr
Date
2015-11-03 10:29:59 -0800 (Tue, 03 Nov 2015)

Log Message

[Streams API] Vended promise capabilities should not need @resolve/@reject fields
https://bugs.webkit.org/show_bug.cgi?id=150835

Reviewed by Darin Adler.

No change in behavior, covered by existing tests.

* Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamReader): Removed @resolve/@reject fields from resolved/rejected @closedPromiseCapability.
* Modules/streams/WritableStream.js:
(initializeWritableStream): Removed @resolve/@reject fields from resolved readyPromiseCapability.
* Modules/streams/WritableStreamInternals.js:
(syncWritableStreamStateWithQueue): Updated code to be closer to spec and removing the need to resolve an already resolved promise.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (191955 => 191956)


--- trunk/Source/WebCore/ChangeLog	2015-11-03 18:24:34 UTC (rev 191955)
+++ trunk/Source/WebCore/ChangeLog	2015-11-03 18:29:59 UTC (rev 191956)
@@ -1,3 +1,19 @@
+2015-11-03  Youenn Fablet  <youenn.fab...@crf.canon.fr>
+
+        [Streams API] Vended promise capabilities should not need @resolve/@reject fields
+        https://bugs.webkit.org/show_bug.cgi?id=150835
+
+        Reviewed by Darin Adler.
+
+        No change in behavior, covered by existing tests.
+
+        * Modules/streams/ReadableStreamInternals.js:
+        (privateInitializeReadableStreamReader): Removed @resolve/@reject fields from resolved/rejected @closedPromiseCapability.
+        * Modules/streams/WritableStream.js:
+        (initializeWritableStream): Removed @resolve/@reject fields from resolved readyPromiseCapability.
+        * Modules/streams/WritableStreamInternals.js:
+        (syncWritableStreamStateWithQueue): Updated code to be closer to spec and removing the need to resolve an already resolved promise.
+
 2015-11-03  Hunseop Jeong  <hs85.je...@samsung.com>
 
         Replace 0 and NULL with nullptr in WebCore/dom.

Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js (191955 => 191956)


--- trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js	2015-11-03 18:24:34 UTC (rev 191955)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js	2015-11-03 18:29:59 UTC (rev 191956)
@@ -48,13 +48,13 @@
     if (stream.@state === @streamClosed) {
         this.@ownerReadableStream = null;
         this.@storedError = undefined;
-        this.@closedPromiseCapability = { @promise: Promise.resolve(undefined), @resolve: function() {}, @reject: function() {} };
+        this.@closedPromiseCapability = { @promise: Promise.resolve(undefined) };
         return this;
     }
     // FIXME: ASSERT(stream.@state === @streamErrored);
     this.@ownerReadableStream = null;
     this.@storedError = stream.@storedError;
-    this.@closedPromiseCapability = { @promise: Promise.reject(stream.@storedError), @resolve: function() {}, @reject: function() {} };
+    this.@closedPromiseCapability = { @promise: Promise.reject(stream.@storedError) };
 
     return this;
 }

Modified: trunk/Source/WebCore/Modules/streams/WritableStream.js (191955 => 191956)


--- trunk/Source/WebCore/Modules/streams/WritableStream.js	2015-11-03 18:24:34 UTC (rev 191955)
+++ trunk/Source/WebCore/Modules/streams/WritableStream.js	2015-11-03 18:29:59 UTC (rev 191956)
@@ -43,7 +43,7 @@
 
     this.@underlyingSink = underlyingSink;
     this.@closedPromiseCapability = @newPromiseCapability(Promise);
-    this.@readyPromiseCapability = { @promise: Promise.resolve(undefined), @resolve: function() {}, @reject: function() {} };
+    this.@readyPromiseCapability = { @promise: Promise.resolve(undefined) };
     this.@queue = @newQueue();
     this.@state = @streamWritable;
     this.@started = false;

Modified: trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js (191955 => 191956)


--- trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js	2015-11-03 18:24:34 UTC (rev 191955)
+++ trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js	2015-11-03 18:29:59 UTC (rev 191956)
@@ -39,20 +39,20 @@
     "use strict";
 
     if (stream.@state === @streamClosing)
-        return undefined;
+        return;
 
     // FIXME
     // assert(stream.@state === @streamWritable || stream.@state === @streamWaiting);
 
-    if (stre...@queue.size > stream.@strategy.highWaterMark) {
+    const shouldApplyBackpressure = stre...@queue.size > stream.@strategy.highWaterMark;
+    if (shouldApplyBackpressure && stream.@state === @streamWritable) {
         stream.@state = @streamWaiting;
         stream.@readyPromiseCapability = @newPromiseCapability(Promise);
-    } else {
+    }
+    if (!shouldApplyBackpressure && stream.@state === @streamWaiting) {
         stream.@state = @streamWritable;
         stream.@readyPromiseCapability.@resolve.@call(undefined, undefined);
     }
-
-    return undefined;
 }
 
 function errorWritableStream(e)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to