Unreviewed, rolling out r208382.
authorryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Nov 2016 14:46:04 +0000 (14:46 +0000)
committerryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Nov 2016 14:46:04 +0000 (14:46 +0000)
This change appears to have caused 3
SerializedCryptoKeyWrapTest API tests to fail on macOS.

Reverted changeset:

"[Readable Streams API] Implement ByteStreamController
error()"
https://bugs.webkit.org/show_bug.cgi?id=164319
http://trac.webkit.org/changeset/208382

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208422 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/streams/readable-byte-stream-controller-expected.txt
LayoutTests/streams/readable-byte-stream-controller.js
Source/WebCore/ChangeLog
Source/WebCore/Modules/streams/ReadableByteStreamController.js
Source/WebCore/Modules/streams/ReadableByteStreamInternals.js
Source/WebCore/Modules/streams/ReadableStream.js
Source/WebCore/Modules/streams/ReadableStreamDefaultController.js
Source/WebCore/bindings/js/WebCoreBuiltinNames.h

index 207e9e1..4007de8 100644 (file)
@@ -1,3 +1,17 @@
+2016-11-07  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r208382.
+
+        This change appears to have caused 3
+        SerializedCryptoKeyWrapTest API tests to fail on macOS.
+
+        Reverted changeset:
+
+        "[Readable Streams API] Implement ByteStreamController
+        error()"
+        https://bugs.webkit.org/show_bug.cgi?id=164319
+        http://trac.webkit.org/changeset/208382
+
 2016-11-05  Ryan Haddad  <ryanhaddad@apple.com>
 
         Removing flaky expectations for tests that were fixed with r208327.
index 8b379b7..26cf346 100644 (file)
@@ -1,14 +1,10 @@
 
 PASS Creating a ReadableStream with an underlyingSource with type property set to 'bytes' should succeed 
-PASS ReadableByteStreamController instances should have the correct list of properties 
-PASS Calling error() with a this object different from ReadableByteStreamController should fail 
-PASS Calling read() on a reader associated to a controller that has been errored should be rejected 
+FAIL Calling read() on a reader associated to a controller that has been errored should be rejected ReadableByteStreamController error() is not implemented
 FAIL Calling read() on a reader associated to a controller that has been closed should not be rejected ReadableByteStreamController close() is not implemented
 FAIL Calling read() after a chunk has been enqueued should result in obtaining said chunk ReadableByteStreamController enqueue() is not implemented
 PASS Creating a ReadableStream with an underlyingSource with type property set to 'bytes' should succeed 
-PASS ReadableByteStreamController instances should have the correct list of properties 
-PASS Calling error() with a this object different from ReadableByteStreamController should fail 
-PASS Calling read() on a reader associated to a controller that has been errored should be rejected 
+FAIL Calling read() on a reader associated to a controller that has been errored should be rejected ReadableByteStreamController error() is not implemented
 FAIL Calling read() on a reader associated to a controller that has been closed should not be rejected ReadableByteStreamController close() is not implemented
 FAIL Calling read() after a chunk has been enqueued should result in obtaining said chunk ReadableByteStreamController enqueue() is not implemented
 
index be2af61..96d26a8 100644 (file)
@@ -10,59 +10,6 @@ test(function() {
     });
 }, "Creating a ReadableStream with an underlyingSource with type property set to 'bytes' should succeed");
 
