<!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>[202975] 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/202975">202975</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-07-08 03:42:25 -0700 (Fri, 08 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Generate WebCore builtin wrapper files
https://bugs.webkit.org/show_bug.cgi?id=159461

Patch by Youenn Fablet &lt;youenn@apple.com&gt; on 2016-07-08
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updating builtin generator to generate wrapper files used in WebCore (See WebCore change log).
Rebasing builtins generator test results according generator changes by activating wrapper file generation for
WebCore builtins tests.

* CMakeLists.txt:
* DerivedSources.make:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Scripts/builtins/builtins.py: Adding new generators.
* Scripts/builtins/builtins_generate_internals_wrapper_header.py: Added to generate WebCoreJSBuiltinInternals.h.
* Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: Added to generate WebCoreJSBuiltinInternals.cpp.
* Scripts/builtins/builtins_generate_wrapper_header.py: Added to generate WebCoreJSBuiltins.h.
* Scripts/builtins/builtins_generate_wrapper_implementation.py: Added to generate WebCoreJSBuiltins.cpp.
* Scripts/generate-js-builtins.py: Adding new option to activate generation of the wrapper files.
(generate_bindings_for_builtins_files):
* Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:

Source/WebCore:

No change of behavior.

Updating build system to handle new built-in generators without modifying WebCoreJSBuiltins* files.
The generator is now passed all built-ins at once so that wrapper files can be generated.
Removing WebCoreJSBuiltins* checked-in wrapper files.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/WebCoreJSBuiltinInternals.cpp: Removed.
* bindings/js/WebCoreJSBuiltinInternals.h: Removed.
* bindings/js/WebCoreJSBuiltins.cpp: Removed.
* bindings/js/WebCoreJSBuiltins.h: Removed.

Tools:

