Title: [210907] branches/safari-603-branch

Diff

Modified: branches/safari-603-branch/LayoutTests/ChangeLog (210906 => 210907)


--- branches/safari-603-branch/LayoutTests/ChangeLog	2017-01-19 03:07:04 UTC (rev 210906)
+++ branches/safari-603-branch/LayoutTests/ChangeLog	2017-01-19 03:07:07 UTC (rev 210907)
@@ -1,5 +1,19 @@
 2017-01-18  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r210862. rdar://problem/30055009
+
+    2017-01-18  Youenn Fablet  <you...@apple.com>
+
+            [Streams API] ReadableStream generic reader constructor does not need to call ReadableStream getReader
+            https://bugs.webkit.org/show_bug.cgi?id=167137
+
+            Reviewed by Xabier Rodriguez-Calvar.
+
+            * streams/shadowing-getReader-expected.txt: Added.
+            * streams/shadowing-getReader.html: Added.
+
+2017-01-18  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r210860. rdar://problem/30080035
 
     2017-01-18  Youenn Fablet  <you...@apple.com>

Added: branches/safari-603-branch/LayoutTests/streams/shadowing-getReader-expected.txt (0 => 210907)


--- branches/safari-603-branch/LayoutTests/streams/shadowing-getReader-expected.txt	                        (rev 0)
+++ branches/safari-603-branch/LayoutTests/streams/shadowing-getReader-expected.txt	2017-01-19 03:07:07 UTC (rev 210907)
@@ -0,0 +1,10 @@
+This test should run without throwing an exception.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS new readerConstructor(stream) instanceof readerConstructor is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: branches/safari-603-branch/LayoutTests/streams/shadowing-getReader.html (0 => 210907)


--- branches/safari-603-branch/LayoutTests/streams/shadowing-getReader.html	                        (rev 0)
+++ branches/safari-603-branch/LayoutTests/streams/shadowing-getReader.html	2017-01-19 03:07:07 UTC (rev 210907)
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+description("This test should run without throwing an exception.");
+
+var readerConstructor = new ReadableStream().getReader().constructor;
+
+var stream = new ReadableStream();
+stream.getReader = "foo";
+
+shouldBeTrue("new readerConstructor(stream) instanceof readerConstructor");
+
+</script>
+<script src=""
+</body>
+</html>

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (210906 => 210907)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-19 03:07:04 UTC (rev 210906)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-01-19 03:07:07 UTC (rev 210907)
@@ -1,5 +1,21 @@
 2017-01-18  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r210862. rdar://problem/30055009
+
+    2017-01-18  Youenn Fablet  <you...@apple.com>
+
+            [Streams API] ReadableStream generic reader constructor does not need to call ReadableStream getReader
+            https://bugs.webkit.org/show_bug.cgi?id=167137
+
+            Reviewed by Xabier Rodriguez-Calvar.
+
+            Test: streams/shadowing-getReader.html
+
+            * bindings/js/JSReadableStreamPrivateConstructors.cpp:
+            (WebCore::constructJSReadableStreamDefaultReader): Using private constructor instead of getReader.
+
+2017-01-18  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r210860. rdar://problem/30080035
 
     2017-01-18  Youenn Fablet  <you...@apple.com>

Modified: branches/safari-603-branch/Source/WebCore/bindings/js/JSReadableStreamPrivateConstructors.cpp (210906 => 210907)


--- branches/safari-603-branch/Source/WebCore/bindings/js/JSReadableStreamPrivateConstructors.cpp	2017-01-19 03:07:04 UTC (rev 210906)
+++ branches/safari-603-branch/Source/WebCore/bindings/js/JSReadableStreamPrivateConstructors.cpp	2017-01-19 03:07:07 UTC (rev 210907)
@@ -30,7 +30,7 @@
 #include "JSReadableStreamDefaultReader.h"
 #include "ReadableByteStreamInternalsBuiltins.h"
 #include "ReadableStreamInternalsBuiltins.h"
-#include <runtime/CallData.h>
+#include "WebCoreJSClientData.h"
 
 using namespace JSC;
 
@@ -56,19 +56,17 @@
 
 EncodedJSValue JSC_HOST_CALL constructJSReadableStreamDefaultReader(ExecState& exec)
 {
-    VM& vm = exec.vm();
-    auto scope = DECLARE_THROW_SCOPE(vm);
+    JSVMClientData& clientData = *static_cast<JSVMClientData*>(exec.vm().clientData);
+    JSDOMGlobalObject& globalObject = *static_cast<JSDOMGlobalObject*>(exec.lexicalGlobalObject());
 
-    JSReadableStream* stream = jsDynamicDowncast<JSReadableStream*>(exec.argument(0));
-    if (!stream)
-        return throwArgumentTypeError(exec, scope, 0, "stream", "ReadableStreamReader", nullptr, "ReadableStream");
+    JSC::JSObject* constructor = JSC::asObject(globalObject.get(&exec, clientData.builtinNames().ReadableStreamDefaultReaderPrivateName()));
+    ConstructData constructData;
+    ConstructType constructType = constructor->methodTable()->getConstructData(constructor, constructData);
+    ASSERT(constructType != ConstructType::None);
 
-    JSValue jsFunction = stream->get(&exec, Identifier::fromString(&exec, "getReader"));
-
-    CallData callData;
-    CallType callType = getCallData(jsFunction, callData);
-    MarkedArgumentBuffer noArguments;
-    return JSValue::encode(call(&exec, jsFunction, callType, callData, stream, noArguments));
+    MarkedArgumentBuffer args;
+    args.append(exec.argument(0));
+    return JSValue::encode(JSC::construct(&exec, constructor, constructType, constructData, args));
 }
 
 // Private JS ReadableStreamDefaultReader and ReadableStreamDefaultController constructors.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to