-test(() => {
-    const methods = ['close', 'constructor', 'enqueue', 'error'];
-    // FIXME: Add byobRequest when implemented.
-    const properties = methods.concat(['desiredSize']).sort();
-
-    let controller;
-
-    const rs = new ReadableStream({
-        start: function(c) {
-            controller = c;
-        },
-        type: "bytes"
-    });
-
-    const proto = Object.getPrototypeOf(controller);
-
-    assert_array_equals(Object.getOwnPropertyNames(proto).sort(), properties);
-
-    for (const m of methods) {
-        const propDesc = Object.getOwnPropertyDescriptor(proto, m);
-        assert_equals(propDesc.enumerable, false, 'method should be non-enumerable');
-        assert_equals(propDesc.configurable, true, 'method should be configurable');
-        assert_equals(propDesc.writable, true, 'method should be writable');
-        assert_equals(typeof controller[m], 'function', 'should have be a method');
-    }
-
-    const desiredSizePropDesc = Object.getOwnPropertyDescriptor(proto, 'desiredSize');
-    assert_equals(desiredSizePropDesc.enumerable, false, 'desiredSize should be non-enumerable');
-    assert_equals(desiredSizePropDesc.configurable, true, 'desiredSize should be configurable');
-    assert_not_equals(desiredSizePropDesc.get, undefined, 'desiredSize should have a getter');
-    assert_equals(desiredSizePropDesc.set, undefined, 'desiredSize should not have a setter');
-
-    assert_equals(controller.close.length, 0, 'close has 0 parameter');
-    assert_equals(controller.constructor.length, 3, 'constructor has 3 parameters');
-    assert_equals(controller.enqueue.length, 1, 'enqueue has 1 parameter');
-    assert_equals(controller.error.length, 1, 'error has 1 parameter');
-
-}, 'ReadableByteStreamController instances should have the correct list of properties');
-
-test(function() {
-    let controller;
-
-    const rs = new ReadableStream({
-        start: function(c) {
-            controller = c;
-        },
-        type: "bytes"
-    });
-
-    assert_throws(new TypeError("Can only call ReadableByteStreamController.error on instances of ReadableByteStreamController"),
-        function() { controller.error.apply(rs); });
-}, "Calling error() with a this object different from ReadableByteStreamController should fail");
-
 const test2 = async_test("Calling read() on a reader associated to a controller that has been errored should be rejected");
 test2.step(function() {
     let controller;
index a237f9a..8ceedc6 100644 (file)
@@ -1,3 +1,17 @@
+2016-11-07  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r208382.
+
+        This change appears to have caused 3
+        SerializedCryptoKeyWrapTest API tests to fail on macOS.
+
+        Reverted changeset:
+
+        "[Readable Streams API] Implement ByteStreamController
+        error()"
+        https://bugs.webkit.org/show_bug.cgi?id=164319
+        http://trac.webkit.org/changeset/208382
+
 2016-11-04  Filip Pizlo  <fpizlo@apple.com>
 
         WTF::ParkingLot should stop using std::chrono because std::chrono::duration casts are prone to overflows
index f98e753..db43c61 100644 (file)
@@ -37,13 +37,8 @@ function error(error)
 {
     "use strict";
 
-    if (!@isReadableByteStreamController(this))
-        throw @makeThisTypeError("ReadableByteStreamController", "error");
-
-    if (this.@controlledReadableStream.@state !== @streamReadable)
-        @throwTypeError("ReadableStream is not readable");
-
-    @readableByteStreamControllerError(this, error);
+    //FIXME: Implement appropriate behavior.
+    @throwTypeError("ReadableByteStreamController error() is not implemented");
 }
 
 function close()
index 56820ad..ce612e3 100644 (file)
@@ -39,19 +39,19 @@ function privateInitializeReadableByteStreamController(stream, underlyingByteSou
 
     this.@controlledReadableStream = stream;
     this.@underlyingByteSource = underlyingByteSource;
-    this.@pullAgain = false;
-    this.@pulling = false;
-    @readableByteStreamControllerClearPendingPullIntos(this);
     this.@queue = @newQueue();
-    this.@totalQueuedBytes = 0;
     this.@started = false;
     this.@closeRequested = false;
+    this.@pullAgain = false;
+    this.@pulling = false;
 
     let hwm = @Number(highWaterMark);
     if (@isNaN(hwm) || hwm < 0)
         @throwRangeError("highWaterMark value is negative or not a number");
     this.@strategyHWM = hwm;
 
+    // FIXME: Implement readableByteStreamControllerClearPendingPullIntos.
+
     let autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
     if (autoAllocateChunkSize !== @undefined) {
         autoAllocateChunkSize = @Number(autoAllocateChunkSize);
@@ -75,29 +75,3 @@ function privateInitializeReadableByteStreamController(stream, underlyingByteSou
 
     return this;
 }
-
-function isReadableByteStreamController(controller)
-{
-    "use strict";
-
-    // Same test mechanism as in isReadableStreamDefaultController (ReadableStreamInternals.js).
-    // See corresponding function for explanations.
-    return @isObject(controller) && !!controller.@underlyingByteSource;
-}
-
-function readableByteStreamControllerError(controller, e)
-{
-    "use strict";
-
-    @assert(controller.@controlledReadableStream.@state === @streamReadable);
-    @readableByteStreamControllerClearPendingPullIntos(controller);
-    controller.@queue = @newQueue();
-    @readableStreamError(controller.@controlledReadableStream, e);
-}
-
-function readableByteStreamControllerClearPendingPullIntos(controller)
-{
-    "use strict";
-
-    // FIXME: To be implemented in conjunction with ReadableStreamBYOBRequest.
-}
index faf6c16..f3eb1ed 100644 (file)
@@ -58,11 +58,10 @@ function initializeReadableStream(underlyingSource, strategy)
         // Constructor is not necessarily available if the byteStream part of Readeable Stream API is not activated. Therefore, a
         // specific handling of error is done.
         try {
-            let readableByteStreamControllerConstructor = @ReadableByteStreamController;
+            this.@readableStreamController = new @ReadableByteStreamController(this, underlyingSource, strategy.highWaterMark);
         } catch (e) {
-            @throwTypeError("ReadableByteStreamController is not implemented");
+            @throwTypeError("ReadableByteStreamController could not be created");
         }
-        this.@readableStreamController = new @ReadableByteStreamController(this, underlyingSource, strategy.highWaterMark);
     } else if (type === @undefined) {
         if (strategy.highWaterMark === @undefined)
             strategy.highWaterMark = 1;
index e9c9499..c001d58 100644 (file)
@@ -48,7 +48,8 @@ function error(error)
     if (!@isReadableStreamDefaultController(this))
         throw @makeThisTypeError("ReadableStreamDefaultController", "error");
 
-    if (this.@controlledReadableStream.@state !== @streamReadable)
+    const stream = this.@controlledReadableStream;
+    if (stream.@state !== @streamReadable)
         @throwTypeError("ReadableStream is not readable");
 
     @readableStreamDefaultControllerError(this, error);
index f8bb59b..45d8420 100644 (file)
@@ -97,7 +97,6 @@ namespace WebCore {
     macro(streamWritable) \
     macro(structuredCloneArrayBuffer) \
     macro(structuredCloneArrayBufferView) \
-    macro(totalQueuedBytes) \
     macro(underlyingByteSource) \
     macro(underlyingSink) \
     macro(underlyingSource) \