Title: [186111] trunk/Source/WebCore
Revision
186111
Author
[email protected]
Date
2015-06-30 00:50:12 -0700 (Tue, 30 Jun 2015)

Log Message

[Streams API] Remove ReadableStream.getReader() custom binding
https://bugs.webkit.org/show_bug.cgi?id=146404

Reviewed by Darin Adler.

Covered by existing tests.

* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::getReader): Updated to take an exception.
* Modules/streams/ReadableStream.h:
* Modules/streams/ReadableStream.idl: Updated to remove custom binding.
* bindings/js/JSReadableStreamCustom.cpp:
(WebCore::JSReadableStream::getReader): Deleted.
* bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::constructJSReadableStreamReader): Updated to pass an exception to getReader.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (186110 => 186111)


--- trunk/Source/WebCore/ChangeLog	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/ChangeLog	2015-06-30 07:50:12 UTC (rev 186111)
@@ -1,3 +1,21 @@
+2015-06-30  Youenn Fablet  <[email protected]>
+
+        [Streams API] Remove ReadableStream.getReader() custom binding
+        https://bugs.webkit.org/show_bug.cgi?id=146404
+
+        Reviewed by Darin Adler.
+
+        Covered by existing tests.
+
+        * Modules/streams/ReadableStream.cpp:
+        (WebCore::ReadableStream::getReader): Updated to take an exception.
+        * Modules/streams/ReadableStream.h:
+        * Modules/streams/ReadableStream.idl: Updated to remove custom binding.
+        * bindings/js/JSReadableStreamCustom.cpp:
+        (WebCore::JSReadableStream::getReader): Deleted.
+        * bindings/js/JSReadableStreamReaderCustom.cpp:
+        (WebCore::constructJSReadableStreamReader): Updated to pass an exception to getReader.
+
 2015-06-29  Youenn Fablet  <[email protected]>
 
         [Streams API] ReadableStreamReader.closed should use DOMPromise

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.cpp (186110 => 186111)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.cpp	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.cpp	2015-06-30 07:50:12 UTC (rev 186111)
@@ -145,8 +145,12 @@
     }
 }
 
-ReadableStreamReader& ReadableStream::getReader()
+ReadableStreamReader* ReadableStream::getReader(ExceptionCode& ec)
 {
+    if (locked()) {
+        ec = TypeError;
+        return nullptr;
+    }
     ASSERT(!m_reader);
 
     std::unique_ptr<ReadableStreamReader> newReader = std::make_unique<ReadableStreamReader>(*this);
@@ -154,11 +158,11 @@
 
     if (m_state == State::Readable) {
         m_reader = WTF::move(newReader);
-        return reader;
+        return &reader;
     }
 
     m_releasedReaders.append(WTF::move(newReader));
-    return reader;
+    return &reader;
 }
 
 void ReadableStream::cancel(JSC::JSValue reason, CancelPromise&& promise, ExceptionCode& ec)

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.h (186110 => 186111)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.h	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.h	2015-06-30 07:50:12 UTC (rev 186111)
@@ -66,7 +66,7 @@
 
     virtual ~ReadableStream();
 
-    ReadableStreamReader& getReader();
+    ReadableStreamReader* getReader(ExceptionCode&);
     const ReadableStreamReader* reader() const { return m_reader.get(); }
 
     bool locked() const { return !!m_reader; }

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.idl (186110 => 186111)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.idl	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.idl	2015-06-30 07:50:12 UTC (rev 186111)
@@ -33,7 +33,7 @@
     SkipVTableValidation
 ] interface ReadableStream {
     [Custom] Promise cancel(any reason);
-    [Custom] ReadableStreamReader getReader();
+    [RaisesException] ReadableStreamReader getReader();
     [Custom] Promise pipeTo(any streams, any options);
     [Custom] Object pipeThrough(any dest, any options);
 

Modified: trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp (186110 => 186111)


--- trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/bindings/js/JSReadableStreamCustom.cpp	2015-06-30 07:50:12 UTC (rev 186111)
@@ -60,13 +60,6 @@
     return promiseDeferred.promise();
 }
 
-JSValue JSReadableStream::getReader(ExecState* exec)
-{
-    if (impl().locked())
-        return exec->vm().throwException(exec, createTypeError(exec, ASCIILiteral("ReadableStream is locked")));
-    return toJS(exec, globalObject(), impl().getReader());
-}
-
 JSValue JSReadableStream::pipeTo(ExecState* exec)
 {
     JSValue error = createError(exec, ASCIILiteral("pipeTo is not implemented"));

Modified: trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp (186110 => 186111)


--- trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp	2015-06-30 07:17:52 UTC (rev 186110)
+++ trunk/Source/WebCore/bindings/js/JSReadableStreamReaderCustom.cpp	2015-06-30 07:50:12 UTC (rev 186111)
@@ -97,7 +97,10 @@
     if (stream->impl().locked())
         return throwVMError(exec, createTypeError(exec, ASCIILiteral("ReadableStreamReader constructor parameter is a locked ReadableStream")));
 
-    return JSValue::encode(toJS(exec, stream->globalObject(), stream->impl().getReader()));
+    ExceptionCode ec = 0;
+    EncodedJSValue value = JSValue::encode(toJS(exec, stream->globalObject(), stream->impl().getReader(ec)));
+    ASSERT(!ec);
+    return value;
 }
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to