* Scripts/webkitpy/codegen/main.py:
(BuiltinsGeneratorTests.generate_from_js_builtins): Adding generate_wrapper option.
(BuiltinsGeneratorTests.run_tests): Using this option in WebCore test cases.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreDerivedSourcesmake">trunk/Source/JavaScriptCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltinspy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generatorpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsgeneratejsbuiltinspy">trunk/Source/JavaScriptCore/Scripts/generate-js-builtins.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result</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="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</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="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpycodegenmainpy">trunk/Tools/Scripts/webkitpy/codegen/main.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_internals_wrapper_headerpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_internals_wrapper_implementationpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_wrapper_headerpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_wrapper_implementationpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_implementation.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalscpp">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalsh">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinscpp">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsWebCoreJSBuiltinsh">trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1206,6 +1206,10 @@
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
</span><ins>+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_header.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_implementation.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_header.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_implementation.py
</ins><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
</span><span class="cx"> )
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2016-07-08  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        Generate WebCore builtin wrapper files
+        https://bugs.webkit.org/show_bug.cgi?id=159461
+
+        Reviewed by Brian Burg.
+
+        Updating builtin generator to generate wrapper files used in WebCore (See WebCore change log).
+        Rebasing builtins generator test results according generator changes by activating wrapper file generation for
+        WebCore builtins tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * Scripts/builtins/builtins.py: Adding new generators.
+        * Scripts/builtins/builtins_generate_internals_wrapper_header.py: Added to generate WebCoreJSBuiltinInternals.h.
+        * Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: Added to generate WebCoreJSBuiltinInternals.cpp.
+        * Scripts/builtins/builtins_generate_wrapper_header.py: Added to generate WebCoreJSBuiltins.h.
+        * Scripts/builtins/builtins_generate_wrapper_implementation.py: Added to generate WebCoreJSBuiltins.cpp.
+        * Scripts/generate-js-builtins.py: Adding new option to activate generation of the wrapper files.
+        (generate_bindings_for_builtins_files):
+        * Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
+
</ins><span class="cx"> 2016-07-07  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         padStart/padEnd with Infinity produces unexpected result
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -76,6 +76,10 @@
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_combined_implementation.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_separate_header.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins/builtins_generate_separate_implementation.py \
</span><ins>+    ${JavaScriptCore_SCRIPTS_DIR}/builtins/builtins_generate_wrapper_header.py \
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins/builtins_generate_wrapper_implementation.py \
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins/builtins_generate_internals_wrapper_header.py \
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins/builtins_generate_internals_wrapper_implementation.py \
</ins><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/lazywriter.py \
</span><span class="cx"> #
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1474,6 +1474,10 @@
</span><span class="cx">                 99DA00A81BD5993100F4575C /* builtins_generate_combined_implementation.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA009F1BD5992700F4575C /* builtins_generate_combined_implementation.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99DA00A91BD5993100F4575C /* builtins_generate_separate_header.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA00A01BD5992700F4575C /* builtins_generate_separate_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99DA00AA1BD5993100F4575C /* builtins_generate_separate_implementation.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA00A11BD5992700F4575C /* builtins_generate_separate_implementation.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                412952771D2CF6BC00E78B89 /* builtins_generate_internals_wrapper_header.py in Resources */ = {isa = PBXBuildFile; fileRef = 412952731D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                412952781D2CF6BC00E78B89 /* builtins_generate_internals_wrapper_implementation.py in Resources */ = {isa = PBXBuildFile; fileRef = 412952741D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_implementation.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                412952791D2CF6BC00E78B89 /* builtins_generate_wrapper_header.py in Resources */ = {isa = PBXBuildFile; fileRef = 412952751D2CF6AC00E78B89 /* builtins_generate_wrapper_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                4129527A1D2CF6BC00E78B89 /* builtins_generate_wrapper_implementation.py in Resources */ = {isa = PBXBuildFile; fileRef = 412952761D2CF6AC00E78B89 /* builtins_generate_wrapper_implementation.py */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 99DA00AF1BD5994E00F4575C /* generate-js-builtins.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA00AC1BD5993E00F4575C /* generate-js-builtins.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99DA00B01BD5994E00F4575C /* lazywriter.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA00AD1BD5993E00F4575C /* lazywriter.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99DA00B11BD5994E00F4575C /* UpdateContents.py in Headers */ = {isa = PBXBuildFile; fileRef = 99DA00AE1BD5993E00F4575C /* UpdateContents.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -3287,6 +3291,10 @@
</span><span class="cx">                 2AF7382A18BBBF92008A5A37 /* StructureIDTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StructureIDTable.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2AF7382B18BBBF92008A5A37 /* StructureIDTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StructureIDTable.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 371D842C17C98B6E00ECF994 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = &quot;compiled.mach-o.dylib&quot;; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
</span><ins>+                412952731D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_header.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = builtins_generate_internals_wrapper_header.py; sourceTree = &quot;&lt;group&gt;&quot;; };
+                412952741D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_implementation.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = builtins_generate_internals_wrapper_implementation.py; sourceTree = &quot;&lt;group&gt;&quot;; };
+                412952751D2CF6AC00E78B89 /* builtins_generate_wrapper_header.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = builtins_generate_wrapper_header.py; sourceTree = &quot;&lt;group&gt;&quot;; };
+                412952761D2CF6AC00E78B89 /* builtins_generate_wrapper_implementation.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = builtins_generate_wrapper_implementation.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 41DEA1311B9F3154006D65DD /* BuiltinUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuiltinUtils.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4319DA011C1BE3C1001D260B /* B3LowerMacrosAfterOptimizations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = B3LowerMacrosAfterOptimizations.cpp; path = b3/B3LowerMacrosAfterOptimizations.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4319DA021C1BE3C1001D260B /* B3LowerMacrosAfterOptimizations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = B3LowerMacrosAfterOptimizations.h; path = b3/B3LowerMacrosAfterOptimizations.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -6710,6 +6718,10 @@
</span><span class="cx">                                 99DA009F1BD5992700F4575C /* builtins_generate_combined_implementation.py */,
</span><span class="cx">                                 99DA00A01BD5992700F4575C /* builtins_generate_separate_header.py */,
</span><span class="cx">                                 99DA00A11BD5992700F4575C /* builtins_generate_separate_implementation.py */,
</span><ins>+                                412952731D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_header.py */,
+                                412952741D2CF6AC00E78B89 /* builtins_generate_internals_wrapper_implementation.py */,
+                                412952751D2CF6AC00E78B89 /* builtins_generate_wrapper_header.py */,
+                                412952761D2CF6AC00E78B89 /* builtins_generate_wrapper_implementation.py */,
</ins><span class="cx">                                 99DA009A1BD5992700F4575C /* builtins_generator.py */,
</span><span class="cx">                                 99DA009B1BD5992700F4575C /* builtins_model.py */,
</span><span class="cx">                                 99DA009C1BD5992700F4575C /* builtins_templates.py */,
</span><span class="lines">@@ -7124,6 +7136,10 @@
</span><span class="cx">                                 FEA0C4031CDD7D1D00481991 /* FunctionWhitelist.h in Headers */,
</span><span class="cx">                                 99DA00AA1BD5993100F4575C /* builtins_generate_separate_implementation.py in Headers */,
</span><span class="cx">                                 99DA00A31BD5993100F4575C /* builtins_generator.py in Headers */,
</span><ins>+                                412952781D2CF6BC00E78B89 /* builtins_generate_internals_wrapper_implementation.py in Headers */,
+                                412952791D2CF6BC00E78B89 /* builtins_generate_wrapper_header.py in Headers */,
+                                4129527A1D2CF6BC00E78B89 /* builtins_generate_wrapper_implementation.py in Headers */,
+                                412952771D2CF6BC00E78B89 /* builtins_generate_internals_wrapper_header.py in Headers */,
</ins><span class="cx">                                 FE3A06A61C10B72D00390FDD /* JITBitOrGenerator.h in Headers */,
</span><span class="cx">                                 99DA00A41BD5993100F4575C /* builtins_model.py in Headers */,
</span><span class="cx">                                 99DA00A51BD5993100F4575C /* builtins_templates.py in Headers */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltinspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/builtins/builtins.py (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins.py        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -9,3 +9,7 @@
</span><span class="cx"> from builtins_generate_combined_implementation import *
</span><span class="cx"> from builtins_generate_separate_header import *
</span><span class="cx"> from builtins_generate_separate_implementation import *
</span><ins>+from builtins_generate_wrapper_header import *
+from builtins_generate_wrapper_implementation import *
+from builtins_generate_internals_wrapper_header import *
+from builtins_generate_internals_wrapper_implementation import *
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_internals_wrapper_headerpy"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py (0 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_header.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (c) 2016 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+
+import logging
+from string import Template
+
+from builtins_generator import BuiltinsGenerator, WK_lcfirst, WK_ucfirst
+from builtins_templates import BuiltinsGeneratorTemplates as Templates
+
+log = logging.getLogger('global')
+
+
+class BuiltinsInternalsWrapperHeaderGenerator(BuiltinsGenerator):
+    def __init__(self, model):
+        BuiltinsGenerator.__init__(self, model)
+        self.internals = filter(lambda object: 'internal' in object.annotations, model.objects)
+
+    def output_filename(self):
+        return &quot;%sJSBuiltinInternals.h&quot; % self.model().framework.setting('namespace')
+
+    def generate_output(self):
+        args = {
+            'namespace': self.model().framework.setting('namespace'),
+            'headerGuard': self.output_filename().replace('.', '_'),
+        }
+
+        sections = []
+        sections.append(self.generate_license())
+        sections.append(Template(Templates.DoNotEditWarning).substitute(args))
+        sections.append(Template(Templates.HeaderIncludeGuard).substitute(args))
+        sections.append(self.generate_secondary_header_includes())
+
+        sections.append(Template(Templates.NamespaceTop).substitute(args))
+        sections.append(self.generate_section_for_object())
+        sections.append(Template(Templates.NamespaceBottom).substitute(args))
+
+        return &quot;\n\n&quot;.join(sections)
+
+    def generate_secondary_header_includes(self):
+        header_includes = [
+            ([&quot;WebCore&quot;],
+                (&quot;JavaScriptCore&quot;, &quot;runtime/VM.h&quot;),
+            ),
+        ]
+        for object in self.internals:
+            header_includes.append(([&quot;WebCore&quot;], (&quot;WebCore&quot;, object.object_name + &quot;Builtins.h&quot;)))
+
+        return '\n'.join(self.generate_includes_from_entries(header_includes))
+
+    def generate_section_for_object(self):
+        lines = [&quot;class JSDOMGlobalObject;&quot;,
+                 &quot;&quot;,
+                 &quot;class JSBuiltinInternalFunctions {&quot;,
+                 &quot;public:&quot;]
+
+        lines.append(&quot;    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);&quot;)
+        lines.append(self.generate_methods())
+        lines.append(self.generate_accessors())
+        lines.append(&quot;private:&quot;)
+        lines.append(self.generate_members())
+        lines.append(&quot;};&quot;)
+        return '\n'.join(lines)
+
+    def accessor_name(self, object):
+        return WK_lcfirst(object.object_name)
+
+    def member_name(self, object):
+        return &quot;m_&quot; + self.accessor_name(object)
+
+    def member_type(self, object):
+        return WK_ucfirst(object.object_name) + &quot;BuiltinFunctions&quot;
+
+    def generate_methods(self):
+        return &quot;&quot;&quot;
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+&quot;&quot;&quot;
+
+    def generate_accessors(self):
+        lines = []
+        for object in self.internals:
+            accessor = &quot;    %s&amp; %s() { return %s; }&quot; % (self.member_type(object), self.accessor_name(object), self.member_name(object))
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), accessor))
+        lines.append(&quot;&quot;)
+        return '\n'.join(lines)
+
+    def generate_members(self):
+        lines = [&quot;    JSC::VM&amp; m_vm;&quot;]
+        for object in self.internals:
+            member = &quot;    %s %s;&quot; % (self.member_type(object), self.member_name(object))
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member))
+        return '\n'.join(lines)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_internals_wrapper_implementationpy"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py (0 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -0,0 +1,138 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (c) 2016 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+
+import logging
+from string import Template
+
+from builtins_generator import BuiltinsGenerator, WK_lcfirst, WK_ucfirst
+from builtins_templates import BuiltinsGeneratorTemplates as Templates
+
+log = logging.getLogger('global')
+
+
+class BuiltinsInternalsWrapperImplementationGenerator(BuiltinsGenerator):
+    def __init__(self, model):
+        BuiltinsGenerator.__init__(self, model)
+        self.internals = filter(lambda object: 'internal' in object.annotations, model.objects)
+
+    def output_filename(self):
+        return &quot;%sJSBuiltinInternals.cpp&quot; % self.model().framework.setting('namespace')
+
+    def generate_output(self):
+        args = {
+            'namespace': self.model().framework.setting('namespace'),
+            'headerGuard': self.output_filename().replace('.', '_'),
+        }
+
+        sections = []
+        sections.append(self.generate_license())
+        sections.append(Template(Templates.DoNotEditWarning).substitute(args))
+        sections.append(self.generate_primary_header_includes())
+        sections.append(self.generate_secondary_header_includes())
+
+        sections.append(Template(Templates.NamespaceTop).substitute(args))
+        sections.append(self.generate_section_for_object())
+        sections.append(Template(Templates.NamespaceBottom).substitute(args))
+
+        return &quot;\n\n&quot;.join(sections)
+
+    def generate_secondary_header_includes(self):
+        header_includes = [
+            ([&quot;WebCore&quot;],
+                (&quot;WebCore&quot;, &quot;JSDOMGlobalObject.h&quot;),
+            ),
+            ([&quot;WebCore&quot;],
+                (&quot;WebCore&quot;, &quot;WebCoreJSClientData.h&quot;),
+            ),
+            ([&quot;WebCore&quot;],
+                (&quot;JavaScriptCore&quot;, &quot;heap/SlotVisitorInlines.h&quot;),
+            ),
+            ([&quot;WebCore&quot;],
+                (&quot;JavaScriptCore&quot;, &quot;runtime/JSCJSValueInlines.h&quot;),
+            ),
+            ([&quot;WebCore&quot;],
+                (&quot;JavaScriptCore&quot;, &quot;runtime/StructureInlines.h&quot;),
+            ),
+        ]
+        return '\n'.join(self.generate_includes_from_entries(header_includes))
+
+    def generate_section_for_object(self):
+        lines = []
+
+        lines.append(self.generate_constructor())
+        lines.append(self.generate_methods())
+        return '\n'.join(lines)
+
+    def accessor_name(self, object):
+        return WK_lcfirst(object.object_name)
+
+    def member_name(self, object):
+        return &quot;m_&quot; + self.accessor_name(object)
+
+    def member_type(self, object):
+        return WK_ucfirst(object.object_name) + &quot;BuiltinFunctions&quot;
+
+    def generate_constructor(self):
+        lines = [&quot;JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)&quot;,
+                 &quot;    : m_vm(vm)&quot;]
+        for object in self.internals:
+            initializer = &quot;    , %s(m_vm)&quot; % self.member_name(object)
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), initializer))
+        lines.append(&quot;{\n}\n&quot;)
+        return '\n'.join(lines)
+
+    def property_macro(self, object):
+        lines = []
+        lines.append(&quot;#define DECLARE_GLOBAL_STATIC(name) \\&quot;)
+        lines.append(&quot;    JSDOMGlobalObject::GlobalPropertyInfo( \\&quot;)
+        lines.append(&quot;        clientData.builtinFunctions().%sBuiltins().name##PrivateName(), %s().m_##name##Function.get() , JSC::DontDelete | JSC::ReadOnly),&quot; % (self.accessor_name(object), self.accessor_name(object)))
+        lines.append(&quot;    WEBCORE_FOREACH_%s_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)&quot; % object.object_name.upper())
+        lines.append(&quot;#undef DECLARE_GLOBAL_STATIC&quot;)
+        return '\n'.join(lines)
+
+    def generate_methods(self):
+        lines = [&quot;void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)&quot;,
+                 &quot;{&quot;]
+        for object in self.internals:
+            visit = &quot;    %s.visit(visitor);&quot; % self.member_name(object)
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), visit))
+        lines.append(&quot;    UNUSED_PARAM(visitor);\n}&quot;)
+
+        lines.append(&quot;void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)&quot;)
+        lines.append(&quot;{&quot;)
+        for object in self.internals:
+            init = &quot;    %s.init(globalObject);&quot; % self.member_name(object)
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), init))
+
+        lines.append(&quot;    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);&quot;)
+        lines.append(&quot;    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {&quot;)
+        for object in self.internals:
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), self.property_macro(object)))
+        lines.append(&quot;    };&quot;)
+        lines.append(&quot;    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));&quot;)
+        lines.append(&quot;    UNUSED_PARAM(clientData);&quot;)
+        lines.append(&quot;}&quot;)
+        return '\n'.join(lines)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_wrapper_headerpy"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_header.py (0 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_header.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_header.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -0,0 +1,120 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (c) 2016 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+
+import logging
+from string import Template
+
+from builtins_generator import BuiltinsGenerator, WK_lcfirst, WK_ucfirst
+from builtins_templates import BuiltinsGeneratorTemplates as Templates
+
+log = logging.getLogger('global')
+
+
+class BuiltinsWrapperHeaderGenerator(BuiltinsGenerator):
+    def __init__(self, model):
+        BuiltinsGenerator.__init__(self, model)
+
+    def output_filename(self):
+        return &quot;%sJSBuiltins.h&quot; % self.model().framework.setting('namespace')
+
+    def generate_output(self):
+        args = {
+            'namespace': self.model().framework.setting('namespace'),
+            'headerGuard': self.output_filename().replace('.', '_'),
+        }
+
+        sections = []
+        sections.append(self.generate_license())
+        sections.append(Template(Templates.DoNotEditWarning).substitute(args))
+        sections.append(Template(Templates.HeaderIncludeGuard).substitute(args))
+        sections.append(self.generate_secondary_header_includes())
+
+        sections.append(Template(Templates.NamespaceTop).substitute(args))
+        sections.append(self.generate_section_for_object())
+        sections.append(Template(Templates.NamespaceBottom).substitute(args))
+
+        return &quot;\n\n&quot;.join(sections)
+
+    def generate_secondary_header_includes(self):
+        header_includes = [
+            ([&quot;WebCore&quot;],
+                (&quot;JavaScriptCore&quot;, &quot;runtime/VM.h&quot;),
+            ),
+        ]
+        for object in self.model().objects:
+            header_includes.append(([&quot;WebCore&quot;], (&quot;WebCore&quot;, object.object_name + &quot;Builtins.h&quot;)))
+
+        return '\n'.join(self.generate_includes_from_entries(header_includes))
+
+    def generate_section_for_object(self):
+        lines = [&quot;class JSBuiltinFunctions {&quot;,
+                 &quot;public:&quot;]
+
+        lines.append(self.generate_constructor())
+        lines.append(self.generate_accessors())
+        lines.append(&quot;private:&quot;)
+        lines.append(self.generate_members())
+        lines.append(&quot;};&quot;)
+        return '\n'.join(lines)
+
+    def accessor_name(self, object):
+        return WK_lcfirst(object.object_name) + &quot;Builtins&quot;
+
+    def member_name(self, object):
+        return &quot;m_&quot; + self.accessor_name(object)
+
+    def member_type(self, object):
+        return WK_ucfirst(object.object_name) + &quot;BuiltinsWrapper&quot;
+
+    def generate_constructor(self):
+        lines = [&quot;    explicit JSBuiltinFunctions(JSC::VM&amp; vm)&quot;,
+                 &quot;        : m_vm(vm)&quot;]
+        for object in self.model().objects:
+            member_init = &quot;        , %s(&amp;m_vm)&quot; % self.member_name(object)
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member_init))
+        lines.append(&quot;    {&quot;)
+        for object in self.model().objects:
+            if not 'internal' in object.annotations:
+                continue
+            internal_export_names = &quot;        %s.exportNames();&quot; % self.member_name(object)
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), internal_export_names))
+        lines.append(&quot;    }\n&quot;)
+        return '\n'.join(lines)
+
+    def generate_accessors(self):
+        lines = []
+        for object in self.model().objects:
+            accessor = &quot;    %s&amp; %s() { return %s; }&quot; % (self.member_type(object), self.accessor_name(object), self.member_name(object))
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), accessor))
+        lines.append(&quot;&quot;)
+        return '\n'.join(lines)
+
+    def generate_members(self):
+        lines = [&quot;    JSC::VM&amp; m_vm;&quot;]
+        for object in self.model().objects:
+            member = &quot;    %s %s;&quot; % (self.member_type(object), self.member_name(object))
+            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member))
+        return '\n'.join(lines)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_wrapper_implementationpy"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_implementation.py (0 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_implementation.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_implementation.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (c) 2016 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+
+import logging
+from string import Template
+
+from builtins_generator import BuiltinsGenerator
+from builtins_templates import BuiltinsGeneratorTemplates as Templates
+
+log = logging.getLogger('global')
+
+
+class BuiltinsWrapperImplementationGenerator(BuiltinsGenerator):
+    def __init__(self, model):
+        BuiltinsGenerator.__init__(self, model)
+
+    def output_filename(self):
+        return &quot;%sJSBuiltins.cpp&quot; % self.model().framework.setting('namespace')
+
+    def generate_output(self):
+        args = {
+            'namespace': self.model().framework.setting('namespace'),
+            'headerGuard': self.output_filename().replace('.', '_'),
+        }
+
+        sections = []
+        sections.append(self.generate_license())
+        sections.append(Template(Templates.DoNotEditWarning).substitute(args))
+
+        sections.append(self.generate_section_for_object())
+
+        return &quot;\n\n&quot;.join(sections)
+
+    def generate_section_for_object(self):
+        header_includes = []
+        for object in self.model().objects:
+            header_includes.append(([&quot;WebCore&quot;], (&quot;WebCore&quot;, object.object_name + &quot;Builtins.cpp&quot;)))
+
+        return '\n'.join(self.generate_includes_from_entries(header_includes))
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generator.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -143,6 +143,16 @@
</span><span class="cx">     # Helper methods.
</span><span class="cx"> 
</span><span class="cx">     @staticmethod
</span><ins>+    def wrap_with_guard(guard, text):
+        if not guard:
+            return text
+        return '\n'.join([
+            '#if %s' % guard,
+            text,
+            '#endif // %s' % guard,
+        ])
+
+    @staticmethod
</ins><span class="cx">     def mangledNameForObject(object):
</span><span class="cx">         if not isinstance(object, BuiltinObject):
</span><span class="cx">             raise Exception(&quot;Invalid argument passed to mangledNameForObject()&quot;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsgeneratejsbuiltinspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/generate-js-builtins.py (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/generate-js-builtins.py        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/generate-js-builtins.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx">                                          output_path=None,
</span><span class="cx">                                          concatenate_output=False,
</span><span class="cx">                                          combined_output=False,
</span><ins>+                                         generate_wrapper_files=False,
</ins><span class="cx">                                          framework_name=&quot;&quot;,
</span><span class="cx">                                          force_output=False):
</span><span class="cx"> 
</span><span class="lines">@@ -74,6 +75,13 @@
</span><span class="cx">             generators.append(BuiltinsSeparateHeaderGenerator(model, object))
</span><span class="cx">             generators.append(BuiltinsSeparateImplementationGenerator(model, object))
</span><span class="cx"> 
</span><ins>+        if generate_wrapper_files:
+            generators.append(BuiltinsWrapperHeaderGenerator(model))
+            generators.append(BuiltinsWrapperImplementationGenerator(model))
+
+            generators.append(BuiltinsInternalsWrapperHeaderGenerator(model))
+            generators.append(BuiltinsInternalsWrapperImplementationGenerator(model))
+
</ins><span class="cx">     log.debug(&quot;&quot;)
</span><span class="cx">     log.debug(&quot;Generating bindings for builtins.&quot;)
</span><span class="cx"> 
</span><span class="lines">@@ -114,6 +122,7 @@
</span><span class="cx">     cli_parser.add_option(&quot;--framework&quot;, type=&quot;choice&quot;, choices=allowed_framework_names, help=&quot;Destination framework for generated files.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;--force&quot;, action=&quot;store_true&quot;, help=&quot;Force output of generated scripts, even if nothing changed.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;--combined&quot;, action=&quot;store_true&quot;, help=&quot;Produce one .h/.cpp file instead of producing one per builtin object.&quot;)
</span><ins>+    cli_parser.add_option(&quot;--wrappers&quot;, action=&quot;store_true&quot;, help=&quot;Produce .h/.cpp wrapper files to ease integration of the builtins.&quot;)
</ins><span class="cx">     cli_parser.add_option(&quot;-v&quot;, &quot;--debug&quot;, action=&quot;store_true&quot;, help=&quot;Log extra output for debugging the generator itself.&quot;)
</span><span class="cx">     cli_parser.add_option(&quot;-t&quot;, &quot;--test&quot;, action=&quot;store_true&quot;, help=&quot;Enable test mode.&quot;)
</span><span class="cx"> 
</span><span class="lines">@@ -138,6 +147,7 @@
</span><span class="cx">         'output_path': arg_options.output_directory,
</span><span class="cx">         'framework_name': arg_options.framework,
</span><span class="cx">         'combined_output': arg_options.combined,
</span><ins>+        'generate_wrapper_files': arg_options.wrappers,
</ins><span class="cx">         'force_output': arg_options.force,
</span><span class="cx">         'concatenate_output': arg_options.test,
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -193,3 +193,212 @@
</span><span class="cx"> #endif // ENABLE(STREAMS_API) || USE(CF)
</span><span class="cx"> 
</span><span class="cx"> ### End File: ArbitraryConditionalGuardBuiltins.cpp
</span><ins>+
+### Begin File: WebCoreJSBuiltins.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;ArbitraryConditionalGuardBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+    explicit JSBuiltinFunctions(JSC::VM&amp; vm)
+        : m_vm(vm)
+#if ENABLE(STREAMS_API) || USE(CF)
+        , m_arbitraryConditionalGuardBuiltins(&amp;m_vm)
+#endif // ENABLE(STREAMS_API) || USE(CF)
+    {
+    }
+
+#if ENABLE(STREAMS_API) || USE(CF)
+    ArbitraryConditionalGuardBuiltinsWrapper&amp; arbitraryConditionalGuardBuiltins() { return m_arbitraryConditionalGuardBuiltins; }
+#endif // ENABLE(STREAMS_API) || USE(CF)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API) || USE(CF)
+    ArbitraryConditionalGuardBuiltinsWrapper m_arbitraryConditionalGuardBuiltins;
+#endif // ENABLE(STREAMS_API) || USE(CF)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltins.h
+
+### Begin File: WebCoreJSBuiltins.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include &quot;ArbitraryConditionalGuardBuiltins.cpp&quot;
+### End File: WebCoreJSBuiltins.cpp
+
+### Begin File: WebCoreJSBuiltinInternals.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSDOMGlobalObject;
+
+class JSBuiltinInternalFunctions {
+public:
+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+
+
+private:
+    JSC::VM&amp; m_vm;
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.h
+
+### Begin File: WebCoreJSBuiltinInternals.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#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;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)
+    : m_vm(vm)
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+    UNUSED_PARAM(visitor);
+}
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)
+{
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+    };
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+    UNUSED_PARAM(clientData);
+}
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.cpp
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -193,3 +193,212 @@
</span><span class="cx"> #endif // ENABLE(STREAMS_API)
</span><span class="cx"> 
</span><span class="cx"> ### End File: GuardedBuiltinBuiltins.cpp
</span><ins>+
+### Begin File: WebCoreJSBuiltins.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;GuardedBuiltinBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+    explicit JSBuiltinFunctions(JSC::VM&amp; vm)
+        : m_vm(vm)
+#if ENABLE(STREAMS_API)
+        , m_guardedBuiltinBuiltins(&amp;m_vm)
+#endif // ENABLE(STREAMS_API)
+    {
+    }
+
+#if ENABLE(STREAMS_API)
+    GuardedBuiltinBuiltinsWrapper&amp; guardedBuiltinBuiltins() { return m_guardedBuiltinBuiltins; }
+#endif // ENABLE(STREAMS_API)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API)
+    GuardedBuiltinBuiltinsWrapper m_guardedBuiltinBuiltins;
+#endif // ENABLE(STREAMS_API)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltins.h
+
+### Begin File: WebCoreJSBuiltins.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include &quot;GuardedBuiltinBuiltins.cpp&quot;
+### End File: WebCoreJSBuiltins.cpp
+
+### Begin File: WebCoreJSBuiltinInternals.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSDOMGlobalObject;
+
+class JSBuiltinInternalFunctions {
+public:
+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+
+
+private:
+    JSC::VM&amp; m_vm;
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.h
+
+### Begin File: WebCoreJSBuiltinInternals.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#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;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)
+    : m_vm(vm)
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+    UNUSED_PARAM(visitor);
+}
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)
+{
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+    };
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+    UNUSED_PARAM(clientData);
+}
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.cpp
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -225,3 +225,238 @@
</span><span class="cx"> #endif // ENABLE(STREAMS_API)
</span><span class="cx"> 
</span><span class="cx"> ### End File: GuardedInternalBuiltinBuiltins.cpp
</span><ins>+
+### Begin File: WebCoreJSBuiltins.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;GuardedInternalBuiltinBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+    explicit JSBuiltinFunctions(JSC::VM&amp; vm)
+        : m_vm(vm)
+#if ENABLE(STREAMS_API)
+        , m_guardedInternalBuiltinBuiltins(&amp;m_vm)
+#endif // ENABLE(STREAMS_API)
+    {
+#if ENABLE(STREAMS_API)
+        m_guardedInternalBuiltinBuiltins.exportNames();
+#endif // ENABLE(STREAMS_API)
+    }
+
+#if ENABLE(STREAMS_API)
+    GuardedInternalBuiltinBuiltinsWrapper&amp; guardedInternalBuiltinBuiltins() { return m_guardedInternalBuiltinBuiltins; }
+#endif // ENABLE(STREAMS_API)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API)
+    GuardedInternalBuiltinBuiltinsWrapper m_guardedInternalBuiltinBuiltins;
+#endif // ENABLE(STREAMS_API)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltins.h
+
+### Begin File: WebCoreJSBuiltins.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include &quot;GuardedInternalBuiltinBuiltins.cpp&quot;
+### End File: WebCoreJSBuiltins.cpp
+
+### Begin File: WebCoreJSBuiltinInternals.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;GuardedInternalBuiltinBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSDOMGlobalObject;
+
+class JSBuiltinInternalFunctions {
+public:
+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+
+#if ENABLE(STREAMS_API)
+    GuardedInternalBuiltinBuiltinFunctions&amp; guardedInternalBuiltin() { return m_guardedInternalBuiltin; }
+#endif // ENABLE(STREAMS_API)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API)
+    GuardedInternalBuiltinBuiltinFunctions m_guardedInternalBuiltin;
+#endif // ENABLE(STREAMS_API)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.h
+
+### Begin File: WebCoreJSBuiltinInternals.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#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;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)
+    : m_vm(vm)
+#if ENABLE(STREAMS_API)
+    , m_guardedInternalBuiltin(m_vm)
+#endif // ENABLE(STREAMS_API)
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+#if ENABLE(STREAMS_API)
+    m_guardedInternalBuiltin.visit(visitor);
+#endif // ENABLE(STREAMS_API)
+    UNUSED_PARAM(visitor);
+}
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)
+{
+#if ENABLE(STREAMS_API)
+    m_guardedInternalBuiltin.init(globalObject);
+#endif // ENABLE(STREAMS_API)
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+#if ENABLE(STREAMS_API)
+#define DECLARE_GLOBAL_STATIC(name) \
+    JSDOMGlobalObject::GlobalPropertyInfo( \
+        clientData.builtinFunctions().guardedInternalBuiltinBuiltins().name##PrivateName(), guardedInternalBuiltin().m_##name##Function.get() , JSC::DontDelete | JSC::ReadOnly),
+    WEBCORE_FOREACH_GUARDEDINTERNALBUILTIN_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#endif // ENABLE(STREAMS_API)
+    };
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+    UNUSED_PARAM(clientData);
+}
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.cpp
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -184,3 +184,206 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> ### End File: UnguardedBuiltinBuiltins.cpp
</span><ins>+
+### Begin File: WebCoreJSBuiltins.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;UnguardedBuiltinBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+    explicit JSBuiltinFunctions(JSC::VM&amp; vm)
+        : m_vm(vm)
+        , m_unguardedBuiltinBuiltins(&amp;m_vm)
+    {
+    }
+
+    UnguardedBuiltinBuiltinsWrapper&amp; unguardedBuiltinBuiltins() { return m_unguardedBuiltinBuiltins; }
+
+private:
+    JSC::VM&amp; m_vm;
+    UnguardedBuiltinBuiltinsWrapper m_unguardedBuiltinBuiltins;
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltins.h
+
+### Begin File: WebCoreJSBuiltins.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include &quot;UnguardedBuiltinBuiltins.cpp&quot;
+### End File: WebCoreJSBuiltins.cpp
+
+### Begin File: WebCoreJSBuiltinInternals.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSDOMGlobalObject;
+
+class JSBuiltinInternalFunctions {
+public:
+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+
+
+private:
+    JSC::VM&amp; m_vm;
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.h
+
+### Begin File: WebCoreJSBuiltinInternals.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#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;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)
+    : m_vm(vm)
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+    UNUSED_PARAM(visitor);
+}
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)
+{
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+    };
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+    UNUSED_PARAM(clientData);
+}
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.cpp
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -276,3 +276,238 @@
</span><span class="cx"> #endif // ENABLE(STREAMS_API)
</span><span class="cx"> 
</span><span class="cx"> ### End File: xmlCasingTestBuiltins.cpp
</span><ins>+
+### Begin File: WebCoreJSBuiltins.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;xmlCasingTestBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+    explicit JSBuiltinFunctions(JSC::VM&amp; vm)
+        : m_vm(vm)
+#if ENABLE(STREAMS_API)
+        , m_xmlCasingTestBuiltins(&amp;m_vm)
+#endif // ENABLE(STREAMS_API)
+    {
+#if ENABLE(STREAMS_API)
+        m_xmlCasingTestBuiltins.exportNames();
+#endif // ENABLE(STREAMS_API)
+    }
+
+#if ENABLE(STREAMS_API)
+    XMLCasingTestBuiltinsWrapper&amp; xmlCasingTestBuiltins() { return m_xmlCasingTestBuiltins; }
+#endif // ENABLE(STREAMS_API)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API)
+    XMLCasingTestBuiltinsWrapper m_xmlCasingTestBuiltins;
+#endif // ENABLE(STREAMS_API)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltins.h
+
+### Begin File: WebCoreJSBuiltins.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#include &quot;xmlCasingTestBuiltins.cpp&quot;
+### End File: WebCoreJSBuiltins.cpp
+
+### Begin File: WebCoreJSBuiltinInternals.h
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#pragma once
+
+#include &quot;xmlCasingTestBuiltins.h&quot;
+#include &lt;runtime/VM.h&gt;
+
+namespace WebCore {
+
+class JSDOMGlobalObject;
+
+class JSBuiltinInternalFunctions {
+public:
+    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
+
+    void visit(JSC::SlotVisitor&amp;);
+    void initialize(JSDOMGlobalObject&amp;);
+
+#if ENABLE(STREAMS_API)
+    XMLCasingTestBuiltinFunctions&amp; xmlCasingTest() { return m_xmlCasingTest; }
+#endif // ENABLE(STREAMS_API)
+
+private:
+    JSC::VM&amp; m_vm;
+#if ENABLE(STREAMS_API)
+    XMLCasingTestBuiltinFunctions m_xmlCasingTest;
+#endif // ENABLE(STREAMS_API)
+};
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.h
+
+### Begin File: WebCoreJSBuiltinInternals.cpp
+/*
+ * 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.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for
+// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py
+
+#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;
+
+namespace WebCore {
+
+JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM&amp; vm)
+    : m_vm(vm)
+#if ENABLE(STREAMS_API)
+    , m_xmlCasingTest(m_vm)
+#endif // ENABLE(STREAMS_API)
+{
+}
+
+void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
+{
+#if ENABLE(STREAMS_API)
+    m_xmlCasingTest.visit(visitor);
+#endif // ENABLE(STREAMS_API)
+    UNUSED_PARAM(visitor);
+}
+void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject)
+{
+#if ENABLE(STREAMS_API)
+    m_xmlCasingTest.init(globalObject);
+#endif // ENABLE(STREAMS_API)
+    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(m_vm.clientData);
+    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
+#if ENABLE(STREAMS_API)
+#define DECLARE_GLOBAL_STATIC(name) \
+    JSDOMGlobalObject::GlobalPropertyInfo( \
+        clientData.builtinFunctions().xmlCasingTestBuiltins().name##PrivateName(), xmlCasingTest().m_##name##Function.get() , JSC::DontDelete | JSC::ReadOnly),
+    WEBCORE_FOREACH_XMLCASINGTEST_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
+#undef DECLARE_GLOBAL_STATIC
+#endif // ENABLE(STREAMS_API)
+    };
+    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
+    UNUSED_PARAM(clientData);
+}
+
+} // namespace WebCore
+### End File: WebCoreJSBuiltinInternals.cpp
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1238,8 +1238,6 @@
</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><del>-    bindings/js/WebCoreJSBuiltinInternals.cpp
-    bindings/js/WebCoreJSBuiltins.cpp
</del><span class="cx">     bindings/js/WebCoreTypedArrayController.cpp
</span><span class="cx">     bindings/js/WorkerScriptController.cpp
</span><span class="cx"> 
</span><span class="lines">@@ -3736,6 +3734,10 @@
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
</span><ins>+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_header.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_implementation.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_header.py
+    ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_implementation.py
</ins><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
</span><span class="cx">     ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
</span><span class="cx"> )
</span><span class="lines">@@ -3742,20 +3744,22 @@
</span><span class="cx"> 
</span><span class="cx"> foreach (_builtinSource ${WebCore_BUILTINS_SOURCES})
</span><span class="cx">     get_filename_component(_objectName ${_builtinSource} NAME_WE)
</span><del>-    add_custom_command(
-        OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_objectName}Builtins.cpp
-               ${DERIVED_SOURCES_WEBCORE_DIR}/${_objectName}Builtins.h
-        MAIN_DEPENDENCY ${_builtinSource}
-        DEPENDS ${BUILTINS_GENERATOR_SCRIPTS}
-        COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py --framework WebCore --output-directory ${DERIVED_SOURCES_WEBCORE_DIR} ${_builtinSource}
-        VERBATIM)
-    list(APPEND WebCore_DERIVED_SOURCES
-        ${DERIVED_SOURCES_WEBCORE_DIR}/${_objectName}Builtins.h
-    )
-    ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/bindings/js/WebCoreJSBuiltins.cpp ${_objectName}Builtins.cpp)
</del><ins>+    list(APPEND WebCore_GENERATED_BUILTINS ${DERIVED_SOURCES_WEBCORE_DIR}/${_objectName}Builtins.h)
+    list(APPEND WebCore_GENERATED_BUILTINS ${DERIVED_SOURCES_WEBCORE_DIR}/${_objectName}Builtins.cpp)
</ins><span class="cx"> endforeach ()
</span><ins>+list(APPEND WebCore_GENERATED_BUILTINS ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.h)
+list(APPEND WebCore_GENERATED_BUILTINS ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.h)
+list(APPEND WebCore_GENERATED_BUILTINS ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.cpp)
</ins><span class="cx"> 
</span><ins>+add_custom_command(
+    OUTPUT ${WebCore_GENERATED_BUILTINS}
+    MAIN_DEPENDENCY ${WebCore_BUILTINS_SOURCES}
+    DEPENDS ${BUILTINS_GENERATOR_SCRIPTS}
+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py --wrappers --framework WebCore --output-directory ${DERIVED_SOURCES_WEBCORE_DIR} ${WebCore_BUILTINS_SOURCES}
+    VERBATIM)
</ins><span class="cx"> 
</span><ins>+list(APPEND WebCore_DERIVED_SOURCES ${WebCore_GENERATED_BUILTINS})
+
</ins><span class="cx"> ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/HTMLTreeBuilder.cpp MathMLNames.cpp)
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/ChangeLog        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2016-07-08  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        Generate WebCore builtin wrapper files
+        https://bugs.webkit.org/show_bug.cgi?id=159461
+
+        Reviewed by Brian Burg.
+
+        No change of behavior.
+
+        Updating build system to handle new built-in generators without modifying WebCoreJSBuiltins* files.
+        The generator is now passed all built-ins at once so that wrapper files can be generated.
+        Removing WebCoreJSBuiltins* checked-in wrapper files.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSDOMGlobalObject.cpp:
+        (WebCore::JSDOMGlobalObject::addBuiltinGlobals):
+        * bindings/js/JSDOMGlobalObject.h:
+        * bindings/js/WebCoreJSBuiltinInternals.cpp: Removed.
+        * bindings/js/WebCoreJSBuiltinInternals.h: Removed.
+        * bindings/js/WebCoreJSBuiltins.cpp: Removed.
+        * bindings/js/WebCoreJSBuiltins.h: Removed.
+
</ins><span class="cx"> 2016-07-08  Manuel Rego Casasnovas  &lt;rego@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [css-grid] Inline size is never indefinite during layout
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/DerivedSources.make        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1309,6 +1309,10 @@
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_combined_implementation.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_separate_header.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_separate_implementation.py \
</span><ins>+    $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_internals_wrapper_header.py \
+    $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_internals_wrapper_implementation.py \
+    $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_wrapper_header.py \
+    $(JavaScriptCore_SCRIPTS_DIR)/builtins_generate_wrapper_implementation.py \
</ins><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py \
</span><span class="cx">     $(JavaScriptCore_SCRIPTS_DIR)/lazywriter.py \
</span><span class="cx"> #
</span><span class="lines">@@ -1315,16 +1319,17 @@
</span><span class="cx"> 
</span><span class="cx"> # Adding/removing scripts should trigger regeneration, but changing which builtins are
</span><span class="cx"> # generated should not affect other builtins when not passing '--combined' to the generator.
</span><ins>+# WebCore_BUILTINS_SOURCE_LIST = $(shell echo $(WebCore_BUILTINS_SOURCES) | perl -e 'print &quot; &quot; . join(&quot; -I&quot;, split(&quot; &quot;, &lt;&gt;));')
</ins><span class="cx"> 
</span><span class="cx"> .PHONY: force
</span><span class="cx"> WebCore_BUILTINS_DEPENDENCIES_LIST : $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py force
</span><span class="cx">         $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py '$(BUILTINS_GENERATOR_SCRIPTS)' $@
</span><span class="cx"> 
</span><del>-%Builtins.h: %.js $(BUILTINS_GENERATOR_SCRIPTS) WebCore_BUILTINS_DEPENDENCIES_LIST
-        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py --output-directory . --framework WebCore $&lt;
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py --wrappers --output-directory . --framework WebCore $(WebCore_BUILTINS_SOURCES)
</ins><span class="cx"> 
</span><del>-all : $(notdir $(WebCore_BUILTINS_SOURCES:%.js=%Builtins.h))
</del><span class="cx"> 
</span><ins>+all : WebCore_BUILTINS_DEPENDENCIES_LIST
+
</ins><span class="cx"> # ------------------------
</span><span class="cx"> 
</span><span class="cx"> # Mac-specific rules
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1563,7 +1563,6 @@
</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><del>-                410D33241C19985000F7FDE2 /* WebCoreJSBuiltinInternals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */; };
</del><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">@@ -1614,9 +1613,6 @@
</span><span class="cx">                 418F88050FF957AF0080F045 /* JSAbstractWorker.h in Headers */ = {isa = PBXBuildFile; fileRef = 418F88030FF957AE0080F045 /* JSAbstractWorker.h */; };
</span><span class="cx">                 419BC2DE1685329900D64D6D /* VisitedLinkState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 419BC2DC1685329900D64D6D /* VisitedLinkState.cpp */; };
</span><span class="cx">                 419BC2DF1685329900D64D6D /* VisitedLinkState.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BC2DD1685329900D64D6D /* VisitedLinkState.h */; };
</span><del>-                419BE7561BC7F41B00E1C85B /* WebCoreJSBuiltinInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BE7531BC7F3DB00E1C85B /* WebCoreJSBuiltinInternals.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                419BE7571BC7F42100E1C85B /* WebCoreJSBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 419BE7541BC7F3DB00E1C85B /* WebCoreJSBuiltins.cpp */; };
-                419BE7581BC7F42700E1C85B /* WebCoreJSBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BE7551BC7F3DB00E1C85B /* WebCoreJSBuiltins.h */; };
</del><span class="cx">                 419BE7591BC7F42B00E1C85B /* WebCoreBuiltinNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */; };
</span><span class="cx">                 41A3D58E101C152D00316D07 /* DedicatedWorkerThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41A3D58C101C152D00316D07 /* DedicatedWorkerThread.cpp */; };
</span><span class="cx">                 41A3D58F101C152D00316D07 /* DedicatedWorkerThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A3D58D101C152D00316D07 /* DedicatedWorkerThread.h */; };
</span><span class="lines">@@ -5543,7 +5539,11 @@
</span><span class="cx">                 BC33FB1B0F30EE85002CDD7C /* RenderLineBoxList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC33FB1A0F30EE85002CDD7C /* RenderLineBoxList.cpp */; };
</span><span class="cx">                 BC348BBE0DB7F531004ABAB9 /* JSXMLHttpRequestCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC348BBD0DB7F531004ABAB9 /* JSXMLHttpRequestCustom.cpp */; };
</span><span class="cx">                 BC348BD30DB7F804004ABAB9 /* JSXMLHttpRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC348BD10DB7F804004ABAB9 /* JSXMLHttpRequest.cpp */; };
</span><ins>+                BC348BD30DB7F804004ABABA /* WebCoreJSBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC348BD10DB7F804004ABABA /* WebCoreJSBuiltins.cpp */; };
+                BC348BD30DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC348BD10DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp */; };
</ins><span class="cx">                 BC348BD40DB7F804004ABAB9 /* JSXMLHttpRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BC348BD20DB7F804004ABAB9 /* JSXMLHttpRequest.h */; };
</span><ins>+                BC348BD40DB7F804004ABABA /* WebCoreJSBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = BC348BD20DB7F804004ABABA /* WebCoreJSBuiltins.h */; };
+                BC348BD40DB7F804004ABABB /* WebCoreJSBuiltinInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = BC348BD20DB7F804004ABABB /* WebCoreJSBuiltinInternals.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 BC3BC29C0E91AB0F00835588 /* HostWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3BC29B0E91AB0F00835588 /* HostWindow.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BC3BE12B0E98092F00835588 /* PopupMenuStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3BE12A0E98092F00835588 /* PopupMenuStyle.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BC3BE9930E9C1C7C00835588 /* RenderScrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3BE9900E9C1C7C00835588 /* RenderScrollbar.cpp */; };
</span><span class="lines">@@ -9130,7 +9130,6 @@
</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><del>-                410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltinInternals.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><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">                 4129DF831BB5B7F700322A16 /* JSReadableStreamPrivateConstructors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStreamPrivateConstructors.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -9194,9 +9193,6 @@
</span><span class="cx">                 419BC2DC1685329900D64D6D /* VisitedLinkState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VisitedLinkState.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 419BC2DD1685329900D64D6D /* VisitedLinkState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisitedLinkState.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreBuiltinNames.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                419BE7531BC7F3DB00E1C85B /* WebCoreJSBuiltinInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreJSBuiltinInternals.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                419BE7541BC7F3DB00E1C85B /* WebCoreJSBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltins.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                419BE7551BC7F3DB00E1C85B /* WebCoreJSBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreJSBuiltins.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 419BE75A1BCBD3ED00E1C85B /* NavigatorUserMedia.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = NavigatorUserMedia.js; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 419FAFAD1ABABCD5005B828B /* ReadableStreamReader.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamReader.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 41A023ED1A39DB7900F722CF /* ReadableStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStream.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -13545,7 +13541,11 @@
</span><span class="cx">                 BC348BA70DB7F1B8004ABAB9 /* XMLHttpRequest.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = XMLHttpRequest.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC348BBD0DB7F531004ABAB9 /* JSXMLHttpRequestCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLHttpRequestCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC348BD10DB7F804004ABAB9 /* JSXMLHttpRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLHttpRequest.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                BC348BD10DB7F804004ABABA /* WebCoreJSBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltins.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                BC348BD10DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltinInternals.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 BC348BD20DB7F804004ABAB9 /* JSXMLHttpRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSXMLHttpRequest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                BC348BD20DB7F804004ABABA /* WebCoreJSBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreJSBuiltins.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                BC348BD20DB7F804004ABABB /* WebCoreJSBuiltinInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreJSBuiltinInternals.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 BC3BC29B0E91AB0F00835588 /* HostWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HostWindow.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC3BE12A0E98092F00835588 /* PopupMenuStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuStyle.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC3BE9900E9C1C7C00835588 /* RenderScrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderScrollbar.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16140,6 +16140,10 @@
</span><span class="cx">                 14DFB33F0A7DF7630018F769 /* Derived Sources */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                BC348BD10DB7F804004ABABA /* WebCoreJSBuiltins.cpp */,
+                                BC348BD10DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp */,
+                                BC348BD20DB7F804004ABABA /* WebCoreJSBuiltins.h */,
+                                BC348BD20DB7F804004ABABB /* WebCoreJSBuiltinInternals.h */,
</ins><span class="cx">                                 1221E0581C02B409006A1A00 /* Animation */,
</span><span class="cx">                                 1AE96A791D1A0A5C00B86768 /* ApplePay */,
</span><span class="cx">                                 A83B79100CCB001B000B0825 /* Core */,
</span><span class="lines">@@ -22601,10 +22605,6 @@
</span><span class="cx">                                 A75E497510752ACB00C9B896 /* SerializedScriptValue.cpp */,
</span><span class="cx">                                 A75E497410752ACB00C9B896 /* SerializedScriptValue.h */,
</span><span class="cx">                                 419BE7521BC7F3DB00E1C85B /* WebCoreBuiltinNames.h */,
</span><del>-                                410D33231C19984100F7FDE2 /* WebCoreJSBuiltinInternals.cpp */,
-                                419BE7531BC7F3DB00E1C85B /* WebCoreJSBuiltinInternals.h */,
-                                419BE7541BC7F3DB00E1C85B /* WebCoreJSBuiltins.cpp */,
-                                419BE7551BC7F3DB00E1C85B /* WebCoreJSBuiltins.h */,
</del><span class="cx">                                 BC53D910114310CC000D817E /* WebCoreJSClientData.h */,
</span><span class="cx">                                 0F099D0617B968A100FF84B9 /* WebCoreTypedArrayController.cpp */,
</span><span class="cx">                                 0F099D0717B968A100FF84B9 /* WebCoreTypedArrayController.h */,
</span><span class="lines">@@ -27348,6 +27348,8 @@
</span><span class="cx">                                 7C4C96DD1AD4483500365A60 /* JSWritableStream.h in Headers */,
</span><span class="cx">                                 8358CB701C53277500E0C2D8 /* JSXMLDocument.h in Headers */,
</span><span class="cx">                                 BC348BD40DB7F804004ABAB9 /* JSXMLHttpRequest.h in Headers */,
</span><ins>+                                BC348BD40DB7F804004ABABA /* WebCoreJSBuiltins.h in Headers */,
+                                BC348BD40DB7F804004ABABB /* WebCoreJSBuiltinInternals.h in Headers */,
</ins><span class="cx">                                 83D35AF21C718D9000F70D5A /* JSXMLHttpRequestEventTarget.h in Headers */,
</span><span class="cx">                                 F916C48E0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h in Headers */,
</span><span class="cx">                                 BCDFD4960E30592F009D10AD /* JSXMLHttpRequestUpload.h in Headers */,
</span><span class="lines">@@ -28825,8 +28827,6 @@
</span><span class="cx">                                 CDC69DDA16371FD4007C38DF /* WebCoreFullScreenPlaceholderView.h in Headers */,
</span><span class="cx">                                 CDC69DD61632026C007C38DF /* WebCoreFullScreenWarningView.h in Headers */,
</span><span class="cx">                                 CD127DEE14F3098400E84779 /* WebCoreFullScreenWindow.h in Headers */,
</span><del>-                                419BE7561BC7F41B00E1C85B /* WebCoreJSBuiltinInternals.h in Headers */,
-                                419BE7581BC7F42700E1C85B /* WebCoreJSBuiltins.h in Headers */,
</del><span class="cx">                                 BC53D911114310CC000D817E /* WebCoreJSClientData.h in Headers */,
</span><span class="cx">                                 93F199BB08245E59001E9ABC /* WebCoreKeyboardUIMode.h in Headers */,
</span><span class="cx">                                 3140379B124BEA7F00AF40E4 /* WebCoreMotionManager.h in Headers */,
</span><span class="lines">@@ -31180,6 +31180,8 @@
</span><span class="cx">                                 8358CB6F1C53277200E0C2D8 /* JSXMLDocument.cpp in Sources */,
</span><span class="cx">                                 83A4A9F91CE7FD8100709B00 /* JSXMLDocumentCustom.cpp in Sources */,
</span><span class="cx">                                 BC348BD30DB7F804004ABAB9 /* JSXMLHttpRequest.cpp in Sources */,
</span><ins>+                                BC348BD30DB7F804004ABABA /* WebCoreJSBuiltins.cpp in Sources */,
+                                BC348BD30DB7F804004ABABB /* WebCoreJSBuiltinInternals.cpp in Sources */,
</ins><span class="cx">                                 BC348BBE0DB7F531004ABAB9 /* JSXMLHttpRequestCustom.cpp in Sources */,
</span><span class="cx">                                 83D35AF11C718D9000F70D5A /* JSXMLHttpRequestEventTarget.cpp in Sources */,
</span><span class="cx">                                 F916C48D0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp in Sources */,
</span><span class="lines">@@ -32351,8 +32353,6 @@
</span><span class="cx">                                 CDC69DDB16371FD4007C38DF /* WebCoreFullScreenPlaceholderView.mm in Sources */,
</span><span class="cx">                                 CDC69DD71632026C007C38DF /* WebCoreFullScreenWarningView.mm in Sources */,
</span><span class="cx">                                 CD127DED14F3097D00E84779 /* WebCoreFullScreenWindow.mm in Sources */,
</span><del>-                                410D33241C19985000F7FDE2 /* WebCoreJSBuiltinInternals.cpp in Sources */,
-                                419BE7571BC7F42100E1C85B /* WebCoreJSBuiltins.cpp in Sources */,
</del><span class="cx">                                 3140379C124BEA7F00AF40E4 /* WebCoreMotionManager.mm in Sources */,
</span><span class="cx">                                 CDC979F41C498C0900DB50D4 /* WebCoreNSErrorExtras.mm in Sources */,
</span><span class="cx">                                 934D9BA50B8C116B007B42A9 /* WebCoreNSStringExtras.mm in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSDOMGlobalObject::addBuiltinGlobals(VM&amp; vm)
</span><span class="cx"> {
</span><del>-    m_builtinInternalFunctions.initialize(*this, vm);
</del><ins>+    m_builtinInternalFunctions.initialize(*this);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(STREAMS_API)
</span><span class="cx">     JSObject* privateReadableStreamControllerConstructor = createReadableStreamControllerPrivateConstructor(vm, *this);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> 
</span><span class="cx">     private:
</span><span class="cx">         void addBuiltinGlobals(JSC::VM&amp;);
</span><del>-        friend void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp;, JSC::VM&amp;);
</del><ins>+        friend void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp;);
</ins><span class="cx"> 
</span><span class="cx">         JSBuiltinInternalFunctions m_builtinInternalFunctions;
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalscpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.cpp        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,124 +0,0 @@
</span><del>-/*
- *  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;JSReadableStreamPrivateConstructors.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(WEB_RTC)
-    , m_rtcPeerConnectionInternalsFunctions(vm)
-#endif
-#if ENABLE(STREAMS_API)
-    , m_readableStreamInternalsFunctions(vm)
-    , m_streamInternalsFunctions(vm)
-    , m_writableStreamInternalsFunctions(vm)
-#endif
-{
-#if !ENABLE(STREAMS_API) &amp;&amp; !ENABLE(WEB_RTC)
-    // FIXME: When none of the features that use this class are enabled, we
-    // don't ever use the vm member. However, the logic of initializing
-    // it when any of the features are enabled gets pretty messy.
-    (void)vm;
-#endif
-}
-
-void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor&amp; visitor)
-{
-#if ENABLE(WEB_RTC)
-    m_rtcPeerConnectionInternalsFunctions.visit(visitor);
-#endif
-#if ENABLE(STREAMS_API)
-    m_readableStreamInternalsFunctions.visit(visitor);
-    m_streamInternalsFunctions.visit(visitor);
-    m_writableStreamInternalsFunctions.visit(visitor);
-#endif
-#if !ENABLE(STREAMS_API) &amp;&amp; !ENABLE(WEB_RTC)
-    UNUSED_PARAM(visitor);
-#endif
-}
-
-void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject&amp; globalObject, VM&amp; vm)
-{
-#if ENABLE(WEB_RTC)
-    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(WEB_RTC)
-    JSVMClientData&amp; clientData = *static_cast&lt;JSVMClientData*&gt;(vm.clientData);
-
-    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {
-#if ENABLE(WEB_RTC)
-#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
-#if !ENABLE(STREAMS_API) &amp;&amp; !ENABLE(WEB_RTC)
-    UNUSED_PARAM(globalObject);
-    UNUSED_PARAM(vm);
-#endif
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinInternalsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltinInternals.h        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,78 +0,0 @@
</span><del>-/*
- *  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.
- */
-
-#ifndef WebCoreJSBuiltinInternals_h
-#define WebCoreJSBuiltinInternals_h
-
-#include &lt;runtime/VM.h&gt;
-
-#if ENABLE(WEB_RTC)
-#include &quot;RTCPeerConnectionInternalsBuiltins.h&quot;
-#endif
-
-#if ENABLE(STREAMS_API)
-#include &quot;ReadableStreamInternalsBuiltins.h&quot;
-#include &quot;StreamInternalsBuiltins.h&quot;
-#include &quot;WritableStreamInternalsBuiltins.h&quot;
-#endif
-
-namespace WebCore {
-
-class JSDOMGlobalObject;
-
-// FIXME: Make builtin generator generate this class
-class JSBuiltinInternalFunctions {
-public:
-    explicit JSBuiltinInternalFunctions(JSC::VM&amp;);
-
-#if ENABLE(WEB_RTC)
-    RTCPeerConnectionInternalsBuiltinFunctions rtcPeerConnectionInternals() { return m_rtcPeerConnectionInternalsFunctions; }
-#endif
-#if ENABLE(STREAMS_API)
-    ReadableStreamInternalsBuiltinFunctions readableStreamInternals() { return m_readableStreamInternalsFunctions; }
-    StreamInternalsBuiltinFunctions streamInternals() { return m_streamInternalsFunctions; }
-    WritableStreamInternalsBuiltinFunctions writableStreamInternals() { return m_writableStreamInternalsFunctions; }
-#endif
-
-    void visit(JSC::SlotVisitor&amp;);
-    void initialize(JSDOMGlobalObject&amp;, JSC::VM&amp;);
-
-private:
-    JSC::VM&amp; vm;
-#if ENABLE(WEB_RTC)
-    RTCPeerConnectionInternalsBuiltinFunctions m_rtcPeerConnectionInternalsFunctions;
-#endif
-#if ENABLE(STREAMS_API)
-    ReadableStreamInternalsBuiltinFunctions m_readableStreamInternalsFunctions;
-    StreamInternalsBuiltinFunctions m_streamInternalsFunctions;
-    WritableStreamInternalsBuiltinFunctions m_writableStreamInternalsFunctions;
-#endif
-
-};
-
-}
-
-#endif // WebCoreJSBuiltinInternals_h
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinscpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,43 +0,0 @@
</span><del>-/*
- *  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;ByteLengthQueuingStrategyBuiltins.cpp&quot;
-#include &quot;CountQueuingStrategyBuiltins.cpp&quot;
-#include &quot;FetchHeadersBuiltins.cpp&quot;
-#include &quot;FetchResponseBuiltins.cpp&quot;
-#include &quot;MediaDevicesBuiltins.cpp&quot;
-#include &quot;NavigatorUserMediaBuiltins.cpp&quot;
-#include &quot;RTCPeerConnectionBuiltins.cpp&quot;
-#include &quot;RTCPeerConnectionInternalsBuiltins.cpp&quot;
-#include &quot;ReadableStreamBuiltins.cpp&quot;
-#include &quot;ReadableStreamControllerBuiltins.cpp&quot;
-#include &quot;ReadableStreamInternalsBuiltins.cpp&quot;
-#include &quot;ReadableStreamReaderBuiltins.cpp&quot;
-#include &quot;StreamInternalsBuiltins.cpp&quot;
-#include &quot;WritableStreamBuiltins.cpp&quot;
-#include &quot;WritableStreamInternalsBuiltins.cpp&quot;
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsWebCoreJSBuiltinsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.h        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,140 +0,0 @@
</span><del>-/*
- *  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.
- */
-
-#ifndef WebCoreJSBuiltins_h
-#define WebCoreJSBuiltins_h
-
-#include &quot;ByteLengthQueuingStrategyBuiltins.h&quot;
-#include &quot;CountQueuingStrategyBuiltins.h&quot;
-#include &quot;FetchHeadersBuiltins.h&quot;
-#include &quot;FetchResponseBuiltins.h&quot;
-#include &quot;MediaDevicesBuiltins.h&quot;
-#include &quot;NavigatorUserMediaBuiltins.h&quot;
-#include &quot;RTCPeerConnectionBuiltins.h&quot;
-#include &quot;RTCPeerConnectionInternalsBuiltins.h&quot;
-#include &quot;ReadableStreamBuiltins.h&quot;
-#include &quot;ReadableStreamControllerBuiltins.h&quot;
-#include &quot;ReadableStreamInternalsBuiltins.h&quot;
-#include &quot;ReadableStreamReaderBuiltins.h&quot;
-#include &quot;StreamInternalsBuiltins.h&quot;
-#include &quot;WritableStreamBuiltins.h&quot;
-#include &quot;WritableStreamInternalsBuiltins.h&quot;
-#include &lt;runtime/VM.h&gt;
-
-namespace WebCore {
-
-class JSBuiltinFunctions {
-public:
-    explicit JSBuiltinFunctions(JSC::VM&amp; v)
-        : vm(v)
-#if ENABLE(FETCH_API)
-        , m_fetchHeadersBuiltins(&amp;vm)
-        , m_fetchResponseBuiltins(&amp;vm)
-#endif
-#if ENABLE(STREAMS_API)
-        , m_byteLengthQueuingStrategyBuiltins(&amp;vm)
-        , m_countQueuingStrategyBuiltins(&amp;vm)
-        , m_readableStreamBuiltins(&amp;vm)
-        , m_readableStreamControllerBuiltins(&amp;vm)
-        , m_readableStreamInternalsBuiltins(&amp;vm)
-        , m_readableStreamReaderBuiltins(&amp;vm)
-        , m_streamInternalsBuiltins(&amp;vm)
-        , m_writableStreamBuiltins(&amp;vm)
-        , m_writableStreamInternalsBuiltins(&amp;vm)
-#endif
-#if ENABLE(MEDIA_STREAM)
-        , m_mediaDevicesBuiltins(&amp;vm)
-        , m_navigatorUserMediaBuiltins(&amp;vm)
-#endif
-#if ENABLE(WEB_RTC)
-        , m_rtcPeerConnectionBuiltins(&amp;vm)
-        , m_rtcPeerConnectionInternalsBuiltins(&amp;vm)
-#endif
-    {
-#if ENABLE(STREAMS_API)
-        m_readableStreamInternalsBuiltins.exportNames();
-        m_streamInternalsBuiltins.exportNames();
-        m_writableStreamInternalsBuiltins.exportNames();
-#endif
-#if ENABLE(WEB_RTC)
-        m_rtcPeerConnectionInternalsBuiltins.exportNames();
-#endif
-    }
-#if ENABLE(FETCH_API)
-    FetchHeadersBuiltinsWrapper&amp; fetchHeadersBuiltins() { return m_fetchHeadersBuiltins; }
-    FetchResponseBuiltinsWrapper&amp; fetchResponseBuiltins() { return m_fetchResponseBuiltins; }
-#endif
-#if ENABLE(STREAMS_API)
-    ByteLengthQueuingStrategyBuiltinsWrapper&amp; byteLengthQueuingStrategyBuiltins() { return m_byteLengthQueuingStrategyBuiltins; }
-    CountQueuingStrategyBuiltinsWrapper&amp; countQueuingStrategyBuiltins() { return m_countQueuingStrategyBuiltins; }
-    ReadableStreamBuiltinsWrapper&amp; readableStreamBuiltins() { return m_readableStreamBuiltins; }
-    ReadableStreamControllerBuiltinsWrapper&amp; readableStreamControllerBuiltins() { return m_readableStreamControllerBuiltins; }
-    ReadableStreamInternalsBuiltinsWrapper&amp; readableStreamInternalsBuiltins() { return m_readableStreamInternalsBuiltins; }
-    ReadableStreamReaderBuiltinsWrapper&amp; readableStreamReaderBuiltins() { return m_readableStreamReaderBuiltins; }
-    StreamInternalsBuiltinsWrapper&amp; streamInternalsBuiltins() { return m_streamInternalsBuiltins; }
-    WritableStreamBuiltinsWrapper&amp; writableStreamBuiltins() { return m_writableStreamBuiltins; }
-    WritableStreamInternalsBuiltinsWrapper&amp; writableStreamInternalsBuiltins() { return m_writableStreamInternalsBuiltins;}
-#endif
-#if ENABLE(MEDIA_STREAM)
-    MediaDevicesBuiltinsWrapper&amp; mediaDevicesBuiltins() { return m_mediaDevicesBuiltins; }
-    NavigatorUserMediaBuiltinsWrapper&amp; navigatorUserMediaBuiltins() { return m_navigatorUserMediaBuiltins;}
-#endif
-#if ENABLE(WEB_RTC)
-    RTCPeerConnectionBuiltinsWrapper&amp; rtcPeerConnectionBuiltins() { return m_rtcPeerConnectionBuiltins; }
-    RTCPeerConnectionInternalsBuiltinsWrapper&amp; rtcPeerConnectionInternalsBuiltins() { return m_rtcPeerConnectionInternalsBuiltins; }
-#endif
-
-private:
-    JSC::VM&amp; vm;
-#if ENABLE(FETCH_API)
-    FetchHeadersBuiltinsWrapper m_fetchHeadersBuiltins;
-    FetchResponseBuiltinsWrapper m_fetchResponseBuiltins;
-#endif
-#if ENABLE(STREAMS_API)
-    ByteLengthQueuingStrategyBuiltinsWrapper m_byteLengthQueuingStrategyBuiltins;
-    CountQueuingStrategyBuiltinsWrapper m_countQueuingStrategyBuiltins;
-    ReadableStreamBuiltinsWrapper m_readableStreamBuiltins;
-    ReadableStreamControllerBuiltinsWrapper m_readableStreamControllerBuiltins;
-    ReadableStreamInternalsBuiltinsWrapper m_readableStreamInternalsBuiltins;
-    ReadableStreamReaderBuiltinsWrapper m_readableStreamReaderBuiltins;
-    StreamInternalsBuiltinsWrapper m_streamInternalsBuiltins;
-    WritableStreamBuiltinsWrapper m_writableStreamBuiltins;
-    WritableStreamInternalsBuiltinsWrapper m_writableStreamInternalsBuiltins;
-#endif
-#if ENABLE(MEDIA_STREAM)
-    MediaDevicesBuiltinsWrapper m_mediaDevicesBuiltins;
-    NavigatorUserMediaBuiltinsWrapper m_navigatorUserMediaBuiltins;
-#endif
-#if ENABLE(WEB_RTC)
-    RTCPeerConnectionBuiltinsWrapper m_rtcPeerConnectionBuiltins;
-    RTCPeerConnectionInternalsBuiltinsWrapper m_rtcPeerConnectionInternalsBuiltins;
-#endif
-
-};
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Tools/ChangeLog        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-07-08  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        Generate WebCore builtin wrapper files
+        https://bugs.webkit.org/show_bug.cgi?id=159461
+
+        Reviewed by Brian Burg.
+
+        * Scripts/webkitpy/codegen/main.py:
+        (BuiltinsGeneratorTests.generate_from_js_builtins): Adding generate_wrapper option.
+        (BuiltinsGeneratorTests.run_tests): Using this option in WebCore test cases.
+
</ins><span class="cx"> 2016-07-08  Hunseop Jeong  &lt;hs85.jeong@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Fix build when media-stream is enabled.
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpycodegenmainpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/codegen/main.py (202974 => 202975)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/codegen/main.py        2016-07-08 10:11:10 UTC (rev 202974)
+++ trunk/Tools/Scripts/webkitpy/codegen/main.py        2016-07-08 10:42:25 UTC (rev 202975)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> import os
</span><span class="cx"> import os.path
</span><span class="cx"> import shutil
</span><del>-import sys
</del><span class="cx"> import tempfile
</span><span class="cx"> from webkitpy.common.checkout.scm.detection import detect_scm_system
</span><span class="cx"> from webkitpy.common.system.executive import ScriptError
</span><span class="lines">@@ -38,7 +37,7 @@
</span><span class="cx">         self.reset_results = reset_results
</span><span class="cx">         self.executive = executive
</span><span class="cx"> 
</span><del>-    def generate_from_js_builtins(self, builtins_file, output_directory, framework_name=&quot;&quot;, combined_outputs=False):
</del><ins>+    def generate_from_js_builtins(self, builtins_file, output_directory, framework_name=&quot;&quot;, combined_outputs=False, generate_wrapper=False):
</ins><span class="cx">         cmd = ['python',
</span><span class="cx">                'JavaScriptCore/Scripts/generate-js-builtins.py',
</span><span class="cx">                '--output-directory', output_directory,
</span><span class="lines">@@ -49,6 +48,9 @@
</span><span class="cx">         if combined_outputs:
</span><span class="cx">             cmd.append('--combined')
</span><span class="cx"> 
</span><ins>+        if generate_wrapper:
+            cmd.append('--with-wrapper-files')
+
</ins><span class="cx">         cmd.append(builtins_file)
</span><span class="cx"> 
</span><span class="cx">         exit_code = 0
</span><span class="lines">@@ -110,7 +112,8 @@
</span><span class="cx">                 continue
</span><span class="cx"> 
</span><span class="cx">             combined_outputs = output_mode == &quot;Combined&quot;
</span><del>-            if self.generate_from_js_builtins(os.path.join(input_directory, input_file), work_directory, framework_name=framework_name, combined_outputs=combined_outputs):
</del><ins>+            generate_wrapper = framework_name == &quot;WebCore&quot;
+            if self.generate_from_js_builtins(os.path.join(input_directory, input_file), work_directory, framework_name=framework_name, combined_outputs=combined_outputs, generate_wrapper=generate_wrapper):
</ins><span class="cx">                 passed = False
</span><span class="cx"> 
</span><span class="cx">             if self.reset_results:
</span></span></pre>
</div>
</div>

</body>
</html>