<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[266228] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/266228">266228</a></dd>
<dt>Author</dt> <dd>youenn@apple.com</dd>
<dt>Date</dt> <dd>2020-08-27 03:00:20 -0700 (Thu, 27 Aug 2020)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add support for TransformStream
https://bugs.webkit.org/show_bug.cgi?id=215607

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/streams/idlharness.any-expected.txt:
* web-platform-tests/streams/idlharness.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/backpressure.any-expected.txt:
* web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/errors.any-expected.txt:
* web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/flush.any-expected.txt:
* web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/general.any-expected.txt:
* web-platform-tests/streams/transform-streams/general.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt:
* web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/patched-global.any-expected.txt:
* web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/properties.any-expected.txt:
* web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt:
* web-platform-tests/streams/transform-streams/reentrant-strategies.any.js:
* web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/strategies.any-expected.txt:
* web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt:
* web-platform-tests/streams/transform-streams/terminate.any-expected.txt:
* web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt:

Source/WebCore:

Add initial implementation as JS built-ins as per spec.
Covered by rebased tests.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Headers.cmake:
* Modules/streams/ReadableStreamInternals.js:
(readableStreamDefaultControllerShouldCallPull):
(readableStreamDefaultControllerCallPullIfNeeded):
* Modules/streams/TransformStream.idl: Added.
* Modules/streams/TransformStream.js: Added.
(initializeTransformStream):
(getter.readable):
(writable):
* Modules/streams/TransformStreamDefaultController.idl: Added.
* Modules/streams/TransformStreamDefaultController.js: Added.
(initializeTransformStreamDefaultController):
(getter.desiredSize):
(enqueue):
(error):
(terminate):
* Modules/streams/TransformStreamInternals.js: Added.
(isTransformStream):
(isTransformStreamDefaultController):
(initializeTransformStream):
(transformStreamError):
(transformStreamErrorWritableAndUnblockWrite):
(transformStreamSetBackpressure):
(setUpTransformStreamDefaultController):
(setUpTransformStreamDefaultControllerFromTransformer):
(transformStreamDefaultControllerClearAlgorithms):
(transformStreamDefaultControllerEnqueue):
(transformStreamDefaultControllerError):
(transformStreamDefaultControllerPerformTransform):
(transformStreamDefaultSinkWriteAlgorithm):
(transformStreamDefaultSinkAbortAlgorithm):
(transformStreamDefaultSinkCloseAlgorithm):
(transformStreamDefaultSourcePullAlgorithm):
* Modules/streams/WritableStream.js:
(initializeWritableStream):
* Modules/streams/WritableStreamInternals.js:
(createWritableStream):
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setTransformStreamAPIEnabled):
(WebCore::RuntimeEnabledFeatures::transformStreamAPIEnabled const):

Source/WebKit:

Add a runtime flag for TransformStream, off by default.

* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences transformStreamAPIEnabled]):
(-[WebPreferences setTransformStreamAPIEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWritableStreamAPIEnabled):
(WTR::TestRunner::setTransformStreamAPIEnabled):
* WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Rebased tests now that TransformStream is defined.

* streams/reference-implementation/pipe-through-expected.txt:
* streams/reference-implementation/pipe-to-expected.txt:
* streams/reference-implementation/transform-stream-errors-expected.txt:
* streams/reference-implementation/transform-stream-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsidlharnessanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsidlharnessanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingthrowingoptionsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingthrowingoptionsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingtransformstreamsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingtransformstreamsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsbackpressureanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsbackpressureanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamserrorsanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamserrorsanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsflushanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsflushanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsgeneralanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsgeneralanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamslipfuzzanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamslipfuzzanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspatchedglobalanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspatchedglobalanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspropertiesanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspropertiesanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsreentrantstrategiesanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsreentrantstrategiesanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsstrategiesanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsstrategiesanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsterminateanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsterminateanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstreamsreferenceimplementationtransformstreamerrorsexpectedtxt">trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstreamsreferenceimplementationtransformstreamexpectedtxt">trunk/LayoutTests/streams/reference-implementation/transform-stream-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesinputxcfilelist">trunk/Source/WebCore/DerivedSources-input.xcfilelist</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesoutputxcfilelist">trunk/Source/WebCore/DerivedSources-output.xcfilelist</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreHeaderscmake">trunk/Source/WebCore/Headers.cmake</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamjs">trunk/Source/WebCore/Modules/streams/ReadableStream.js</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamInternalsjs">trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsWritableStreamjs">trunk/Source/WebCore/Modules/streams/WritableStream.js</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsWritableStreamInternalsjs">trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js</a></li>
<li><a href="#trunkSourceWebCoreSourcestxt">trunk/Source/WebCore/Sources.txt</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh">trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitSharedWebPreferencesyaml">trunk/Source/WebKit/Shared/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebKitWebProcessInjectedBundleInjectedBundlecpp">trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp</a></li>
<li><a href="#trunkSourceWebKitLegacymacChangeLog">trunk/Source/WebKitLegacy/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesmm">trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebViewmm">trunk/Source/WebKitLegacy/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlecpp">trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp">trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleTestRunnerh">trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreModulesstreamsTransformStreamidl">trunk/Source/WebCore/Modules/streams/TransformStream.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsTransformStreamjs">trunk/Source/WebCore/Modules/streams/TransformStream.js</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsTransformStreamDefaultControlleridl">trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsTransformStreamDefaultControllerjs">trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.js</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsTransformStreamInternalsjs">trunk/Source/WebCore/Modules/streams/TransformStreamInternals.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/ChangeLog 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        Rebased tests now that TransformStream is defined.
+
+        * streams/reference-implementation/pipe-through-expected.txt:
+        * streams/reference-implementation/pipe-to-expected.txt:
+        * streams/reference-implementation/transform-stream-errors-expected.txt:
+        * streams/reference-implementation/transform-stream-expected.txt:
+
</ins><span class="cx"> 2020-08-26  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add support for sub-sample accurate start for AudioBufferSourceNode
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        * web-platform-tests/streams/idlharness.any-expected.txt:
+        * web-platform-tests/streams/idlharness.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/backpressure.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/errors.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/flush.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/general.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/general.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/patched-global.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/properties.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/reentrant-strategies.any.js:
+        * web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/strategies.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt:
+        * web-platform-tests/streams/transform-streams/terminate.any-expected.txt:
+        * web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt:
+
</ins><span class="cx"> 2020-08-26  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add support for sub-sample accurate start for AudioBufferSourceNode
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsidlharnessanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -173,36 +173,38 @@
</span><span class="cx"> PASS Stringification of self.writableStreamDefaultController 
</span><span class="cx"> PASS WritableStreamDefaultController interface: self.writableStreamDefaultController must inherit property "error(optional any)" with the proper type 
</span><span class="cx"> PASS WritableStreamDefaultController interface: calling error(optional any) on self.writableStreamDefaultController with too few arguments must throw TypeError 
</span><del>-FAIL TransformStream interface: existence and properties of interface object assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface object length assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface object name assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: attribute readable assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: attribute writable assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream must be primary interface of new TransformStream() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL Stringification of new TransformStream() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStream interface: new TransformStream() must inherit property "readable" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStream interface: new TransformStream() must inherit property "writable" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface object length assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface object name assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: attribute desiredSize assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation enqueue(optional any) assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation error(optional any) assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation terminate() assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController must be primary interface of self.transformStreamDefaultController assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of self.transformStreamDefaultController assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "desiredSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "enqueue(optional any)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: calling enqueue(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "error(optional any)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: calling error(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "terminate()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
</del><ins>+PASS TransformStream interface: existence and properties of interface object 
+PASS TransformStream interface object length 
+PASS TransformStream interface object name 
+PASS TransformStream interface: existence and properties of interface prototype object 
+PASS TransformStream interface: existence and properties of interface prototype object's "constructor" property 
+PASS TransformStream interface: existence and properties of interface prototype object's @@unscopables property 
+PASS TransformStream interface: attribute readable 
+FAIL TransformStream interface: attribute writable assert_equals: getter must have the name 'get writable' expected "get writable" but got "writable"
+PASS TransformStream must be primary interface of new TransformStream() 
+PASS Stringification of new TransformStream() 
+PASS TransformStream interface: new TransformStream() must inherit property "readable" with the proper type 
+PASS TransformStream interface: new TransformStream() must inherit property "writable" with the proper type 
+FAIL TransformStreamDefaultController interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function () {
+                new interface_object();
+            }" did not throw
+PASS TransformStreamDefaultController interface object length 
+PASS TransformStreamDefaultController interface object name 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object's "constructor" property 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object's @@unscopables property 
+PASS TransformStreamDefaultController interface: attribute desiredSize 
+FAIL TransformStreamDefaultController interface: operation enqueue(optional any) assert_equals: property has wrong .length expected 0 but got 1
+FAIL TransformStreamDefaultController interface: operation error(optional any) assert_equals: property has wrong .length expected 0 but got 1
+PASS TransformStreamDefaultController interface: operation terminate() 
+PASS TransformStreamDefaultController must be primary interface of self.transformStreamDefaultController 
+PASS Stringification of self.transformStreamDefaultController 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "desiredSize" with the proper type 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "enqueue(optional any)" with the proper type 
+PASS TransformStreamDefaultController interface: calling enqueue(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "error(optional any)" with the proper type 
+PASS TransformStreamDefaultController interface: calling error(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "terminate()" with the proper type 
</ins><span class="cx"> PASS ByteLengthQueuingStrategy interface: existence and properties of interface object 
</span><span class="cx"> FAIL ByteLengthQueuingStrategy interface object length assert_equals: wrong value for ByteLengthQueuingStrategy.length expected 1 but got 0
</span><span class="cx"> PASS ByteLengthQueuingStrategy interface object name 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsidlharnessanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt     2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any.worker-expected.txt        2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -173,36 +173,38 @@
</span><span class="cx"> PASS Stringification of self.writableStreamDefaultController 
</span><span class="cx"> PASS WritableStreamDefaultController interface: self.writableStreamDefaultController must inherit property "error(optional any)" with the proper type 
</span><span class="cx"> PASS WritableStreamDefaultController interface: calling error(optional any) on self.writableStreamDefaultController with too few arguments must throw TypeError 
</span><del>-FAIL TransformStream interface: existence and properties of interface object assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface object length assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface object name assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: attribute readable assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream interface: attribute writable assert_own_property: self does not have own property "TransformStream" expected property "TransformStream" missing
-FAIL TransformStream must be primary interface of new TransformStream() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL Stringification of new TransformStream() assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStream interface: new TransformStream() must inherit property "readable" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStream interface: new TransformStream() must inherit property "writable" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: Can't find variable: TransformStream"
-FAIL TransformStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface object length assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface object name assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: attribute desiredSize assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation enqueue(optional any) assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation error(optional any) assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController interface: operation terminate() assert_own_property: self does not have own property "TransformStreamDefaultController" expected property "TransformStreamDefaultController" missing
-FAIL TransformStreamDefaultController must be primary interface of self.transformStreamDefaultController assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of self.transformStreamDefaultController assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "desiredSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "enqueue(optional any)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: calling enqueue(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "error(optional any)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: calling error(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "terminate()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
</del><ins>+PASS TransformStream interface: existence and properties of interface object 
+PASS TransformStream interface object length 
+PASS TransformStream interface object name 
+PASS TransformStream interface: existence and properties of interface prototype object 
+PASS TransformStream interface: existence and properties of interface prototype object's "constructor" property 
+PASS TransformStream interface: existence and properties of interface prototype object's @@unscopables property 
+PASS TransformStream interface: attribute readable 
+FAIL TransformStream interface: attribute writable assert_equals: getter must have the name 'get writable' expected "get writable" but got "writable"
+PASS TransformStream must be primary interface of new TransformStream() 
+PASS Stringification of new TransformStream() 
+PASS TransformStream interface: new TransformStream() must inherit property "readable" with the proper type 
+PASS TransformStream interface: new TransformStream() must inherit property "writable" with the proper type 
+FAIL TransformStreamDefaultController interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function () {
+                new interface_object();
+            }" did not throw
+PASS TransformStreamDefaultController interface object length 
+PASS TransformStreamDefaultController interface object name 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object's "constructor" property 
+PASS TransformStreamDefaultController interface: existence and properties of interface prototype object's @@unscopables property 
+PASS TransformStreamDefaultController interface: attribute desiredSize 
+FAIL TransformStreamDefaultController interface: operation enqueue(optional any) assert_equals: property has wrong .length expected 0 but got 1
+FAIL TransformStreamDefaultController interface: operation error(optional any) assert_equals: property has wrong .length expected 0 but got 1
+PASS TransformStreamDefaultController interface: operation terminate() 
+PASS TransformStreamDefaultController must be primary interface of self.transformStreamDefaultController 
+PASS Stringification of self.transformStreamDefaultController 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "desiredSize" with the proper type 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "enqueue(optional any)" with the proper type 
+PASS TransformStreamDefaultController interface: calling enqueue(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "error(optional any)" with the proper type 
+PASS TransformStreamDefaultController interface: calling error(optional any) on self.transformStreamDefaultController with too few arguments must throw TypeError 
+PASS TransformStreamDefaultController interface: self.transformStreamDefaultController must inherit property "terminate()" with the proper type 
</ins><span class="cx"> PASS ByteLengthQueuingStrategy interface: existence and properties of interface object 
</span><span class="cx"> FAIL ByteLengthQueuingStrategy interface object length assert_equals: wrong value for ByteLengthQueuingStrategy.length expected 1 but got 0
</span><span class="cx"> PASS ByteLengthQueuingStrategy interface object name 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingthrowingoptionsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any-expected.txt       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any-expected.txt  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -2,23 +2,21 @@
</span><span class="cx"> FAIL pipeTo should stop after getting preventAbort throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventAbort throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventAbort throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting preventCancel throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventCancel throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventCancel throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting preventClose throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventClose throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventClose throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting signal throws signal
</span><del>-FAIL pipeThrough should stop after getting signal throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
-    [native code]
-}" ("Error")
</del><ins>+FAIL pipeThrough should stop after getting signal throws assert_array_equals: options should be touched in the right order lengths differ, expected array ["preventAbort", "preventCancel", "preventClose", "signal"] length 4, got ["signal"] length 1
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingthrowingoptionsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any.worker-expected.txt        2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/throwing-options.any.worker-expected.txt   2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -2,23 +2,21 @@
</span><span class="cx"> FAIL pipeTo should stop after getting preventAbort throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventAbort throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventAbort throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting preventCancel throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventCancel throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventCancel throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting preventClose throws promise_rejects_js: pipeTo should reject function "function () { throw e }" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</span><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><del>-FAIL pipeThrough should stop after getting preventClose throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
</del><ins>+FAIL pipeThrough should stop after getting preventClose throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "TypeError: options.signal must be AbortSignal" ("TypeError") expected instance of function "function Error() {
</ins><span class="cx">     [native code]
</span><span class="cx"> }" ("Error")
</span><span class="cx"> FAIL pipeTo should stop after getting signal throws signal
</span><del>-FAIL pipeThrough should stop after getting signal throws assert_throws_js: pipeThrough should throw function "() => new ReadableStream().pipeThrough(new TransformStream(), options)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function Error() {
-    [native code]
-}" ("Error")
</del><ins>+FAIL pipeThrough should stop after getting signal throws assert_array_equals: options should be touched in the right order lengths differ, expected array ["preventAbort", "preventCancel", "preventClose", "signal"] length 4, got ["signal"] length 1
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingtransformstreamsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any-expected.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any-expected.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-FAIL Piping through an identity transform stream should close the destination when the source closes Can't find variable: TransformStream
</del><ins>+PASS Piping through an identity transform stream should close the destination when the source closes 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamspipingtransformstreamsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any.worker-expected.txt       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/piping/transform-streams.any.worker-expected.txt  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-FAIL Piping through an identity transform stream should close the destination when the source closes Can't find variable: TransformStream
</del><ins>+PASS Piping through an identity transform stream should close the destination when the source closes 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsbackpressureanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt        2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any-expected.txt   2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,16 +1,17 @@
</span><ins>+CONSOLE MESSAGE: Unhandled Promise Rejection: undefined
</ins><span class="cx"> 
</span><del>-FAIL backpressure allows no transforms with a default identity transform and no reader Can't find variable: TransformStream
-FAIL backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader Can't find variable: TransformStream
-FAIL transform() should keep being called as long as there is no backpressure Can't find variable: TransformStream
-FAIL writes should resolve as soon as transform completes Can't find variable: TransformStream
-FAIL calling pull() before the first write() with backpressure should work Can't find variable: TransformStream
-FAIL transform() should be able to read the chunk it just enqueued Can't find variable: TransformStream
-FAIL blocking transform() should cause backpressure Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled during start Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled with backpressure Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled with no backpressure Can't find variable: TransformStream
-FAIL cancelling the readable should cause a pending write to resolve Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort an empty pipe Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort an empty pipe after startup Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort a full pipe Can't find variable: TransformStream
</del><ins>+FAIL backpressure allows no transforms with a default identity transform and no reader assert_array_equals: transform should not be called lengths differ, expected array [] length 0, got ["transform", "a"] length 2
+PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
+PASS transform() should keep being called as long as there is no backpressure 
+PASS writes should resolve as soon as transform completes 
+PASS calling pull() before the first write() with backpressure should work 
+PASS transform() should be able to read the chunk it just enqueued 
+PASS blocking transform() should cause backpressure 
+PASS writer.closed should resolve after readable is canceled during start 
+PASS writer.closed should resolve after readable is canceled with backpressure 
+PASS writer.closed should resolve after readable is canceled with no backpressure 
+PASS cancelling the readable should cause a pending write to resolve 
+PASS cancelling the readable side of a TransformStream should abort an empty pipe 
+PASS cancelling the readable side of a TransformStream should abort an empty pipe after startup 
+PASS cancelling the readable side of a TransformStream should abort a full pipe 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsbackpressureanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/backpressure.any.worker-expected.txt    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,16 +1,16 @@
</span><span class="cx"> 
</span><del>-FAIL backpressure allows no transforms with a default identity transform and no reader Can't find variable: TransformStream
-FAIL backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader Can't find variable: TransformStream
-FAIL transform() should keep being called as long as there is no backpressure Can't find variable: TransformStream
-FAIL writes should resolve as soon as transform completes Can't find variable: TransformStream
-FAIL calling pull() before the first write() with backpressure should work Can't find variable: TransformStream
-FAIL transform() should be able to read the chunk it just enqueued Can't find variable: TransformStream
-FAIL blocking transform() should cause backpressure Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled during start Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled with backpressure Can't find variable: TransformStream
-FAIL writer.closed should resolve after readable is canceled with no backpressure Can't find variable: TransformStream
-FAIL cancelling the readable should cause a pending write to resolve Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort an empty pipe Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort an empty pipe after startup Can't find variable: TransformStream
-FAIL cancelling the readable side of a TransformStream should abort a full pipe Can't find variable: TransformStream
</del><ins>+FAIL backpressure allows no transforms with a default identity transform and no reader assert_array_equals: transform should not be called lengths differ, expected array [] length 0, got ["transform", "a"] length 2
+PASS backpressure only allows one transform() with a identity transform with a readable HWM of 1 and no reader 
+PASS transform() should keep being called as long as there is no backpressure 
+PASS writes should resolve as soon as transform completes 
+PASS calling pull() before the first write() with backpressure should work 
+PASS transform() should be able to read the chunk it just enqueued 
+PASS blocking transform() should cause backpressure 
+PASS writer.closed should resolve after readable is canceled during start 
+PASS writer.closed should resolve after readable is canceled with backpressure 
+PASS writer.closed should resolve after readable is canceled with no backpressure 
+PASS cancelling the readable should cause a pending write to resolve 
+PASS cancelling the readable side of a TransformStream should abort an empty pipe 
+PASS cancelling the readable side of a TransformStream should abort an empty pipe after startup 
+PASS cancelling the readable side of a TransformStream should abort a full pipe 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamserrorsanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any-expected.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,42 +1,22 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream errors thrown in transform put the writable and readable in an errored state Can't find variable: TransformStream
-FAIL TransformStream errors thrown in flush put the writable and readable in an errored state Can't find variable: TransformStream
-FAIL errored TransformStream should not enqueue new chunks Can't find variable: TransformStream
-FAIL TransformStream transformer.start() rejected promise should error the stream Can't find variable: TransformStream
-FAIL when controller.error is followed by a rejection, the error reason should come from controller.error Can't find variable: TransformStream
-FAIL TransformStream constructor should throw when start does assert_throws_js: constructor should throw function "() => new TransformStream({
-    start() { throw new URIError('start thrown error'); },
-    transform() {}
-  })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL when strategy.size throws inside start(), the constructor should throw the same error assert_throws_js: constructor should throw the same error strategy.size throws function "() => new TransformStream({
-    start(c) {
-      c.enqueue('a');
-    },
-    transform() {}
-  }, undefined, strategy)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL when strategy.size calls controller.error() then throws, the constructor should throw the first error assert_throws_js: the first error should be thrown function "() => new TransformStream({
-    start(c) {
-      controller = c;
-      c.enqueue('a');
-    },
-    transform() {}
-  }, undefined, strategy)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL cancelling the readable side should error the writable Can't find variable: TransformStream
-FAIL it should be possible to error the readable between close requested and complete Can't find variable: TransformStream
-FAIL an exception from transform() should error the stream if terminate has been requested but not completed Can't find variable: TransformStream
-FAIL abort should set the close reason for the writable when it happens before cancel during start, but cancel should still succeed Can't find variable: TransformStream
-FAIL abort should set the close reason for the writable when it happens before cancel during underlying sink write, but cancel should still succeed Can't find variable: TransformStream
-FAIL controller.error() should do nothing the second time it is called Can't find variable: TransformStream
-FAIL controller.error() should do nothing after readable.cancel() Can't find variable: TransformStream
-FAIL controller.error() should do nothing after writable.abort() has completed Can't find variable: TransformStream
-FAIL controller.error() should do nothing after a transformer method has thrown an exception Can't find variable: TransformStream
-FAIL erroring during write with backpressure should result in the write failing Can't find variable: TransformStream
-FAIL a write() that was waiting for backpressure should reject if the writable is aborted Can't find variable: TransformStream
-FAIL the readable should be errored with the reason passed to the writable abort() method Can't find variable: TransformStream
</del><ins>+FAIL TransformStream errors thrown in transform put the writable and readable in an errored state promise_rejects_exactly: writable's write should reject with the thrown error function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+PASS TransformStream errors thrown in flush put the writable and readable in an errored state 
+PASS errored TransformStream should not enqueue new chunks 
+PASS TransformStream transformer.start() rejected promise should error the stream 
+PASS when controller.error is followed by a rejection, the error reason should come from controller.error 
+PASS TransformStream constructor should throw when start does 
+PASS when strategy.size throws inside start(), the constructor should throw the same error 
+PASS when strategy.size calls controller.error() then throws, the constructor should throw the first error 
+PASS cancelling the readable side should error the writable 
+PASS it should be possible to error the readable between close requested and complete 
+FAIL an exception from transform() should error the stream if terminate has been requested but not completed promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+PASS abort should set the close reason for the writable when it happens before cancel during start, but cancel should still succeed 
+PASS abort should set the close reason for the writable when it happens before cancel during underlying sink write, but cancel should still succeed 
+PASS controller.error() should do nothing the second time it is called 
+PASS controller.error() should do nothing after readable.cancel() 
+PASS controller.error() should do nothing after writable.abort() has completed 
+FAIL controller.error() should do nothing after a transformer method has thrown an exception promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+FAIL erroring during write with backpressure should result in the write failing promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+FAIL a write() that was waiting for backpressure should reject if the writable is aborted assert_unreached: Should have rejected: read() should reject Reached unreachable code
+PASS the readable should be errored with the reason passed to the writable abort() method 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamserrorsanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/errors.any.worker-expected.txt  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,42 +1,22 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream errors thrown in transform put the writable and readable in an errored state Can't find variable: TransformStream
-FAIL TransformStream errors thrown in flush put the writable and readable in an errored state Can't find variable: TransformStream
-FAIL errored TransformStream should not enqueue new chunks Can't find variable: TransformStream
-FAIL TransformStream transformer.start() rejected promise should error the stream Can't find variable: TransformStream
-FAIL when controller.error is followed by a rejection, the error reason should come from controller.error Can't find variable: TransformStream
-FAIL TransformStream constructor should throw when start does assert_throws_js: constructor should throw function "() => new TransformStream({
-    start() { throw new URIError('start thrown error'); },
-    transform() {}
-  })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL when strategy.size throws inside start(), the constructor should throw the same error assert_throws_js: constructor should throw the same error strategy.size throws function "() => new TransformStream({
-    start(c) {
-      c.enqueue('a');
-    },
-    transform() {}
-  }, undefined, strategy)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL when strategy.size calls controller.error() then throws, the constructor should throw the first error assert_throws_js: the first error should be thrown function "() => new TransformStream({
-    start(c) {
-      controller = c;
-      c.enqueue('a');
-    },
-    transform() {}
-  }, undefined, strategy)" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function URIError() {
-    [native code]
-}" ("URIError")
-FAIL cancelling the readable side should error the writable Can't find variable: TransformStream
-FAIL it should be possible to error the readable between close requested and complete Can't find variable: TransformStream
-FAIL an exception from transform() should error the stream if terminate has been requested but not completed Can't find variable: TransformStream
-FAIL abort should set the close reason for the writable when it happens before cancel during start, but cancel should still succeed Can't find variable: TransformStream
-FAIL abort should set the close reason for the writable when it happens before cancel during underlying sink write, but cancel should still succeed Can't find variable: TransformStream
-FAIL controller.error() should do nothing the second time it is called Can't find variable: TransformStream
-FAIL controller.error() should do nothing after readable.cancel() Can't find variable: TransformStream
-FAIL controller.error() should do nothing after writable.abort() has completed Can't find variable: TransformStream
-FAIL controller.error() should do nothing after a transformer method has thrown an exception Can't find variable: TransformStream
-FAIL erroring during write with backpressure should result in the write failing Can't find variable: TransformStream
-FAIL a write() that was waiting for backpressure should reject if the writable is aborted Can't find variable: TransformStream
-FAIL the readable should be errored with the reason passed to the writable abort() method Can't find variable: TransformStream
</del><ins>+FAIL TransformStream errors thrown in transform put the writable and readable in an errored state promise_rejects_exactly: writable's write should reject with the thrown error function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+PASS TransformStream errors thrown in flush put the writable and readable in an errored state 
+PASS errored TransformStream should not enqueue new chunks 
+PASS TransformStream transformer.start() rejected promise should error the stream 
+PASS when controller.error is followed by a rejection, the error reason should come from controller.error 
+PASS TransformStream constructor should throw when start does 
+PASS when strategy.size throws inside start(), the constructor should throw the same error 
+PASS when strategy.size calls controller.error() then throws, the constructor should throw the first error 
+PASS cancelling the readable side should error the writable 
+PASS it should be possible to error the readable between close requested and complete 
+FAIL an exception from transform() should error the stream if terminate has been requested but not completed promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+PASS abort should set the close reason for the writable when it happens before cancel during start, but cancel should still succeed 
+PASS abort should set the close reason for the writable when it happens before cancel during underlying sink write, but cancel should still succeed 
+PASS controller.error() should do nothing the second time it is called 
+PASS controller.error() should do nothing after readable.cancel() 
+PASS controller.error() should do nothing after writable.abort() has completed 
+FAIL controller.error() should do nothing after a transformer method has thrown an exception promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+FAIL erroring during write with backpressure should result in the write failing promise_rejects_exactly: write() should reject function "function () { throw e }" threw undefined but we expected it to throw object "error1: bad things are happening!"
+FAIL a write() that was waiting for backpressure should reject if the writable is aborted assert_unreached: Should have rejected: read() should reject Reached unreachable code
+PASS the readable should be errored with the reason passed to the writable abort() method 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsflushanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any-expected.txt       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any-expected.txt  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream flush is called immediately when the writable is closed, if no writes are queued Can't find variable: TransformStream
-FAIL TransformStream flush is called after all queued writes finish, once the writable is closed Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable, and can then async close Can't find variable: TransformStream
-FAIL error() during flush should cause writer.close() to reject Can't find variable: TransformStream
</del><ins>+PASS TransformStream flush is called immediately when the writable is closed, if no writes are queued 
+PASS TransformStream flush is called after all queued writes finish, once the writable is closed 
+PASS TransformStream flush gets a chance to enqueue more into the readable 
+PASS TransformStream flush gets a chance to enqueue more into the readable, and can then async close 
+PASS error() during flush should cause writer.close() to reject 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsflushanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt        2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/flush.any.worker-expected.txt   2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream flush is called immediately when the writable is closed, if no writes are queued Can't find variable: TransformStream
-FAIL TransformStream flush is called after all queued writes finish, once the writable is closed Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable, and can then async close Can't find variable: TransformStream
-FAIL error() during flush should cause writer.close() to reject Can't find variable: TransformStream
</del><ins>+PASS TransformStream flush is called immediately when the writable is closed, if no writes are queued 
+PASS TransformStream flush is called after all queued writes finish, once the writable is closed 
+PASS TransformStream flush gets a chance to enqueue more into the readable 
+PASS TransformStream flush gets a chance to enqueue more into the readable, and can then async close 
+PASS error() during flush should cause writer.close() to reject 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsgeneralanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any-expected.txt     2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any-expected.txt        2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,31 +1,27 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream can be constructed with a transform function Can't find variable: TransformStream
-FAIL TransformStream can be constructed with no transform function Can't find variable: TransformStream
-FAIL TransformStream writable starts in the writable state Can't find variable: TransformStream
-FAIL Identity TransformStream: can read from readable what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler sync TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL Uppercaser async TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler async TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable (when there are no queued writes) Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable waits for transforms to finish before closing both Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after sync enqueues and async done Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after async enqueues and async done Can't find variable: TransformStream
-FAIL Transform stream should call transformer methods as methods Can't find variable: TransformStream
-FAIL methods should not not have .apply() or .call() called Can't find variable: TransformStream
-FAIL TransformStream start, transform, and flush should be strictly ordered Can't find variable: TransformStream
-FAIL it should be possible to call transform() synchronously Can't find variable: TransformStream
-FAIL closing the writable should close the readable when there are no queued chunks, even with backpressure Can't find variable: TransformStream
-FAIL enqueue() should throw after controller.terminate() Can't find variable: TransformStream
-FAIL enqueue() should throw after readable.cancel() Can't find variable: TransformStream
-FAIL controller.terminate() should do nothing the second time it is called Can't find variable: TransformStream
-FAIL terminate() should do nothing after readable.cancel() Can't find variable: TransformStream
-FAIL start() should not be called twice Can't find variable: TransformStream
-FAIL specifying a defined readableType should throw assert_throws_js: constructor should throw function "() => new TransformStream({ readableType: 'bytes' })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL specifying a defined writableType should throw assert_throws_js: constructor should throw function "() => new TransformStream({ writableType: 'bytes' })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL Subclassing TransformStream should work Can't find variable: TransformStream
</del><ins>+PASS TransformStream can be constructed with a transform function 
+PASS TransformStream can be constructed with no transform function 
+PASS TransformStream writable starts in the writable state 
+PASS Identity TransformStream: can read from readable what is put into writable 
+PASS Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable 
+PASS Uppercaser-doubler sync TransformStream: can read both chunks put into the readable 
+PASS Uppercaser async TransformStream: can read from readable transformed version of what is put into writable 
+PASS Uppercaser-doubler async TransformStream: can read both chunks put into the readable 
+PASS TransformStream: by default, closing the writable closes the readable (when there are no queued writes) 
+PASS TransformStream: by default, closing the writable waits for transforms to finish before closing both 
+PASS TransformStream: by default, closing the writable closes the readable after sync enqueues and async done 
+PASS TransformStream: by default, closing the writable closes the readable after async enqueues and async done 
+PASS Transform stream should call transformer methods as methods 
+PASS methods should not not have .apply() or .call() called 
+PASS TransformStream start, transform, and flush should be strictly ordered 
+PASS it should be possible to call transform() synchronously 
+PASS closing the writable should close the readable when there are no queued chunks, even with backpressure 
+PASS enqueue() should throw after controller.terminate() 
+PASS enqueue() should throw after readable.cancel() 
+PASS controller.terminate() should do nothing the second time it is called 
+PASS terminate() should do nothing after readable.cancel() 
+PASS start() should not be called twice 
+PASS specifying a defined readableType should throw 
+PASS specifying a defined writableType should throw 
+FAIL Subclassing TransformStream should work assert_true: Subclass object should be an instance of Subclass expected true got false
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsgeneralanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any.worker-expected.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/general.any.worker-expected.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,31 +1,27 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream can be constructed with a transform function Can't find variable: TransformStream
-FAIL TransformStream can be constructed with no transform function Can't find variable: TransformStream
-FAIL TransformStream writable starts in the writable state Can't find variable: TransformStream
-FAIL Identity TransformStream: can read from readable what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler sync TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL Uppercaser async TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler async TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable (when there are no queued writes) Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable waits for transforms to finish before closing both Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after sync enqueues and async done Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after async enqueues and async done Can't find variable: TransformStream
-FAIL Transform stream should call transformer methods as methods Can't find variable: TransformStream
-FAIL methods should not not have .apply() or .call() called Can't find variable: TransformStream
-FAIL TransformStream start, transform, and flush should be strictly ordered Can't find variable: TransformStream
-FAIL it should be possible to call transform() synchronously Can't find variable: TransformStream
-FAIL closing the writable should close the readable when there are no queued chunks, even with backpressure Can't find variable: TransformStream
-FAIL enqueue() should throw after controller.terminate() Can't find variable: TransformStream
-FAIL enqueue() should throw after readable.cancel() Can't find variable: TransformStream
-FAIL controller.terminate() should do nothing the second time it is called Can't find variable: TransformStream
-FAIL terminate() should do nothing after readable.cancel() Can't find variable: TransformStream
-FAIL start() should not be called twice Can't find variable: TransformStream
-FAIL specifying a defined readableType should throw assert_throws_js: constructor should throw function "() => new TransformStream({ readableType: 'bytes' })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL specifying a defined writableType should throw assert_throws_js: constructor should throw function "() => new TransformStream({ writableType: 'bytes' })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL Subclassing TransformStream should work Can't find variable: TransformStream
</del><ins>+PASS TransformStream can be constructed with a transform function 
+PASS TransformStream can be constructed with no transform function 
+PASS TransformStream writable starts in the writable state 
+PASS Identity TransformStream: can read from readable what is put into writable 
+PASS Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable 
+PASS Uppercaser-doubler sync TransformStream: can read both chunks put into the readable 
+PASS Uppercaser async TransformStream: can read from readable transformed version of what is put into writable 
+PASS Uppercaser-doubler async TransformStream: can read both chunks put into the readable 
+PASS TransformStream: by default, closing the writable closes the readable (when there are no queued writes) 
+PASS TransformStream: by default, closing the writable waits for transforms to finish before closing both 
+PASS TransformStream: by default, closing the writable closes the readable after sync enqueues and async done 
+PASS TransformStream: by default, closing the writable closes the readable after async enqueues and async done 
+PASS Transform stream should call transformer methods as methods 
+PASS methods should not not have .apply() or .call() called 
+PASS TransformStream start, transform, and flush should be strictly ordered 
+PASS it should be possible to call transform() synchronously 
+PASS closing the writable should close the readable when there are no queued chunks, even with backpressure 
+PASS enqueue() should throw after controller.terminate() 
+PASS enqueue() should throw after readable.cancel() 
+PASS controller.terminate() should do nothing the second time it is called 
+PASS terminate() should do nothing after readable.cancel() 
+PASS start() should not be called twice 
+PASS specifying a defined readableType should throw 
+PASS specifying a defined writableType should throw 
+FAIL Subclassing TransformStream should work assert_true: Subclass object should be an instance of Subclass expected true got false
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamslipfuzzanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt     2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any-expected.txt        2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,22 +1,22 @@
</span><span class="cx"> 
</span><del>-FAIL testing "" (length 1) Can't find variable: TransformStream
-FAIL testing "" (length 0) Can't find variable: TransformStream
-FAIL testing "{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "z{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}q" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in1}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in1},}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{in1,}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{,in1}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{,{in1}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{,in1}" (length 2) Can't find variable: TransformStream
-FAIL testing "{" (length 1) Can't find variable: TransformStream
-FAIL testing "{," (length 2) Can't find variable: TransformStream
-FAIL testing "{,{,i,n,1,},}" (length 7) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in2}}{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{wrong}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{wron,g}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{quine}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{bogusPartial}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{bogusPartial}}}" (length 1) Can't find variable: TransformStream
</del><ins>+PASS testing "" (length 1) 
+PASS testing "" (length 0) 
+PASS testing "{{in1}}" (length 1) 
+PASS testing "z{{in1}}" (length 1) 
+PASS testing "{{in1}}q" (length 1) 
+PASS testing "{{in1}}{{in1}" (length 1) 
+PASS testing "{{in1}}{{in1},}" (length 2) 
+PASS testing "{{in1,}}" (length 2) 
+PASS testing "{{,in1}}" (length 2) 
+PASS testing "{,{in1}}" (length 2) 
+PASS testing "{{,in1}" (length 2) 
+PASS testing "{" (length 1) 
+PASS testing "{," (length 2) 
+PASS testing "{,{,i,n,1,},}" (length 7) 
+PASS testing "{{in1}}{{in2}}{{in1}}" (length 1) 
+PASS testing "{{wrong}}" (length 1) 
+PASS testing "{{wron,g}}" (length 2) 
+PASS testing "{{quine}}" (length 1) 
+PASS testing "{{bogusPartial}}" (length 1) 
+PASS testing "{{bogusPartial}}}" (length 1) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamslipfuzzanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/lipfuzz.any.worker-expected.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,22 +1,22 @@
</span><span class="cx"> 
</span><del>-FAIL testing "" (length 1) Can't find variable: TransformStream
-FAIL testing "" (length 0) Can't find variable: TransformStream
-FAIL testing "{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "z{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}q" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in1}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in1},}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{in1,}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{,in1}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{,{in1}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{,in1}" (length 2) Can't find variable: TransformStream
-FAIL testing "{" (length 1) Can't find variable: TransformStream
-FAIL testing "{," (length 2) Can't find variable: TransformStream
-FAIL testing "{,{,i,n,1,},}" (length 7) Can't find variable: TransformStream
-FAIL testing "{{in1}}{{in2}}{{in1}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{wrong}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{wron,g}}" (length 2) Can't find variable: TransformStream
-FAIL testing "{{quine}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{bogusPartial}}" (length 1) Can't find variable: TransformStream
-FAIL testing "{{bogusPartial}}}" (length 1) Can't find variable: TransformStream
</del><ins>+PASS testing "" (length 1) 
+PASS testing "" (length 0) 
+PASS testing "{{in1}}" (length 1) 
+PASS testing "z{{in1}}" (length 1) 
+PASS testing "{{in1}}q" (length 1) 
+PASS testing "{{in1}}{{in1}" (length 1) 
+PASS testing "{{in1}}{{in1},}" (length 2) 
+PASS testing "{{in1,}}" (length 2) 
+PASS testing "{{,in1}}" (length 2) 
+PASS testing "{,{in1}}" (length 2) 
+PASS testing "{{,in1}" (length 2) 
+PASS testing "{" (length 1) 
+PASS testing "{," (length 2) 
+PASS testing "{,{,i,n,1,},}" (length 7) 
+PASS testing "{{in1}}{{in2}}{{in1}}" (length 1) 
+PASS testing "{{wrong}}" (length 1) 
+PASS testing "{{wron,g}}" (length 2) 
+PASS testing "{{quine}}" (length 1) 
+PASS testing "{{bogusPartial}}" (length 1) 
+PASS testing "{{bogusPartial}}}" (length 1) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspatchedglobalanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any-expected.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any-expected.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> Harness Error (FAIL), message = Test named 'TransformStream constructor should not call setters for highWaterMark or size' specified 1 'cleanup' function, and 1 failed.
</span><span class="cx"> 
</span><del>-FAIL TransformStream constructor should not call setters for highWaterMark or size Can't find variable: TransformStream
</del><ins>+FAIL TransformStream constructor should not call setters for highWaterMark or size highWaterMark value is negative or not a number
</ins><span class="cx"> NOTRUN TransformStream should use the original value of ReadableStream and WritableStream 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspatchedglobalanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> 
</span><span class="cx"> Harness Error (FAIL), message = Test named 'TransformStream constructor should not call setters for highWaterMark or size' specified 1 'cleanup' function, and 1 failed.
</span><span class="cx"> 
</span><del>-FAIL TransformStream constructor should not call setters for highWaterMark or size Can't find variable: TransformStream
</del><ins>+FAIL TransformStream constructor should not call setters for highWaterMark or size highWaterMark value is negative or not a number
</ins><span class="cx"> NOTRUN TransformStream should use the original value of ReadableStream and WritableStream 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspropertiesanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any-expected.txt  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any-expected.txt     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL transformer method start should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method start should be called even when it's located on the prototype chain Can't find variable: TransformStream
-FAIL transformer method transform should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method transform should be called even when it's located on the prototype chain Can't find variable: TransformStream
-FAIL transformer method flush should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method flush should be called even when it's located on the prototype chain Can't find variable: TransformStream
</del><ins>+PASS transformer method start should be called with the right number of arguments 
+PASS transformer method start should be called even when it's located on the prototype chain 
+PASS transformer method transform should be called with the right number of arguments 
+PASS transformer method transform should be called even when it's located on the prototype chain 
+PASS transformer method flush should be called with the right number of arguments 
+PASS transformer method flush should be called even when it's located on the prototype chain 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamspropertiesanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/properties.any.worker-expected.txt      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL transformer method start should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method start should be called even when it's located on the prototype chain Can't find variable: TransformStream
-FAIL transformer method transform should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method transform should be called even when it's located on the prototype chain Can't find variable: TransformStream
-FAIL transformer method flush should be called with the right number of arguments Can't find variable: TransformStream
-FAIL transformer method flush should be called even when it's located on the prototype chain Can't find variable: TransformStream
</del><ins>+PASS transformer method start should be called with the right number of arguments 
+PASS transformer method start should be called even when it's located on the prototype chain 
+PASS transformer method transform should be called with the right number of arguments 
+PASS transformer method transform should be called even when it's located on the prototype chain 
+PASS transformer method flush should be called with the right number of arguments 
+PASS transformer method flush should be called even when it's located on the prototype chain 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsreentrantstrategiesanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt        2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any-expected.txt   2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,13 +1,13 @@
</span><span class="cx"> 
</span><del>-FAIL enqueue() inside size() should work Can't find variable: TransformStream
-FAIL terminate() inside size() should work Can't find variable: TransformStream
-FAIL error() inside size() should work Can't find variable: TransformStream
-FAIL desiredSize inside size() should work Can't find variable: TransformStream
-FAIL readable cancel() inside size() should work Can't find variable: TransformStream
-FAIL pipeTo() inside size() should work Can't find variable: TransformStream
-FAIL read() inside of size() should work Can't find variable: TransformStream
-FAIL writer.write() inside size() should work Can't find variable: TransformStream
-FAIL synchronous writer.write() inside size() should work Can't find variable: TransformStream
-FAIL writer.close() inside size() should work Can't find variable: TransformStream
-FAIL writer.abort() inside size() should work Can't find variable: TransformStream
</del><ins>+PASS enqueue() inside size() should work 
+PASS terminate() inside size() should work 
+PASS error() inside size() should work 
+PASS desiredSize inside size() should work 
+PASS readable cancel() inside size() should work 
+PASS pipeTo() inside size() should work 
+FAIL read() inside of size() should work assert_false: expected false got true
+PASS writer.write() inside size() should work 
+PASS synchronous writer.write() inside size() should work 
+PASS writer.close() inside size() should work 
+PASS writer.abort() inside size() should work 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsreentrantstrategiesanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,13 +1,13 @@
</span><span class="cx"> 
</span><del>-FAIL enqueue() inside size() should work Can't find variable: TransformStream
-FAIL terminate() inside size() should work Can't find variable: TransformStream
-FAIL error() inside size() should work Can't find variable: TransformStream
-FAIL desiredSize inside size() should work Can't find variable: TransformStream
-FAIL readable cancel() inside size() should work Can't find variable: TransformStream
-FAIL pipeTo() inside size() should work Can't find variable: TransformStream
-FAIL read() inside of size() should work Can't find variable: TransformStream
-FAIL writer.write() inside size() should work Can't find variable: TransformStream
-FAIL synchronous writer.write() inside size() should work Can't find variable: TransformStream
-FAIL writer.close() inside size() should work Can't find variable: TransformStream
-FAIL writer.abort() inside size() should work Can't find variable: TransformStream
</del><ins>+PASS enqueue() inside size() should work 
+PASS terminate() inside size() should work 
+PASS error() inside size() should work 
+PASS desiredSize inside size() should work 
+PASS readable cancel() inside size() should work 
+PASS pipeTo() inside size() should work 
+FAIL read() inside of size() should work assert_false: expected false got true
+PASS writer.write() inside size() should work 
+PASS synchronous writer.write() inside size() should work 
+PASS writer.close() inside size() should work 
+PASS writer.abort() inside size() should work 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsstrategiesanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any-expected.txt     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,14 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL writableStrategy highWaterMark should work Can't find variable: TransformStream
-FAIL readableStrategy highWaterMark should work Can't find variable: TransformStream
-FAIL writable should have the correct size() function Can't find variable: TransformStream
-FAIL default writable strategy should be equivalent to { highWaterMark: 1 } Can't find variable: TransformStream
-FAIL default readable strategy should be equivalent to { highWaterMark: 0 } Can't find variable: TransformStream
-FAIL a RangeError should be thrown for an invalid highWaterMark assert_throws_js: should throw RangeError for negative writableHighWaterMark function "() => new TransformStream(undefined, { highWaterMark: -1 })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL writableStrategy highWaterMark should be converted to a number Can't find variable: TransformStream
-FAIL readableStrategy highWaterMark should be converted to a number Can't find variable: TransformStream
-FAIL a bad readableStrategy size function should cause writer.write() to reject on an identity transform Can't find variable: TransformStream
-FAIL a bad readableStrategy size function should error the stream on enqueue even when transformer.transform() catches the exception Can't find variable: TransformStream
</del><ins>+PASS writableStrategy highWaterMark should work 
+PASS readableStrategy highWaterMark should work 
+PASS writable should have the correct size() function 
+PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
+FAIL default readable strategy should be equivalent to { highWaterMark: 0 } assert_equals: desiredSize should be 0 expected 0 but got 1
+PASS a RangeError should be thrown for an invalid highWaterMark 
+PASS writableStrategy highWaterMark should be converted to a number 
+PASS readableStrategy highWaterMark should be converted to a number 
+FAIL a bad readableStrategy size function should cause writer.write() to reject on an identity transform promise_rejects_js: write should reject function "function () { throw e }" threw undefined with type "undefined", not an object
+PASS a bad readableStrategy size function should error the stream on enqueue even when transformer.transform() catches the exception 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsstrategiesanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/strategies.any.worker-expected.txt      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,14 +1,12 @@
</span><span class="cx"> 
</span><del>-FAIL writableStrategy highWaterMark should work Can't find variable: TransformStream
-FAIL readableStrategy highWaterMark should work Can't find variable: TransformStream
-FAIL writable should have the correct size() function Can't find variable: TransformStream
-FAIL default writable strategy should be equivalent to { highWaterMark: 1 } Can't find variable: TransformStream
-FAIL default readable strategy should be equivalent to { highWaterMark: 0 } Can't find variable: TransformStream
-FAIL a RangeError should be thrown for an invalid highWaterMark assert_throws_js: should throw RangeError for negative writableHighWaterMark function "() => new TransformStream(undefined, { highWaterMark: -1 })" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected instance of function "function RangeError() {
-    [native code]
-}" ("RangeError")
-FAIL writableStrategy highWaterMark should be converted to a number Can't find variable: TransformStream
-FAIL readableStrategy highWaterMark should be converted to a number Can't find variable: TransformStream
-FAIL a bad readableStrategy size function should cause writer.write() to reject on an identity transform Can't find variable: TransformStream
-FAIL a bad readableStrategy size function should error the stream on enqueue even when transformer.transform() catches the exception Can't find variable: TransformStream
</del><ins>+PASS writableStrategy highWaterMark should work 
+PASS readableStrategy highWaterMark should work 
+PASS writable should have the correct size() function 
+PASS default writable strategy should be equivalent to { highWaterMark: 1 } 
+FAIL default readable strategy should be equivalent to { highWaterMark: 0 } assert_equals: desiredSize should be 0 expected 0 but got 1
+PASS a RangeError should be thrown for an invalid highWaterMark 
+PASS writableStrategy highWaterMark should be converted to a number 
+PASS readableStrategy highWaterMark should be converted to a number 
+FAIL a bad readableStrategy size function should cause writer.write() to reject on an identity transform promise_rejects_js: write should reject function "function () { throw e }" threw undefined with type "undefined", not an object
+PASS a bad readableStrategy size function should error the stream on enqueue even when transformer.transform() catches the exception 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsterminateanyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any-expected.txt      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,8 +1,9 @@
</span><ins>+CONSOLE MESSAGE: Unhandled Promise Rejection: undefined
</ins><span class="cx"> 
</span><del>-FAIL controller.terminate() should error pipeTo() Can't find variable: TransformStream
-FAIL controller.terminate() should prevent remaining chunks from being processed Can't find variable: TransformStream
-FAIL controller.enqueue() should throw after controller.terminate() Can't find variable: TransformStream
-FAIL controller.error() after controller.terminate() with queued chunk should error the readable Can't find variable: TransformStream
-FAIL controller.error() after controller.terminate() without queued chunk should do nothing Can't find variable: TransformStream
-FAIL controller.terminate() inside flush() should not prevent writer.close() from succeeding Can't find variable: TransformStream
</del><ins>+FAIL controller.terminate() should error pipeTo() assert_array_equals: transform() should have seen no chunks lengths differ, expected array [] length 0, got ["transform", 0] length 2
+PASS controller.terminate() should prevent remaining chunks from being processed 
+PASS controller.enqueue() should throw after controller.terminate() 
+PASS controller.error() after controller.terminate() with queued chunk should error the readable 
+PASS controller.error() after controller.terminate() without queued chunk should do nothing 
+PASS controller.terminate() inside flush() should not prevent writer.close() from succeeding 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamstransformstreamsterminateanyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.worker-expected.txt       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><del>-FAIL controller.terminate() should error pipeTo() Can't find variable: TransformStream
-FAIL controller.terminate() should prevent remaining chunks from being processed Can't find variable: TransformStream
-FAIL controller.enqueue() should throw after controller.terminate() Can't find variable: TransformStream
-FAIL controller.error() after controller.terminate() with queued chunk should error the readable Can't find variable: TransformStream
-FAIL controller.error() after controller.terminate() without queued chunk should do nothing Can't find variable: TransformStream
-FAIL controller.terminate() inside flush() should not prevent writer.close() from succeeding Can't find variable: TransformStream
</del><ins>+FAIL controller.terminate() should error pipeTo() assert_array_equals: transform() should have seen no chunks lengths differ, expected array [] length 0, got ["transform", 0] length 2
+PASS controller.terminate() should prevent remaining chunks from being processed 
+PASS controller.enqueue() should throw after controller.terminate() 
+PASS controller.error() after controller.terminate() with queued chunk should error the readable 
+PASS controller.error() after controller.terminate() without queued chunk should do nothing 
+PASS controller.terminate() inside flush() should not prevent writer.close() from succeeding 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsstreamsreferenceimplementationtransformstreamerrorsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream errors thrown in transform put the writable and readable in an errored state Can't find variable: TransformStream
-FAIL TransformStream errors thrown in flush put the writable and readable in an errored state Can't find variable: TransformStream
</del><ins>+FAIL TransformStream errors thrown in transform put the writable and readable in an errored state assert_equals: writable starts in writable expected (string) "writable" but got (undefined) undefined
+FAIL TransformStream errors thrown in flush put the writable and readable in an errored state undefined is not an object (evaluating 'ts.writable.closed.then')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsstreamsreferenceimplementationtransformstreamexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/streams/reference-implementation/transform-stream-expected.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/streams/reference-implementation/transform-stream-expected.txt 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/LayoutTests/streams/reference-implementation/transform-stream-expected.txt    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,20 +1,20 @@
</span><span class="cx"> 
</span><del>-FAIL TransformStream can be constructed with a transform function Can't find variable: TransformStream
-FAIL TransformStream cannot be constructed with no transform function assert_throws: TransformStream cannot be constructed with no arguments function "function () { new TransformStream(); }" threw object "ReferenceError: Can't find variable: TransformStream" ("ReferenceError") expected object "TypeError" ("TypeError")
-FAIL TransformStream instances must have writable and readable properties of the correct types Can't find variable: TransformStream
-FAIL TransformStream writable starts in the writable state Can't find variable: TransformStream
-FAIL Pass-through sync TransformStream: can read from readable what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler sync TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL Uppercaser async TransformStream: can read from readable transformed version of what is put into writable Can't find variable: TransformStream
-FAIL Uppercaser-doubler async TransformStream: can read both chunks put into the readable Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable (when there are no queued writes) Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable waits for transforms to finish before closing both Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after sync enqueues and async done Can't find variable: TransformStream
-FAIL TransformStream: by default, closing the writable closes the readable after async enqueues and async done Can't find variable: TransformStream
-FAIL TransformStream flush is called immediately when the writable is closed, if no writes are queued Can't find variable: TransformStream
-FAIL TransformStream flush is called after all queued writes finish, once the writable is closed Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable Can't find variable: TransformStream
-FAIL TransformStream flush gets a chance to enqueue more into the readable, and can then async close Can't find variable: TransformStream
-FAIL Transform stream should call transformer methods as methods Can't find variable: TransformStream
</del><ins>+PASS TransformStream can be constructed with a transform function 
+FAIL TransformStream cannot be constructed with no transform function assert_throws: TransformStream cannot be constructed with no arguments function "function () { new TransformStream(); }" did not throw
+FAIL TransformStream instances must have writable and readable properties of the correct types assert_true: it has a writable property expected true got false
+FAIL TransformStream writable starts in the writable state assert_equals: writable starts writable expected (string) "writable" but got (undefined) undefined
+FAIL Pass-through sync TransformStream: can read from readable what is put into writable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL Uppercaser sync TransformStream: can read from readable transformed version of what is put into writable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL Uppercaser-doubler sync TransformStream: can read both chunks put into the readable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL Uppercaser async TransformStream: can read from readable transformed version of what is put into writable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL Uppercaser-doubler async TransformStream: can read both chunks put into the readable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL TransformStream: by default, closing the writable closes the readable (when there are no queued writes) assert_equals: writable is closing expected (string) "closing" but got (undefined) undefined
+FAIL TransformStream: by default, closing the writable waits for transforms to finish before closing both ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL TransformStream: by default, closing the writable closes the readable after sync enqueues and async done ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL TransformStream: by default, closing the writable closes the readable after async enqueues and async done ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+PASS TransformStream flush is called immediately when the writable is closed, if no writes are queued 
+FAIL TransformStream flush is called after all queued writes finish, once the writable is closed ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL TransformStream flush gets a chance to enqueue more into the readable ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL TransformStream flush gets a chance to enqueue more into the readable, and can then async close ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
+FAIL Transform stream should call transformer methods as methods ts.writable.write is not a function. (In 'ts.writable.write('a')', 'ts.writable.write' is undefined)
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt      2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/CMakeLists.txt 2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -443,6 +443,8 @@
</span><span class="cx">     Modules/streams/ReadableStreamDefaultReader.idl
</span><span class="cx">     Modules/streams/ReadableStreamSink.idl
</span><span class="cx">     Modules/streams/ReadableStreamSource.idl
</span><ins>+    Modules/streams/TransformStream.idl
+    Modules/streams/TransformStreamDefaultController.idl
</ins><span class="cx">     Modules/streams/WritableStream.idl
</span><span class="cx">     Modules/streams/WritableStreamDefaultController.idl
</span><span class="cx">     Modules/streams/WritableStreamDefaultWriter.idl
</span><span class="lines">@@ -1943,6 +1945,9 @@
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/ReadableStreamInternals.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/ReadableStreamDefaultReader.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/StreamInternals.js
</span><ins>+    ${WEBCORE_DIR}/Modules/streams/TransformStream.js
+    ${WEBCORE_DIR}/Modules/streams/TransformStreamDefaultController.js
+    ${WEBCORE_DIR}/Modules/streams/TransformStreamInternals.js
</ins><span class="cx">     ${WEBCORE_DIR}/Modules/streams/WritableStream.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/WritableStreamDefaultController.js
</span><span class="cx">     ${WEBCORE_DIR}/Modules/streams/WritableStreamDefaultWriter.js
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/ChangeLog      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        Add initial implementation as JS built-ins as per spec.
+        Covered by rebased tests.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Headers.cmake:
+        * Modules/streams/ReadableStreamInternals.js:
+        (readableStreamDefaultControllerShouldCallPull):
+        (readableStreamDefaultControllerCallPullIfNeeded):
+        * Modules/streams/TransformStream.idl: Added.
+        * Modules/streams/TransformStream.js: Added.
+        (initializeTransformStream):
+        (getter.readable):
+        (writable):
+        * Modules/streams/TransformStreamDefaultController.idl: Added.
+        * Modules/streams/TransformStreamDefaultController.js: Added.
+        (initializeTransformStreamDefaultController):
+        (getter.desiredSize):
+        (enqueue):
+        (error):
+        (terminate):
+        * Modules/streams/TransformStreamInternals.js: Added.
+        (isTransformStream):
+        (isTransformStreamDefaultController):
+        (initializeTransformStream):
+        (transformStreamError):
+        (transformStreamErrorWritableAndUnblockWrite):
+        (transformStreamSetBackpressure):
+        (setUpTransformStreamDefaultController):
+        (setUpTransformStreamDefaultControllerFromTransformer):
+        (transformStreamDefaultControllerClearAlgorithms):
+        (transformStreamDefaultControllerEnqueue):
+        (transformStreamDefaultControllerError):
+        (transformStreamDefaultControllerPerformTransform):
+        (transformStreamDefaultSinkWriteAlgorithm):
+        (transformStreamDefaultSinkAbortAlgorithm):
+        (transformStreamDefaultSinkCloseAlgorithm):
+        (transformStreamDefaultSourcePullAlgorithm):
+        * Modules/streams/WritableStream.js:
+        (initializeWritableStream):
+        * Modules/streams/WritableStreamInternals.js:
+        (createWritableStream):
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/WebCoreBuiltinNames.h:
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::setTransformStreamAPIEnabled):
+        (WebCore::RuntimeEnabledFeatures::transformStreamAPIEnabled const):
+
</ins><span class="cx"> 2020-08-27  Carlos Garcia Campos  <cgarcia@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         [GTK] Include the run loop source name in frame rendering timeline
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesinputxcfilelist"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources-input.xcfilelist     2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist        2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -291,6 +291,11 @@
</span><span class="cx"> $(PROJECT_DIR)/Modules/streams/ReadableStreamSink.idl
</span><span class="cx"> $(PROJECT_DIR)/Modules/streams/ReadableStreamSource.idl
</span><span class="cx"> $(PROJECT_DIR)/Modules/streams/StreamInternals.js
</span><ins>+$(PROJECT_DIR)/Modules/streams/TransformStream.idl
+$(PROJECT_DIR)/Modules/streams/TransformStream.js
+$(PROJECT_DIR)/Modules/streams/TransformStreamDefaultController.idl
+$(PROJECT_DIR)/Modules/streams/TransformStreamDefaultController.js
+$(PROJECT_DIR)/Modules/streams/TransformStreamInternals.js
</ins><span class="cx"> $(PROJECT_DIR)/Modules/streams/WritableStream.idl
</span><span class="cx"> $(PROJECT_DIR)/Modules/streams/WritableStream.js
</span><span class="cx"> $(PROJECT_DIR)/Modules/streams/WritableStreamDefaultController.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesoutputxcfilelist"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources-output.xcfilelist    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1964,6 +1964,10 @@
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTrackEvent.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransferFunction.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransferFunction.h
</span><ins>+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransformStream.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransformStream.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransformStreamDefaultController.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransformStreamDefaultController.h
</ins><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransitionEvent.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTransitionEvent.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSTreeWalker.cpp
</span><span class="lines">@@ -2363,6 +2367,9 @@
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/Touch.idl
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/TouchEvent.idl
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/TouchList.idl
</span><ins>+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/TransformStreamBuiltins.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/TransformStreamDefaultControllerBuiltins.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/TransformStreamInternalsBuiltins.h
</ins><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/UserAgentScripts.h
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/UserAgentScriptsData.cpp
</span><span class="cx"> $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/UserAgentStyleSheets.h
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/DerivedSources.make    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -376,6 +376,8 @@
</span><span class="cx">     $(WebCore)/Modules/streams/ReadableStreamDefaultReader.idl \
</span><span class="cx">     $(WebCore)/Modules/streams/ReadableStreamSink.idl \
</span><span class="cx">     $(WebCore)/Modules/streams/ReadableStreamSource.idl \
</span><ins>+    $(WebCore)/Modules/streams/TransformStream.idl \
+    $(WebCore)/Modules/streams/TransformStreamDefaultController.idl \
</ins><span class="cx">     $(WebCore)/Modules/streams/WritableStream.idl \
</span><span class="cx">     $(WebCore)/Modules/streams/WritableStreamDefaultController.idl \
</span><span class="cx">     $(WebCore)/Modules/streams/WritableStreamDefaultWriter.idl \
</span><span class="lines">@@ -1771,6 +1773,9 @@
</span><span class="cx">     $(WebCore)/Modules/streams/ReadableStreamBYOBReader.js \
</span><span class="cx">     $(WebCore)/Modules/streams/ReadableStreamDefaultReader.js \
</span><span class="cx">     $(WebCore)/Modules/streams/StreamInternals.js \
</span><ins>+    $(WebCore)/Modules/streams/TransformStream.js \
+    $(WebCore)/Modules/streams/TransformStreamDefaultController.js \
+    $(WebCore)/Modules/streams/TransformStreamInternals.js \
</ins><span class="cx">     $(WebCore)/Modules/streams/WritableStream.js \
</span><span class="cx">     $(WebCore)/Modules/streams/WritableStreamDefaultController.js \
</span><span class="cx">     $(WebCore)/Modules/streams/WritableStreamDefaultWriter.js \
</span></span></pre></div>
<a id="trunkSourceWebCoreHeaderscmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Headers.cmake (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Headers.cmake       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Headers.cmake  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1603,6 +1603,7 @@
</span><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/ReadableStreamInternalsBuiltins.h
</span><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/Settings.h
</span><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/StreamInternalsBuiltins.h
</span><ins>+    ${WebCore_DERIVED_SOURCES_DIR}/TransformStreamInternalsBuiltins.h
</ins><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/WebCoreJSBuiltinInternals.h
</span><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/WebKitFontFamilyNames.h
</span><span class="cx">     ${WebCore_DERIVED_SOURCES_DIR}/WritableStreamInternalsBuiltins.h
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.js (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStream.js   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.js      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -49,7 +49,9 @@
</span><span class="cx">     // FIXME: We should introduce https://streams.spec.whatwg.org/#create-readable-stream.
</span><span class="cx">     // For now, we emulate this with underlyingSource with private properties.
</span><span class="cx">     if (@getByIdDirectPrivate(underlyingSource, "pull") !== @undefined) {
</span><del>-        @setupReadableStreamDefaultController(this, underlyingSource, @undefined, 1, @getByIdDirectPrivate(underlyingSource, "start"), @getByIdDirectPrivate(underlyingSource, "pull"), @getByIdDirectPrivate(underlyingSource, "cancel"));
</del><ins>+        const size = @getByIdDirectPrivate(strategy, "size");
+        const highWaterMark = @getByIdDirectPrivate(strategy, "highWaterMark");
+        @setupReadableStreamDefaultController(this, underlyingSource, size, highWaterMark ? highWaterMark : 1, @getByIdDirectPrivate(underlyingSource, "start"), @getByIdDirectPrivate(underlyingSource, "pull"), @getByIdDirectPrivate(underlyingSource, "cancel"));
</ins><span class="cx">         return this;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamInternalsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -571,10 +571,26 @@
</span><span class="cx">     @markPromiseAsHandled(promise);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function readableStreamDefaultControllerShouldCallPull(controller)
+{
+    const stream = @getByIdDirectPrivate(controller, "controlledReadableStream");
+
+    if (!@readableStreamDefaultControllerCanCloseOrEnqueue(controller))
+        return false;
+    if (!@getByIdDirectPrivate(controller, "started"))
+        return false;
+    if ((!@isReadableStreamLocked(stream) || !@getByIdDirectPrivate(@getByIdDirectPrivate(stream, "reader"), "readRequests").length) && @readableStreamDefaultControllerGetDesiredSize(controller) <= 0)
+        return false;
+    const desiredSize = @readableStreamDefaultControllerGetDesiredSize(controller);
+    @assert(desiredSize !== null);
+    return desiredSize > 0;
+}
+
</ins><span class="cx"> function readableStreamDefaultControllerCallPullIfNeeded(controller)
</span><span class="cx"> {
</span><span class="cx">     "use strict";
</span><span class="cx"> 
</span><ins>+    // FIXME: use @readableStreamDefaultControllerShouldCallPull
</ins><span class="cx">     const stream = @getByIdDirectPrivate(controller, "controlledReadableStream");
</span><span class="cx"> 
</span><span class="cx">     if (!@readableStreamDefaultControllerCanCloseOrEnqueue(controller))
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsTransformStreamidl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/streams/TransformStream.idl (0 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/TransformStream.idl                         (rev 0)
+++ trunk/Source/WebCore/Modules/streams/TransformStream.idl    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    EnabledAtRuntime=TransformStreamAPI,
+    Exposed=(Window,Worker),
+    JSBuiltin,
+] interface TransformStream {
+    constructor(optional object transformer, optional QueuingStrategy writableStrategy, optional QueuingStrategy readableStrategy);
+    readonly attribute ReadableStream readable;
+    readonly attribute WritableStream writable;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsTransformStreamjs"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/streams/TransformStream.js (0 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/TransformStream.js                          (rev 0)
+++ trunk/Source/WebCore/Modules/streams/TransformStream.js     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -0,0 +1,110 @@
</span><ins>+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function initializeTransformStream()
+{
+    "use strict";
+    let transformer = arguments[0];
+    let writableStrategy = arguments[1];
+    let readableStrategy = arguments[2];
+
+    if (transformer === @undefined)
+        transformer = null;
+
+    if (readableStrategy === @undefined)
+        readableStrategy = { };
+
+    if (writableStrategy === @undefined)
+        writableStrategy = { };
+
+    let transformerDict = { };
+    if (transformer !== null) {
+        if ("start" in transformer) {
+            transformerDict["start"] = transformer["start"];
+            if (typeof transformerDict["start"] !== "function")
+                @throwTypeError("transformer.start should be a function");
+        }
+        if ("transform" in transformer) {
+            transformerDict["transform"] = transformer["transform"];
+            if (typeof transformerDict["transform"] !== "function")
+                @throwTypeError("transformer.transform should be a function");
+        }
+        if ("flush" in transformer) {
+            transformerDict["flush"] = transformer["flush"];
+            if (typeof transformerDict["flush"] !== "function")
+                @throwTypeError("transformer.flush should be a function");
+        }
+
+        if ("readableType" in transformer)
+            @throwRangeError("TransformStream transformer has a readableType");
+        if ("writableType" in transformer)
+            @throwRangeError("TransformStream transformer has a writableType");
+    }
+
+    const readableHighWaterMark = @extractHighWaterMark(readableStrategy, 0);
+    const readableSizeAlgorithm = @extractSizeAlgorithm(readableStrategy);
+
+    const writableHighWaterMark = @extractHighWaterMark(writableStrategy, 1);
+    const writableSizeAlgorithm = @extractSizeAlgorithm(writableStrategy);
+
+    const startPromiseCapability = @newPromiseCapability(@Promise);
+    @initializeTransformStream(this, startPromiseCapability.@promise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
+    @setUpTransformStreamDefaultControllerFromTransformer(this, transformer, transformerDict);
+
+    if ("start" in transformerDict) {
+        const controller = @getByIdDirectPrivate(this, "controller");
+        const startAlgorithm = () => @promiseInvokeOrNoopMethodNoCatch(transformer, transformerDict["start"], [controller]);
+        startAlgorithm().@then(() => {
+            // FIXME: We probably need to resolve start promise with the result of the start algorithm.
+            startPromiseCapability.@resolve.@call();
+        }, (error) => {
+            startPromiseCapability.@reject.@call(@undefined, error);
+        });
+    } else
+        startPromiseCapability.@resolve.@call();
+
+    return this;
+}
+
+@getter
+function readable()
+{
+    "use strict";
+
+    if (!@isTransformStream(this))
+        throw @makeThisTypeError("TransformStream", "readable");
+
+    return @getByIdDirectPrivate(this, "readable");
+}
+
+function writable()
+{
+    "use strict";
+
+    if (!@isTransformStream(this))
+        throw @makeThisTypeError("TransformStream", "writable");
+
+    return @getByIdDirectPrivate(this, "writable");
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsTransformStreamDefaultControlleridl"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.idl (0 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.idl                                (rev 0)
+++ trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.idl   2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    EnabledAtRuntime=TransformStreamAPI,
+    Exposed=(Window,Worker),
+    JSBuiltin,
+    PrivateIdentifier,
+    PublicIdentifier
+] interface TransformStreamDefaultController {
+    readonly attribute unrestricted double? desiredSize;
+
+    void enqueue(optional any chunk);
+    void error(optional any reason);
+    void terminate();
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsTransformStreamDefaultControllerjs"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.js (0 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.js                         (rev 0)
+++ trunk/Source/WebCore/Modules/streams/TransformStreamDefaultController.js    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function initializeTransformStreamDefaultController()
+{
+    "use strict";
+
+    return this;
+}
+
+@getter
+function desiredSize()
+{
+    "use strict";
+
+    if (!@isTransformStreamDefaultController(this))
+        throw @makeThisTypeError("TransformStreamDefaultController", "enqueue");
+
+    const stream = @getByIdDirectPrivate(this, "stream");
+    const readable = @getByIdDirectPrivate(stream, "readable");
+    const readableController = @getByIdDirectPrivate(readable, "readableStreamController");
+
+    return @readableStreamDefaultControllerGetDesiredSize(readableController);
+}
+
+function enqueue(chunk)
+{
+    "use strict";
+
+    if (!@isTransformStreamDefaultController(this))
+        throw @makeThisTypeError("TransformStreamDefaultController", "enqueue");
+
+    @transformStreamDefaultControllerEnqueue(this, chunk);
+}
+
+function error(e)
+{
+    "use strict";
+
+    if (!@isTransformStreamDefaultController(this))
+        throw @makeThisTypeError("TransformStreamDefaultController", "error");
+
+    @transformStreamDefaultControllerError(this, e);
+}
+
+function terminate()
+{
+    "use strict";
+
+    if (!@isTransformStreamDefaultController(this))
+        throw @makeThisTypeError("TransformStreamDefaultController", "terminate");
+
+    @transformStreamDefaultControllerTerminate(this);
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsTransformStreamInternalsjs"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/Modules/streams/TransformStreamInternals.js (0 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/TransformStreamInternals.js                         (rev 0)
+++ trunk/Source/WebCore/Modules/streams/TransformStreamInternals.js    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -0,0 +1,310 @@
</span><ins>+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// @internal
+
+function isTransformStream(stream)
+{
+    "use strict";
+
+    return @isObject(stream) && !!@getByIdDirectPrivate(stream, "readable");
+}
+
+function isTransformStreamDefaultController(controller)
+{
+    "use strict";
+
+    return @isObject(controller) && !!@getByIdDirectPrivate(controller, "transformAlgorithm");
+}
+
+function initializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm)
+{
+    "use strict";
+
+    const startAlgorithm = () => { return startPromise; };
+    const writeAlgorithm = (chunk) => { return @transformStreamDefaultSinkWriteAlgorithm(stream, chunk); }
+    const abortAlgorithm = (reason) => { return @transformStreamDefaultSinkAbortAlgorithm(stream, reason); }
+    const closeAlgorithm = () => { return @transformStreamDefaultSinkCloseAlgorithm(stream); }
+    const writable = @createWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);
+
+    const pullAlgorithm = () => { return @transformStreamDefaultSourcePullAlgorithm(stream); };
+    const cancelAlgorithm = (reason) => {
+        @transformStreamErrorWritableAndUnblockWrite(stream, reason);
+        return @Promise.@resolve();
+    };
+    const underlyingSource = { };
+    @putByIdDirectPrivate(underlyingSource, "start", startAlgorithm);
+    @putByIdDirectPrivate(underlyingSource, "pull", pullAlgorithm);
+    @putByIdDirectPrivate(underlyingSource, "cancel", cancelAlgorithm);
+    const options = { };
+    @putByIdDirectPrivate(options, "size", readableSizeAlgorithm);
+    @putByIdDirectPrivate(options, "highWaterMark", readableHighWaterMark);
+    const readable = new @ReadableStream(underlyingSource, options);
+
+    @putByIdDirectPrivate(stream, "writable", writable);
+    @putByIdDirectPrivate(stream, "readable", readable);
+    @putByIdDirectPrivate(stream, "backpressure", @undefined);
+    @putByIdDirectPrivate(stream, "backpressureChangePromise", @undefined);
+
+    @transformStreamSetBackpressure(stream, true);
+    @putByIdDirectPrivate(stream, "controller", @undefined);
+}
+
+function transformStreamError(stream, e)
+{
+    "use strict";
+
+    const readable = @getByIdDirectPrivate(stream, "readable");
+    const readableController = @getByIdDirectPrivate(readable, "readableStreamController");
+    @readableStreamDefaultControllerError(readableController, e);
+
+    @transformStreamErrorWritableAndUnblockWrite(stream, e);
+}
+
+function transformStreamErrorWritableAndUnblockWrite(stream, e)
+{
+    "use strict";
+
+    @transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(stream, "controller"));
+
+    const writable = @getByIdDirectPrivate(stream, "writable");
+    @writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(writable, "controller"), e);
+
+    if (@getByIdDirectPrivate(stream, "backpressure"))
+        @transformStreamSetBackpressure(stream, false);
+}
+
+function transformStreamSetBackpressure(stream, backpressure)
+{
+    "use strict";
+
+    @assert(@getByIdDirectPrivate(stream, "backpressure") !== backpressure);
+
+    const backpressureChangePromise = @getByIdDirectPrivate(stream, "backpressureChangePromise");
+    if (backpressureChangePromise !== @undefined)
+        backpressureChangePromise.@resolve.@call();
+
+    @putByIdDirectPrivate(stream, "backpressureChangePromise", @newPromiseCapability(@Promise));
+    @putByIdDirectPrivate(stream, "backpressure", backpressure);
+}
+
+function setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm)
+{
+    "use strict";
+
+    @assert(@isTransformStream(stream));
+    @assert(@getByIdDirectPrivate(stream, "controller") === @undefined);
+
+    @putByIdDirectPrivate(controller, "stream", stream);
+    @putByIdDirectPrivate(stream, "controller", controller);
+    @putByIdDirectPrivate(controller, "transformAlgorithm", transformAlgorithm);
+    @putByIdDirectPrivate(controller, "flushAlgorithm", flushAlgorithm);
+}
+
+
+function setUpTransformStreamDefaultControllerFromTransformer(stream, transformer, transformerDict)
+{
+    "use strict";
+
+    const controller = new @TransformStreamDefaultController();
+    let transformAlgorithm = (chunk) => {
+        try {
+            @transformStreamDefaultControllerEnqueue(controller, chunk);
+        } catch (e) {
+            return @Promise.@reject(e);
+        }
+        return @Promise.@resolve();
+    };
+    let flushAlgorithm = () => { return @Promise.@resolve(); };
+
+    if ("transform" in transformerDict)
+        transformAlgorithm = (chunk) => {
+            return @promiseInvokeOrNoopMethod(transformer, transformerDict["transform"], [chunk, controller]);
+        };
+
+    if ("flush" in transformerDict) {
+        flushAlgorithm = () => {
+            return @promiseInvokeOrNoopMethod(transformer, transformerDict["flush"], [controller]);
+        };
+    }
+
+    @setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);
+}
+
+function transformStreamDefaultControllerClearAlgorithms(controller)
+{
+    "use strict";
+
+    // We set transformAlgorithm to true to allow GC but keep the isTransformStreamDefaultController check.
+    @putByIdDirectPrivate(controller, "transformAlgorithm", true);
+    @putByIdDirectPrivate(controller, "flushAlgorithm", @undefined);
+}
+
+function transformStreamDefaultControllerEnqueue(controller, chunk)
+{
+    "use strict";
+
+    const stream = @getByIdDirectPrivate(controller, "stream");
+    const readable = @getByIdDirectPrivate(stream, "readable");
+    const readableController = @getByIdDirectPrivate(readable, "readableStreamController");
+
+    @assert(readableController !== @undefined);
+    if (!@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
+        @throwTypeError("TransformStream.readable cannot close or enqueue");
+
+    try {
+        @readableStreamDefaultControllerEnqueue(readableController, chunk);
+    } catch (e) {
+        @transformStreamErrorWritableAndUnblockWrite(stream, e);
+        throw @getByIdDirectPrivate(readable, "storedError");
+    }
+
+    const backpressure = !@readableStreamDefaultControllerShouldCallPull(readableController);
+    if (backpressure !== @getByIdDirectPrivate(stream, "backpressure")) {
+        @assert(backpressure);
+        @transformStreamSetBackpressure(stream, true);
+    }
+}
+
+function transformStreamDefaultControllerError(controller, e)
+{
+    "use strict";
+
+    @transformStreamError(@getByIdDirectPrivate(controller, "stream"), e);
+}
+
+function transformStreamDefaultControllerPerformTransform(controller, chunk)
+{
+    "use strict";
+
+    const transformPromise = @getByIdDirectPrivate(controller, "transformAlgorithm").@call(@undefined, chunk);
+    return transformPromise.@then(() => {
+    }, (r) => {
+        @transformStreamError(@getByIdDirectPrivate(controller, "stream"), r);
+        throw r;
+    });
+}
+
+function transformStreamDefaultControllerTerminate(controller)
+{
+    "use strict";
+
+    const stream = @getByIdDirectPrivate(controller, "stream");
+    const readable = @getByIdDirectPrivate(stream, "readable");
+    const readableController = @getByIdDirectPrivate(readable, "readableStreamController");
+
+    // FIXME: Update readableStreamDefaultControllerClose to make this check.
+    if (@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
+        @readableStreamDefaultControllerClose(readableController);
+    const error = @makeTypeError("the stream has been terminated");
+    @transformStreamErrorWritableAndUnblockWrite(stream, error);
+}
+
+function transformStreamDefaultSinkWriteAlgorithm(stream, chunk)
+{
+    "use strict";
+
+    const writable = @getByIdDirectPrivate(stream, "writable");
+
+    @assert(@getByIdDirectPrivate(writable, "state") === "writable");
+
+    const controller = @getByIdDirectPrivate(stream, "controller");
+
+    if (@getByIdDirectPrivate(stream, "backpressure")) {
+        const promiseCapability = @newPromiseCapability(@Promise);
+
+        const backpressureChangePromise = @getByIdDirectPrivate(stream, "backpressureChangePromise");
+        @assert(backpressureChangePromise !== @undefined);
+        backpressureChangePromise.@promise.@then(() => {
+            const state = @getByIdDirectPrivate(writable, "state");
+            if (state === "erroring") {
+                promiseCapability.@reject(@undefined, @getByIdDirectPrivate(writable, "storedError"));
+                return;
+            }
+
+            @assert(state === "writable");
+            @transformStreamDefaultControllerPerformTransform(controller, chunk).@then(() => {
+                promiseCapability.@resolve();
+            }, (e) => {
+                promiseCapability.@reject(@undefined, e);
+            });
+        }, (e) => {
+            promiseCapability.@reject(@undefined, e);
+        });
+
+        return promiseCapability.@promise;
+    }
+    return @transformStreamDefaultControllerPerformTransform(controller, chunk);
+}
+
+function transformStreamDefaultSinkAbortAlgorithm(stream, reason)
+{
+    "use strict";
+
+    @transformStreamError(stream, reason);
+    return @Promise.@resolve();
+}
+
+function transformStreamDefaultSinkCloseAlgorithm(stream)
+{
+    "use strict";
+    const readable = @getByIdDirectPrivate(stream, "readable");
+    const controller = @getByIdDirectPrivate(stream, "controller");
+    const readableController = @getByIdDirectPrivate(readable, "readableStreamController");
+
+    const flushAlgorithm = @getByIdDirectPrivate(controller, "flushAlgorithm");
+    @assert(flushAlgorithm !== @undefined);
+    const flushPromise = @getByIdDirectPrivate(controller, "flushAlgorithm").@call();
+    @transformStreamDefaultControllerClearAlgorithms(controller);
+
+    const promiseCapability = @newPromiseCapability(@Promise);
+    flushPromise.@then(() => {
+        if (@getByIdDirectPrivate(readable, "state") === @streamErrored) {
+            promiseCapability.@reject(@getByIdDirectPrivate(readable, "storedError"));
+            return;
+        }
+
+        // FIXME: Update readableStreamDefaultControllerClose to make this check.
+        if (@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
+            @readableStreamDefaultControllerClose(readableController);
+        promiseCapability.@resolve();
+    }, (r) => {
+        @transformStreamError(@getByIdDirectPrivate(controller, "stream"), r);
+        promiseCapability.@reject(@getByIdDirectPrivate(readable, "storedError"));
+    });
+    return promiseCapability.@promise;
+}
+
+function transformStreamDefaultSourcePullAlgorithm(stream)
+{
+    "use strict";
+
+    @assert(@getByIdDirectPrivate(stream, "backpressure"));
+    @assert(@getByIdDirectPrivate(stream, "backpressureChangePromise") !== @undefined);
+
+    @transformStreamSetBackpressure(stream, false);
+
+    return @getByIdDirectPrivate(stream, "backpressureChangePromise").@promise;
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsWritableStreamjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/WritableStream.js (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/WritableStream.js   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Modules/streams/WritableStream.js      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -37,6 +37,16 @@
</span><span class="cx">     if (!@isObject(underlyingSink))
</span><span class="cx">         @throwTypeError("WritableStream constructor takes an object as first argument");
</span><span class="cx"> 
</span><ins>+    // CreateWriteStream code path.
+    if (@getByIdDirectPrivate(underlyingSink, "WritableStream")) {
+        @privateInitializeWritableStream(this, underlyingSink);
+
+        const controller = new @WritableStreamDefaultController();
+
+        @setUpWritableStreamDefaultController(this, controller, underlyingSink.startAlgorithm, underlyingSink.writeAlgorithm, underlyingSink.closeAlgorithm, underlyingSink.abortAlgorithm, strategy.highWaterMark, strategy.sizeAlgorithm);
+        return this;
+    }
+
</ins><span class="cx">     if ("type" in underlyingSink)
</span><span class="cx">         @throwRangeError("Invalid type is specified");
</span><span class="cx"> 
</span><span class="lines">@@ -65,21 +75,9 @@
</span><span class="cx">             @throwTypeError("underlyingSink.abort should be a function");
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // Initialize Writable Stream
-    @putByIdDirectPrivate(this, "state", "writable");
-    @putByIdDirectPrivate(this, "storedError", @undefined);
-    @putByIdDirectPrivate(this, "writer", @undefined);
-    @putByIdDirectPrivate(this, "controller", @undefined);
-    @putByIdDirectPrivate(this, "inFlightWriteRequest", @undefined);
-    @putByIdDirectPrivate(this, "closeRequest", @undefined);
-    @putByIdDirectPrivate(this, "inFlightCloseRequest", @undefined);
-    @putByIdDirectPrivate(this, "pendingAbortRequest", @undefined);
-    @putByIdDirectPrivate(this, "writeRequests", []);
-    @putByIdDirectPrivate(this, "backpressure", false);
-    @putByIdDirectPrivate(this, "underlyingSink", underlyingSink);
</del><ins>+    @privateInitializeWritableStream(this, underlyingSink);
+    @setUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, underlyingSinkDict, highWaterMark, sizeAlgorithm);
</ins><span class="cx"> 
</span><del>-    @setUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, underlyingSinkDict, highWaterMark, sizeAlgorithm)
-
</del><span class="cx">     return this;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsWritableStreamInternalsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Modules/streams/WritableStreamInternals.js     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -45,6 +45,33 @@
</span><span class="cx">     return new @WritableStreamDefaultWriter(stream);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function createWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm)
+{
+    if (arguments.length < 5)
+        writableHighWaterMark = 1;
+    if (arguments.length < 6)
+        writableSizeAlgorithm = () => { return 1; };
+
+    let underlyingSink = { startAlgorithm: startAlgorithm, writeAlgorithm: writeAlgorithm, closeAlgorithm: closeAlgorithm, abortAlgorithm: abortAlgorithm};
+    @putByIdDirectPrivate(underlyingSink, "WritableStream", true);
+    return new @WritableStream(underlyingSink, { sizeAlgorithm: writableSizeAlgorithm, highWaterMark: writableHighWaterMark });
+}
+
+function privateInitializeWritableStream(stream, underlyingSink)
+{
+    @putByIdDirectPrivate(stream, "state", "writable");
+    @putByIdDirectPrivate(stream, "storedError", @undefined);
+    @putByIdDirectPrivate(stream, "writer", @undefined);
+    @putByIdDirectPrivate(stream, "controller", @undefined);
+    @putByIdDirectPrivate(stream, "inFlightWriteRequest", @undefined);
+    @putByIdDirectPrivate(stream, "closeRequest", @undefined);
+    @putByIdDirectPrivate(stream, "inFlightCloseRequest", @undefined);
+    @putByIdDirectPrivate(stream, "pendingAbortRequest", @undefined);
+    @putByIdDirectPrivate(stream, "writeRequests", []);
+    @putByIdDirectPrivate(stream, "backpressure", false);
+    @putByIdDirectPrivate(stream, "underlyingSink", underlyingSink);
+}
+
</ins><span class="cx"> function isWritableStreamLocked(stream)
</span><span class="cx"> {
</span><span class="cx">     return @getByIdDirectPrivate(stream, "writer") !== @undefined;
</span></span></pre></div>
<a id="trunkSourceWebCoreSourcestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Sources.txt (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Sources.txt 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/Sources.txt    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -3499,6 +3499,8 @@
</span><span class="cx"> JSTimeRanges.cpp
</span><span class="cx"> JSTrackEvent.cpp
</span><span class="cx"> JSTransferFunction.cpp
</span><ins>+JSTransformStream.cpp
+JSTransformStreamDefaultController.cpp
</ins><span class="cx"> JSTransitionEvent.cpp
</span><span class="cx"> JSTreeWalker.cpp
</span><span class="cx"> JSTypedOMCSSImageValue.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1076,6 +1076,7 @@
</span><span class="cx">          416E0B3A209BC3CB004A95D9 /* FetchIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E0B37209BC3C2004A95D9 /* FetchIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          416E29A6102FA962007FC14E /* WorkerReportingProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E29A5102FA962007FC14E /* WorkerReportingProxy.h */; };
</span><span class="cx">          416E6FE81BBD12DF000A3F64 /* ReadableStreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+               416E6FE81BBD12DF000A3F74 /* TransformStreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764EA /* TransformStreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">           416E6FE81BBD12DF000A3F65 /* JSDOMBindingInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764DA /* JSDOMBindingInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          416E6FE81BBD12DF000A6033 /* StreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764C9 /* StreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          416E6FE81BBD12DF000A6043 /* ReadableByteStreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B73F64 /* ReadableByteStreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -7721,6 +7722,11 @@
</span><span class="cx">          41FB278F1F34C28200795487 /* WorkerGlobalScopeCaches.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerGlobalScopeCaches.cpp; sourceTree = "<group>"; };
</span><span class="cx">          41FB27991F34CE9C00795487 /* CacheQueryOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = CacheQueryOptions.idl; sourceTree = "<group>"; };
</span><span class="cx">          41FB279B1F34CEF000795487 /* CacheQueryOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CacheQueryOptions.h; sourceTree = "<group>"; };
</span><ins>+               41FCA5F724EAAF15005E1BA6 /* TransformStream.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = TransformStream.idl; sourceTree = "<group>"; };
+               41FCA5F924EAAF16005E1BA6 /* TransformStream.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = TransformStream.js; sourceTree = "<group>"; };
+               41FCA5FA24EAAF16005E1BA6 /* TransformStreamDefaultController.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = TransformStreamDefaultController.idl; sourceTree = "<group>"; };
+               41FCA5FB24EAAF16005E1BA6 /* TransformStreamDefaultController.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = TransformStreamDefaultController.js; sourceTree = "<group>"; };
+               41FCA5FC24EAB780005E1BA6 /* TransformStreamInternals.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = TransformStreamInternals.js; sourceTree = "<group>"; };
</ins><span class="cx">           41FCB755214865CF0038ADC6 /* RTCDegradationPreference.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCDegradationPreference.idl; sourceTree = "<group>"; };
</span><span class="cx">          41FCB757214865D10038ADC6 /* RTCDtxStatus.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCDtxStatus.idl; sourceTree = "<group>"; };
</span><span class="cx">          41FCB758214865D20038ADC6 /* RTCRtpRtxParameters.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCRtpRtxParameters.idl; sourceTree = "<group>"; };
</span><span class="lines">@@ -11559,6 +11565,7 @@
</span><span class="cx">          9B03D8061BB3110D00B764C9 /* StreamInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamInternalsBuiltins.h; path = DerivedSources/WebCore/StreamInternalsBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="cx">          9B03D8061BB3110D00B764D8 /* ReadableStreamBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ReadableStreamBuiltins.h; path = DerivedSources/WebCore/ReadableStreamBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="cx">          9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ReadableStreamInternalsBuiltins.h; path = DerivedSources/WebCore/ReadableStreamInternalsBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><ins>+               9B03D8061BB3110D00B764EA /* TransformStreamInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformStreamInternalsBuiltins.h; path = DerivedSources/WebCore/TransformStreamInternalsBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</ins><span class="cx">           9B03D8061BB3110D00B764DA /* JSDOMBindingInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSDOMBindingInternalsBuiltins.h; path = DerivedSources/WebCore/JSDOMBindingInternalsBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="cx">          9B03D8061BB3110D00B764E8 /* WritableStreamBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WritableStreamBuiltins.h; path = DerivedSources/WebCore/WritableStreamBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="cx">          9B03D8061BB3110D00B764E9 /* WritableStreamInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WritableStreamInternalsBuiltins.h; path = DerivedSources/WebCore/WritableStreamInternalsBuiltins.h; sourceTree = BUILT_PRODUCTS_DIR; };
</span><span class="lines">@@ -18938,6 +18945,11 @@
</span><span class="cx">                          418C395B1C8F0A610051C8A3 /* ReadableStreamSource.h */,
</span><span class="cx">                          418C395C1C8F0A610051C8A3 /* ReadableStreamSource.idl */,
</span><span class="cx">                          9908B0F11BCACF9100ED0F55 /* StreamInternals.js */,
</span><ins>+                               41FCA5F724EAAF15005E1BA6 /* TransformStream.idl */,
+                               41FCA5F924EAAF16005E1BA6 /* TransformStream.js */,
+                               41FCA5FA24EAAF16005E1BA6 /* TransformStreamDefaultController.idl */,
+                               41FCA5FB24EAAF16005E1BA6 /* TransformStreamDefaultController.js */,
+                               41FCA5FC24EAB780005E1BA6 /* TransformStreamInternals.js */,
</ins><span class="cx">                           41A023ED1A39DB7900F722DF /* WritableStream.idl */,
</span><span class="cx">                          9908B0EF1BCACF9100ED0F75 /* WritableStream.js */,
</span><span class="cx">                          4176673424DC08EB008BFE28 /* WritableStreamDefaultController.idl */,
</span><span class="lines">@@ -21049,6 +21061,7 @@
</span><span class="cx">                          B562DB5F17D3CD560010AF96 /* SVGElementTypeHelpers.h */,
</span><span class="cx">                          656581E809D1508D000E61D7 /* SVGNames.cpp */,
</span><span class="cx">                          656581E909D1508D000E61D7 /* SVGNames.h */,
</span><ins>+                               9B03D8061BB3110D00B764EA /* TransformStreamInternalsBuiltins.h */,
</ins><span class="cx">                           CDAB6D2F17C9259500C60B34 /* UserAgentScripts.h */,
</span><span class="cx">                          CDAB6D3017C9259500C60B34 /* UserAgentScriptsData.cpp */,
</span><span class="cx">                          656581AE09D14EE6000E61D7 /* UserAgentStyleSheets.h */,
</span><span class="lines">@@ -34049,6 +34062,7 @@
</span><span class="cx">                          49E911D00EF86D47009D0CAF /* TransformOperations.h in Headers */,
</span><span class="cx">                          5DB1BC6A10715A6400EFAA49 /* TransformSource.h in Headers */,
</span><span class="cx">                          4945BFD413CF809000CC3B38 /* TransformState.h in Headers */,
</span><ins>+                               416E6FE81BBD12DF000A3F74 /* TransformStreamInternalsBuiltins.h in Headers */,
</ins><span class="cx">                           E17B491616A9B094001C8839 /* TransitionEvent.h in Headers */,
</span><span class="cx">                          49E911D20EF86D47009D0CAF /* TranslateTransformOperation.h in Headers */,
</span><span class="cx">                          854FE7370A2297BE0058D7AD /* Traversal.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreBuiltinNamesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -237,6 +237,8 @@
</span><span class="cx">     macro(StylePropertyMapReadOnly) \
</span><span class="cx">     macro(StylePropertyMap) \
</span><span class="cx">     macro(TextTrackCue) \
</span><ins>+    macro(TransformStream) \
+    macro(TransformStreamDefaultController) \
</ins><span class="cx">     macro(UndoItem) \
</span><span class="cx">     macro(UndoManager) \
</span><span class="cx">     macro(VisualViewport) \
</span><span class="lines">@@ -285,6 +287,7 @@
</span><span class="cx">     macro(backingMap) \
</span><span class="cx">     macro(backingSet) \
</span><span class="cx">     macro(backpressure) \
</span><ins>+    macro(backpressureChangePromise) \
</ins><span class="cx">     macro(blur) \
</span><span class="cx">     macro(body) \
</span><span class="cx">     macro(byobRequest) \
</span><span class="lines">@@ -317,6 +320,7 @@
</span><span class="cx">     macro(fetchRequest) \
</span><span class="cx">     macro(fillFromJS) \
</span><span class="cx">     macro(finishConsumingStream) \
</span><ins>+    macro(flushAlgorithm) \
</ins><span class="cx">     macro(focus) \
</span><span class="cx">     macro(frames) \
</span><span class="cx">     macro(getTracks) \
</span><span class="lines">@@ -323,6 +327,7 @@
</span><span class="cx">     macro(getUserMedia) \
</span><span class="cx">     macro(gpu) \
</span><span class="cx">     macro(header) \
</span><ins>+    macro(highWaterMark) \
</ins><span class="cx">     macro(href) \
</span><span class="cx">     macro(inFlightCloseRequest) \
</span><span class="cx">     macro(inFlightWriteRequest) \
</span><span class="lines">@@ -369,6 +374,7 @@
</span><span class="cx">     macro(queuedCreateOffer) \
</span><span class="cx">     macro(queuedSetLocalDescription) \
</span><span class="cx">     macro(queuedSetRemoteDescription) \
</span><ins>+    macro(readable) \
</ins><span class="cx">     macro(readIntoRequests) \
</span><span class="cx">     macro(readRequests) \
</span><span class="cx">     macro(readableByteStreamAPIEnabled) \
</span><span class="lines">@@ -386,6 +392,7 @@
</span><span class="cx">     macro(setBodyFromInputRequest) \
</span><span class="cx">     macro(setStatus) \
</span><span class="cx">     macro(showModalDialog) \
</span><ins>+    macro(size) \
</ins><span class="cx">     macro(start) \
</span><span class="cx">     macro(startConsumingStream) \
</span><span class="cx">     macro(started) \
</span><span class="lines">@@ -406,6 +413,7 @@
</span><span class="cx">     macro(structuredCloneArrayBufferView) \
</span><span class="cx">     macro(timeline) \
</span><span class="cx">     macro(top) \
</span><ins>+    macro(transformAlgorithm) \
</ins><span class="cx">     macro(underlyingByteSource) \
</span><span class="cx">     macro(underlyingSink) \
</span><span class="cx">     macro(underlyingSource) \
</span><span class="lines">@@ -427,6 +435,7 @@
</span><span class="cx">     macro(webkitOscillatorNode) \
</span><span class="cx">     macro(whenSignalAborted) \
</span><span class="cx">     macro(window) \
</span><ins>+    macro(writable) \
</ins><span class="cx">     macro(writableStreamAPIEnabled) \
</span><span class="cx">     macro(writeAlgorithm) \
</span><span class="cx">     macro(writing) \
</span></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -292,6 +292,8 @@
</span><span class="cx">     bool readableByteStreamAPIEnabled() const { return m_isReadableByteStreamAPIEnabled; }
</span><span class="cx">     void setWritableStreamAPIEnabled(bool isEnabled) { m_isWritableStreamAPIEnabled = isEnabled; }
</span><span class="cx">     bool writableStreamAPIEnabled() const { return m_isWritableStreamAPIEnabled; }
</span><ins>+    void setTransformStreamAPIEnabled(bool isEnabled) { m_isTransformStreamAPIEnabled = isEnabled; }
+    bool transformStreamAPIEnabled() const { return m_isTransformStreamAPIEnabled; }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOWNLOAD_ATTRIBUTE)
</span><span class="cx">     void setDownloadAttributeEnabled(bool isEnabled) { m_isDownloadAttributeEnabled = isEnabled; }
</span><span class="lines">@@ -511,6 +513,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_isReadableByteStreamAPIEnabled { false };
</span><span class="cx">     bool m_isWritableStreamAPIEnabled { false };
</span><ins>+    bool m_isTransformStreamAPIEnabled { false };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL2)
</span><span class="cx">     bool m_isWebGL2Enabled { false };
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKit/ChangeLog       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        Add a runtime flag for TransformStream, off by default.
+
+        * Shared/WebPreferences.yaml:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
</ins><span class="cx"> 2020-08-26  Per Arne Vollan  <pvollan@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [macOS] Stop logging sandbox violations of com.apple.CoreDisplay.Notification
</span></span></pre></div>
<a id="trunkSourceWebKitSharedWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/WebPreferences.yaml   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -2169,6 +2169,14 @@
</span><span class="cx">   category: experimental
</span><span class="cx">   webcoreBinding: RuntimeEnabledFeatures
</span><span class="cx"> 
</span><ins>+TransformStreamAPIEnabled:
+  type: bool
+  defaultValue: false
+  humanReadableName: "TransformStream API"
+  humanReadableDescription: "Enable Transform Stream API"
+  category: experimental
+  webcoreBinding: RuntimeEnabledFeatures
+
</ins><span class="cx"> # Deprecated
</span><span class="cx"> 
</span><span class="cx"> ICECandidateFilteringEnabled:
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessInjectedBundleInjectedBundlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -200,6 +200,8 @@
</span><span class="cx">         RuntimeEnabledFeatures::sharedFeatures().setReadableByteStreamAPIEnabled(enabled);
</span><span class="cx">     if (preference == "WebKitWritableStreamAPIEnabled")
</span><span class="cx">         RuntimeEnabledFeatures::sharedFeatures().setWritableStreamAPIEnabled(enabled);
</span><ins>+    if (preference == "WebKitTransformStreamAPIEnabled")
+        RuntimeEnabledFeatures::sharedFeatures().setTransformStreamAPIEnabled(enabled);
</ins><span class="cx"> 
</span><span class="cx">     if (preference == "WebKitInteractiveFormValidationEnabled")
</span><span class="cx">         RuntimeEnabledFeatures::sharedFeatures().setInteractiveFormValidationEnabled(enabled);
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/ChangeLog  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences transformStreamAPIEnabled]):
+        (-[WebPreferences setTransformStreamAPIEnabled:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
</ins><span class="cx"> 2020-08-25  Ryosuke Niwa  <rniwa@webkit.org>
</span><span class="cx"> 
</span><span class="cx">         HashMap<Ref<T>>::take should return RefPtr<T>
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -188,6 +188,7 @@
</span><span class="cx"> #define WebKitFetchAPIEnabledPreferenceKey @"WebKitFetchAPIEnabled"
</span><span class="cx"> #define WebKitWritableStreamAPIEnabledPreferenceKey @"WebKitWritableStreamAPIEnabled"
</span><span class="cx"> #define WebKitReadableByteStreamAPIEnabledPreferenceKey @"WebKitReadableByteStreamAPIEnabled"
</span><ins>+#define WebKitTransformStreamAPIEnabledPreferenceKey @"WebKitTransformStreamAPIEnabled"
</ins><span class="cx"> #define WebKitDownloadAttributeEnabledPreferenceKey @"WebKitDownloadAttributeEnabled"
</span><span class="cx"> #define WebKitDirectoryUploadEnabledPreferenceKey @"WebKitDirectoryUploadEnabled"
</span><span class="cx"> #define WebKitVisualViewportAPIEnabledPreferenceKey @"WebKitVisualViewportAPIEnabled"
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm  2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm     2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -655,6 +655,7 @@
</span><span class="cx"> 
</span><span class="cx">         @NO, WebKitReadableByteStreamAPIEnabledPreferenceKey,
</span><span class="cx">         @NO, WebKitWritableStreamAPIEnabledPreferenceKey,
</span><ins>+        @NO, WebKitTransformStreamAPIEnabledPreferenceKey,
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DOWNLOAD_ATTRIBUTE)
</span><span class="cx">         @NO, WebKitDownloadAttributeEnabledPreferenceKey,
</span><span class="lines">@@ -3172,6 +3173,16 @@
</span><span class="cx">     [self _setBoolValue:flag forKey:WebKitWritableStreamAPIEnabledPreferenceKey];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (BOOL)transformStreamAPIEnabled
+{
+    return [self _boolValueForKey:WebKitTransformStreamAPIEnabledPreferenceKey];
+}
+
+- (void)setTransformStreamAPIEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitTransformStreamAPIEnabledPreferenceKey];
+}
+
</ins><span class="cx"> - (BOOL)downloadAttributeEnabled
</span><span class="cx"> {
</span><span class="cx">     return [self _boolValueForKey:WebKitDownloadAttributeEnabledPreferenceKey];
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -574,6 +574,9 @@
</span><span class="cx"> - (void)setWritableStreamAPIEnabled:(BOOL)flag;
</span><span class="cx"> - (BOOL)writableStreamAPIEnabled;
</span><span class="cx"> 
</span><ins>+- (void)setTransformStreamAPIEnabled:(BOOL)flag;
+- (BOOL)transformStreamAPIEnabled;
+
</ins><span class="cx"> - (void)setDownloadAttributeEnabled:(BOOL)flag;
</span><span class="cx"> - (BOOL)downloadAttributeEnabled;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -3343,6 +3343,7 @@
</span><span class="cx"> 
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setWritableStreamAPIEnabled([preferences writableStreamAPIEnabled]);
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setReadableByteStreamAPIEnabled([preferences readableByteStreamAPIEnabled]);
</span><ins>+    RuntimeEnabledFeatures::sharedFeatures().setTransformStreamAPIEnabled([preferences transformStreamAPIEnabled]);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL2)
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setWebGL2Enabled([preferences webGL2Enabled]);
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog    2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Tools/ChangeLog       2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2020-08-27  Youenn Fablet  <youenn@apple.com>
+
+        Add support for TransformStream
+        https://bugs.webkit.org/show_bug.cgi?id=215607
+
+        Reviewed by Alex Christensen.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (enableExperimentalFeatures):
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+        (WTR::InjectedBundle::beginTesting):
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::setWritableStreamAPIEnabled):
+        (WTR::TestRunner::setTransformStreamAPIEnabled):
+        * WebKitTestRunner/InjectedBundle/TestRunner.h:
+
</ins><span class="cx"> 2020-08-26  Jonathan Bedard  <jbedard@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [webkitcorepy] Move Timeout to webkitcorepy (Part 2)
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -823,6 +823,7 @@
</span><span class="cx">     [preferences setCacheAPIEnabled:NO];
</span><span class="cx">     [preferences setReadableByteStreamAPIEnabled:YES];
</span><span class="cx">     [preferences setWritableStreamAPIEnabled:YES];
</span><ins>+    [preferences setTransformStreamAPIEnabled:YES];
</ins><span class="cx">     preferences.encryptedMediaAPIEnabled = YES;
</span><span class="cx">     [preferences setAccessibilityObjectModelEnabled:YES];
</span><span class="cx">     [preferences setAriaReflectionEnabled:YES];
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp   2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp      2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -614,6 +614,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_testRunner->setWritableStreamAPIEnabled(true);
</span><span class="cx">     m_testRunner->setReadableByteStreamAPIEnabled(true);
</span><ins>+    m_testRunner->setTransformStreamAPIEnabled(true);
</ins><span class="cx"> 
</span><span class="cx">     m_testRunner->setEncryptedMediaAPIEnabled(true);
</span><span class="cx">     m_testRunner->setPictureInPictureAPIEnabled(true);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp       2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp  2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -472,6 +472,13 @@
</span><span class="cx">     WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void TestRunner::setTransformStreamAPIEnabled(bool enabled)
+{
+    WKRetainPtr<WKStringRef> key = adoptWK(WKStringCreateWithUTF8CString("WebKitTransformStreamAPIEnabled"));
+    auto& injectedBundle = InjectedBundle::singleton();
+    WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
+}
+
</ins><span class="cx"> void TestRunner::setReadableByteStreamAPIEnabled(bool enabled)
</span><span class="cx"> {
</span><span class="cx">     WKRetainPtr<WKStringRef> key = adoptWK(WKStringCreateWithUTF8CString("WebKitReadableByteStreamAPIEnabled"));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleTestRunnerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (266227 => 266228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h 2020-08-27 09:56:07 UTC (rev 266227)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h    2020-08-27 10:00:20 UTC (rev 266228)
</span><span class="lines">@@ -106,6 +106,7 @@
</span><span class="cx">     void setWebGL2Enabled(bool);
</span><span class="cx">     void setWritableStreamAPIEnabled(bool);
</span><span class="cx">     void setReadableByteStreamAPIEnabled(bool);
</span><ins>+    void setTransformStreamAPIEnabled(bool);
</ins><span class="cx"> 
</span><span class="cx">     void setAllowUniversalAccessFromFileURLs(bool);
</span><span class="cx">     void setAllowFileAccessFromFileURLs(bool);
</span></span></pre>
</div>
</div>

</body>
</html>