<!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>[194033] 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/194033">194033</a></dd>
<dt>Author</dt> <dd>youenn.fablet@crf.canon.fr</dd>
<dt>Date</dt> <dd>2015-12-14 07:57:48 -0800 (Mon, 14 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Streams API] Expose ReadableStream and relatives to Worker
https://bugs.webkit.org/show_bug.cgi?id=152066

LayoutTests/imported/w3c:

Reviewed by Darin Adler.

Rebasing all worker tests from FAIL to PASS.

* web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt:
* web-platform-tests/streams-api/count-queuing-strategy-expected.txt:
* web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt:
* web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt:
* web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt:
* web-platform-tests/streams-api/readable-streams/cancel-expected.txt:
* web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt:
* web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:
* web-platform-tests/streams-api/readable-streams/general-expected.txt:
* web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt:
* web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt:
* web-platform-tests/streams-api/readable-streams/tee-expected.txt:
* web-platform-tests/streams-api/readable-streams/templated-expected.txt:

Source/WebCore:

Reviewed by Darin Adler.

Moving the code that links internal functions to the GlobalObject in WebCoreJSBuiltinInternals.cpp.
This file should be generated by the builtin generator once refactoring is done.
This code is located in JSBuiltinFunctions::initialize.

Moving ReadableStream private constructors and constants code from JSDOMWindowBase to JSDOMGlobalObject.
Calling JSBuiltinInternalFunctions::initialize in JSDOMGlobalObject so that internals are also available in Worker.

Made ReadableStream and relatives exposed in Worker.

Rebased and fixed style by Xabier Rodriguez Calvar.

Covered by rebased tests.

* CMakeLists.txt:
* Modules/streams/ByteLengthQueuingStrategy.idl:
* Modules/streams/CountQueuingStrategy.idl:
* Modules/streams/ReadableStream.idl:
* Modules/streams/ReadableStreamController.idl:
* Modules/streams/ReadableStreamReader.idl:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):
(WebCore::JSDOMGlobalObject::visitChildren):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::finishCreation): Deleted.
(WebCore::JSDOMWindowBase::visitChildren): Deleted.
* bindings/js/JSDOMWindowBase.h:
* bindings/js/WebCoreJSBuiltinInternals.cpp: Added.
(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):
(WebCore::JSBuiltinInternalFunctions::visit):
(WebCore::JSBuiltinInternalFunctions::initialize):
* bindings/js/WebCoreJSBuiltinInternals.h:
* bindings/js/WebCoreJSBuiltins.h:

LayoutTests:

Reviewed by Darin Adler.

Adding ByteLengthQueuingStrategy, CountQueuingStrategy and ReadableStream as worker constructors.

* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-dedicated-worker-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="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapibytelengthqueuingstrategyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapicountqueuingstrategyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/count-queuing-strategy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbadstrategiesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbadunderlyingsourcesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbrandchecksexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamscancelexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/cancel-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamscountqueuingstrategyintegrationexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsgarbagecollectionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsgeneralexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/general-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamspipethroughexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsreadablestreamreaderexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsteeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/tee-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamstemplatedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/templated-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomglobalconstructorsattributesdedicatedworkerexpectedtxt">trunk/LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformefljsdomglobalconstructorsattributesdedicatedworkerexpectedtxt">trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-dedicated-worker-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="#trunkSourceWebCoreModulesstreamsByteLengthQueuingStrategyidl">trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsCountQueuingStrategyidl">trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamidl">trunk/Source/WebCore/Modules/streams/ReadableStream.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamControlleridl">trunk/Source/WebCore/Modules/streams/ReadableStreamController.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesstreamsReadableStreamReaderidl">trunk/Source/WebCore/Modules/streams/ReadableStreamReader.idl</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp">trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMGlobalObjecth">trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowBasecpp">trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowBaseh">trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalsh">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinsh">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalscpp">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/ChangeLog        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2015-12-14  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        [Streams API] Expose ReadableStream and relatives to Worker
+        https://bugs.webkit.org/show_bug.cgi?id=152066
+
+        Reviewed by Darin Adler.
+
+        Adding ByteLengthQueuingStrategy, CountQueuingStrategy and ReadableStream as worker constructors.
+
+        * js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
+        * platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
+
</ins><span class="cx"> 2015-12-14  Carlos Alberto Lopez Perez  &lt;clopez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Unreviewed gardening.
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2015-12-14  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        [Streams API] Expose ReadableStream and relatives to Worker
+        https://bugs.webkit.org/show_bug.cgi?id=152066
+
+        Reviewed by Darin Adler.
+
+        Rebasing all worker tests from FAIL to PASS.
+
+        * web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt:
+        * web-platform-tests/streams-api/count-queuing-strategy-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/cancel-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/general-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/tee-expected.txt:
+        * web-platform-tests/streams-api/readable-streams/templated-expected.txt:
+
</ins><span class="cx"> 2015-12-11  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reduce the number of events that can be created by Document.createEvent
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapibytelengthqueuingstrategyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -8,11 +8,11 @@
</span><span class="cx"> PASS ByteLengthQueuingStrategy's highWaterMark property can be set to anything 
</span><span class="cx"> FAIL Load byte-length-queuing-strategy.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Can construct a ByteLengthQueuingStrategy with a valid high water mark Can't find variable: ByteLengthQueuingStrategy
-FAIL Can construct a ByteLengthQueuingStrategy with any value as its high water mark Can't find variable: ByteLengthQueuingStrategy
-FAIL ByteLengthQueuingStrategy constructor behaves as expected with strange arguments assert_throws: construction fails with undefined function &quot;() =&gt; new ByteLengthQueuingStrategy()&quot; threw object &quot;ReferenceError: Can't find variable: ByteLengthQueuingStr...&quot; (&quot;ReferenceError&quot;) expected object &quot;[object Object]&quot; (&quot;TypeError&quot;)
-FAIL ByteLengthQueuingStrategy size behaves as expected with strange arguments assert_throws: size fails with undefined function &quot;() =&gt; ByteLengthQueuingStrategy.prototype.size()&quot; threw object &quot;ReferenceError: Can't find variable: ByteLengthQueuingStr...&quot; (&quot;ReferenceError&quot;) expected object &quot;[object Object]&quot; (&quot;TypeError&quot;)
-FAIL ByteLengthQueuingStrategy.prototype.size should work generically on its this and its arguments Can't find variable: ByteLengthQueuingStrategy
-FAIL ByteLengthQueuingStrategy instances have the correct properties Can't find variable: ByteLengthQueuingStrategy
-FAIL ByteLengthQueuingStrategy's highWaterMark property can be set to anything Can't find variable: ByteLengthQueuingStrategy
</del><ins>+PASS Can construct a ByteLengthQueuingStrategy with a valid high water mark 
+PASS Can construct a ByteLengthQueuingStrategy with any value as its high water mark 
+PASS ByteLengthQueuingStrategy constructor behaves as expected with strange arguments 
+PASS ByteLengthQueuingStrategy size behaves as expected with strange arguments 
+PASS ByteLengthQueuingStrategy.prototype.size should work generically on its this and its arguments 
+PASS ByteLengthQueuingStrategy instances have the correct properties 
+PASS ByteLengthQueuingStrategy's highWaterMark property can be set to anything 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapicountqueuingstrategyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/count-queuing-strategy-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/count-queuing-strategy-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/count-queuing-strategy-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -8,11 +8,11 @@
</span><span class="cx"> PASS CountQueuingStrategy's highWaterMark property can be set to anything 
</span><span class="cx"> FAIL Load count-queuing-strategy.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Can construct a CountQueuingStrategy with a valid high water mark Can't find variable: CountQueuingStrategy
-FAIL Can construct a CountQueuingStrategy with any value as its high water mark Can't find variable: CountQueuingStrategy
-FAIL CountQueuingStrategy constructor behaves as expected with strange arguments assert_throws: construction fails with undefined function &quot;() =&gt; new CountQueuingStrategy()&quot; threw object &quot;ReferenceError: Can't find variable: CountQueuingStrategy&quot; (&quot;ReferenceError&quot;) expected object &quot;[object Object]&quot; (&quot;TypeError&quot;)
-FAIL CountQueuingStrategy.prototype.size should work generically on its this and its arguments Can't find variable: CountQueuingStrategy
-FAIL CountQueuingStrategy size behaves as expected with strange arguments Can't find variable: CountQueuingStrategy
-FAIL CountQueuingStrategy instances have the correct properties Can't find variable: CountQueuingStrategy
-FAIL CountQueuingStrategy's highWaterMark property can be set to anything Can't find variable: CountQueuingStrategy
</del><ins>+PASS Can construct a CountQueuingStrategy with a valid high water mark 
+PASS Can construct a CountQueuingStrategy with any value as its high water mark 
+PASS CountQueuingStrategy constructor behaves as expected with strange arguments 
+PASS CountQueuingStrategy.prototype.size should work generically on its this and its arguments 
+PASS CountQueuingStrategy size behaves as expected with strange arguments 
+PASS CountQueuingStrategy instances have the correct properties 
+PASS CountQueuingStrategy's highWaterMark property can be set to anything 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbadstrategiesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -6,18 +6,9 @@
</span><span class="cx"> PASS Readable stream: invalid strategy.size return value 
</span><span class="cx"> FAIL Load bad-strategies.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Readable stream: throwing strategy.size getter assert_throws: construction should re-throw the error function &quot;() =&gt; {
-    new ReadableStream({}, {
-      get size() {
- ...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;Error: a unique string&quot; (&quot;Error&quot;)
-FAIL Readable stream: throwing strategy.size method Can't find variable: ReadableStream
-FAIL Readable stream: throwing strategy.highWaterMark getter assert_throws: construction should re-throw the error function &quot;() =&gt; {
-    new ReadableStream({}, {
-      size() {
-     ...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;Error: a unique string&quot; (&quot;Error&quot;)
-FAIL Readable stream: invalid strategy.highWaterMark assert_throws: construction should throw a RangeError for -1 function &quot;() =&gt; {
-      new ReadableStream({}, {
-        size() {
- ...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;RangeError&quot; (&quot;RangeError&quot;)
-FAIL Readable stream: invalid strategy.size return value Can't find variable: ReadableStream
</del><ins>+PASS Readable stream: throwing strategy.size getter 
+PASS Readable stream: throwing strategy.size method 
+PASS Readable stream: throwing strategy.highWaterMark getter 
+PASS Readable stream: invalid strategy.highWaterMark 
+PASS Readable stream: invalid strategy.size return value 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbadunderlyingsourcesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -22,31 +22,25 @@
</span><span class="cx"> PASS Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error 
</span><span class="cx"> FAIL Load bad-underlying-sources.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Underlying source start: throwing getter assert_throws: constructing the stream should re-throw the error function &quot;() =&gt; {
-    new ReadableStream({
-      get start() {
-    ...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;Error: a unique string&quot; (&quot;Error&quot;)
-FAIL Underlying source start: throwing method assert_throws: constructing the stream should re-throw the error function &quot;() =&gt; {
-    new ReadableStream({
-      start() {
-        ...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;Error: a unique string&quot; (&quot;Error&quot;)
-FAIL Underlying source: throwing pull getter (initial pull) Can't find variable: ReadableStream
-FAIL Underlying source: throwing pull method (initial pull) Can't find variable: ReadableStream
-FAIL Underlying source pull: throwing getter (second pull) Can't find variable: ReadableStream
-FAIL Underlying source pull: throwing method (second pull) Can't find variable: ReadableStream
-FAIL Underlying source cancel: throwing getter Can't find variable: ReadableStream
-FAIL Underlying source cancel: throwing method Can't find variable: ReadableStream
-FAIL Underlying source: calling enqueue on an empty canceled stream should not throw Can't find variable: ReadableStream
-FAIL Underlying source: calling enqueue on a non-empty canceled stream should not throw Can't find variable: ReadableStream
-FAIL Underlying source: calling enqueue on a closed stream should throw Can't find variable: ReadableStream
-FAIL Underlying source: calling enqueue on an errored stream should throw Can't find variable: ReadableStream
-FAIL Underlying source: calling close twice on an empty stream should throw the second time Can't find variable: ReadableStream
-FAIL Underlying source: calling close twice on a non-empty stream should throw the second time Can't find variable: ReadableStream
-FAIL Underlying source: calling close on an empty canceled stream should not throw Can't find variable: ReadableStream
-FAIL Underlying source: calling close on a non-empty canceled stream should not throw Can't find variable: ReadableStream
-FAIL Underlying source: calling close after error should throw Can't find variable: ReadableStream
-FAIL Underlying source: calling error twice should throw the second time Can't find variable: ReadableStream
-FAIL Underlying source: calling error after close should throw Can't find variable: ReadableStream
-FAIL Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error Can't find variable: ReadableStream
-FAIL Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error Can't find variable: ReadableStream
</del><ins>+PASS Underlying source start: throwing getter 
+PASS Underlying source start: throwing method 
+PASS Underlying source: throwing pull getter (initial pull) 
+PASS Underlying source: throwing pull method (initial pull) 
+PASS Underlying source pull: throwing getter (second pull) 
+PASS Underlying source pull: throwing method (second pull) 
+PASS Underlying source cancel: throwing getter 
+PASS Underlying source cancel: throwing method 
+PASS Underlying source: calling enqueue on an empty canceled stream should not throw 
+PASS Underlying source: calling enqueue on a non-empty canceled stream should not throw 
+PASS Underlying source: calling enqueue on a closed stream should throw 
+PASS Underlying source: calling enqueue on an errored stream should throw 
+PASS Underlying source: calling close twice on an empty stream should throw the second time 
+PASS Underlying source: calling close twice on a non-empty stream should throw the second time 
+PASS Underlying source: calling close on an empty canceled stream should not throw 
+PASS Underlying source: calling close on a non-empty canceled stream should not throw 
+PASS Underlying source: calling close after error should throw 
+PASS Underlying source: calling error twice should throw the second time 
+PASS Underlying source: calling error after close should throw 
+PASS Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error 
+PASS Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsbrandchecksexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -16,19 +16,19 @@
</span><span class="cx"> PASS ReadableStreamController.prototype.error enforces a brand check 
</span><span class="cx"> FAIL Load brand-checks.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Can get the ReadableStreamReader constructor indirectly Can't find variable: ReadableStream
-FAIL Can get the ReadableStreamController constructor indirectly Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.cancel enforces a brand check Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.getReader enforces a brand check Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.tee enforces a brand check Can't find variable: ReadableStream
</del><ins>+PASS Can get the ReadableStreamReader constructor indirectly 
+PASS Can get the ReadableStreamController constructor indirectly 
+PASS ReadableStream.prototype.cancel enforces a brand check 
+PASS ReadableStream.prototype.getReader enforces a brand check 
+PASS ReadableStream.prototype.tee enforces a brand check 
</ins><span class="cx"> PASS ReadableStreamReader enforces a brand check on its argument 
</span><del>-FAIL ReadableStreamReader.prototype.closed enforces a brand check undefined is not an object (evaluating 'ReadableStreamReader.prototype')
-FAIL ReadableStreamReader.prototype.cancel enforces a brand check undefined is not an object (evaluating 'ReadableStreamReader.prototype')
-FAIL ReadableStreamReader.prototype.read enforces a brand check undefined is not an object (evaluating 'ReadableStreamReader.prototype')
-FAIL ReadableStreamReader.prototype.releaseLock enforces a brand check undefined is not an object (evaluating 'ReadableStreamReader.prototype')
</del><ins>+PASS ReadableStreamReader.prototype.closed enforces a brand check 
+PASS ReadableStreamReader.prototype.cancel enforces a brand check 
+PASS ReadableStreamReader.prototype.read enforces a brand check 
+PASS ReadableStreamReader.prototype.releaseLock enforces a brand check 
</ins><span class="cx"> PASS ReadableStreamController enforces a brand check on its argument 
</span><del>-FAIL ReadableStreamController can't be given a fully-constructed ReadableStream assert_throws: Constructing a ReadableStreamController should throw function &quot;() =&gt; new ReadableStreamController(realReadableStream())&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
-FAIL ReadableStreamController.prototype.close enforces a brand check undefined is not an object (evaluating 'ReadableStreamController.prototype')
-FAIL ReadableStreamController.prototype.enqueue enforces a brand check undefined is not an object (evaluating 'ReadableStreamController.prototype')
-FAIL ReadableStreamController.prototype.error enforces a brand check undefined is not an object (evaluating 'ReadableStreamController.prototype')
</del><ins>+PASS ReadableStreamController can't be given a fully-constructed ReadableStream 
+PASS ReadableStreamController.prototype.close enforces a brand check 
+PASS ReadableStreamController.prototype.enqueue enforces a brand check 
+PASS ReadableStreamController.prototype.error enforces a brand check 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamscancelexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/cancel-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/cancel-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/cancel-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -12,13 +12,13 @@
</span><span class="cx"> FAIL Load cancel.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><span class="cx"> FAIL ReadableStream cancellation: integration test on an infinite stream derived from a random push source promise_test: Unhandled rejection with value: object &quot;Error: forced error&quot;
</span><del>-FAIL ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: should fulfill promise when cancel callback went fine Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: should reject promise when cancel callback raises an exception Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1) Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2) Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does Can't find variable: ReadableStream
-FAIL ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called Can't find variable: ReadableStream
</del><ins>+PASS ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source 
+PASS ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel 
+PASS ReadableStream cancellation: should fulfill promise when cancel callback went fine 
+PASS ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel 
+PASS ReadableStream cancellation: should reject promise when cancel callback raises an exception 
+PASS ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1) 
+PASS ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2) 
+PASS ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does 
+PASS ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamscountqueuingstrategyintegrationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -5,8 +5,8 @@
</span><span class="cx"> PASS Correctly governs a ReadableStreamController's desiredSize property (HWM = 4) 
</span><span class="cx"> FAIL Load count-queuing-strategy-integration.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Can construct a readable stream with a valid CountQueuingStrategy Can't find variable: ReadableStream
-FAIL Correctly governs a ReadableStreamController's desiredSize property (HWM = 0) Can't find variable: ReadableStream
-FAIL Correctly governs a ReadableStreamController's desiredSize property (HWM = 1) Can't find variable: ReadableStream
-FAIL Correctly governs a ReadableStreamController's desiredSize property (HWM = 4) Can't find variable: ReadableStream
</del><ins>+PASS Can construct a readable stream with a valid CountQueuingStrategy 
+PASS Correctly governs a ReadableStreamController's desiredSize property (HWM = 0) 
+PASS Correctly governs a ReadableStreamController's desiredSize property (HWM = 1) 
+PASS Correctly governs a ReadableStreamController's desiredSize property (HWM = 4) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsgarbagecollectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -5,8 +5,8 @@
</span><span class="cx"> PASS Garbage-collecting a ReadableStreamReader should not unlock its stream 
</span><span class="cx"> FAIL Load garbage-collection.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream Can't find variable: ReadableStream
-FAIL ReadableStream closed promise should fulfill even if the stream and reader JS references are lost Can't find variable: ReadableStream
-FAIL ReadableStream closed promise should reject even if stream and reader JS references are lost Can't find variable: ReadableStream
-FAIL Garbage-collecting a ReadableStreamReader should not unlock its stream Can't find variable: ReadableStream
</del><ins>+PASS ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream 
+PASS ReadableStream closed promise should fulfill even if the stream and reader JS references are lost 
+PASS ReadableStream closed promise should reject even if stream and reader JS references are lost 
+PASS Garbage-collecting a ReadableStreamReader should not unlock its stream 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsgeneralexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/general-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/general-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/general-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -34,39 +34,37 @@
</span><span class="cx"> PASS ReadableStream integration test: adapting an async pull source 
</span><span class="cx"> FAIL Load general.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL ReadableStream can be constructed with no errors Can't find variable: ReadableStream
-FAIL ReadableStream can't be constructed with garbage assert_throws: constructor should throw when the source is null function &quot;() =&gt; new ReadableStream(null)&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
-FAIL ReadableStream instances should have the correct list of properties Can't find variable: ReadableStream
-FAIL ReadableStream constructor should throw for non-function start arguments assert_throws: constructor should throw when start is not a function function &quot;() =&gt; {
-    new ReadableStream({ start: 'potato' });
-  }&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
-FAIL ReadableStream constructor can get initial garbage as cancel argument Can't find variable: ReadableStream
-FAIL ReadableStream constructor can get initial garbage as pull argument Can't find variable: ReadableStream
-FAIL ReadableStream start should be called with the proper parameters Can't find variable: ReadableStream
-FAIL ReadableStream start controller parameter should be extensible Can't find variable: ReadableStream
-FAIL ReadableStream should be able to call start method within prototype chain of its source Can't find variable: ReadableStream
-FAIL ReadableStream start should be able to return a promise Can't find variable: ReadableStream
-FAIL ReadableStream start should be able to return a promise and reject it Can't find variable: ReadableStream
-FAIL ReadableStream should be able to enqueue different objects. Can't find variable: ReadableStream
-FAIL ReadableStream: if pull rejects, it should error the stream Can't find variable: ReadableStream
-FAIL ReadableStream: should only call pull once upon starting the stream Can't find variable: ReadableStream
-FAIL ReadableStream: should call pull when trying to read from a started, empty stream Can't find variable: ReadableStream
-FAIL ReadableStream: should only call pull once on a non-empty stream read from before start fulfills Can't find variable: ReadableStream
-FAIL ReadableStream: should only call pull once on a non-empty stream read from after start fulfills Can't find variable: ReadableStream
-FAIL ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining Can't find variable: ReadableStream
-FAIL ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining Can't find variable: ReadableStream
-FAIL ReadableStream: should not call pull until the previous pull call's promise fulfills Can't find variable: ReadableStream
-FAIL ReadableStream: should pull after start, and after every read Can't find variable: ReadableStream
-FAIL ReadableStream: should not call pull after start if the stream is now closed Can't find variable: ReadableStream
-FAIL ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows Can't find variable: ReadableStream
-FAIL ReadableStream pull should be able to close a stream. Can't find variable: ReadableStream
-FAIL ReadableStream: enqueue should throw when the stream is readable but draining Can't find variable: ReadableStream
-FAIL ReadableStream: enqueue should throw when the stream is closed Can't find variable: ReadableStream
-FAIL ReadableStream: enqueue should throw the stored error when the stream is errored Can't find variable: ReadableStream
-FAIL ReadableStream: should call underlying source methods as methods Can't find variable: ReadableStream
-FAIL ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue Can't find variable: ReadableStream
-FAIL ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately Can't find variable: ReadableStream
-FAIL ReadableStream integration test: adapting a random push source Can't find variable: ReadableStream
-FAIL ReadableStream integration test: adapting a sync pull source Can't find variable: ReadableStream
-FAIL ReadableStream integration test: adapting an async pull source Can't find variable: ReadableStream
</del><ins>+PASS ReadableStream can be constructed with no errors 
+PASS ReadableStream can't be constructed with garbage 
+FAIL ReadableStream instances should have the correct list of properties assert_false: method should be non-enumerable expected false got true
+PASS ReadableStream constructor should throw for non-function start arguments 
+PASS ReadableStream constructor can get initial garbage as cancel argument 
+PASS ReadableStream constructor can get initial garbage as pull argument 
+FAIL ReadableStream start should be called with the proper parameters assert_false: close should be non-enumerable expected false got true
+PASS ReadableStream start controller parameter should be extensible 
+PASS ReadableStream should be able to call start method within prototype chain of its source 
+PASS ReadableStream start should be able to return a promise 
+PASS ReadableStream start should be able to return a promise and reject it 
+PASS ReadableStream should be able to enqueue different objects. 
+PASS ReadableStream: if pull rejects, it should error the stream 
+PASS ReadableStream: should only call pull once upon starting the stream 
+PASS ReadableStream: should call pull when trying to read from a started, empty stream 
+PASS ReadableStream: should only call pull once on a non-empty stream read from before start fulfills 
+PASS ReadableStream: should only call pull once on a non-empty stream read from after start fulfills 
+PASS ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining 
+PASS ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining 
+PASS ReadableStream: should not call pull until the previous pull call's promise fulfills 
+PASS ReadableStream: should pull after start, and after every read 
+PASS ReadableStream: should not call pull after start if the stream is now closed 
+PASS ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows 
+PASS ReadableStream pull should be able to close a stream. 
+PASS ReadableStream: enqueue should throw when the stream is readable but draining 
+PASS ReadableStream: enqueue should throw when the stream is closed 
+PASS ReadableStream: enqueue should throw the stored error when the stream is errored 
+PASS ReadableStream: should call underlying source methods as methods 
+PASS ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue 
+PASS ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately 
+PASS ReadableStream integration test: adapting a random push source 
+PASS ReadableStream integration test: adapting a sync pull source 
+PASS ReadableStream integration test: adapting an async pull source 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamspipethroughexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -6,9 +6,9 @@
</span><span class="cx"> PASS ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options 
</span><span class="cx"> FAIL Load pipe-through.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL ReadableStream.prototype.pipeThrough should work generically on its this and its arguments Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.pipeThrough should throw when its first argument is not convertible to an object Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.pipeThrough should throw when &quot;this&quot; has no pipeTo method Can't find variable: ReadableStream
-FAIL ReadableStream.prototype.pipeThrough should rethrow errors from accessing pipeTo, readable, or writable assert_throws: pipeThrough should rethrow the error thrown by pipeTo function &quot;() =&gt; ReadableStream.prototype.pipeThrough.call(throwingP...&quot; threw object &quot;ReferenceError: Can't find variable: ReadableStream&quot; (&quot;ReferenceError&quot;) expected object &quot;Error: potato&quot; (&quot;Error&quot;)
-FAIL ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options Can't find variable: ReadableStream
</del><ins>+PASS ReadableStream.prototype.pipeThrough should work generically on its this and its arguments 
+PASS ReadableStream.prototype.pipeThrough should throw when its first argument is not convertible to an object 
+PASS ReadableStream.prototype.pipeThrough should throw when &quot;this&quot; has no pipeTo method 
+PASS ReadableStream.prototype.pipeThrough should rethrow errors from accessing pipeTo, readable, or writable 
+PASS ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsreadablestreamreaderexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -27,30 +27,30 @@
</span><span class="cx"> PASS Reading twice on a stream that gets errored 
</span><span class="cx"> FAIL Load readable-stream-reader.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL Can get the ReadableStreamReader constructor indirectly Can't find variable: ReadableStream
</del><ins>+PASS Can get the ReadableStreamReader constructor indirectly 
</ins><span class="cx"> PASS ReadableStreamReader constructor should get a ReadableStream object as argument 
</span><del>-FAIL ReadableStreamReader instances should have the correct list of properties Can't find variable: ReadableStream
-FAIL ReadableStreamReader closed should always return the same promise object Can't find variable: ReadableStream
-FAIL Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction) Can't find variable: ReadableStream
-FAIL Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction) Can't find variable: ReadableStream
-FAIL Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader) Can't find variable: ReadableStream
-FAIL Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader) Can't find variable: ReadableStream
-FAIL Constructing a ReadableStreamReader directly should be OK if the stream is closed Can't find variable: ReadableStream
-FAIL Constructing a ReadableStreamReader directly should be OK if the stream is errored Can't find variable: ReadableStream
-FAIL Reading from a reader for an empty stream will wait until a chunk is available Can't find variable: ReadableStream
-FAIL cancel() on a reader does not release the reader Can't find variable: ReadableStream
-FAIL closed should be fulfilled after stream is closed (.closed access before acquiring) Can't find variable: ReadableStream
-FAIL closed should be rejected after reader releases its lock (multiple stream locks) Can't find variable: ReadableStream
-FAIL Multiple readers can access the stream in sequence Can't find variable: ReadableStream
-FAIL Cannot use an already-released reader to unlock a stream again Can't find variable: ReadableStream
-FAIL cancel() on a released reader is a no-op and does not pass through Can't find variable: ReadableStream
-FAIL Getting a second reader after erroring the stream and releasing the reader should succeed Can't find variable: ReadableStream
-FAIL ReadableStreamReader closed promise should be rejected with undefined if that is the error Can't find variable: ReadableStream
-FAIL ReadableStreamReader: if start rejects with no parameter, it should error the stream with an undefined error Can't find variable: ReadableStream
-FAIL Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise Can't find variable: ReadableStream
-FAIL Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise Can't find variable: ReadableStream
-FAIL Reading twice on a stream that gets closed Can't find variable: ReadableStream
-FAIL Reading twice on a closed stream Can't find variable: ReadableStream
-FAIL Reading twice on an errored stream Can't find variable: ReadableStream
-FAIL Reading twice on a stream that gets errored Can't find variable: ReadableStream
</del><ins>+FAIL ReadableStreamReader instances should have the correct list of properties assert_equals: method should be non-enumerable expected false but got true
+PASS ReadableStreamReader closed should always return the same promise object 
+PASS Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction) 
+PASS Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction) 
+PASS Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader) 
+PASS Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader) 
+PASS Constructing a ReadableStreamReader directly should be OK if the stream is closed 
+PASS Constructing a ReadableStreamReader directly should be OK if the stream is errored 
+PASS Reading from a reader for an empty stream will wait until a chunk is available 
+PASS cancel() on a reader does not release the reader 
+PASS closed should be fulfilled after stream is closed (.closed access before acquiring) 
+PASS closed should be rejected after reader releases its lock (multiple stream locks) 
+PASS Multiple readers can access the stream in sequence 
+PASS Cannot use an already-released reader to unlock a stream again 
+PASS cancel() on a released reader is a no-op and does not pass through 
+PASS Getting a second reader after erroring the stream and releasing the reader should succeed 
+PASS ReadableStreamReader closed promise should be rejected with undefined if that is the error 
+PASS ReadableStreamReader: if start rejects with no parameter, it should error the stream with an undefined error 
+PASS Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise 
+PASS Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise 
+PASS Reading twice on a stream that gets closed 
+PASS Reading twice on a closed stream 
+PASS Reading twice on an errored stream 
+PASS Reading twice on a stream that gets errored 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamsteeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/tee-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/tee-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/tee-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -11,14 +11,14 @@
</span><span class="cx"> PASS ReadableStream teeing: erroring the original should immediately error the branches 
</span><span class="cx"> FAIL Load tee.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><del>-FAIL ReadableStream teeing: rs.tee() returns an array of two ReadableStreams Can't find variable: ReadableStream
-FAIL ReadableStream teeing: should be able to read one branch to the end without affecting the other Can't find variable: ReadableStream
-FAIL ReadableStream teeing: values should be equal across each branch Can't find variable: ReadableStream
-FAIL ReadableStream teeing: errors in the source should propagate to both branches Can't find variable: ReadableStream
-FAIL ReadableStream teeing: canceling branch1 should not impact branch2 Can't find variable: ReadableStream
-FAIL ReadableStream teeing: canceling branch2 should not impact branch2 Can't find variable: ReadableStream
-FAIL ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array Can't find variable: ReadableStream
-FAIL ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches Can't find variable: ReadableStream
-FAIL ReadableStream teeing: closing the original should immediately close the branches Can't find variable: ReadableStream
-FAIL ReadableStream teeing: erroring the original should immediately error the branches Can't find variable: ReadableStream
</del><ins>+PASS ReadableStream teeing: rs.tee() returns an array of two ReadableStreams 
+PASS ReadableStream teeing: should be able to read one branch to the end without affecting the other 
+PASS ReadableStream teeing: values should be equal across each branch 
+PASS ReadableStream teeing: errors in the source should propagate to both branches 
+PASS ReadableStream teeing: canceling branch1 should not impact branch2 
+PASS ReadableStream teeing: canceling branch2 should not impact branch2 
+PASS ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array 
+PASS ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches 
+PASS ReadableStream teeing: closing the original should immediately close the branches 
+PASS ReadableStream teeing: erroring the original should immediately error the branches 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsstreamsapireadablestreamstemplatedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/templated-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/templated-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/streams-api/readable-streams/templated-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -87,88 +87,88 @@
</span><span class="cx"> FAIL Load templated.js with SharedWorker assert_unreached: SharedWorker is unavailable Reached unreachable code
</span><span class="cx"> FAIL Untitled undefined is not an object (evaluating 'navigator.serviceWorker.getRegistration')
</span><span class="cx"> PASS Running templatedRSEmpty with ReadableStream (empty) 
</span><del>-FAIL instances have the correct methods and properties Can't find variable: ReadableStream
</del><ins>+PASS instances have the correct methods and properties 
</ins><span class="cx"> PASS Running templatedRSEmptyReader with ReadableStream (empty) reader 
</span><del>-FAIL instances have the correct methods and properties Can't find variable: ReadableStream
-FAIL locked should be true Can't find variable: ReadableStream
-FAIL read() should never settle Can't find variable: ReadableStream
-FAIL two read()s should both never settle Can't find variable: ReadableStream
-FAIL read() should return distinct promises each time Can't find variable: ReadableStream
-FAIL getReader() again on the stream should fail Can't find variable: ReadableStream
-FAIL releasing the lock with pending read requests should throw but the read requests should stay pending Can't find variable: ReadableStream
-FAIL releasing the lock should cause further read() calls to reject with a TypeError Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed calls to reject with a TypeError Can't find variable: ReadableStream
-FAIL releasing the lock should cause locked to become false Can't find variable: ReadableStream
-FAIL canceling via the reader should cause the reader to act closed Can't find variable: ReadableStream
-FAIL canceling via the stream should fail Can't find variable: ReadableStream
</del><ins>+PASS instances have the correct methods and properties 
+PASS locked should be true 
+PASS read() should never settle 
+PASS two read()s should both never settle 
+PASS read() should return distinct promises each time 
+PASS getReader() again on the stream should fail 
+PASS releasing the lock with pending read requests should throw but the read requests should stay pending 
+PASS releasing the lock should cause further read() calls to reject with a TypeError 
+PASS releasing the lock should cause closed calls to reject with a TypeError 
+PASS releasing the lock should cause locked to become false 
+PASS canceling via the reader should cause the reader to act closed 
+PASS canceling via the stream should fail 
</ins><span class="cx"> PASS Running templatedRSClosed with ReadableStream (closed via call in start) 
</span><del>-FAIL cancel() should return a distinct fulfilled promise each time Can't find variable: ReadableStream
-FAIL locked should be false Can't find variable: ReadableStream
-FAIL getReader() should be OK Can't find variable: ReadableStream
-FAIL should be able to acquire multiple readers if they are released in succession Can't find variable: ReadableStream
-FAIL should not be able to acquire a second reader if we don't release the first one Can't find variable: ReadableStream
</del><ins>+PASS cancel() should return a distinct fulfilled promise each time 
+PASS locked should be false 
+PASS getReader() should be OK 
+PASS should be able to acquire multiple readers if they are released in succession 
+PASS should not be able to acquire a second reader if we don't release the first one 
</ins><span class="cx"> PASS Running templatedRSClosedReader with ReadableStream reader (closed before getting reader) 
</span><del>-FAIL read() should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() multiple times should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() should work when used within another read() fulfill callback Can't find variable: ReadableStream
-FAIL closed should fulfill with undefined Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL cancel() should return a distinct fulfilled promise each time Can't find variable: ReadableStream
</del><ins>+PASS read() should fulfill with { value: undefined, done: true } 
+PASS read() multiple times should fulfill with { value: undefined, done: true } 
+PASS read() should work when used within another read() fulfill callback 
+PASS closed should fulfill with undefined 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS cancel() should return a distinct fulfilled promise each time 
</ins><span class="cx"> PASS Running templatedRSClosedReader with ReadableStream reader (closed after getting reader) 
</span><del>-FAIL read() should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() multiple times should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() should work when used within another read() fulfill callback Can't find variable: ReadableStream
-FAIL closed should fulfill with undefined Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL cancel() should return a distinct fulfilled promise each time Can't find variable: ReadableStream
</del><ins>+PASS read() should fulfill with { value: undefined, done: true } 
+PASS read() multiple times should fulfill with { value: undefined, done: true } 
+PASS read() should work when used within another read() fulfill callback 
+PASS closed should fulfill with undefined 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS cancel() should return a distinct fulfilled promise each time 
</ins><span class="cx"> PASS Running templatedRSClosed with ReadableStream (closed via cancel) 
</span><del>-FAIL cancel() should return a distinct fulfilled promise each time Can't find variable: ReadableStream
-FAIL locked should be false Can't find variable: ReadableStream
-FAIL getReader() should be OK Can't find variable: ReadableStream
-FAIL should be able to acquire multiple readers if they are released in succession Can't find variable: ReadableStream
-FAIL should not be able to acquire a second reader if we don't release the first one Can't find variable: ReadableStream
</del><ins>+PASS cancel() should return a distinct fulfilled promise each time 
+PASS locked should be false 
+PASS getReader() should be OK 
+PASS should be able to acquire multiple readers if they are released in succession 
+PASS should not be able to acquire a second reader if we don't release the first one 
</ins><span class="cx"> PASS Running templatedRSClosedReader with ReadableStream reader (closed via cancel after getting reader) 
</span><del>-FAIL read() should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() multiple times should fulfill with { value: undefined, done: true } Can't find variable: ReadableStream
-FAIL read() should work when used within another read() fulfill callback Can't find variable: ReadableStream
-FAIL closed should fulfill with undefined Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL cancel() should return a distinct fulfilled promise each time Can't find variable: ReadableStream
</del><ins>+PASS read() should fulfill with { value: undefined, done: true } 
+PASS read() multiple times should fulfill with { value: undefined, done: true } 
+PASS read() should work when used within another read() fulfill callback 
+PASS closed should fulfill with undefined 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS cancel() should return a distinct fulfilled promise each time 
</ins><span class="cx"> PASS Running templatedRSErrored with ReadableStream (errored via call in start) 
</span><del>-FAIL getReader() should return a reader that acts errored Can't find variable: ReadableStream
-FAIL read() twice should give the error each time Can't find variable: ReadableStream
-FAIL locked should be false Can't find variable: ReadableStream
</del><ins>+PASS getReader() should return a reader that acts errored 
+PASS read() twice should give the error each time 
+PASS locked should be false 
</ins><span class="cx"> PASS Running templatedRSErroredSyncOnly with ReadableStream (errored via call in start) 
</span><del>-FAIL should be able to obtain a second reader, with the correct closed promise Can't find variable: ReadableStream
-FAIL should not be able to obtain additional readers if we don't release the first lock Can't find variable: ReadableStream
-FAIL cancel() should return a distinct rejected promise each time Can't find variable: ReadableStream
-FAIL reader cancel() should return a distinct rejected promise each time Can't find variable: ReadableStream
</del><ins>+PASS should be able to obtain a second reader, with the correct closed promise 
+PASS should not be able to obtain additional readers if we don't release the first lock 
+PASS cancel() should return a distinct rejected promise each time 
+PASS reader cancel() should return a distinct rejected promise each time 
</ins><span class="cx"> PASS Running templatedRSErrored with ReadableStream (errored via returning a rejected promise in start) 
</span><del>-FAIL getReader() should return a reader that acts errored Can't find variable: ReadableStream
-FAIL read() twice should give the error each time Can't find variable: ReadableStream
-FAIL locked should be false Can't find variable: ReadableStream
</del><ins>+PASS getReader() should return a reader that acts errored 
+PASS read() twice should give the error each time 
+PASS locked should be false 
</ins><span class="cx"> PASS Running templatedRSErroredReader with ReadableStream (errored via returning a rejected promise in start) reader 
</span><del>-FAIL closed should reject with the error Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL read() should reject with the error Can't find variable: ReadableStream
</del><ins>+PASS closed should reject with the error 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS read() should reject with the error 
</ins><span class="cx"> PASS Running templatedRSErroredReader with ReadableStream reader (errored before getting reader) 
</span><del>-FAIL closed should reject with the error Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL read() should reject with the error Can't find variable: ReadableStream
</del><ins>+PASS closed should reject with the error 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS read() should reject with the error 
</ins><span class="cx"> PASS Running templatedRSErroredReader with ReadableStream reader (errored after getting reader) 
</span><del>-FAIL closed should reject with the error Can't find variable: ReadableStream
-FAIL releasing the lock should cause closed to reject and change identity Can't find variable: ReadableStream
-FAIL read() should reject with the error Can't find variable: ReadableStream
</del><ins>+PASS closed should reject with the error 
+PASS releasing the lock should cause closed to reject and change identity 
+PASS read() should reject with the error 
</ins><span class="cx"> PASS Running templatedRSTwoChunksOpenReader with ReadableStream (two chunks enqueued, still open) reader 
</span><del>-FAIL calling read() twice without waiting will eventually give both chunks (sequential) Can't find variable: ReadableStream
-FAIL calling read() twice without waiting will eventually give both chunks (nested) Can't find variable: ReadableStream
-FAIL read() should return distinct promises each time Can't find variable: ReadableStream
-FAIL cancel() after a read() should still give that single read result Can't find variable: ReadableStream
</del><ins>+PASS calling read() twice without waiting will eventually give both chunks (sequential) 
+PASS calling read() twice without waiting will eventually give both chunks (nested) 
+PASS read() should return distinct promises each time 
+PASS cancel() after a read() should still give that single read result 
</ins><span class="cx"> PASS Running templatedRSTwoChunksClosedReader with ReadableStream (two chunks enqueued, then closed) reader 
</span><del>-FAIL third read(), without waiting, should give { value: undefined, done: true } (sequential) Can't find variable: ReadableStream
-FAIL third read(), without waiting, should give { value: undefined, done: true } (nested) Can't find variable: ReadableStream
-FAIL draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true Can't find variable: ReadableStream
-FAIL releasing the lock after the stream is closed should cause locked to become false Can't find variable: ReadableStream
-FAIL releasing the lock should cause further read() calls to reject with a TypeError Can't find variable: ReadableStream
-FAIL reader's closed property always returns the same promise Can't find variable: ReadableStream
</del><ins>+PASS third read(), without waiting, should give { value: undefined, done: true } (sequential) 
+PASS third read(), without waiting, should give { value: undefined, done: true } (nested) 
+PASS draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true 
+PASS releasing the lock after the stream is closed should cause locked to become false 
+PASS releasing the lock should cause further read() calls to reject with a TypeError 
+PASS reader's closed property always returns the same promise 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomglobalconstructorsattributesdedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/js/dom/global-constructors-attributes-dedicated-worker-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -9,6 +9,16 @@
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').hasOwnProperty('set') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').enumerable is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').configurable is true
</span><ins>+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').value is ByteLengthQueuingStrategy
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').value is CountQueuingStrategy
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').configurable is true
</ins><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').value is DedicatedWorkerGlobalScope
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').hasOwnProperty('get') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').hasOwnProperty('set') is false
</span><span class="lines">@@ -44,6 +54,11 @@
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').hasOwnProperty('set') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').enumerable is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').configurable is true
</span><ins>+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').value is ReadableStream
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').configurable is true
</ins><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').value is URL
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').hasOwnProperty('get') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformefljsdomglobalconstructorsattributesdedicatedworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -9,6 +9,16 @@
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').hasOwnProperty('set') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').enumerable is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'Blob').configurable is true
</span><ins>+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').value is ByteLengthQueuingStrategy
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').configurable is true
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').value is CountQueuingStrategy
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'CountQueuingStrategy').configurable is true
</ins><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').value is DedicatedWorkerGlobalScope
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').hasOwnProperty('get') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'DedicatedWorkerGlobalScope').hasOwnProperty('set') is false
</span><span class="lines">@@ -44,6 +54,11 @@
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').hasOwnProperty('set') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').enumerable is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'MessageEvent').configurable is true
</span><ins>+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').value is ReadableStream
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').hasOwnProperty('get') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').hasOwnProperty('set') is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').enumerable is false
+PASS [Worker] Object.getOwnPropertyDescriptor(global, 'ReadableStream').configurable is true
</ins><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').value is URL
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').hasOwnProperty('get') is false
</span><span class="cx"> PASS [Worker] Object.getOwnPropertyDescriptor(global, 'URL').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -1256,6 +1256,7 @@
</span><span class="cx">     bindings/js/ScriptGlobalObject.cpp
</span><span class="cx">     bindings/js/ScriptState.cpp
</span><span class="cx">     bindings/js/SerializedScriptValue.cpp
</span><ins>+    bindings/js/WebCoreJSBuiltinInternals.cpp
</ins><span class="cx">     bindings/js/WebCoreJSBuiltins.cpp
</span><span class="cx">     bindings/js/WebCoreTypedArrayController.cpp
</span><span class="cx">     bindings/js/WorkerScriptController.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/ChangeLog        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -1,3 +1,48 @@
</span><ins>+2015-12-14  Xabier Rodriguez Calvar  &lt;calvaris@igalia.com&gt; and Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
+
+        [Streams API] Expose ReadableStream and relatives to Worker
+        https://bugs.webkit.org/show_bug.cgi?id=152066
+
+        Reviewed by Darin Adler.
+
+        Moving the code that links internal functions to the GlobalObject in WebCoreJSBuiltinInternals.cpp.
+        This file should be generated by the builtin generator once refactoring is done.
+        This code is located in JSBuiltinFunctions::initialize.
+
+        Moving ReadableStream private constructors and constants code from JSDOMWindowBase to JSDOMGlobalObject.
+        Calling JSBuiltinInternalFunctions::initialize in JSDOMGlobalObject so that internals are also available in Worker.
+
+        Made ReadableStream and relatives exposed in Worker.
+
+        Patch by Youenn Fablet.
+        Rebased and fixed style by Xabier Rodriguez Calvar.
+
+        Covered by rebased tests.
+
+        * CMakeLists.txt:
+        * Modules/streams/ByteLengthQueuingStrategy.idl:
+        * Modules/streams/CountQueuingStrategy.idl:
+        * Modules/streams/ReadableStream.idl:
+        * Modules/streams/ReadableStreamController.idl:
+        * Modules/streams/ReadableStreamReader.idl:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSDOMGlobalObject.cpp:
+        (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
+        (WebCore::JSDOMGlobalObject::addBuiltinGlobals):
+        (WebCore::JSDOMGlobalObject::finishCreation):
+        (WebCore::JSDOMGlobalObject::visitChildren):
+        * bindings/js/JSDOMGlobalObject.h:
+        * bindings/js/JSDOMWindowBase.cpp:
+        (WebCore::JSDOMWindowBase::finishCreation): Deleted.
+        (WebCore::JSDOMWindowBase::visitChildren): Deleted.
+        * bindings/js/JSDOMWindowBase.h:
+        * bindings/js/WebCoreJSBuiltinInternals.cpp: Added.
+        (WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):
+        (WebCore::JSBuiltinInternalFunctions::visit):
+        (WebCore::JSBuiltinInternalFunctions::initialize):
+        * bindings/js/WebCoreJSBuiltinInternals.h:
+        * bindings/js/WebCoreJSBuiltins.h:
+
</ins><span class="cx"> 2015-12-14  Frederic Wang  &lt;fred.wang@free.fr&gt;
</span><span class="cx"> 
</span><span class="cx">         Move MathMLOperatorDictionary features into a separate module.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsByteLengthQueuingStrategyidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.idl        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx">     JSBuiltin,
</span><span class="cx">     Constructor,
</span><span class="cx">     Conditional=STREAMS_API,
</span><ins>+    GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</ins><span class="cx"> ] interface ByteLengthQueuingStrategy {
</span><span class="cx">     double size();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsCountQueuingStrategyidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.idl (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.idl        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.idl        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx">     JSBuiltin,
</span><span class="cx">     Constructor,
</span><span class="cx">     Conditional=STREAMS_API,
</span><ins>+    GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</ins><span class="cx"> ] interface CountQueuingStrategy {
</span><span class="cx">     double size();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.idl (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStream.idl        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.idl        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> [
</span><span class="cx">     Conditional=STREAMS_API,
</span><span class="cx">     Constructor,
</span><ins>+    GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</ins><span class="cx">     JSBuiltin
</span><span class="cx"> ] interface ReadableStream {
</span><span class="cx">     Promise cancel(optional any reason);
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamControlleridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamController.idl (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStreamController.idl        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamController.idl        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> [
</span><span class="cx">     Conditional=STREAMS_API,
</span><span class="cx">     CustomConstructor,
</span><ins>+    GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</ins><span class="cx">     JSBuiltin,
</span><span class="cx">     NoInterfaceObject
</span><span class="cx"> ] interface ReadableStreamController {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesstreamsReadableStreamReaderidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamReader.idl (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/streams/ReadableStreamReader.idl        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamReader.idl        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> [
</span><span class="cx">     Conditional=STREAMS_API,
</span><span class="cx">     CustomConstructor,
</span><ins>+    GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</ins><span class="cx">     JSBuiltin,
</span><span class="cx">     NoInterfaceObject
</span><span class="cx"> ] interface ReadableStreamReader {
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -19028,6 +19028,20 @@
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\bindings\js\WebCoreJSBuiltinInternals.cpp&quot;&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='DebugSuffix|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+      &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Production|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
+    &lt;/ClCompile&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\bindings\js\WebCoreJSBuiltins.cpp&quot;&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -1477,6 +1477,7 @@
</span><span class="cx">                 40ECAE7E16B8B67200C36103 /* JSDOMError.h in Headers */ = {isa = PBXBuildFile; fileRef = 40ECAE7D16B8B67200C36103 /* JSDOMError.h */; };
</span><span class="cx">                 40ECAE8116B8B68A00C36103 /* JSDOMError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 40ECAE8016B8B68A00C36103 /* JSDOMError.cpp */; };
</span><span class="cx">                 410B7E721045FAB000D8224F /* JSMessageEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */; };
</span><ins>+                410D33241C19985000F7FDE2 /* WebCoreJSBuiltinInternals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */; };
</ins><span class="cx">                 4123081B138C429700BCCFCA /* WebCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93F19B1A08245E5A001E9ABC /* WebCore.framework */; };
</span><span class="cx">                 41230913138C42FF00BCCFCA /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8216299029F4FB501000131 /* JavaScriptCore.framework */; };
</span><span class="cx">                 4127D5370F8AAB1D00E424F5 /* ScriptState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */; };
</span><span class="lines">@@ -8827,6 +8828,7 @@
</span><span class="cx">                 40ECAE7D16B8B67200C36103 /* JSDOMError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 40ECAE8016B8B68A00C36103 /* JSDOMError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMError.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMessageEventCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltinInternals.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 41189EF71AD8232800B90A0D /* ReadableStreamController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamController.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptState.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4129DF811BB5B79B00322A16 /* ReadableStreamController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21957,6 +21959,7 @@
</span><span class="cx">                                 A75E497410752ACB00C9B896 /* SerializedScriptValue.h */,
</span><span class="cx">                                 419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */,
</span><span class="cx">                                 419BE7531BC7F3DB00E1C85B /* WebCoreJSBuiltinInternals.h */,
</span><ins>+                                410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */,
</ins><span class="cx">                                 419BE7541BC7F3DB00E1C85B /* WebCoreJSBuiltins.cpp */,
</span><span class="cx">                                 419BE7551BC7F3DB00E1C85B /* WebCoreJSBuiltins.h */,
</span><span class="cx">                                 BC53D910114310CC000D817E /* WebCoreJSClientData.h */,
</span><span class="lines">@@ -30937,6 +30940,7 @@
</span><span class="cx">                                 536D5A25193F40FC00CE4CAB /* SourceSizeList.cpp in Sources */,
</span><span class="cx">                                 D01A27AD10C9BFD800026A42 /* SpaceSplitString.cpp in Sources */,
</span><span class="cx">                                 626CDE0E1140424C001E5A68 /* SpatialNavigation.cpp in Sources */,
</span><ins>+                                410D33241C19985000F7FDE2 /* WebCoreJSBuiltinInternals.cpp in Sources */,
</ins><span class="cx">                                 AA2A5AD516A4861400975A25 /* SpeechSynthesis.cpp in Sources */,
</span><span class="cx">                                 AA2A5AD316A4860D00975A25 /* SpeechSynthesisEvent.cpp in Sources */,
</span><span class="cx">                                 AA2A5AD116A4860700975A25 /* SpeechSynthesisUtterance.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -30,7 +30,9 @@
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;JSDOMWindow.h&quot;
</span><span class="cx"> #include &quot;JSEventListener.h&quot;
</span><ins>+#include &quot;JSReadableStreamPrivateConstructors.h&quot;
</ins><span class="cx"> #include &quot;JSWorkerGlobalScope.h&quot;
</span><ins>+#include &quot;WebCoreJSClientData.h&quot;
</ins><span class="cx"> #include &quot;WorkerGlobalScope.h&quot;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="lines">@@ -44,6 +46,7 @@
</span><span class="cx">     , m_currentEvent(0)
</span><span class="cx">     , m_world(world)
</span><span class="cx">     , m_worldIsNormal(m_world-&gt;isNormal())
</span><ins>+    , m_internalFunctions(vm)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_world);
</span><span class="cx"> }
</span><span class="lines">@@ -53,16 +56,39 @@
</span><span class="cx">     static_cast&lt;JSDOMGlobalObject*&gt;(cell)-&gt;JSDOMGlobalObject::~JSDOMGlobalObject();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void JSDOMGlobalObject::addBuiltinGlobals(VM&amp; vm)
+{
+    m_internalFunctions.initialize(*this, vm);
+#if ENABLE(STREAMS_API)
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);
+    GlobalPropertyInfo staticGlobals[] = {
+        GlobalPropertyInfo(clientData.builtinNames().streamClosedPrivateName(), jsNumber(1), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().streamClosingPrivateName(), jsNumber(2), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().streamErroredPrivateName(), jsNumber(3), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().streamReadablePrivateName(), jsNumber(4), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().streamWaitingPrivateName(), jsNumber(5), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().streamWritablePrivateName(), jsNumber(6), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().ReadableStreamControllerPrivateName(), createReadableStreamControllerPrivateConstructor(vm, *this), DontDelete | ReadOnly),
+        GlobalPropertyInfo(clientData.builtinNames().ReadableStreamReaderPrivateName(), createReadableStreamReaderPrivateConstructor(vm, *this), DontDelete | ReadOnly),
+    };
+    addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+#endif
+}
+
</ins><span class="cx"> void JSDOMGlobalObject::finishCreation(VM&amp; vm)
</span><span class="cx"> {
</span><span class="cx">     Base::finishCreation(vm);
</span><span class="cx">     ASSERT(inherits(info()));
</span><ins>+
+    addBuiltinGlobals(vm);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSDOMGlobalObject::finishCreation(VM&amp; vm, JSObject* thisValue)
</span><span class="cx"> {
</span><span class="cx">     Base::finishCreation(vm, thisValue);
</span><span class="cx">     ASSERT(inherits(info()));
</span><ins>+
+    addBuiltinGlobals(vm);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScriptExecutionContext* JSDOMGlobalObject::scriptExecutionContext() const
</span><span class="lines">@@ -86,6 +112,8 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; constructor : thisObject-&gt;constructors().values())
</span><span class="cx">         visitor.append(&amp;constructor);
</span><ins>+
+    thisObject-&gt;m_internalFunctions.visit(visitor);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSDOMGlobalObject::setCurrentEvent(Event* currentEvent)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #define JSDOMGlobalObject_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;PlatformExportMacros.h&quot;
</span><ins>+#include &quot;WebCoreJSBuiltinInternals.h&quot;
</ins><span class="cx"> #include &lt;runtime/JSGlobalObject.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -78,6 +79,9 @@
</span><span class="cx">             return JSC::Structure::create(vm, 0, prototype, JSC::TypeInfo(JSC::GlobalObjectType, StructureFlags), info());
</span><span class="cx">         }
</span><span class="cx"> 
</span><ins>+        void addBuiltinGlobals(JSC::VM&amp;);
+        friend void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp;, JSC::VM&amp;);
+
</ins><span class="cx">     protected:
</span><span class="cx">         JSDOMStructureMap m_structures;
</span><span class="cx">         JSDOMConstructorMap m_constructors;
</span><span class="lines">@@ -85,6 +89,8 @@
</span><span class="cx">         Event* m_currentEvent;
</span><span class="cx">         const RefPtr&lt;DOMWrapperWorld&gt; m_world;
</span><span class="cx">         bool m_worldIsNormal;
</span><ins>+
+        JSBuiltinInternalFunctions m_internalFunctions;
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     template&lt;class ConstructorClass&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -52,17 +52,6 @@
</span><span class="cx"> #include &quot;WebSafeIncrementalSweeperIOS.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(STREAMS_API)
-#include &quot;JSReadableStreamPrivateConstructors.h&quot;
-#include &quot;ReadableStreamInternalsBuiltins.h&quot;
-#include &quot;StreamInternalsBuiltins.h&quot;
-#include &quot;WritableStreamInternalsBuiltins.h&quot;
-#endif
-
-#if ENABLE(MEDIA_STREAM)
-#include &quot;RTCPeerConnectionInternalsBuiltins.h&quot;
-#endif
-
</del><span class="cx"> using namespace JSC;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -81,7 +70,6 @@
</span><span class="cx">     , m_windowCloseWatchpoints((window &amp;&amp; window-&gt;frame()) ? IsWatched : IsInvalidated)
</span><span class="cx">     , m_wrapped(window)
</span><span class="cx">     , m_shell(shell)
</span><del>-    , m_privateFunctions(vm)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -90,47 +78,9 @@
</span><span class="cx">     Base::finishCreation(vm, shell);
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx"> 
</span><del>-    m_privateFunctions.init(*this);
-
-#if ENABLE(STREAMS_API) || ENABLE(MEDIA_STREAM)
-    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);
-#endif
-
</del><span class="cx">     GlobalPropertyInfo staticGlobals[] = {
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;document, jsNull(), DontDelete | ReadOnly),
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;window, m_shell, DontDelete | ReadOnly),
</span><del>-#if ENABLE(STREAMS_API)
-        GlobalPropertyInfo(clientData.builtinNames().streamClosedPrivateName(), jsNumber(1), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().streamClosingPrivateName(), jsNumber(2), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().streamErroredPrivateName(), jsNumber(3), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().streamReadablePrivateName(), jsNumber(4), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().streamWaitingPrivateName(), jsNumber(5), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().streamWritablePrivateName(), jsNumber(6), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().ReadableStreamControllerPrivateName(), createReadableStreamControllerPrivateConstructor(vm, *this), DontDelete | ReadOnly),
-        GlobalPropertyInfo(clientData.builtinNames().ReadableStreamReaderPrivateName(), createReadableStreamReaderPrivateConstructor(vm, *this), DontDelete | ReadOnly),
-#define DECLARE_GLOBAL_STATIC(name)\
-        GlobalPropertyInfo(\
-            clientData.builtinFunctions().readableStreamInternalsBuiltins().name##PrivateName(), m_privateFunctions.readableStreamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
-        WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
-#undef DECLARE_GLOBAL_STATIC
-#define DECLARE_GLOBAL_STATIC(name)\
-        GlobalPropertyInfo(\
-            clientData.builtinFunctions().streamInternalsBuiltins().name##PrivateName(), m_privateFunctions.streamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
-        WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
-#undef DECLARE_GLOBAL_STATIC
-#define DECLARE_GLOBAL_STATIC(name)\
-        GlobalPropertyInfo(\
-            clientData.builtinFunctions().writableStreamInternalsBuiltins().name##PrivateName(), m_privateFunctions.writableStreamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
-        WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
-#undef DECLARE_GLOBAL_STATIC
-#endif
-#if ENABLE(MEDIA_STREAM)
-#define DECLARE_GLOBAL_STATIC(name)\
-        GlobalPropertyInfo(\
-            clientData.builtinFunctions().rtcPeerConnectionInternalsBuiltins().name##PrivateName(), m_privateFunctions.rtcPeerConnectionInternals().m_##name##Function.get() , DontDelete | ReadOnly),
-        WEBCORE_FOREACH_RTCPEERCONNECTIONINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
-#undef DECLARE_GLOBAL_STATIC
-#endif
</del><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
</span><span class="lines">@@ -141,7 +91,6 @@
</span><span class="cx">     JSDOMWindowBase* thisObject = jsCast&lt;JSDOMWindowBase*&gt;(cell);
</span><span class="cx">     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
</span><span class="cx">     Base::visitChildren(thisObject, visitor);
</span><del>-    thisObject-&gt;m_privateFunctions.visit(visitor);
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSDOMWindowBase::destroy(JSCell* cell)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><span class="cx"> #include &quot;JSDOMGlobalObject.h&quot;
</span><del>-#include &quot;WebCoreJSBuiltinInternals.h&quot;
</del><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -86,8 +85,6 @@
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;DOMWindow&gt; m_wrapped;
</span><span class="cx">         JSDOMWindowShell* m_shell;
</span><del>-
-        JSBuiltinInternalFunctions m_privateFunctions;
</del><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     // Returns a JSDOMWindow or jsNull()
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalscpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp (0 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp                                (rev 0)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -0,0 +1,117 @@
</span><ins>+/*
+ *  Copyright (c) 2015, Canon 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.
+ *  3.  Neither the name of Canon Inc. nor the names of
+ *      its contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *  THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS &quot;AS IS&quot; 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 CANON INC. AND 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.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebCoreJSBuiltinInternals.h&quot;
+
+#include &quot;JSDOMGlobalObject.h&quot;
+#include &quot;WebCoreJSClientData.h&quot;
+#include &lt;heap/SlotVisitorInlines.h&gt;
+#include &lt;runtime/JSCJSValueInlines.h&gt;
+#include &lt;runtime/StructureInlines.h&gt;
+
+using namespace JSC;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; v)
+    : vm(v)
+#if ENABLE(MEDIA_STREAM)
+    , m_rtcPeerConnectionInternalsFunctions(vm)
+#endif
+#if ENABLE(STREAMS_API)
+    , m_readableStreamInternalsFunctions(vm)
+    , m_streamInternalsFunctions(vm)
+    , m_writableStreamInternalsFunctions(vm)
+#endif
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+#if ENABLE(MEDIA_STREAM)
+    m_rtcPeerConnectionInternalsFunctions.visit(visitor);
+#endif
+#if ENABLE(STREAMS_API)
+    m_readableStreamInternalsFunctions.visit(visitor);
+    m_streamInternalsFunctions.visit(visitor);
+    m_writableStreamInternalsFunctions.visit(visitor);
+#endif
+#ifndef SKIP_UNUSED_PARAM
+    UNUSED_PARAM(visitor);
+#endif
+}
+
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject, VM&amp; vm)
+{
+#if ENABLE(MEDIA_STREAM)
+    m_rtcPeerConnectionInternalsFunctions.init(globalObject);
+#endif
+#if ENABLE(STREAMS_API)
+    m_readableStreamInternalsFunctions.init(globalObject);
+    m_streamInternalsFunctions.init(globalObject);
+    m_writableStreamInternalsFunctions.init(globalObject);
+#endif
+
+#if ENABLE(STREAMS_API) || ENABLE(MEDIA_STREAM)
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);
+
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+#if ENABLE(MEDIA_STREAM)
+#define DECLARE_GLOBAL_STATIC(name)\
+        JSDOMGlobalObject::GlobalPropertyInfo(\
+            clientData.builtinFunctions().rtcPeerConnectionInternalsBuiltins().name##PrivateName(), rtcPeerConnectionInternals().m_##name##Function.get() , DontDelete | ReadOnly),
+        WEBCORE_FOREACH_RTCPEERCONNECTIONINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#endif
+#if ENABLE(STREAMS_API)
+#define DECLARE_GLOBAL_STATIC(name)\
+        JSDOMGlobalObject::GlobalPropertyInfo(\
+            clientData.builtinFunctions().readableStreamInternalsBuiltins().name##PrivateName(), readableStreamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
+        WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#define DECLARE_GLOBAL_STATIC(name)\
+        JSDOMGlobalObject::GlobalPropertyInfo(\
+            clientData.builtinFunctions().streamInternalsBuiltins().name##PrivateName(), streamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
+        WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#define DECLARE_GLOBAL_STATIC(name)\
+        JSDOMGlobalObject::GlobalPropertyInfo(\
+            clientData.builtinFunctions().writableStreamInternalsBuiltins().name##PrivateName(), writableStreamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
+        WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#endif
+    };
+
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+#endif
+#ifndef SKIP_UNUSED_PARAM
+    UNUSED_PARAM(globalObject);
+    UNUSED_PARAM(vm);
+#endif
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -27,81 +27,50 @@
</span><span class="cx"> #ifndef WebCoreJSBuiltinInternals_h
</span><span class="cx"> #define WebCoreJSBuiltinInternals_h
</span><span class="cx"> 
</span><ins>+#if ENABLE(MEDIA_STREAM)
+#include &quot;RTCPeerConnectionInternalsBuiltins.h&quot;
+#endif
+
</ins><span class="cx"> #if ENABLE(STREAMS_API)
</span><span class="cx"> #include &quot;ReadableStreamInternalsBuiltins.h&quot;
</span><span class="cx"> #include &quot;StreamInternalsBuiltins.h&quot;
</span><span class="cx"> #include &quot;WritableStreamInternalsBuiltins.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(MEDIA_STREAM)
-#include &quot;RTCPeerConnectionInternalsBuiltins.h&quot;
-#endif
-
</del><span class="cx"> #if ENABLE(STREAMS_API) || ENABLE(MEDIA_STREAM)
</span><span class="cx"> #define SKIP_UNUSED_PARAM
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class JSDOMGlobalObject;
+
</ins><span class="cx"> class JSBuiltinInternalFunctions {
</span><span class="cx"> public:
</span><del>-explicit JSBuiltinInternalFunctions(JSC::VM&amp; v)
-        : vm(v)
-#if ENABLE(STREAMS_API)
-        , m_readableStreamInternalsFunctions(vm)
-        , m_streamInternalsFunctions(vm)
-        , m_writableStreamInternalsFunctions(vm)
-#endif
</del><ins>+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
</ins><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><del>-        , m_rtcPeerConnectionInternalsFunctions(vm)
</del><ins>+    RTCPeerConnectionInternalsBuiltinFunctions rtcPeerConnectionInternals() { return m_rtcPeerConnectionInternalsFunctions; }
</ins><span class="cx"> #endif
</span><del>-    { }
-
</del><span class="cx"> #if ENABLE(STREAMS_API)
</span><span class="cx">     ReadableStreamInternalsBuiltinFunctions readableStreamInternals() { return m_readableStreamInternalsFunctions; }
</span><span class="cx">     StreamInternalsBuiltinFunctions streamInternals() { return m_streamInternalsFunctions; }
</span><span class="cx">     WritableStreamInternalsBuiltinFunctions writableStreamInternals() { return m_writableStreamInternalsFunctions; }
</span><span class="cx"> #endif
</span><del>-#if ENABLE(MEDIA_STREAM)
-    RTCPeerConnectionInternalsBuiltinFunctions rtcPeerConnectionInternals() { return m_rtcPeerConnectionInternalsFunctions; }
-#endif
-    void visit(JSC::SlotVisitor&amp; visitor) {
-#if ENABLE(STREAMS_API)
-        m_readableStreamInternalsFunctions.visit(visitor);
-        m_streamInternalsFunctions.visit(visitor);
-        m_writableStreamInternalsFunctions.visit(visitor);
-#endif
-#if ENABLE(MEDIA_STREAM)
-        m_rtcPeerConnectionInternalsFunctions.visit(visitor);
-#endif
-#ifndef SKIP_UNUSED_PARAM
-        UNUSED_PARAM(visitor);
-#endif
-    }
-    void init(JSC::JSGlobalObject&amp; globalObject) {
-#if ENABLE(STREAMS_API)
-        m_readableStreamInternalsFunctions.init(globalObject);
-        m_streamInternalsFunctions.init(globalObject);
-        m_writableStreamInternalsFunctions.init(globalObject);
-#endif
-#if ENABLE(MEDIA_STREAM)
-        m_rtcPeerConnectionInternalsFunctions.init(globalObject);
-#endif
-#ifndef SKIP_UNUSED_PARAM
-        UNUSED_PARAM(globalObject);
-#endif
-    }
</del><span class="cx"> 
</span><ins>+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;, JSC::VM&amp;);
+
</ins><span class="cx"> private:
</span><span class="cx">     JSC::VM&amp; vm;
</span><ins>+#if ENABLE(MEDIA_STREAM)
+    RTCPeerConnectionInternalsBuiltinFunctions m_rtcPeerConnectionInternalsFunctions;
+#endif
</ins><span class="cx"> #if ENABLE(STREAMS_API)
</span><span class="cx">     ReadableStreamInternalsBuiltinFunctions m_readableStreamInternalsFunctions;
</span><span class="cx">     StreamInternalsBuiltinFunctions m_streamInternalsFunctions;
</span><span class="cx">     WritableStreamInternalsBuiltinFunctions m_writableStreamInternalsFunctions;
</span><span class="cx"> #endif
</span><del>-#if ENABLE(MEDIA_STREAM)
-    RTCPeerConnectionInternalsBuiltinFunctions m_rtcPeerConnectionInternalsFunctions;
-#endif
</del><span class="cx"> 
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h (194032 => 194033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h        2015-12-14 13:00:42 UTC (rev 194032)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h        2015-12-14 15:57:48 UTC (rev 194033)
</span><span class="lines">@@ -50,6 +50,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class JSDOMGlobalObject;
+
+void addBuiltinGlobals(JSDOMGlobalObject&amp;, JSC::VM&amp;);
+
</ins><span class="cx"> class JSBuiltinFunctions {
</span><span class="cx"> public:
</span><span class="cx">     explicit JSBuiltinFunctions(JSC::VM&amp; v)
</span></span></pre>
</div>
</div>

</body>
</html>