<!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>[191312] trunk/Source</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/191312">191312</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2015-10-19 13:18:43 -0700 (Mon, 19 Oct 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unify handling of JavaScriptCore scripts that are used in WebCore
https://bugs.webkit.org/show_bug.cgi?id=150245

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Move all standalone JavaScriptCore scripts that are used by WebCore into the
JavaScriptCore/Scripts directory. Use JavaScriptCore_SCRIPTS_DIR to refer
to the path for these scripts.

* DerivedSources.make:

    Define and use JavaScriptCore_SCRIPTS_DIR.

* JavaScriptCore.xcodeproj/project.pbxproj:

    Make a new group in the Xcode project and clean up references.

* PlatformWin.cmake:

    For Windows, copy these scripts over to ForwardingHeaders/Scripts since they
    cannot be used directly from JAVASCRIPTCORE_DIR in AppleWin builds. Do the same
    thing for both Windows variants to be consistent about it.

* Scripts/cssmin.py: Renamed from Source/JavaScriptCore/inspector/scripts/cssmin.py.
* Scripts/generate-combined-inspector-json.py: Renamed from Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py.
* Scripts/generate-js-builtins: Renamed from Source/JavaScriptCore/generate-js-builtins.
* Scripts/inline-and-minify-stylesheets-and-scripts.py: Renamed from Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py.
* Scripts/jsmin.py: Renamed from Source/JavaScriptCore/inspector/scripts/jsmin.py.
* Scripts/xxd.pl: Renamed from Source/JavaScriptCore/inspector/scripts/xxd.pl.

Source/WebCore:

Use the new JavaScriptCore_SCRIPTS_DIR variable.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:

    No need to export other variables like InspectorScripts anymore.</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="#trunkSourceJavaScriptCorePlatformWincmake">trunk/Source/JavaScriptCore/PlatformWin.cmake</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>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/JavaScriptCore/Scripts/</li>
<li><a href="#trunkSourceJavaScriptCoreScriptscssminpy">trunk/Source/JavaScriptCore/Scripts/cssmin.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsgeneratecombinedinspectorjsonpy">trunk/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsgeneratejsbuiltins">trunk/Source/JavaScriptCore/Scripts/generate-js-builtins</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsinlineandminifystylesheetsandscriptspy">trunk/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsjsminpy">trunk/Source/JavaScriptCore/Scripts/jsmin.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsxxdpl">trunk/Source/JavaScriptCore/Scripts/xxd.pl</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoregeneratejsbuiltins">trunk/Source/JavaScriptCore/generate-js-builtins</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscssminpy">trunk/Source/JavaScriptCore/inspector/scripts/cssmin.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsgeneratecombinedinspectorjsonpy">trunk/Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsinlineandminifystylesheetsandscriptspy">trunk/Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsjsminpy">trunk/Source/JavaScriptCore/inspector/scripts/jsmin.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsxxdpl">trunk/Source/JavaScriptCore/inspector/scripts/xxd.pl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -700,6 +700,8 @@
</span><span class="cx">     runtime/SymbolPrototype.cpp
</span><span class="cx"> )
</span><span class="cx"> 
</span><ins>+set(JavaScriptCore_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}/Scripts&quot;)
+
</ins><span class="cx"> set(JavaScriptCore_LIBRARIES
</span><span class="cx">     WTF${DEBUG_SUFFIX}
</span><span class="cx">     ${ICU_I18N_LIBRARIES}
</span><span class="lines">@@ -939,7 +941,7 @@
</span><span class="cx"> macro(GENERATE_HASH_LUT _input _output)
</span><span class="cx">     add_custom_command(
</span><span class="cx">         OUTPUT ${_output}
</span><del>-        DEPENDS ${HASH_LUT_GENERATOR} ${_input} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
</del><ins>+        DEPENDS ${HASH_LUT_GENERATOR} ${_input} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins
</ins><span class="cx">         COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i &gt; ${_output}
</span><span class="cx">         VERBATIM)
</span><span class="cx">     list(APPEND JavaScriptCore_HEADERS ${_output})
</span><span class="lines">@@ -1056,9 +1058,9 @@
</span><span class="cx"> 
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
</span><del>-    MAIN_DEPENDENCY ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py
</del><ins>+    MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py
</ins><span class="cx">     DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} &gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
</del><ins>+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} &gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> 
</span><span class="cx"> # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
</span><span class="lines">@@ -1101,9 +1103,9 @@
</span><span class="cx"> 
</span><span class="cx"> add_custom_command(
</span><span class="cx">    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
</span><del>-   MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
</del><ins>+   MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins
</ins><span class="cx">    DEPENDS ${JavaScriptCore_BUILTINS_SOURCES}
</span><del>-   COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins --input-directory ${CMAKE_CURRENT_SOURCE_DIR}/builtins --output ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
</del><ins>+   COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins --input-directory ${CMAKE_CURRENT_SOURCE_DIR}/builtins --output ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
</ins><span class="cx">    VERBATIM)
</span><span class="cx"> 
</span><span class="cx"> list(APPEND JavaScriptCore_SOURCES
</span><span class="lines">@@ -1123,10 +1125,10 @@
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
</span><span class="cx">     MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
</span><del>-    DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
</del><ins>+    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
</ins><span class="cx">     COMMAND echo &quot;//# sourceURL=__WebInspectorInjectedScript__&quot; &gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js &gt;&gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
-    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
</del><ins>+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py &lt; ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js &gt;&gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
+    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> 
</span><span class="cx"> list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2015-10-16  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Unify handling of JavaScriptCore scripts that are used in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=150245
+
+        Reviewed by Alex Christensen.
+
+        Move all standalone JavaScriptCore scripts that are used by WebCore into the
+        JavaScriptCore/Scripts directory. Use JavaScriptCore_SCRIPTS_DIR to refer
+        to the path for these scripts.
+
+        * DerivedSources.make:
+
+            Define and use JavaScriptCore_SCRIPTS_DIR.
+
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+
+            Make a new group in the Xcode project and clean up references.
+
+        * PlatformWin.cmake:
+
+            For Windows, copy these scripts over to ForwardingHeaders/Scripts since they
+            cannot be used directly from JAVASCRIPTCORE_DIR in AppleWin builds. Do the same
+            thing for both Windows variants to be consistent about it.
+
+        * Scripts/cssmin.py: Renamed from Source/JavaScriptCore/inspector/scripts/cssmin.py.
+        * Scripts/generate-combined-inspector-json.py: Renamed from Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py.
+        * Scripts/generate-js-builtins: Renamed from Source/JavaScriptCore/generate-js-builtins.
+        * Scripts/inline-and-minify-stylesheets-and-scripts.py: Renamed from Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py.
+        * Scripts/jsmin.py: Renamed from Source/JavaScriptCore/inspector/scripts/jsmin.py.
+        * Scripts/xxd.pl: Renamed from Source/JavaScriptCore/inspector/scripts/xxd.pl.
+
</ins><span class="cx"> 2015-10-19  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Try to fix the iOS build
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -78,6 +78,8 @@
</span><span class="cx"> PYTHON = python
</span><span class="cx"> PERL = perl
</span><span class="cx"> 
</span><ins>+JavaScriptCore_SCRIPTS_DIR = $(JavaScriptCore)/Scripts
+
</ins><span class="cx"> ifeq ($(OS),Windows_NT)
</span><span class="cx">     DELETE = cmd //C del
</span><span class="cx"> else
</span><span class="lines">@@ -86,9 +88,9 @@
</span><span class="cx"> # --------
</span><span class="cx"> 
</span><span class="cx"> .PHONY: JSCBuiltins
</span><del>-JSCBuiltins: $(JavaScriptCore)/generate-js-builtins JSCBuiltins.h JSCBuiltins.cpp
-JSCBuiltins.h: $(JavaScriptCore)/generate-js-builtins $(JavaScriptCore)/builtins JSCBuiltinsSources
-        $(PYTHON) $(JavaScriptCore)/generate-js-builtins --input-directory $(JavaScriptCore)/builtins --output $@
</del><ins>+JSCBuiltins: $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins JSCBuiltins.h JSCBuiltins.cpp
+JSCBuiltins.h: $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins $(JavaScriptCore)/builtins JSCBuiltinsSources
+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins --input-directory $(JavaScriptCore)/builtins --output $@
</ins><span class="cx"> 
</span><span class="cx"> JSCBuiltins.cpp: JSCBuiltins.h
</span><span class="cx"> 
</span><span class="lines">@@ -185,8 +187,8 @@
</span><span class="cx">         $(JavaScriptCore)/inspector/scripts/codegen/generator_templates.py \
</span><span class="cx">         $(JavaScriptCore)/inspector/scripts/codegen/generator.py \
</span><span class="cx">         $(JavaScriptCore)/inspector/scripts/codegen/models.py \
</span><del>-        $(JavaScriptCore)/inspector/scripts/generate-combined-inspector-json.py \
</del><span class="cx">         $(JavaScriptCore)/inspector/scripts/generate-inspector-protocol-bindings.py \
</span><ins>+        $(JavaScriptCore_SCRIPTS_DIR)/generate-combined-inspector-json.py \
</ins><span class="cx"> #
</span><span class="cx"> 
</span><span class="cx"> all : \
</span><span class="lines">@@ -202,17 +204,17 @@
</span><span class="cx"> EnabledInspectorDomains : $(JavaScriptCore)/UpdateContents.py force
</span><span class="cx">         $(PYTHON) $(JavaScriptCore)/UpdateContents.py '$(INSPECTOR_DOMAINS)' $@
</span><span class="cx"> 
</span><del>-CombinedDomains.json : inspector/scripts/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) EnabledInspectorDomains
-        $(PYTHON) $(JavaScriptCore)/inspector/scripts/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) &gt; ./CombinedDomains.json
</del><ins>+CombinedDomains.json : $(JavaScriptCore_SCRIPTS_DIR)/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) EnabledInspectorDomains
+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) &gt; ./CombinedDomains.json
</ins><span class="cx"> 
</span><span class="cx"> # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
</span><span class="cx"> InspectorFrontendDispatchers.h : CombinedDomains.json $(INSPECTOR_GENERATOR_SCRIPTS)
</span><span class="cx">         $(PYTHON) $(JavaScriptCore)/inspector/scripts/generate-inspector-protocol-bindings.py --framework JavaScriptCore --outputDir . ./CombinedDomains.json
</span><span class="cx"> 
</span><del>-InjectedScriptSource.h : inspector/InjectedScriptSource.js $(JavaScriptCore)/inspector/scripts/jsmin.py $(JavaScriptCore)/inspector/scripts/xxd.pl
</del><ins>+InjectedScriptSource.h : inspector/InjectedScriptSource.js $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl
</ins><span class="cx">         echo &quot;//# sourceURL=__WebInspectorInjectedScript__&quot; &gt; ./InjectedScriptSource.min.js
</span><del>-        $(PYTHON) $(JavaScriptCore)/inspector/scripts/jsmin.py &lt; $(JavaScriptCore)/inspector/InjectedScriptSource.js &gt;&gt; ./InjectedScriptSource.min.js
-        $(PERL) $(JavaScriptCore)/inspector/scripts/xxd.pl InjectedScriptSource_js ./InjectedScriptSource.min.js InjectedScriptSource.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py &lt; $(JavaScriptCore)/inspector/InjectedScriptSource.js &gt;&gt; ./InjectedScriptSource.min.js
+        $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js ./InjectedScriptSource.min.js InjectedScriptSource.h
</ins><span class="cx">         $(DELETE) InjectedScriptSource.min.js
</span><span class="cx"> 
</span><span class="cx"> # Web Replay inputs generator
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -955,7 +955,6 @@
</span><span class="cx">                 2ADFA26318EF3540004F9FCC /* GCLogging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2ADFA26218EF3540004F9FCC /* GCLogging.cpp */; };
</span><span class="cx">                 2AF7382C18BBBF92008A5A37 /* StructureIDTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2AF7382A18BBBF92008A5A37 /* StructureIDTable.cpp */; };
</span><span class="cx">                 2AF7382D18BBBF92008A5A37 /* StructureIDTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AF7382B18BBBF92008A5A37 /* StructureIDTable.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                2DFB8AFE1BB323BD0093D237 /* generate-js-builtins in Headers */ = {isa = PBXBuildFile; fileRef = A71DA80D1880D71F00D1F299 /* generate-js-builtins */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 371D842D17C98B6E00ECF994 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 371D842C17C98B6E00ECF994 /* libz.dylib */; };
</span><span class="cx">                 41359CF30FDD89AD00206180 /* DateConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = D21202290AD4310C00ED79B6 /* DateConversion.h */; };
</span><span class="cx">                 41DEA1321B9F3163006D65DD /* BuiltinUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 41DEA1311B9F3154006D65DD /* BuiltinUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1214,6 +1213,12 @@
</span><span class="cx">                 978801411471AD920041B016 /* JSDateMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 9788FC231471AD0C0068CE2D /* JSDateMath.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 9928FF3B18AC4AEC00B8CF12 /* JSReplayInputs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9928FF3918AC4AEC00B8CF12 /* JSReplayInputs.cpp */; };
</span><span class="cx">                 9928FF3C18AC4AEC00B8CF12 /* JSReplayInputs.h in Headers */ = {isa = PBXBuildFile; fileRef = 9928FF3A18AC4AEC00B8CF12 /* JSReplayInputs.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                9959E92B1BD17FA4001AA413 /* cssmin.py in Headers */ = {isa = PBXBuildFile; fileRef = 9959E9271BD17FA0001AA413 /* cssmin.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                9959E92C1BD17FA4001AA413 /* generate-js-builtins in Headers */ = {isa = PBXBuildFile; fileRef = 9959E9281BD17FA0001AA413 /* generate-js-builtins */; settings = {ATTRIBUTES = (Private, ); }; };
+                9959E92D1BD17FA4001AA413 /* jsmin.py in Headers */ = {isa = PBXBuildFile; fileRef = 9959E9291BD17FA0001AA413 /* jsmin.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                9959E92E1BD17FA4001AA413 /* xxd.pl in Headers */ = {isa = PBXBuildFile; fileRef = 9959E92A1BD17FA0001AA413 /* xxd.pl */; settings = {ATTRIBUTES = (Private, ); }; };
+                9959E9311BD18272001AA413 /* generate-combined-inspector-json.py in Headers */ = {isa = PBXBuildFile; fileRef = 9959E92F1BD181F6001AA413 /* generate-combined-inspector-json.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                9959E9321BD18279001AA413 /* inline-and-minify-stylesheets-and-scripts.py in Headers */ = {isa = PBXBuildFile; fileRef = 9959E9301BD181F6001AA413 /* inline-and-minify-stylesheets-and-scripts.py */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 996231E918D1804200C03FDA /* InspectorBackendCommands.js in Headers */ = {isa = PBXBuildFile; fileRef = A53243961856A475002ED692 /* InspectorBackendCommands.js */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99CC0B6218BE9946006CEBCC /* CodeGeneratorReplayInputsTemplates.py in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A1E18A1B1E70026D88F /* CodeGeneratorReplayInputsTemplates.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99CC0B6318BE9950006CEBCC /* CodeGeneratorReplayInputs.py in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A1D18A1B1E70026D88F /* CodeGeneratorReplayInputs.py */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1295,7 +1300,6 @@
</span><span class="cx">                 A532438A18568335002ED692 /* InspectorFrontendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = A532438418568317002ED692 /* InspectorFrontendDispatchers.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A532438B18568335002ED692 /* InspectorProtocolObjects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A532438518568317002ED692 /* InspectorProtocolObjects.cpp */; };
</span><span class="cx">                 A532438C18568335002ED692 /* InspectorProtocolObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = A532438618568317002ED692 /* InspectorProtocolObjects.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                A532439418569709002ED692 /* generate-combined-inspector-json.py in Headers */ = {isa = PBXBuildFile; fileRef = A5324391185696E6002ED692 /* generate-combined-inspector-json.py */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 A53243981856A489002ED692 /* CombinedDomains.json in Headers */ = {isa = PBXBuildFile; fileRef = A53243951856A475002ED692 /* CombinedDomains.json */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5339EC61BB399A60054F005 /* InspectorHeapAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5339EC51BB399900054F005 /* InspectorHeapAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5339EC71BB399A90054F005 /* InspectorHeapAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5339EC41BB399900054F005 /* InspectorHeapAgent.cpp */; };
</span><span class="lines">@@ -1330,10 +1334,6 @@
</span><span class="cx">                 A584032018BFFBE1005A0811 /* InspectorAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5CEEE13187F3BAD00E55C99 /* InspectorAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5840E20187B7B8600843B10 /* InjectedScriptModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5840E1E187B7B8600843B10 /* InjectedScriptModule.cpp */; };
</span><span class="cx">                 A5840E21187B7B8600843B10 /* InjectedScriptModule.h in Headers */ = {isa = PBXBuildFile; fileRef = A5840E1F187B7B8600843B10 /* InjectedScriptModule.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                A5840E27187C981E00843B10 /* cssmin.py in Headers */ = {isa = PBXBuildFile; fileRef = A5840E26187C980700843B10 /* cssmin.py */; settings = {ATTRIBUTES = (Private, ); }; };
-                A5840E29187CA5E600843B10 /* inline-and-minify-stylesheets-and-scripts.py in Headers */ = {isa = PBXBuildFile; fileRef = A5840E28187CA5B800843B10 /* inline-and-minify-stylesheets-and-scripts.py */; settings = {ATTRIBUTES = (Private, ); }; };
-                A5840E2A187CA75900843B10 /* xxd.pl in Headers */ = {isa = PBXBuildFile; fileRef = A513E5C5185F92F0007E95AD /* xxd.pl */; settings = {ATTRIBUTES = (Private, ); }; };
-                A5840E2B187CA75B00843B10 /* jsmin.py in Headers */ = {isa = PBXBuildFile; fileRef = A513E5C4185F92DC007E95AD /* jsmin.py */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 A58C024218E4A41A00032BC5 /* JSContextPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A58C024118E4A41A00032BC5 /* JSContextPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A58E35911860DECF001F24FE /* InjectedScriptHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A58E35901860DEC7001F24FE /* InjectedScriptHost.cpp */; };
</span><span class="cx">                 A593CF7C1840360300BFCE27 /* InspectorBackendDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A593CF7A1840360300BFCE27 /* InspectorBackendDispatcher.cpp */; };
</span><span class="lines">@@ -3117,6 +3117,12 @@
</span><span class="cx">                 9928FF3918AC4AEC00B8CF12 /* JSReplayInputs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReplayInputs.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9928FF3A18AC4AEC00B8CF12 /* JSReplayInputs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReplayInputs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 9928FF3D18AC4B1C00B8CF12 /* JSInputs.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = JSInputs.json; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                9959E9271BD17FA0001AA413 /* cssmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = cssmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9959E9281BD17FA0001AA413 /* generate-js-builtins */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;generate-js-builtins&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9959E9291BD17FA0001AA413 /* jsmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = jsmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9959E92A1BD17FA0001AA413 /* xxd.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = xxd.pl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9959E92F1BD181F6001AA413 /* generate-combined-inspector-json.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;generate-combined-inspector-json.py&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+                9959E9301BD181F6001AA413 /* inline-and-minify-stylesheets-and-scripts.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;inline-and-minify-stylesheets-and-scripts.py&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 99E45A1D18A1B1E70026D88F /* CodeGeneratorReplayInputs.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = CodeGeneratorReplayInputs.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 99E45A1E18A1B1E70026D88F /* CodeGeneratorReplayInputsTemplates.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = CodeGeneratorReplayInputsTemplates.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 99E45A1F18A1B2590026D88F /* EmptyInputCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmptyInputCursor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3185,8 +3191,6 @@
</span><span class="cx">                 A513E5BC185BFACC007E95AD /* JSInjectedScriptHostPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInjectedScriptHostPrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A513E5BD185BFACC007E95AD /* JSInjectedScriptHostPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInjectedScriptHostPrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A513E5C3185F92C9007E95AD /* InjectedScriptSource.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = InjectedScriptSource.js; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                A513E5C4185F92DC007E95AD /* jsmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = jsmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
-                A513E5C5185F92F0007E95AD /* xxd.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = xxd.pl; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 A513E5C6185F9436007E95AD /* InjectedScriptSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptSource.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A513E5C8185F9624007E95AD /* InjectedScriptManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A513E5C9185F9624007E95AD /* InjectedScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3199,7 +3203,6 @@
</span><span class="cx">                 A532438518568317002ED692 /* InspectorProtocolObjects.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorProtocolObjects.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A532438618568317002ED692 /* InspectorProtocolObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InspectorProtocolObjects.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A532438D185696CA002ED692 /* protocol */ = {isa = PBXFileReference; lastKnownFileType = folder; path = protocol; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                A5324391185696E6002ED692 /* generate-combined-inspector-json.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;generate-combined-inspector-json.py&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 A53243951856A475002ED692 /* CombinedDomains.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = CombinedDomains.json; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A53243961856A475002ED692 /* InspectorBackendCommands.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = InspectorBackendCommands.js; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5339EC41BB399900054F005 /* InspectorHeapAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorHeapAgent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3232,8 +3235,6 @@
</span><span class="cx">                 A57D23F01891B5B40031C7FA /* ContentSearchUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentSearchUtilities.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5840E1E187B7B8600843B10 /* InjectedScriptModule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptModule.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5840E1F187B7B8600843B10 /* InjectedScriptModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptModule.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                A5840E26187C980700843B10 /* cssmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = cssmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
-                A5840E28187CA5B800843B10 /* inline-and-minify-stylesheets-and-scripts.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;inline-and-minify-stylesheets-and-scripts.py&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 A58C024118E4A41A00032BC5 /* JSContextPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSContextPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A58E35901860DEC7001F24FE /* InjectedScriptHost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptHost.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A593CF7A1840360300BFCE27 /* InspectorBackendDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackendDispatcher.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3312,7 +3313,6 @@
</span><span class="cx">                 A71236E41195F33C00BD2174 /* JITOpcodes32_64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITOpcodes32_64.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A718F61A11754A21002465A7 /* RegExpJitTables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpJitTables.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A718F8211178EB4B002465A7 /* create_regex_tables */ = {isa = PBXFileReference; explicitFileType = text.script.python; fileEncoding = 4; path = create_regex_tables; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                A71DA80D1880D71F00D1F299 /* generate-js-builtins */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;generate-js-builtins&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 A72028B41797601E0098028C /* JSCTestRunnerUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCTestRunnerUtils.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A72028B51797601E0098028C /* JSCTestRunnerUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCTestRunnerUtils.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A72028B91797603D0098028C /* JSFunctionInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFunctionInlines.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3810,9 +3810,9 @@
</span><span class="cx">                 034768DFFF38A50411DB9C8B /* Products */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                932F5BD90822A1C700736975 /* JavaScriptCore.framework */,
</ins><span class="cx">                                 932F5BE10822A1C700736975 /* jsc */,
</span><span class="cx">                                 0FF922CF14F46B130041A24E /* JSCLLIntOffsetsExtractor */,
</span><del>-                                932F5BD90822A1C700736975 /* JavaScriptCore.framework */,
</del><span class="cx">                                 0FCEFAB61805D61600472CE4 /* libllvmForJSC.dylib */,
</span><span class="cx">                                 141211200A48793C00480255 /* minidom */,
</span><span class="cx">                                 14BD59BF0A3E8F9000BAF59C /* testapi */,
</span><span class="lines">@@ -3830,7 +3830,6 @@
</span><span class="cx">                                 8604F4F2143A6C4400B295F5 /* ChangeLog */,
</span><span class="cx">                                 F692A8540255597D01FF60F7 /* create_hash_table */,
</span><span class="cx">                                 A718F8211178EB4B002465A7 /* create_regex_tables */,
</span><del>-                                A71DA80D1880D71F00D1F299 /* generate-js-builtins */,
</del><span class="cx">                                 45E12D8806A49B0F00E9DF84 /* jsc.cpp */,
</span><span class="cx">                                 F68EBB8C0255D4C601FF60F7 /* config.h */,
</span><span class="cx">                                 F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */,
</span><span class="lines">@@ -3842,12 +3841,9 @@
</span><span class="cx">                                 A7D8019F1880D66E0026C39B /* builtins */,
</span><span class="cx">                                 969A078F0ED1D3AE00F1F681 /* bytecode */,
</span><span class="cx">                                 7E39D81D0EC38EFA003AF11A /* bytecompiler */,
</span><del>-                                1C90513E0BA9E8830081E9D0 /* Configurations */,
</del><span class="cx">                                 1480DB9A0DDC2231003CFDF2 /* debugger */,
</span><del>-                                650FDF8D09D0FCA700769E54 /* Derived Sources */,
</del><span class="cx">                                 86EC9DB31328DF44002B2AD7 /* dfg */,
</span><span class="cx">                                 0FF4272E158EBCCE004CB9FF /* disassembler */,
</span><del>-                                0867D69AFE84028FC02AAC07 /* Frameworks */,
</del><span class="cx">                                 0FEA09FC1705137F00BB722C /* ftl */,
</span><span class="cx">                                 142E312A134FF0A600AFADB5 /* heap */,
</span><span class="cx">                                 A5BA15DF1823409200A82E69 /* inspector */,
</span><span class="lines">@@ -3856,15 +3852,19 @@
</span><span class="cx">                                 0F46809C14BA7F4D00BFE272 /* llint */,
</span><span class="cx">                                 0FCEFAAD1805CA4400472CE4 /* llvm */,
</span><span class="cx">                                 7E39D8370EC3A388003AF11A /* parser */,
</span><del>-                                034768DFFF38A50411DB9C8B /* Products */,
</del><span class="cx">                                 95AB831A0DA42C6900BC83F3 /* profiler */,
</span><span class="cx">                                 99E45A0C18A01E930026D88F /* replay */,
</span><del>-                                932FC3C20824BB70005B3C75 /* Resources */,
</del><span class="cx">                                 7EF6E0BB0EB7A1EC0079AFAF /* runtime */,
</span><span class="cx">                                 141211000A48772600480255 /* tests */,
</span><span class="cx">                                 8603CEF014C753EF00AE59E3 /* tools */,
</span><span class="cx">                                 7B98D1331B60CD1E0023B1A4 /* wasm */,
</span><span class="cx">                                 86EAC48C0F93E8B9008EC948 /* yarr */,
</span><ins>+                                650FDF8D09D0FCA700769E54 /* Derived Sources */,
+                                932FC3C20824BB70005B3C75 /* Resources */,
+                                9959E9251BD17F1E001AA413 /* Scripts */,
+                                0867D69AFE84028FC02AAC07 /* Frameworks */,
+                                034768DFFF38A50411DB9C8B /* Products */,
+                                1C90513E0BA9E8830081E9D0 /* Configurations */,
</ins><span class="cx">                         );
</span><span class="cx">                         name = JavaScriptCore;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -5729,6 +5729,19 @@
</span><span class="cx">                         path = bytecode;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                9959E9251BD17F1E001AA413 /* Scripts */ = {
+                        isa = PBXGroup;
+                        children = (
+                                9959E9281BD17FA0001AA413 /* generate-js-builtins */,
+                                9959E9271BD17FA0001AA413 /* cssmin.py */,
+                                9959E92F1BD181F6001AA413 /* generate-combined-inspector-json.py */,
+                                9959E9301BD181F6001AA413 /* inline-and-minify-stylesheets-and-scripts.py */,
+                                9959E9291BD17FA0001AA413 /* jsmin.py */,
+                                9959E92A1BD17FA0001AA413 /* xxd.pl */,
+                        );
+                        path = Scripts;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 99E45A0C18A01E930026D88F /* replay */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -5779,12 +5792,7 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 C4703CC1192844A40013FBEA /* codegen */,
</span><del>-                                A5840E26187C980700843B10 /* cssmin.py */,
-                                A5324391185696E6002ED692 /* generate-combined-inspector-json.py */,
</del><span class="cx">                                 C4703CBF192844960013FBEA /* generate-inspector-protocol-bindings.py */,
</span><del>-                                A5840E28187CA5B800843B10 /* inline-and-minify-stylesheets-and-scripts.py */,
-                                A513E5C4185F92DC007E95AD /* jsmin.py */,
-                                A513E5C5185F92F0007E95AD /* xxd.pl */,
</del><span class="cx">                         );
</span><span class="cx">                         path = scripts;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -6056,6 +6064,7 @@
</span><span class="cx">                                 0F0B83B914BCF95F00885B4F /* CallReturnOffsetToBytecodeOffset.h in Headers */,
</span><span class="cx">                                 0F3B7E2B19A11B8000D9BC56 /* CallVariant.h in Headers */,
</span><span class="cx">                                 0F24E54217EA9F5900ABB217 /* CCallHelpers.h in Headers */,
</span><ins>+                                0F1C3DDA1BBCE09E00E523E4 /* CellState.h in Headers */,
</ins><span class="cx">                                 BC6AAAE50E1F426500AD87D8 /* ClassInfo.h in Headers */,
</span><span class="cx">                                 0FE050261AA9095600D33B33 /* ClonedArguments.h in Headers */,
</span><span class="cx">                                 969A07970ED1D3AE00F1F681 /* CodeBlock.h in Headers */,
</span><span class="lines">@@ -6102,7 +6111,7 @@
</span><span class="cx">                                 C4F4B6F41A05C944005CAB76 /* cpp_generator.py in Headers */,
</span><span class="cx">                                 C4F4B6F31A05C944005CAB76 /* cpp_generator_templates.py in Headers */,
</span><span class="cx">                                 5DE6E5B30E1728EC00180407 /* create_hash_table in Headers */,
</span><del>-                                A5840E27187C981E00843B10 /* cssmin.py in Headers */,
</del><ins>+                                9959E92B1BD17FA4001AA413 /* cssmin.py in Headers */,
</ins><span class="cx">                                 2A111246192FCE79005EE18D /* CustomGetterSetter.h in Headers */,
</span><span class="cx">                                 0F426A4B1460CD6E00131F8F /* DataFormat.h in Headers */,
</span><span class="cx">                                 0F2B66DF17B6B5AB00A7AE3F /* DataView.h in Headers */,
</span><span class="lines">@@ -6187,10 +6196,8 @@
</span><span class="cx">                                 A78A9775179738B8009DF744 /* DFGFailedFinalizer.h in Headers */,
</span><span class="cx">                                 A7BFF3C0179868940002F462 /* DFGFiltrationResult.h in Headers */,
</span><span class="cx">                                 A78A9777179738B8009DF744 /* DFGFinalizer.h in Headers */,
</span><del>-                                7B8329BF1BB21FE300649A6E /* WASMFunctionLLVMIRGenerator.h in Headers */,
</del><span class="cx">                                 0F2BDC16151C5D4F00CD8910 /* DFGFixupPhase.h in Headers */,
</span><span class="cx">                                 0F9D339717FFC4E60073C2BC /* DFGFlushedAt.h in Headers */,
</span><del>-                                0F32BD111BB34F190093A57F /* HeapHelperPool.h in Headers */,
</del><span class="cx">                                 A7D89CF817A0B8CC00773AD8 /* DFGFlushFormat.h in Headers */,
</span><span class="cx">                                 0F2DD8151AB3D8BE00BBB8E8 /* DFGForAllKills.h in Headers */,
</span><span class="cx">                                 0F69CC89193AC60A0045759E /* DFGFrozenValue.h in Headers */,
</span><span class="lines">@@ -6259,7 +6266,6 @@
</span><span class="cx">                                 0FB17663196B8F9E0091052A /* DFGPureValue.h in Headers */,
</span><span class="cx">                                 0F3A1BFA1A9ECB7D000DE01A /* DFGPutStackSinkingPhase.h in Headers */,
</span><span class="cx">                                 86EC9DD11328DF82002B2AD7 /* DFGRegisterBank.h in Headers */,
</span><del>-                                DEA7E2451BBC677F00D78440 /* JSTypedArrayViewPrototype.h in Headers */,
</del><span class="cx">                                 0F2FCCFC18A60070001A27F8 /* DFGSafepoint.h in Headers */,
</span><span class="cx">                                 A77A424317A0BBFD00A8DB81 /* DFGSafeToExecute.h in Headers */,
</span><span class="cx">                                 A741017F179DAF80002EB8BA /* DFGSaneStringGetByValSlowPathGenerator.h in Headers */,
</span><span class="lines">@@ -6278,7 +6284,6 @@
</span><span class="cx">                                 0F63947815DCE34B006A597C /* DFGStructureAbstractValue.h in Headers */,
</span><span class="cx">                                 0F50AF3C193E8B3900674EE8 /* DFGStructureClobberState.h in Headers */,
</span><span class="cx">                                 0F79085619A290B200F6310C /* DFGStructureRegistrationPhase.h in Headers */,
</span><del>-                                0FB4FB751BC843140025CA5A /* FTLLazySlowPathCall.h in Headers */,
</del><span class="cx">                                 0F2FCCFF18A60070001A27F8 /* DFGThreadData.h in Headers */,
</span><span class="cx">                                 0FC097A2146B28CC00CF2442 /* DFGThunks.h in Headers */,
</span><span class="cx">                                 0FD8A32817D51F5700CA2C40 /* DFGTierUpCheckInjectionPhase.h in Headers */,
</span><span class="lines">@@ -6359,6 +6364,8 @@
</span><span class="cx">                                 0FD120301A8AED12000F5280 /* FTLJSCallBase.h in Headers */,
</span><span class="cx">                                 0FD120341A8C85BD000F5280 /* FTLJSCallVarargs.h in Headers */,
</span><span class="cx">                                 62774DAB1B8D4B190006F05A /* FTLJSTailCall.h in Headers */,
</span><ins>+                                0FB4FB741BC843140025CA5A /* FTLLazySlowPath.h in Headers */,
+                                0FB4FB751BC843140025CA5A /* FTLLazySlowPathCall.h in Headers */,
</ins><span class="cx">                                 0F8F2B96172E04A3007DBDA5 /* FTLLink.h in Headers */,
</span><span class="cx">                                 0FCEFAE0180738C000472CE4 /* FTLLocation.h in Headers */,
</span><span class="cx">                                 0FEA0A10170513DB00BB722C /* FTLLowerDFGToLLVM.h in Headers */,
</span><span class="lines">@@ -6401,9 +6408,9 @@
</span><span class="cx">                                 2AABCDE718EF294200002096 /* GCLogging.h in Headers */,
</span><span class="cx">                                 A54E8EB018BFFBBB00556D28 /* GCSegmentedArray.h in Headers */,
</span><span class="cx">                                 A54E8EB118BFFBBE00556D28 /* GCSegmentedArrayInlines.h in Headers */,
</span><del>-                                A532439418569709002ED692 /* generate-combined-inspector-json.py in Headers */,
</del><ins>+                                9959E9311BD18272001AA413 /* generate-combined-inspector-json.py in Headers */,
</ins><span class="cx">                                 C4703CC0192844960013FBEA /* generate-inspector-protocol-bindings.py in Headers */,
</span><del>-                                2DFB8AFE1BB323BD0093D237 /* generate-js-builtins in Headers */,
</del><ins>+                                9959E92C1BD17FA4001AA413 /* generate-js-builtins in Headers */,
</ins><span class="cx">                                 A5EA70EC19F5B3EA0098F5EC /* generate_cpp_alternate_backend_dispatcher_header.py in Headers */,
</span><span class="cx">                                 A5EF9B141A1D43F600702E90 /* generate_cpp_backend_dispatcher_header.py in Headers */,
</span><span class="cx">                                 A5EF9B151A1D43FA00702E90 /* generate_cpp_backend_dispatcher_implementation.py in Headers */,
</span><span class="lines">@@ -6440,6 +6447,7 @@
</span><span class="cx">                                 142E3138134FF0A600AFADB5 /* HandleStack.h in Headers */,
</span><span class="cx">                                 1478297B1379E8A800A7C2A3 /* HandleTypes.h in Headers */,
</span><span class="cx">                                 14BA7A9813AADFF8005B7C2C /* Heap.h in Headers */,
</span><ins>+                                0F32BD111BB34F190093A57F /* HeapHelperPool.h in Headers */,
</ins><span class="cx">                                 C2DA778318E259990066FCB6 /* HeapInlines.h in Headers */,
</span><span class="cx">                                 2AD8932B17E3868F00668276 /* HeapIterationScope.h in Headers */,
</span><span class="cx">                                 A5339EC91BB4B4600054F005 /* HeapObserver.h in Headers */,
</span><span class="lines">@@ -6468,7 +6476,7 @@
</span><span class="cx">                                 A513E5CB185F9624007E95AD /* InjectedScriptManager.h in Headers */,
</span><span class="cx">                                 A5840E21187B7B8600843B10 /* InjectedScriptModule.h in Headers */,
</span><span class="cx">                                 A513E5C7185F9446007E95AD /* InjectedScriptSource.h in Headers */,
</span><del>-                                A5840E29187CA5E600843B10 /* inline-and-minify-stylesheets-and-scripts.py in Headers */,
</del><ins>+                                9959E9321BD18279001AA413 /* inline-and-minify-stylesheets-and-scripts.py in Headers */,
</ins><span class="cx">                                 148A7BF01B82975A002D9157 /* InlineCallFrame.h in Headers */,
</span><span class="cx">                                 0F24E55617F0B71C00ABB217 /* InlineCallFrameSet.h in Headers */,
</span><span class="cx">                                 99E45A2718A1B2590026D88F /* InputCursor.h in Headers */,
</span><span class="lines">@@ -6580,7 +6588,6 @@
</span><span class="cx">                                 86E3C614167BABD7006D760A /* JSExport.h in Headers */,
</span><span class="cx">                                 A7B4ACAF1484C9CE00B38A36 /* JSExportMacros.h in Headers */,
</span><span class="cx">                                 0F2B66EF17B6B5AB00A7AE3F /* JSFloat32Array.h in Headers */,
</span><del>-                                53917E7B1B7906FA000EBD33 /* JSGenericTypedArrayViewPrototypeFunctions.h in Headers */,
</del><span class="cx">                                 0F2B66F017B6B5AB00A7AE3F /* JSFloat64Array.h in Headers */,
</span><span class="cx">                                 BC18C41F0E16F5CD00B34460 /* JSFunction.h in Headers */,
</span><span class="cx">                                 A72028BA1797603D0098028C /* JSFunctionInlines.h in Headers */,
</span><span class="lines">@@ -6589,6 +6596,7 @@
</span><span class="cx">                                 0F2B66F317B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructorInlines.h in Headers */,
</span><span class="cx">                                 0F2B66F417B6B5AB00A7AE3F /* JSGenericTypedArrayViewInlines.h in Headers */,
</span><span class="cx">                                 0F2B66F517B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototype.h in Headers */,
</span><ins>+                                53917E7B1B7906FA000EBD33 /* JSGenericTypedArrayViewPrototypeFunctions.h in Headers */,
</ins><span class="cx">                                 0F2B66F617B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototypeInlines.h in Headers */,
</span><span class="cx">                                 797E07AA1B8FCFB9008400BA /* JSGlobalLexicalEnvironment.h in Headers */,
</span><span class="cx">                                 BC18C4210E16F5CD00B34460 /* JSGlobalObject.h in Headers */,
</span><span class="lines">@@ -6621,7 +6629,7 @@
</span><span class="cx">                                 2A4BB7F318A41179008A0FCD /* JSManagedValueInternal.h in Headers */,
</span><span class="cx">                                 A700874217CBE8EB00C3E643 /* JSMap.h in Headers */,
</span><span class="cx">                                 A74DEF96182D991400522C22 /* JSMapIterator.h in Headers */,
</span><del>-                                A5840E2B187CA75B00843B10 /* jsmin.py in Headers */,
</del><ins>+                                9959E92D1BD17FA4001AA413 /* jsmin.py in Headers */,
</ins><span class="cx">                                 E3D239C91B829C1C00BBEF67 /* JSModuleEnvironment.h in Headers */,
</span><span class="cx">                                 E318CBC11B8AEF5100A2929D /* JSModuleNamespaceObject.h in Headers */,
</span><span class="cx">                                 E39DA4A71B7E8B7C0084F33A /* JSModuleRecord.h in Headers */,
</span><span class="lines">@@ -6635,7 +6643,6 @@
</span><span class="cx">                                 7C184E1B17BEDBD3007CB63A /* JSPromise.h in Headers */,
</span><span class="cx">                                 7C184E2317BEE240007CB63A /* JSPromiseConstructor.h in Headers */,
</span><span class="cx">                                 7C008CDB187124BB00955C24 /* JSPromiseDeferred.h in Headers */,
</span><del>-                                0FB4FB741BC843140025CA5A /* FTLLazySlowPath.h in Headers */,
</del><span class="cx">                                 7C184E1F17BEE22E007CB63A /* JSPromisePrototype.h in Headers */,
</span><span class="cx">                                 2A05ABD61961DF2400341750 /* JSPropertyNameEnumerator.h in Headers */,
</span><span class="cx">                                 E3EF88751B66DF23003F26CB /* JSPropertyNameIterator.h in Headers */,
</span><span class="lines">@@ -6663,6 +6670,7 @@
</span><span class="cx">                                 0F2B66FB17B6B5AB00A7AE3F /* JSTypedArrayConstructors.h in Headers */,
</span><span class="cx">                                 0F2B66FD17B6B5AB00A7AE3F /* JSTypedArrayPrototypes.h in Headers */,
</span><span class="cx">                                 0F2B66FF17B6B5AB00A7AE3F /* JSTypedArrays.h in Headers */,
</span><ins>+                                DEA7E2451BBC677F00D78440 /* JSTypedArrayViewPrototype.h in Headers */,
</ins><span class="cx">                                 6507D29E0E871E5E00D7D896 /* JSTypeInfo.h in Headers */,
</span><span class="cx">                                 0F2B670217B6B5AB00A7AE3F /* JSUint16Array.h in Headers */,
</span><span class="cx">                                 0F2B670317B6B5AB00A7AE3F /* JSUint32Array.h in Headers */,
</span><span class="lines">@@ -6942,7 +6950,6 @@
</span><span class="cx">                                 14142E511B796ECE00F4BF4B /* UnlinkedFunctionExecutable.h in Headers */,
</span><span class="cx">                                 0F2E892C16D028AD009E4FD2 /* UnusedPointer.h in Headers */,
</span><span class="cx">                                 0F963B3813FC6FE90002D9B2 /* ValueProfile.h in Headers */,
</span><del>-                                0F1C3DDA1BBCE09E00E523E4 /* CellState.h in Headers */,
</del><span class="cx">                                 0F426A481460CBB300131F8F /* ValueRecovery.h in Headers */,
</span><span class="cx">                                 79EE0C001B4AFB85000385C9 /* VariableEnvironment.h in Headers */,
</span><span class="cx">                                 0F6C73511AC9F99F00BE1682 /* VariableWriteFireDetail.h in Headers */,
</span><span class="lines">@@ -6954,6 +6961,7 @@
</span><span class="cx">                                 7B0247551B8682DD00542440 /* WASMConstants.h in Headers */,
</span><span class="cx">                                 7BC547D31B6959A100959B58 /* WASMFormat.h in Headers */,
</span><span class="cx">                                 7B2E010E1B97AA6900EF5D5C /* WASMFunctionCompiler.h in Headers */,
</span><ins>+                                7B8329BF1BB21FE300649A6E /* WASMFunctionLLVMIRGenerator.h in Headers */,
</ins><span class="cx">                                 7B0247571B8682E400542440 /* WASMFunctionParser.h in Headers */,
</span><span class="cx">                                 7B0247591B868EB700542440 /* WASMFunctionSyntaxChecker.h in Headers */,
</span><span class="cx">                                 7B39F76E1B62DE3200360FB4 /* WASMModuleParser.h in Headers */,
</span><span class="lines">@@ -6981,7 +6989,7 @@
</span><span class="cx">                                 C2B6D75318A33793004A9301 /* WriteBarrierInlines.h in Headers */,
</span><span class="cx">                                 0FC8150A14043BF500CFA603 /* WriteBarrierSupport.h in Headers */,
</span><span class="cx">                                 9688CB160ED12B4E001D649F /* X86Assembler.h in Headers */,
</span><del>-                                A5840E2A187CA75900843B10 /* xxd.pl in Headers */,
</del><ins>+                                9959E92E1BD17FA4001AA413 /* xxd.pl in Headers */,
</ins><span class="cx">                                 451539B912DC994500EF7AC4 /* Yarr.h in Headers */,
</span><span class="cx">                                 86704B8512DBA33700A9FE7B /* YarrInterpreter.h in Headers */,
</span><span class="cx">                                 86704B8712DBA33700A9FE7B /* YarrJIT.h in Headers */,
</span><span class="lines">@@ -7734,6 +7742,7 @@
</span><span class="cx">                                 0FD1202F1A8AED12000F5280 /* FTLJSCallBase.cpp in Sources */,
</span><span class="cx">                                 0FD120331A8C85BD000F5280 /* FTLJSCallVarargs.cpp in Sources */,
</span><span class="cx">                                 62774DAA1B8D4B190006F05A /* FTLJSTailCall.cpp in Sources */,
</span><ins>+                                0FB4FB731BC843140025CA5A /* FTLLazySlowPath.cpp in Sources */,
</ins><span class="cx">                                 0F8F2B95172E04A0007DBDA5 /* FTLLink.cpp in Sources */,
</span><span class="cx">                                 0FCEFADF180738C000472CE4 /* FTLLocation.cpp in Sources */,
</span><span class="cx">                                 0FEA0A0F170513DB00BB722C /* FTLLowerDFGToLLVM.cpp in Sources */,
</span><span class="lines">@@ -7767,6 +7776,7 @@
</span><span class="cx">                                 142E3135134FF0A600AFADB5 /* HandleSet.cpp in Sources */,
</span><span class="cx">                                 142E3137134FF0A600AFADB5 /* HandleStack.cpp in Sources */,
</span><span class="cx">                                 14BA7A9713AADFF8005B7C2C /* Heap.cpp in Sources */,
</span><ins>+                                0F32BD101BB34F190093A57F /* HeapHelperPool.cpp in Sources */,
</ins><span class="cx">                                 C24D31E2161CD695002AA4DB /* HeapStatistics.cpp in Sources */,
</span><span class="cx">                                 C2E526BD1590EF000054E48D /* HeapTimer.cpp in Sources */,
</span><span class="cx">                                 FE7BA60F1A1A7CEC00F1F7B4 /* HeapVerifier.cpp in Sources */,
</span><span class="lines">@@ -7924,6 +7934,7 @@
</span><span class="cx">                                 0F2B66FA17B6B5AB00A7AE3F /* JSTypedArrayConstructors.cpp in Sources */,
</span><span class="cx">                                 0F2B66FC17B6B5AB00A7AE3F /* JSTypedArrayPrototypes.cpp in Sources */,
</span><span class="cx">                                 0F2B66FE17B6B5AB00A7AE3F /* JSTypedArrays.cpp in Sources */,
</span><ins>+                                DEA7E2441BBC677200D78440 /* JSTypedArrayViewPrototype.cpp in Sources */,
</ins><span class="cx">                                 86E3C61A167BABEE006D760A /* JSValue.mm in Sources */,
</span><span class="cx">                                 14BD5A320A3E91F600BAF59C /* JSValueRef.cpp in Sources */,
</span><span class="cx">                                 86E3C61C167BABEE006D760A /* JSVirtualMachine.mm in Sources */,
</span><span class="lines">@@ -7997,7 +8008,6 @@
</span><span class="cx">                                 0F98206016BFE38100240D02 /* PreciseJumpTargets.cpp in Sources */,
</span><span class="cx">                                 95742F650DD11F5A000917FB /* Profile.cpp in Sources */,
</span><span class="cx">                                 95CD45760E1C4FDD0085358E /* ProfileGenerator.cpp in Sources */,
</span><del>-                                DEA7E2441BBC677200D78440 /* JSTypedArrayViewPrototype.cpp in Sources */,
</del><span class="cx">                                 95AB83560DA43C3000BC83F3 /* ProfileNode.cpp in Sources */,
</span><span class="cx">                                 0FF729AD166AD35C000F5BA3 /* ProfilerBytecode.cpp in Sources */,
</span><span class="cx">                                 0FF729AE166AD35C000F5BA3 /* ProfilerBytecodes.cpp in Sources */,
</span><span class="lines">@@ -8074,7 +8084,6 @@
</span><span class="cx">                                 14469DEB107EC7E700650446 /* StringConstructor.cpp in Sources */,
</span><span class="cx">                                 70EC0EC61AA0D7DA00B6AAFA /* StringIteratorPrototype.cpp in Sources */,
</span><span class="cx">                                 14469DEC107EC7E700650446 /* StringObject.cpp in Sources */,
</span><del>-                                0FB4FB731BC843140025CA5A /* FTLLazySlowPath.cpp in Sources */,
</del><span class="cx">                                 14469DED107EC7E700650446 /* StringPrototype.cpp in Sources */,
</span><span class="cx">                                 9335F24D12E6765B002B5553 /* StringRecursionChecker.cpp in Sources */,
</span><span class="cx">                                 BCDE3B430E6C832D001453A7 /* Structure.cpp in Sources */,
</span><span class="lines">@@ -8106,7 +8115,6 @@
</span><span class="cx">                                 0FF42740158EBE8B004CB9FF /* udis86_decode.c in Sources */,
</span><span class="cx">                                 0FF42743158EBE91004CB9FF /* udis86_input.c in Sources */,
</span><span class="cx">                                 0FF4274D158EBFE6004CB9FF /* udis86_itab_holder.c in Sources */,
</span><del>-                                0F32BD101BB34F190093A57F /* HeapHelperPool.cpp in Sources */,
</del><span class="cx">                                 0FF42745158EBE91004CB9FF /* udis86_syn-att.c in Sources */,
</span><span class="cx">                                 0FF42746158EBE91004CB9FF /* udis86_syn-intel.c in Sources */,
</span><span class="cx">                                 0FF42747158EBE91004CB9FF /* udis86_syn.c in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorePlatformWincmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/PlatformWin.cmake (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/PlatformWin.cmake        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/PlatformWin.cmake        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -29,11 +29,16 @@
</span><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> file(MAKE_DIRECTORY ${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore)
</span><ins>+
+file(GLOB _JavaScriptCore_Scripts &quot;${JavaScriptCore_SCRIPTS_DIR}/*&quot;)
+foreach (_script ${_JavaScriptCore_Scripts})
+    file(COPY ${_script} DESTINATION ${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts)
+endforeach()
+
</ins><span class="cx"> set(JavaScriptCore_POST_BUILD_COMMAND &quot;${CMAKE_BINARY_DIR}/DerivedSources/JavaScriptCore/postBuild.cmd&quot;)
</span><span class="cx"> file(WRITE &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f \&quot;${DERIVED_SOURCES_DIR}/JavaScriptCore/*.h\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\&quot; &gt;nul 2&gt;nul\n&quot;)
</span><span class="cx"> file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f \&quot;${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector/*.h\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\&quot; &gt;nul 2&gt;nul\n&quot;)
</span><del>-file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f /s \&quot;${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector/scripts/*.*\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\&quot; &gt;nul 2&gt;nul\n&quot;)
-file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f /s \&quot;${DERIVED_SOURCES_DIR}/JavaScriptCore/generate-js-builtins\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\&quot; &gt;nul 2&gt;nul\n&quot;)
</del><ins>+file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f \&quot;${JavaScriptCore_SCRIPTS_DIR}/*.*\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts\&quot; &gt;nul 2&gt;nul\n&quot;)
</ins><span class="cx"> foreach (_directory ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES})
</span><span class="cx">     file(APPEND &quot;${JavaScriptCore_POST_BUILD_COMMAND}&quot; &quot;@xcopy /y /d /f \&quot;${JAVASCRIPTCORE_DIR}/${_directory}/*.h\&quot; \&quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\&quot; &gt;nul 2&gt;nul\n&quot;)
</span><span class="cx"> endforeach ()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptscssminpyfromrev191311trunkSourceJavaScriptCoreinspectorscriptscssminpy"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/cssmin.py (from rev 191311, trunk/Source/JavaScriptCore/inspector/scripts/cssmin.py) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/cssmin.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/cssmin.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+#!/usr/bin/python
+
+# Copyright (C) 2013 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 re
+
+def cssminify(css):
+    rules = (
+        (r&quot;\/\*.*?\*\/&quot;, &quot;&quot;),          # delete comments
+        (r&quot;\n&quot;, &quot;&quot;),                   # delete new lines
+        (r&quot;\s+&quot;, &quot; &quot;),                 # change multiple spaces to one space
+        (r&quot;\s?([;:{},+&gt;])\s?&quot;, r&quot;\1&quot;), # delete space where it is not needed
+        (r&quot;;}&quot;, &quot;}&quot;)                   # change ';}' to '}' because the semicolon is not needed
+    )
+
+    css = css.replace(&quot;\r\n&quot;, &quot;\n&quot;)
+    for rule in rules:
+        css = re.compile(rule[0], re.MULTILINE | re.UNICODE | re.DOTALL).sub(rule[1], css)
+    return css
+
+if __name__ == &quot;__main__&quot;:
+    import sys
+    sys.stdout.write(cssminify(sys.stdin.read()))
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsgeneratecombinedinspectorjsonpyfromrev191311trunkSourceJavaScriptCoreinspectorscriptsgeneratecombinedinspectorjsonpy"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py (from rev 191311, trunk/Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/generate-combined-inspector-json.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+#!/usr/bin/python
+
+# Copyright (C) 2013 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 glob
+import json
+import os
+import sys
+
+if len(sys.argv) &lt; 2:
+    print(&quot;usage: %s [json files or directory of json files ...]&quot; % os.path.basename(sys.argv[0]))
+    sys.exit(1)
+
+files = []
+for arg in sys.argv[1:]:
+    if not os.access(arg, os.F_OK):
+        raise Exception(&quot;File \&quot;%s\&quot; not found&quot; % arg)
+    elif os.path.isdir(arg):
+        files.extend(glob.glob(os.path.join(arg, &quot;*.json&quot;)))
+    else:
+        files.append(arg)
+files.sort()
+
+# To keep as close to the original JSON formatting as possible, just
+# dump each JSON input file unmodified into an array of &quot;domains&quot;.
+# Validate each file is valid JSON and that there is a &quot;domain&quot; key.
+
+first = True
+print(&quot;{\&quot;domains\&quot;:[&quot;)
+for file in files:
+    if first:
+        first = False
+    else:
+        print(&quot;,&quot;)
+
+    string = open(file).read()
+
+    try:
+        dictionary = json.loads(string)
+        if not &quot;domain&quot; in dictionary:
+            raise Exception(&quot;File \&quot;%s\&quot; does not contains a \&quot;domain\&quot; key.&quot; % file)
+    except ValueError:
+        sys.stderr.write(&quot;File \&quot;%s\&quot; does not contain valid JSON:\n&quot; % file)
+        raise
+
+    print(string.rstrip())
+print(&quot;]}&quot;)
+
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsgeneratejsbuiltinsfromrev191311trunkSourceJavaScriptCoregeneratejsbuiltins"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/generate-js-builtins (from rev 191311, trunk/Source/JavaScriptCore/generate-js-builtins) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/generate-js-builtins                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/generate-js-builtins        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,343 @@
</span><ins>+#!/usr/bin/python
+# Copyright (C) 2014 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. ``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
+# 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 argparse
+import filecmp
+import fnmatch
+import os
+import re
+import shutil
+import sys
+import datetime
+import json
+
+parser = argparse.ArgumentParser()
+parser.add_argument('input_file', nargs='*', help='Input JS files which builtins generated from')
+parser.add_argument('--input-directory', help='All JS files will be used as input from this directory.')
+parser.add_argument('--output', help='path to output cpp or h file')
+parser.add_argument('--prefix', default='JSC', help='prefix used for public macros')
+parser.add_argument('--namespace', default='JSC', help='C++ namespace')
+args = parser.parse_args()
+
+copyrightText = &quot;&quot;&quot; *
+ * 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. ``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
+ * 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. 
+ */\n
+&quot;&quot;&quot;
+
+generatorString = &quot;/* Generated by %s do not hand edit. */\n&quot; % os.path.basename(__file__)
+
+functionHeadRegExp = re.compile(r&quot;(?:function|constructor)\s+\w+\s*\(.*?\)&quot;, re.MULTILINE | re.S)
+functionNameRegExp = re.compile(r&quot;(?:function|constructor)\s+(\w+)\s*\(&quot;, re.MULTILINE | re.S)
+functionIsConstructorRegExp = re.compile(r&quot;^constructor&quot;, re.MULTILINE | re.S)
+functionParameterFinder = re.compile(r&quot;^(?:function|constructor)\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\s*\)&quot;, re.MULTILINE | re.S)
+
+multilineCommentRegExp = re.compile(r&quot;\/\*.*?\*\/&quot;, re.MULTILINE | re.S)
+singleLineCommentRegExp = re.compile(r&quot;\/\/.*?\n&quot;, re.MULTILINE | re.S)
+
+def getCopyright(source):
+    copyrightBlock = multilineCommentRegExp.findall(source)[0]
+    copyrightBlock = copyrightBlock[:copyrightBlock.index(&quot;Redistribution&quot;)]
+    copyRightLines = []
+
+    for line in copyrightBlock.split(&quot;\n&quot;):
+        line = line.replace(&quot;/*&quot;, &quot;&quot;)
+        line = line.replace(&quot;*/&quot;, &quot;&quot;)
+        line = line.replace(&quot;*&quot;, &quot;&quot;)
+        line = line.replace(&quot;Copyright&quot;, &quot;&quot;)
+        line = line.replace(&quot;copyright&quot;, &quot;&quot;)
+        line = line.replace(&quot;(C)&quot;, &quot;&quot;)
+        line = line.replace(&quot;(c)&quot;, &quot;&quot;)
+        line = line.strip()
+        if len(line) == 0:
+            continue
+
+        copyRightLines.append(line)
+    
+    return list(set(copyRightLines))
+
+class Function(object):
+    def __init__(self, name, source, isConstructor, parameters):
+        self.name = name
+        self.source = source
+        self.isConstructor = isConstructor
+        self.parameters = parameters
+
+    def mangleName(self, object):
+        qName = object + &quot;.&quot; + self.name
+        mangledName = &quot;&quot;
+        i = 0
+        while i &lt; len(qName):
+            if qName[i] == '.':
+                mangledName = mangledName + qName[i + 1].upper()
+                i = i + 1
+            else:
+                mangledName = mangledName + qName[i]
+            i = i + 1
+        if self.isConstructor:
+            mangledName = mangledName + &quot;Constructor&quot;
+        return mangledName
+
+def getFunctions(source):
+
+    source = multilineCommentRegExp.sub(&quot;/**/&quot;, singleLineCommentRegExp.sub(&quot;//\n&quot;, source))
+
+    matches = [ f for f in functionHeadRegExp.finditer(source)]
+    functionBounds = []
+    start = 0
+    end = 0
+    for match in matches:
+        start = match.start()
+        if start &lt; end:
+            continue
+        end = match.end()
+        while source[end] != '{':
+            end = end + 1
+        depth = 1
+        end = end + 1
+        while depth &gt; 0:
+            if source[end] == '{':
+                depth = depth + 1
+            elif source[end] == '}':
+                depth = depth - 1
+            end = end + 1
+        functionBounds.append((start, end))
+
+    functions = [source[start:end].strip() for (start, end) in functionBounds]
+    result = []
+    for function in functions:
+        function = multilineCommentRegExp.sub(&quot;&quot;, function)
+        functionName = functionNameRegExp.findall(function)[0]
+        functionIsConstructor = functionIsConstructorRegExp.match(function) != None
+        functionParameters = functionParameterFinder.findall(function)[0].split(',')
+        if len(functionParameters[0]) == 0:
+            functionParameters = []
+
+        result.append(Function(functionName, function, functionIsConstructor, functionParameters))
+    return result
+
+def writeIncludeDirectives(writer, headerNames):
+    for headerName in headerNames:
+        writer.write(&quot;#include &quot; + headerName + &quot;\n&quot;)
+
+def generateCode(source):
+    inputFile = open(source, &quot;r&quot;)
+    baseName = os.path.basename(source).replace(&quot;.js&quot;, &quot;&quot;)
+    
+    source = &quot;&quot;
+    for line in inputFile:
+        source = source + line
+    
+    if sys.platform == &quot;cygwin&quot;:
+        source = source.replace(&quot;\r\n&quot;, &quot;\n&quot;)
+    return (baseName, getFunctions(source), getCopyright(source))
+
+builtins = []
+copyrights = []
+(output_base, _) = os.path.splitext(args.output)
+
+if args.input_directory:
+    for file in os.listdir(args.input_directory):
+        args.input_file.append(os.path.join(args.input_directory, file))
+
+for file in args.input_file:
+    if fnmatch.fnmatch(file, '*.js'):
+        (baseName, functions, objectCopyrights) = generateCode(file)
+        copyrights.extend(objectCopyrights)
+        builtins.append((baseName, functions))
+namespace = args.namespace
+macroPrefix = args.prefix
+scopeName = os.path.splitext(os.path.basename(args.output))[0]
+includeGuard = scopeName + &quot;_H&quot;
+headerName = scopeName + &quot;.h&quot;
+
+headerIncludes = [&quot;\&quot;BuiltinUtils.h\&quot;&quot;] if namespace == &quot;JSC&quot; else [&quot;&lt;builtins/BuiltinUtils.h&gt;&quot;]
+contentIncludes = [&quot;\&quot;BuiltinExecutables.h\&quot;&quot;, &quot;\&quot;Executable.h\&quot;&quot;, &quot;\&quot;JSCellInlines.h\&quot;&quot;, &quot;\&quot;VM.h\&quot;&quot;] if namespace == &quot;JSC&quot; else [&quot;&lt;runtime/Executable.h&gt;&quot;, &quot;&lt;runtime/StructureInlines.h&gt;&quot;, &quot;&lt;runtime/JSCJSValueInlines.h&gt;&quot;, &quot;&lt;runtime/JSCellInlines.h&gt;&quot;, &quot;&lt;runtime/VM.h&gt;&quot;, &quot;\&quot;WebCoreJSClientData.h\&quot;&quot;]
+
+copyrights = list(set(copyrights))
+
+copyrightBody = &quot;&quot;
+for copyright in copyrights:
+    copyrightBody = copyrightBody +&quot; * Copyright (C) &quot; + copyright + &quot;\n&quot;
+
+builtinsHeader = open(output_base + &quot;.h.tmp&quot;, &quot;w&quot;)
+builtinsImplementation = open(output_base + &quot;.cpp.tmp&quot;, &quot;w&quot;)
+copyrightText = &quot;/*\n&quot; + copyrightBody + copyrightText
+builtinsHeader.write(&quot;&quot;&quot;%s
+%s
+
+#ifndef %s
+#define %s
+
+&quot;&quot;&quot; % (generatorString, copyrightText, includeGuard, includeGuard))
+
+writeIncludeDirectives(builtinsHeader, headerIncludes)
+
+builtinsHeader.write(&quot;&quot;&quot;
+namespace JSC {
+    class FunctionExecutable;
+}
+
+namespace %s {
+
+&quot;&quot;&quot; % namespace)
+
+codeReferences = []
+
+for (objectName, functions) in builtins:
+    print(&quot;Generating bindings for the %s builtin.&quot; % objectName)
+    builtinsHeader.write(&quot;/* %s functions */\n&quot; % objectName)
+    for function in functions:
+        name = function.name
+        mangledName = function.mangleName(objectName)
+        mangledName = mangledName[0].lower() + mangledName[1:] + &quot;Code&quot;
+        codeReferences.append((mangledName, function))
+        builtinsHeader.write(&quot;extern const char* s_%s;\n&quot; % mangledName)
+        builtinsHeader.write(&quot;extern const int s_%sLength;\n&quot; % mangledName)
+        builtinsHeader.write(&quot;extern const JSC::ConstructAbility s_%sConstructAbility;\n&quot; % mangledName)
+    builtinsHeader.write(&quot;\n&quot;)
+    builtinsHeader.write(&quot;#define %s_FOREACH_%s_BUILTIN(macro) \\\n&quot; % (macroPrefix, objectName.replace(&quot;.&quot;, &quot;_&quot;).upper()))
+    for function in functions:
+        mangledName = function.mangleName(objectName)
+        builtinsHeader.write(&quot;    macro(%s, %s, %d) \\\n&quot; % (function.name, mangledName, len(function.parameters)))
+    builtinsHeader.write(&quot;\n&quot;)
+    for function in functions:
+        builtinsHeader.write(&quot;#define %s_BUILTIN_%s 1\n&quot; % (macroPrefix, function.mangleName(objectName).upper()))
+    builtinsHeader.write(&quot;\n\n&quot;)
+names = []
+builtinsHeader.write(&quot;#define %s_FOREACH_BUILTIN(macro)\\\n&quot; % macroPrefix)
+for (codeReference, function) in codeReferences:
+    builtinsHeader.write(&quot;    macro(%s, %s, s_%sLength) \\\n&quot; % (codeReference, function.name, codeReference))
+    names.append(function.name)
+
+builtinsHeader.write(&quot;\n\n&quot;)
+builtinsHeader.write(&quot;#define %s_FOREACH_BUILTIN_FUNCTION_NAME(macro) \\\n&quot; % macroPrefix)
+for name in sorted(set(names)):
+    builtinsHeader.write(&quot;    macro(%s) \\\n&quot; % name)
+builtinsHeader.write(&quot;&quot;&quot;
+
+#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
+    JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
+
+%s_FOREACH_BUILTIN(DECLARE_BUILTIN_GENERATOR)
+#undef DECLARE_BUILTIN_GENERATOR
+
+#define %s_BUILTIN_EXISTS(name) defined %s_BUILTIN_ ## name
+
+}
+
+#endif // %s
+
+&quot;&quot;&quot; % (macroPrefix, macroPrefix, macroPrefix, includeGuard))
+
+builtinsImplementation.write(&quot;&quot;&quot;%s
+%s
+
+#include &quot;config.h&quot;
+
+#include &quot;%s&quot;
+
+&quot;&quot;&quot;  % (generatorString, copyrightText, headerName))
+
+writeIncludeDirectives(builtinsImplementation, contentIncludes)
+
+builtinsImplementation.write(&quot;&quot;&quot;
+namespace %s {
+
+&quot;&quot;&quot;  % (namespace))
+
+
+
+for (codeReference, function) in codeReferences:
+    source = function.source
+    source = &quot;(function &quot; + source[source.index(&quot;(&quot;):] + &quot;)&quot;
+    lines = json.dumps(source)[1:-1].split(&quot;\\n&quot;)
+    sourceLength = len(source)
+    source = &quot;&quot;
+    for line in lines:
+        source = source + (&quot;    \&quot;%s\\n\&quot; \\\n&quot; % line)
+    builtinsImplementation.write(&quot;const char* s_%s =\n%s;\n\n&quot; % (codeReference, source))
+    builtinsImplementation.write(&quot;const int s_%sLength = %d;\n\n&quot; % (codeReference, sourceLength + 1)) # + 1 for \n
+    constructAbility = &quot;JSC::ConstructAbility::CannotConstruct&quot;
+    if function.isConstructor:
+        constructAbility = &quot;JSC::ConstructAbility::CanConstruct&quot;
+    builtinsImplementation.write(&quot;const JSC::ConstructAbility s_%sConstructAbility = %s;\n\n&quot; % (codeReference, constructAbility)) # + 1 for \n
+
+builtinsImplementation.write(&quot;&quot;&quot;
+#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
+JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
+&quot;&quot;&quot;);
+
+if (namespace == &quot;JSC&quot;):
+    builtinsImplementation.write(&quot;&quot;&quot;{\\
+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); \\
+&quot;&quot;&quot;)
+else:
+    builtinName = scopeName[0].lower() + scopeName[1:]
+    builtinsImplementation.write(&quot;&quot;&quot;{\\
+    JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \\
+    return clientData-&gt;builtinFunctions().%s().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().%s().codeName##Source()); \\
+&quot;&quot;&quot;% (builtinName, builtinName))
+
+builtinsImplementation.write(&quot;&quot;&quot;}
+%s_FOREACH_BUILTIN(DEFINE_BUILTIN_GENERATOR)
+#undef DEFINE_BUILTIN_GENERATOR
+}
+
+&quot;&quot;&quot;% (macroPrefix))
+
+builtinsHeader.close()
+builtinsImplementation.close()
+
+if (not os.path.exists(output_base + &quot;.h&quot;)) or (not filecmp.cmp(output_base + &quot;.h.tmp&quot;, output_base + &quot;.h&quot;, shallow=False)):
+    if (os.path.exists(output_base + &quot;.h&quot;)):
+        os.remove(output_base + &quot;.h&quot;)
+    os.rename(output_base + &quot;.h.tmp&quot;, output_base + &quot;.h&quot;)
+else:
+    os.remove(output_base + &quot;.h.tmp&quot;)
+
+if (not os.path.exists(output_base + &quot;.cpp&quot;)) or (not filecmp.cmp(output_base + &quot;.cpp.tmp&quot;, output_base + &quot;.cpp&quot;, shallow=False)):
+    if (os.path.exists(output_base + &quot;.cpp&quot;)):
+        os.remove(output_base + &quot;.cpp&quot;)
+    os.rename(output_base + &quot;.cpp.tmp&quot;, output_base + &quot;.cpp&quot;)
+else:
+    os.remove(output_base + &quot;.cpp.tmp&quot;)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsinlineandminifystylesheetsandscriptspyfromrev191311trunkSourceJavaScriptCoreinspectorscriptsinlineandminifystylesheetsandscriptspy"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py (from rev 191311, trunk/Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,81 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (C) 2013 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.
+
+# This script inlines and minifies external stylesheets and scripts.
+#  - &lt;link href=&quot;...&quot; rel=&quot;stylesheet&quot;&gt; =&gt; &lt;style&gt;...&lt;/style&gt;
+#  - &lt;script src=&quot;...&quot;&gt;                 =&gt; &lt;script&gt;...&lt;/script&gt;
+
+import cssmin
+import jsmin
+import os.path
+import re
+import sys
+
+
+def main(argv):
+
+    if len(argv) &lt; 2:
+        print('usage: %s inputFile outputFile' % argv[0])
+        return 1
+
+    inputFileName = argv[1]
+    outputFileName = argv[2]
+    importsDir = os.path.dirname(inputFileName)
+
+    inputFile = open(inputFileName, 'r')
+    inputContent = inputFile.read()
+    inputFile.close()
+
+    def inline(match, minifier, prefix, postfix):
+        importFileName = match.group(1)
+        fullPath = os.path.join(importsDir, importFileName)
+        if not os.access(fullPath, os.F_OK):
+            raise Exception('File %s referenced in %s not found' % (importFileName, inputFileName))
+        importFile = open(fullPath, 'r')
+        importContent = minifier(importFile.read())
+        importFile.close()
+        return '%s%s%s' % (prefix, importContent, postfix)
+
+    def inlineStylesheet(match):
+        return inline(match, cssmin.cssminify, &quot;&lt;style&gt;&quot;, &quot;&lt;/style&gt;&quot;)
+
+    def inlineScript(match):
+        return inline(match, jsmin.jsmin, &quot;&lt;script&gt;&quot;, &quot;&lt;/script&gt;&quot;)
+
+    outputContent = re.sub(r'&lt;link rel=&quot;stylesheet&quot; href=[\'&quot;]([^\'&quot;]+)[\'&quot;]&gt;', inlineStylesheet, inputContent)
+    outputContent = re.sub(r'&lt;script src=[\'&quot;]([^\'&quot;]+)[\'&quot;]&gt;&lt;/script&gt;', inlineScript, outputContent)
+
+    outputFile = open(outputFileName, 'w')
+    outputFile.write(outputContent)
+    outputFile.close()
+
+    # Touch output file directory to make sure that Xcode will copy
+    # modified resource files.
+    if sys.platform == 'darwin':
+        outputDirName = os.path.dirname(outputFileName)
+        os.utime(outputDirName, None)
+
+if __name__ == '__main__':
+    sys.exit(main(sys.argv))
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsjsminpyfromrev191311trunkSourceJavaScriptCoreinspectorscriptsjsminpy"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/jsmin.py (from rev 191311, trunk/Source/JavaScriptCore/inspector/scripts/jsmin.py) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/jsmin.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/jsmin.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,238 @@
</span><ins>+# This code is original from jsmin by Douglas Crockford, it was translated to
+# Python by Baruch Even. It was rewritten by Dave St.Germain for speed.
+#
+# The MIT License (MIT)
+#
+# Copyright (c) 2013 Dave St.Germain
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the &quot;Software&quot;), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+
+import sys
+is_3 = sys.version_info &gt;= (3, 0)
+if is_3:
+    import io
+else:
+    import StringIO
+    try:
+        import cStringIO
+    except ImportError:
+        cStringIO = None
+
+
+__all__ = ['jsmin', 'JavascriptMinify']
+__version__ = '2.0.9'
+
+
+def jsmin(js):
+    &quot;&quot;&quot;
+    returns a minified version of the javascript string
+    &quot;&quot;&quot;
+    if not is_3:
+        if cStringIO and not isinstance(js, unicode):
+            # strings can use cStringIO for a 3x performance
+            # improvement, but unicode (in python2) cannot
+            klass = cStringIO.StringIO
+        else:
+            klass = StringIO.StringIO
+    else:
+        klass = io.StringIO
+    ins = klass(js)
+    outs = klass()
+    JavascriptMinify(ins, outs).minify()
+    return outs.getvalue()
+
+
+class JavascriptMinify(object):
+    &quot;&quot;&quot;
+    Minify an input stream of javascript, writing
+    to an output stream
+    &quot;&quot;&quot;
+
+    def __init__(self, instream=None, outstream=None):
+        self.ins = instream
+        self.outs = outstream
+
+    def minify(self, instream=None, outstream=None):
+        if instream and outstream:
+            self.ins, self.outs = instream, outstream
+
+        self.is_return = False
+        self.return_buf = ''
+
+        def write(char):
+            # all of this is to support literal regular expressions.
+            # sigh
+            if char in 'return':
+                self.return_buf += char
+                self.is_return = self.return_buf == 'return'
+            self.outs.write(char)
+            if self.is_return:
+                self.return_buf = ''
+
+        read = self.ins.read
+
+        space_strings = &quot;abcdefghijklmnopqrstuvwxyz&quot;\
+        &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\&quot;
+        starters, enders = '{[(+-', '}])+-&quot;\''
+        newlinestart_strings = starters + space_strings
+        newlineend_strings = enders + space_strings
+        do_newline = False
+        do_space = False
+        escape_slash_count = 0
+        doing_single_comment = False
+        previous_before_comment = ''
+        doing_multi_comment = False
+        in_re = False
+        in_quote = ''
+        quote_buf = []
+
+        previous = read(1)
+        if previous == '\\':
+            escape_slash_count += 1
+        next1 = read(1)
+        if previous == '/':
+            if next1 == '/':
+                doing_single_comment = True
+            elif next1 == '*':
+                doing_multi_comment = True
+                previous = next1
+                next1 = read(1)
+            else:
+                write(previous)
+        elif not previous:
+            return
+        elif previous &gt;= '!':
+            if previous in &quot;'\&quot;&quot;:
+                in_quote = previous
+            write(previous)
+            previous_non_space = previous
+        else:
+            previous_non_space = ' '
+        if not next1:
+            return
+
+        while 1:
+            next2 = read(1)
+            if not next2:
+                last = next1.strip()
+                if not (doing_single_comment or doing_multi_comment)\
+                    and last not in ('', '/'):
+                    if in_quote:
+                        write(''.join(quote_buf))
+                    write(last)
+                break
+            if doing_multi_comment:
+                if next1 == '*' and next2 == '/':
+                    doing_multi_comment = False
+                    next2 = read(1)
+            elif doing_single_comment:
+                if next1 in '\r\n':
+                    doing_single_comment = False
+                    while next2 in '\r\n':
+                        next2 = read(1)
+                        if not next2:
+                            break
+                    if previous_before_comment in ')}]':
+                        do_newline = True
+                    elif previous_before_comment in space_strings:
+                        write('\n')
+            elif in_quote:
+                quote_buf.append(next1)
+
+                if next1 == in_quote:
+                    numslashes = 0
+                    for c in reversed(quote_buf[:-1]):
+                        if c != '\\':
+                            break
+                        else:
+                            numslashes += 1
+                    if numslashes % 2 == 0:
+                        in_quote = ''
+                        write(''.join(quote_buf))
+            elif next1 in '\r\n':
+                if previous_non_space in newlineend_strings \
+                    or previous_non_space &gt; '~':
+                    while 1:
+                        if next2 &lt; '!':
+                            next2 = read(1)
+                            if not next2:
+                                break
+                        else:
+                            if next2 in newlinestart_strings \
+                                or next2 &gt; '~' or next2 == '/':
+                                do_newline = True
+                            break
+            elif next1 &lt; '!' and not in_re:
+                if (previous_non_space in space_strings \
+                    or previous_non_space &gt; '~') \
+                    and (next2 in space_strings or next2 &gt; '~'):
+                    do_space = True
+                elif previous_non_space in '-+' and next2 == previous_non_space:
+                    # protect against + ++ or - -- sequences
+                    do_space = True
+                elif self.is_return and next2 == '/':
+                    # returning a regex...
+                    write(' ')
+            elif next1 == '/':
+                if do_space:
+                    write(' ')
+                if in_re:
+                    if previous != '\\' or (not escape_slash_count % 2) or next2 in 'gimy':
+                        in_re = False
+                    write('/')
+                elif next2 == '/':
+                    doing_single_comment = True
+                    previous_before_comment = previous_non_space
+                elif next2 == '*':
+                    doing_multi_comment = True
+                    previous = next1
+                    next1 = next2
+                    next2 = read(1)
+                else:
+                    in_re = previous_non_space in '(,=:[?!&amp;|' or self.is_return  # literal regular expression
+                    write('/')
+            else:
+                if do_space:
+                    do_space = False
+                    write(' ')
+                if do_newline:
+                    write('\n')
+                    do_newline = False
+
+                write(next1)
+                if not in_re and next1 in &quot;'\&quot;&quot;:
+                    in_quote = next1
+                    quote_buf = []
+
+            previous = next1
+            next1 = next2
+
+            if previous &gt;= '!':
+                previous_non_space = previous
+
+            if previous == '\\':
+                escape_slash_count += 1
+            else:
+                escape_slash_count = 0
+
+if __name__ == '__main__':
+    minifier = JavascriptMinify(sys.stdin, sys.stdout)
+    minifier.minify()
+    sys.stdout.write('\n')
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsxxdplfromrev191311trunkSourceJavaScriptCoreinspectorscriptsxxdpl"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/Scripts/xxd.pl (from rev 191311, trunk/Source/JavaScriptCore/inspector/scripts/xxd.pl) (0 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/xxd.pl                                (rev 0)
+++ trunk/Source/JavaScriptCore/Scripts/xxd.pl        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+#! /usr/bin/perl
+
+# Copyright (C) 2010-2011 Google 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:
+#
+#    # Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#    # 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.
+#    # Neither the name of Google 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+# OWNER OR 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.
+#
+
+$varname = shift;
+$fname = shift;
+$output = shift;
+
+open($input, '&lt;', $fname) or die &quot;Can't open file for read: $fname $!&quot;;
+$/ = undef;
+$text = &lt;$input&gt;;
+close($input);
+
+$text = join(', ', map('0x' . unpack(&quot;H*&quot;, $_), split(undef, $text)));
+
+open($output, '&gt;', $output) or die &quot;Can't open file for write: $output $!&quot;;
+print $output &quot;const unsigned char $varname\[\] = {\n$text\n};\n&quot;;
+close($output);
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoregeneratejsbuiltins"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/generate-js-builtins (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/generate-js-builtins        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/generate-js-builtins        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,343 +0,0 @@
</span><del>-#!/usr/bin/python
-# Copyright (C) 2014 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. ``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
-# 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 argparse
-import filecmp
-import fnmatch
-import os
-import re
-import shutil
-import sys
-import datetime
-import json
-
-parser = argparse.ArgumentParser()
-parser.add_argument('input_file', nargs='*', help='Input JS files which builtins generated from')
-parser.add_argument('--input-directory', help='All JS files will be used as input from this directory.')
-parser.add_argument('--output', help='path to output cpp or h file')
-parser.add_argument('--prefix', default='JSC', help='prefix used for public macros')
-parser.add_argument('--namespace', default='JSC', help='C++ namespace')
-args = parser.parse_args()
-
-copyrightText = &quot;&quot;&quot; *
- * 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. ``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
- * 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. 
- */\n
-&quot;&quot;&quot;
-
-generatorString = &quot;/* Generated by %s do not hand edit. */\n&quot; % os.path.basename(__file__)
-
-functionHeadRegExp = re.compile(r&quot;(?:function|constructor)\s+\w+\s*\(.*?\)&quot;, re.MULTILINE | re.S)
-functionNameRegExp = re.compile(r&quot;(?:function|constructor)\s+(\w+)\s*\(&quot;, re.MULTILINE | re.S)
-functionIsConstructorRegExp = re.compile(r&quot;^constructor&quot;, re.MULTILINE | re.S)
-functionParameterFinder = re.compile(r&quot;^(?:function|constructor)\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\s*\)&quot;, re.MULTILINE | re.S)
-
-multilineCommentRegExp = re.compile(r&quot;\/\*.*?\*\/&quot;, re.MULTILINE | re.S)
-singleLineCommentRegExp = re.compile(r&quot;\/\/.*?\n&quot;, re.MULTILINE | re.S)
-
-def getCopyright(source):
-    copyrightBlock = multilineCommentRegExp.findall(source)[0]
-    copyrightBlock = copyrightBlock[:copyrightBlock.index(&quot;Redistribution&quot;)]
-    copyRightLines = []
-
-    for line in copyrightBlock.split(&quot;\n&quot;):
-        line = line.replace(&quot;/*&quot;, &quot;&quot;)
-        line = line.replace(&quot;*/&quot;, &quot;&quot;)
-        line = line.replace(&quot;*&quot;, &quot;&quot;)
-        line = line.replace(&quot;Copyright&quot;, &quot;&quot;)
-        line = line.replace(&quot;copyright&quot;, &quot;&quot;)
-        line = line.replace(&quot;(C)&quot;, &quot;&quot;)
-        line = line.replace(&quot;(c)&quot;, &quot;&quot;)
-        line = line.strip()
-        if len(line) == 0:
-            continue
-
-        copyRightLines.append(line)
-    
-    return list(set(copyRightLines))
-
-class Function(object):
-    def __init__(self, name, source, isConstructor, parameters):
-        self.name = name
-        self.source = source
-        self.isConstructor = isConstructor
-        self.parameters = parameters
-
-    def mangleName(self, object):
-        qName = object + &quot;.&quot; + self.name
-        mangledName = &quot;&quot;
-        i = 0
-        while i &lt; len(qName):
-            if qName[i] == '.':
-                mangledName = mangledName + qName[i + 1].upper()
-                i = i + 1
-            else:
-                mangledName = mangledName + qName[i]
-            i = i + 1
-        if self.isConstructor:
-            mangledName = mangledName + &quot;Constructor&quot;
-        return mangledName
-
-def getFunctions(source):
-
-    source = multilineCommentRegExp.sub(&quot;/**/&quot;, singleLineCommentRegExp.sub(&quot;//\n&quot;, source))
-
-    matches = [ f for f in functionHeadRegExp.finditer(source)]
-    functionBounds = []
-    start = 0
-    end = 0
-    for match in matches:
-        start = match.start()
-        if start &lt; end:
-            continue
-        end = match.end()
-        while source[end] != '{':
-            end = end + 1
-        depth = 1
-        end = end + 1
-        while depth &gt; 0:
-            if source[end] == '{':
-                depth = depth + 1
-            elif source[end] == '}':
-                depth = depth - 1
-            end = end + 1
-        functionBounds.append((start, end))
-
-    functions = [source[start:end].strip() for (start, end) in functionBounds]
-    result = []
-    for function in functions:
-        function = multilineCommentRegExp.sub(&quot;&quot;, function)
-        functionName = functionNameRegExp.findall(function)[0]
-        functionIsConstructor = functionIsConstructorRegExp.match(function) != None
-        functionParameters = functionParameterFinder.findall(function)[0].split(',')
-        if len(functionParameters[0]) == 0:
-            functionParameters = []
-
-        result.append(Function(functionName, function, functionIsConstructor, functionParameters))
-    return result
-
-def writeIncludeDirectives(writer, headerNames):
-    for headerName in headerNames:
-        writer.write(&quot;#include &quot; + headerName + &quot;\n&quot;)
-
-def generateCode(source):
-    inputFile = open(source, &quot;r&quot;)
-    baseName = os.path.basename(source).replace(&quot;.js&quot;, &quot;&quot;)
-    
-    source = &quot;&quot;
-    for line in inputFile:
-        source = source + line
-    
-    if sys.platform == &quot;cygwin&quot;:
-        source = source.replace(&quot;\r\n&quot;, &quot;\n&quot;)
-    return (baseName, getFunctions(source), getCopyright(source))
-
-builtins = []
-copyrights = []
-(output_base, _) = os.path.splitext(args.output)
-
-if args.input_directory:
-    for file in os.listdir(args.input_directory):
-        args.input_file.append(os.path.join(args.input_directory, file))
-
-for file in args.input_file:
-    if fnmatch.fnmatch(file, '*.js'):
-        (baseName, functions, objectCopyrights) = generateCode(file)
-        copyrights.extend(objectCopyrights)
-        builtins.append((baseName, functions))
-namespace = args.namespace
-macroPrefix = args.prefix
-scopeName = os.path.splitext(os.path.basename(args.output))[0]
-includeGuard = scopeName + &quot;_H&quot;
-headerName = scopeName + &quot;.h&quot;
-
-headerIncludes = [&quot;\&quot;BuiltinUtils.h\&quot;&quot;] if namespace == &quot;JSC&quot; else [&quot;&lt;builtins/BuiltinUtils.h&gt;&quot;]
-contentIncludes = [&quot;\&quot;BuiltinExecutables.h\&quot;&quot;, &quot;\&quot;Executable.h\&quot;&quot;, &quot;\&quot;JSCellInlines.h\&quot;&quot;, &quot;\&quot;VM.h\&quot;&quot;] if namespace == &quot;JSC&quot; else [&quot;&lt;runtime/Executable.h&gt;&quot;, &quot;&lt;runtime/StructureInlines.h&gt;&quot;, &quot;&lt;runtime/JSCJSValueInlines.h&gt;&quot;, &quot;&lt;runtime/JSCellInlines.h&gt;&quot;, &quot;&lt;runtime/VM.h&gt;&quot;, &quot;\&quot;WebCoreJSClientData.h\&quot;&quot;]
-
-copyrights = list(set(copyrights))
-
-copyrightBody = &quot;&quot;
-for copyright in copyrights:
-    copyrightBody = copyrightBody +&quot; * Copyright (C) &quot; + copyright + &quot;\n&quot;
-
-builtinsHeader = open(output_base + &quot;.h.tmp&quot;, &quot;w&quot;)
-builtinsImplementation = open(output_base + &quot;.cpp.tmp&quot;, &quot;w&quot;)
-copyrightText = &quot;/*\n&quot; + copyrightBody + copyrightText
-builtinsHeader.write(&quot;&quot;&quot;%s
-%s
-
-#ifndef %s
-#define %s
-
-&quot;&quot;&quot; % (generatorString, copyrightText, includeGuard, includeGuard))
-
-writeIncludeDirectives(builtinsHeader, headerIncludes)
-
-builtinsHeader.write(&quot;&quot;&quot;
-namespace JSC {
-    class FunctionExecutable;
-}
-
-namespace %s {
-
-&quot;&quot;&quot; % namespace)
-
-codeReferences = []
-
-for (objectName, functions) in builtins:
-    print(&quot;Generating bindings for the %s builtin.&quot; % objectName)
-    builtinsHeader.write(&quot;/* %s functions */\n&quot; % objectName)
-    for function in functions:
-        name = function.name
-        mangledName = function.mangleName(objectName)
-        mangledName = mangledName[0].lower() + mangledName[1:] + &quot;Code&quot;
-        codeReferences.append((mangledName, function))
-        builtinsHeader.write(&quot;extern const char* s_%s;\n&quot; % mangledName)
-        builtinsHeader.write(&quot;extern const int s_%sLength;\n&quot; % mangledName)
-        builtinsHeader.write(&quot;extern const JSC::ConstructAbility s_%sConstructAbility;\n&quot; % mangledName)
-    builtinsHeader.write(&quot;\n&quot;)
-    builtinsHeader.write(&quot;#define %s_FOREACH_%s_BUILTIN(macro) \\\n&quot; % (macroPrefix, objectName.replace(&quot;.&quot;, &quot;_&quot;).upper()))
-    for function in functions:
-        mangledName = function.mangleName(objectName)
-        builtinsHeader.write(&quot;    macro(%s, %s, %d) \\\n&quot; % (function.name, mangledName, len(function.parameters)))
-    builtinsHeader.write(&quot;\n&quot;)
-    for function in functions:
-        builtinsHeader.write(&quot;#define %s_BUILTIN_%s 1\n&quot; % (macroPrefix, function.mangleName(objectName).upper()))
-    builtinsHeader.write(&quot;\n\n&quot;)
-names = []
-builtinsHeader.write(&quot;#define %s_FOREACH_BUILTIN(macro)\\\n&quot; % macroPrefix)
-for (codeReference, function) in codeReferences:
-    builtinsHeader.write(&quot;    macro(%s, %s, s_%sLength) \\\n&quot; % (codeReference, function.name, codeReference))
-    names.append(function.name)
-
-builtinsHeader.write(&quot;\n\n&quot;)
-builtinsHeader.write(&quot;#define %s_FOREACH_BUILTIN_FUNCTION_NAME(macro) \\\n&quot; % macroPrefix)
-for name in sorted(set(names)):
-    builtinsHeader.write(&quot;    macro(%s) \\\n&quot; % name)
-builtinsHeader.write(&quot;&quot;&quot;
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
-    JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
-
-%s_FOREACH_BUILTIN(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-#define %s_BUILTIN_EXISTS(name) defined %s_BUILTIN_ ## name
-
-}
-
-#endif // %s
-
-&quot;&quot;&quot; % (macroPrefix, macroPrefix, macroPrefix, includeGuard))
-
-builtinsImplementation.write(&quot;&quot;&quot;%s
-%s
-
-#include &quot;config.h&quot;
-
-#include &quot;%s&quot;
-
-&quot;&quot;&quot;  % (generatorString, copyrightText, headerName))
-
-writeIncludeDirectives(builtinsImplementation, contentIncludes)
-
-builtinsImplementation.write(&quot;&quot;&quot;
-namespace %s {
-
-&quot;&quot;&quot;  % (namespace))
-
-
-
-for (codeReference, function) in codeReferences:
-    source = function.source
-    source = &quot;(function &quot; + source[source.index(&quot;(&quot;):] + &quot;)&quot;
-    lines = json.dumps(source)[1:-1].split(&quot;\\n&quot;)
-    sourceLength = len(source)
-    source = &quot;&quot;
-    for line in lines:
-        source = source + (&quot;    \&quot;%s\\n\&quot; \\\n&quot; % line)
-    builtinsImplementation.write(&quot;const char* s_%s =\n%s;\n\n&quot; % (codeReference, source))
-    builtinsImplementation.write(&quot;const int s_%sLength = %d;\n\n&quot; % (codeReference, sourceLength + 1)) # + 1 for \n
-    constructAbility = &quot;JSC::ConstructAbility::CannotConstruct&quot;
-    if function.isConstructor:
-        constructAbility = &quot;JSC::ConstructAbility::CanConstruct&quot;
-    builtinsImplementation.write(&quot;const JSC::ConstructAbility s_%sConstructAbility = %s;\n\n&quot; % (codeReference, constructAbility)) # + 1 for \n
-
-builtinsImplementation.write(&quot;&quot;&quot;
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
-JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \\
-&quot;&quot;&quot;);
-
-if (namespace == &quot;JSC&quot;):
-    builtinsImplementation.write(&quot;&quot;&quot;{\\
-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); \\
-&quot;&quot;&quot;)
-else:
-    builtinName = scopeName[0].lower() + scopeName[1:]
-    builtinsImplementation.write(&quot;&quot;&quot;{\\
-    JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \\
-    return clientData-&gt;builtinFunctions().%s().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().%s().codeName##Source()); \\
-&quot;&quot;&quot;% (builtinName, builtinName))
-
-builtinsImplementation.write(&quot;&quot;&quot;}
-%s_FOREACH_BUILTIN(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-}
-
-&quot;&quot;&quot;% (macroPrefix))
-
-builtinsHeader.close()
-builtinsImplementation.close()
-
-if (not os.path.exists(output_base + &quot;.h&quot;)) or (not filecmp.cmp(output_base + &quot;.h.tmp&quot;, output_base + &quot;.h&quot;, shallow=False)):
-    if (os.path.exists(output_base + &quot;.h&quot;)):
-        os.remove(output_base + &quot;.h&quot;)
-    os.rename(output_base + &quot;.h.tmp&quot;, output_base + &quot;.h&quot;)
-else:
-    os.remove(output_base + &quot;.h.tmp&quot;)
-
-if (not os.path.exists(output_base + &quot;.cpp&quot;)) or (not filecmp.cmp(output_base + &quot;.cpp.tmp&quot;, output_base + &quot;.cpp&quot;, shallow=False)):
-    if (os.path.exists(output_base + &quot;.cpp&quot;)):
-        os.remove(output_base + &quot;.cpp&quot;)
-    os.rename(output_base + &quot;.cpp.tmp&quot;, output_base + &quot;.cpp&quot;)
-else:
-    os.remove(output_base + &quot;.cpp.tmp&quot;)
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscssminpy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/cssmin.py (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/cssmin.py        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/inspector/scripts/cssmin.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-#!/usr/bin/python
-
-# Copyright (C) 2013 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 re
-
-def cssminify(css):
-    rules = (
-        (r&quot;\/\*.*?\*\/&quot;, &quot;&quot;),          # delete comments
-        (r&quot;\n&quot;, &quot;&quot;),                   # delete new lines
-        (r&quot;\s+&quot;, &quot; &quot;),                 # change multiple spaces to one space
-        (r&quot;\s?([;:{},+&gt;])\s?&quot;, r&quot;\1&quot;), # delete space where it is not needed
-        (r&quot;;}&quot;, &quot;}&quot;)                   # change ';}' to '}' because the semicolon is not needed
-    )
-
-    css = css.replace(&quot;\r\n&quot;, &quot;\n&quot;)
-    for rule in rules:
-        css = re.compile(rule[0], re.MULTILINE | re.UNICODE | re.DOTALL).sub(rule[1], css)
-    return css
-
-if __name__ == &quot;__main__&quot;:
-    import sys
-    sys.stdout.write(cssminify(sys.stdin.read()))
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsgeneratecombinedinspectorjsonpy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-#!/usr/bin/python
-
-# Copyright (C) 2013 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 glob
-import json
-import os
-import sys
-
-if len(sys.argv) &lt; 2:
-    print(&quot;usage: %s [json files or directory of json files ...]&quot; % os.path.basename(sys.argv[0]))
-    sys.exit(1)
-
-files = []
-for arg in sys.argv[1:]:
-    if not os.access(arg, os.F_OK):
-        raise Exception(&quot;File \&quot;%s\&quot; not found&quot; % arg)
-    elif os.path.isdir(arg):
-        files.extend(glob.glob(os.path.join(arg, &quot;*.json&quot;)))
-    else:
-        files.append(arg)
-files.sort()
-
-# To keep as close to the original JSON formatting as possible, just
-# dump each JSON input file unmodified into an array of &quot;domains&quot;.
-# Validate each file is valid JSON and that there is a &quot;domain&quot; key.
-
-first = True
-print(&quot;{\&quot;domains\&quot;:[&quot;)
-for file in files:
-    if first:
-        first = False
-    else:
-        print(&quot;,&quot;)
-
-    string = open(file).read()
-
-    try:
-        dictionary = json.loads(string)
-        if not &quot;domain&quot; in dictionary:
-            raise Exception(&quot;File \&quot;%s\&quot; does not contains a \&quot;domain\&quot; key.&quot; % file)
-    except ValueError:
-        sys.stderr.write(&quot;File \&quot;%s\&quot; does not contain valid JSON:\n&quot; % file)
-        raise
-
-    print(string.rstrip())
-print(&quot;]}&quot;)
-
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsinlineandminifystylesheetsandscriptspy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,81 +0,0 @@
</span><del>-#!/usr/bin/env python
-#
-# Copyright (C) 2013 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.
-
-# This script inlines and minifies external stylesheets and scripts.
-#  - &lt;link href=&quot;...&quot; rel=&quot;stylesheet&quot;&gt; =&gt; &lt;style&gt;...&lt;/style&gt;
-#  - &lt;script src=&quot;...&quot;&gt;                 =&gt; &lt;script&gt;...&lt;/script&gt;
-
-import cssmin
-import jsmin
-import os.path
-import re
-import sys
-
-
-def main(argv):
-
-    if len(argv) &lt; 2:
-        print('usage: %s inputFile outputFile' % argv[0])
-        return 1
-
-    inputFileName = argv[1]
-    outputFileName = argv[2]
-    importsDir = os.path.dirname(inputFileName)
-
-    inputFile = open(inputFileName, 'r')
-    inputContent = inputFile.read()
-    inputFile.close()
-
-    def inline(match, minifier, prefix, postfix):
-        importFileName = match.group(1)
-        fullPath = os.path.join(importsDir, importFileName)
-        if not os.access(fullPath, os.F_OK):
-            raise Exception('File %s referenced in %s not found' % (importFileName, inputFileName))
-        importFile = open(fullPath, 'r')
-        importContent = minifier(importFile.read())
-        importFile.close()
-        return '%s%s%s' % (prefix, importContent, postfix)
-
-    def inlineStylesheet(match):
-        return inline(match, cssmin.cssminify, &quot;&lt;style&gt;&quot;, &quot;&lt;/style&gt;&quot;)
-
-    def inlineScript(match):
-        return inline(match, jsmin.jsmin, &quot;&lt;script&gt;&quot;, &quot;&lt;/script&gt;&quot;)
-
-    outputContent = re.sub(r'&lt;link rel=&quot;stylesheet&quot; href=[\'&quot;]([^\'&quot;]+)[\'&quot;]&gt;', inlineStylesheet, inputContent)
-    outputContent = re.sub(r'&lt;script src=[\'&quot;]([^\'&quot;]+)[\'&quot;]&gt;&lt;/script&gt;', inlineScript, outputContent)
-
-    outputFile = open(outputFileName, 'w')
-    outputFile.write(outputContent)
-    outputFile.close()
-
-    # Touch output file directory to make sure that Xcode will copy
-    # modified resource files.
-    if sys.platform == 'darwin':
-        outputDirName = os.path.dirname(outputFileName)
-        os.utime(outputDirName, None)
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv))
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsjsminpy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/jsmin.py (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/jsmin.py        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/inspector/scripts/jsmin.py        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,238 +0,0 @@
</span><del>-# This code is original from jsmin by Douglas Crockford, it was translated to
-# Python by Baruch Even. It was rewritten by Dave St.Germain for speed.
-#
-# The MIT License (MIT)
-#
-# Copyright (c) 2013 Dave St.Germain
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the &quot;Software&quot;), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-
-import sys
-is_3 = sys.version_info &gt;= (3, 0)
-if is_3:
-    import io
-else:
-    import StringIO
-    try:
-        import cStringIO
-    except ImportError:
-        cStringIO = None
-
-
-__all__ = ['jsmin', 'JavascriptMinify']
-__version__ = '2.0.9'
-
-
-def jsmin(js):
-    &quot;&quot;&quot;
-    returns a minified version of the javascript string
-    &quot;&quot;&quot;
-    if not is_3:
-        if cStringIO and not isinstance(js, unicode):
-            # strings can use cStringIO for a 3x performance
-            # improvement, but unicode (in python2) cannot
-            klass = cStringIO.StringIO
-        else:
-            klass = StringIO.StringIO
-    else:
-        klass = io.StringIO
-    ins = klass(js)
-    outs = klass()
-    JavascriptMinify(ins, outs).minify()
-    return outs.getvalue()
-
-
-class JavascriptMinify(object):
-    &quot;&quot;&quot;
-    Minify an input stream of javascript, writing
-    to an output stream
-    &quot;&quot;&quot;
-
-    def __init__(self, instream=None, outstream=None):
-        self.ins = instream
-        self.outs = outstream
-
-    def minify(self, instream=None, outstream=None):
-        if instream and outstream:
-            self.ins, self.outs = instream, outstream
-
-        self.is_return = False
-        self.return_buf = ''
-
-        def write(char):
-            # all of this is to support literal regular expressions.
-            # sigh
-            if char in 'return':
-                self.return_buf += char
-                self.is_return = self.return_buf == 'return'
-            self.outs.write(char)
-            if self.is_return:
-                self.return_buf = ''
-
-        read = self.ins.read
-
-        space_strings = &quot;abcdefghijklmnopqrstuvwxyz&quot;\
-        &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\&quot;
-        starters, enders = '{[(+-', '}])+-&quot;\''
-        newlinestart_strings = starters + space_strings
-        newlineend_strings = enders + space_strings
-        do_newline = False
-        do_space = False
-        escape_slash_count = 0
-        doing_single_comment = False
-        previous_before_comment = ''
-        doing_multi_comment = False
-        in_re = False
-        in_quote = ''
-        quote_buf = []
-
-        previous = read(1)
-        if previous == '\\':
-            escape_slash_count += 1
-        next1 = read(1)
-        if previous == '/':
-            if next1 == '/':
-                doing_single_comment = True
-            elif next1 == '*':
-                doing_multi_comment = True
-                previous = next1
-                next1 = read(1)
-            else:
-                write(previous)
-        elif not previous:
-            return
-        elif previous &gt;= '!':
-            if previous in &quot;'\&quot;&quot;:
-                in_quote = previous
-            write(previous)
-            previous_non_space = previous
-        else:
-            previous_non_space = ' '
-        if not next1:
-            return
-
-        while 1:
-            next2 = read(1)
-            if not next2:
-                last = next1.strip()
-                if not (doing_single_comment or doing_multi_comment)\
-                    and last not in ('', '/'):
-                    if in_quote:
-                        write(''.join(quote_buf))
-                    write(last)
-                break
-            if doing_multi_comment:
-                if next1 == '*' and next2 == '/':
-                    doing_multi_comment = False
-                    next2 = read(1)
-            elif doing_single_comment:
-                if next1 in '\r\n':
-                    doing_single_comment = False
-                    while next2 in '\r\n':
-                        next2 = read(1)
-                        if not next2:
-                            break
-                    if previous_before_comment in ')}]':
-                        do_newline = True
-                    elif previous_before_comment in space_strings:
-                        write('\n')
-            elif in_quote:
-                quote_buf.append(next1)
-
-                if next1 == in_quote:
-                    numslashes = 0
-                    for c in reversed(quote_buf[:-1]):
-                        if c != '\\':
-                            break
-                        else:
-                            numslashes += 1
-                    if numslashes % 2 == 0:
-                        in_quote = ''
-                        write(''.join(quote_buf))
-            elif next1 in '\r\n':
-                if previous_non_space in newlineend_strings \
-                    or previous_non_space &gt; '~':
-                    while 1:
-                        if next2 &lt; '!':
-                            next2 = read(1)
-                            if not next2:
-                                break
-                        else:
-                            if next2 in newlinestart_strings \
-                                or next2 &gt; '~' or next2 == '/':
-                                do_newline = True
-                            break
-            elif next1 &lt; '!' and not in_re:
-                if (previous_non_space in space_strings \
-                    or previous_non_space &gt; '~') \
-                    and (next2 in space_strings or next2 &gt; '~'):
-                    do_space = True
-                elif previous_non_space in '-+' and next2 == previous_non_space:
-                    # protect against + ++ or - -- sequences
-                    do_space = True
-                elif self.is_return and next2 == '/':
-                    # returning a regex...
-                    write(' ')
-            elif next1 == '/':
-                if do_space:
-                    write(' ')
-                if in_re:
-                    if previous != '\\' or (not escape_slash_count % 2) or next2 in 'gimy':
-                        in_re = False
-                    write('/')
-                elif next2 == '/':
-                    doing_single_comment = True
-                    previous_before_comment = previous_non_space
-                elif next2 == '*':
-                    doing_multi_comment = True
-                    previous = next1
-                    next1 = next2
-                    next2 = read(1)
-                else:
-                    in_re = previous_non_space in '(,=:[?!&amp;|' or self.is_return  # literal regular expression
-                    write('/')
-            else:
-                if do_space:
-                    do_space = False
-                    write(' ')
-                if do_newline:
-                    write('\n')
-                    do_newline = False
-
-                write(next1)
-                if not in_re and next1 in &quot;'\&quot;&quot;:
-                    in_quote = next1
-                    quote_buf = []
-
-            previous = next1
-            next1 = next2
-
-            if previous &gt;= '!':
-                previous_non_space = previous
-
-            if previous == '\\':
-                escape_slash_count += 1
-            else:
-                escape_slash_count = 0
-
-if __name__ == '__main__':
-    minifier = JavascriptMinify(sys.stdin, sys.stdout)
-    minifier.minify()
-    sys.stdout.write('\n')
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsxxdpl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/scripts/xxd.pl (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/xxd.pl        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/JavaScriptCore/inspector/scripts/xxd.pl        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-#! /usr/bin/perl
-
-# Copyright (C) 2010-2011 Google 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:
-#
-#    # Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#    # 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.
-#    # Neither the name of Google 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
-# OWNER OR 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.
-#
-
-$varname = shift;
-$fname = shift;
-$output = shift;
-
-open($input, '&lt;', $fname) or die &quot;Can't open file for read: $fname $!&quot;;
-$/ = undef;
-$text = &lt;$input&gt;;
-close($input);
-
-$text = join(', ', map('0x' . unpack(&quot;H*&quot;, $_), split(undef, $text)));
-
-open($output, '&gt;', $output) or die &quot;Can't open file for write: $output $!&quot;;
-print $output &quot;const unsigned char $varname\[\] = {\n$text\n};\n&quot;;
-close($output);
</del></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -823,15 +823,12 @@
</span><span class="cx"> 
</span><span class="cx"> if (WIN32)
</span><span class="cx">     if (INTERNAL_BUILD)
</span><del>-        set(WebCore_INSPECTOR_SCRIPTS_DIR &quot;${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore&quot;)
-        set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR &quot;${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore&quot;)
</del><ins>+        set(JavaScriptCore_SCRIPTS_DIR &quot;${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore/Scripts&quot;)
</ins><span class="cx">     else ()
</span><del>-        set(WebCore_INSPECTOR_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}/inspector/scripts&quot;)
-        set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}&quot;)
</del><ins>+        set(JavaScriptCore_SCRIPTS_DIR &quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts&quot;)
</ins><span class="cx">     endif ()
</span><span class="cx"> else ()
</span><del>-    set(WebCore_INSPECTOR_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}/inspector/scripts&quot;)
-    set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}&quot;)
</del><ins>+    set(JavaScriptCore_SCRIPTS_DIR &quot;${JAVASCRIPTCORE_DIR}/Scripts&quot;)
</ins><span class="cx"> endif ()
</span><span class="cx"> 
</span><span class="cx"> set(WebCore_SOURCES
</span><span class="lines">@@ -3381,10 +3378,10 @@
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.h ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.combined.html
</span><span class="cx">     MAIN_DEPENDENCY inspector/InspectorOverlayPage.html
</span><del>-    DEPENDS ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${WebCore_INSPECTOR_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py
</del><ins>+    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py
</ins><span class="cx">     DEPENDS inspector/InspectorOverlayPage.css inspector/InspectorOverlayPage.js
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py ${WEBCORE_DIR}/inspector/InspectorOverlayPage.html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.combined.html
-    COMMAND ${PERL_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InspectorOverlayPage_html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.combined.html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.h
</del><ins>+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/inline-and-minify-stylesheets-and-scripts.py ${WEBCORE_DIR}/inspector/InspectorOverlayPage.html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.combined.html
+    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl InspectorOverlayPage_html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.combined.html ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.h
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorOverlayPage.h)
</span><span class="cx"> 
</span><span class="lines">@@ -3393,10 +3390,10 @@
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
</span><span class="cx">     MAIN_DEPENDENCY inspector/CommandLineAPIModuleSource.js
</span><del>-    DEPENDS ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
</del><ins>+    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
</ins><span class="cx">     COMMAND echo &quot;//# sourceURL=__WebInspectorCommandLineAPIModuleSource__&quot; &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js &gt;&gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
-    COMMAND ${PERL_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl CommandLineAPIModuleSource_js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h
</del><ins>+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js &gt;&gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
+    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl CommandLineAPIModuleSource_js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h)
</span><span class="cx"> 
</span><span class="lines">@@ -3409,9 +3406,9 @@
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerCSS.h ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.css
</span><span class="cx">     MAIN_DEPENDENCY xml/XMLViewer.css
</span><del>-    DEPENDS ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${WebCore_INSPECTOR_SCRIPTS_DIR}/cssmin.py
-    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/cssmin.py &lt; ${WEBCORE_DIR}/xml/XMLViewer.css &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.css
-    COMMAND ${PERL_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl XMLViewer_css ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.css ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerCSS.h
</del><ins>+    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/cssmin.py
+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/cssmin.py &lt; ${WEBCORE_DIR}/xml/XMLViewer.css &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.css
+    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl XMLViewer_css ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.css ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerCSS.h
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerCSS.h)
</span><span class="cx"> 
</span><span class="lines">@@ -3420,9 +3417,9 @@
</span><span class="cx"> add_custom_command(
</span><span class="cx">     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerJS.h ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.js
</span><span class="cx">     MAIN_DEPENDENCY xml/XMLViewer.js
</span><del>-    DEPENDS ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
-    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/xml/XMLViewer.js &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.js
-    COMMAND ${PERL_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl XMLViewer_js ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.js ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerJS.h
</del><ins>+    DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/xml/XMLViewer.js &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.js
+    COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl XMLViewer_js ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewer.min.js ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerJS.h
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/XMLViewerJS.h)
</span><span class="cx"> 
</span><span class="lines">@@ -3512,7 +3509,7 @@
</span><span class="cx">         OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScriptsData.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScripts.h
</span><span class="cx">         MAIN_DEPENDENCY ${WEBCORE_DIR}/Scripts/make-js-file-arrays.py
</span><span class="cx">         DEPENDS ${WebCore_USER_AGENT_SCRIPTS}
</span><del>-        COMMAND &quot;PYTHONPATH=${WebCore_INSPECTOR_SCRIPTS_DIR}&quot; ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/Scripts/make-js-file-arrays.py ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScripts.h ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScriptsData.cpp ${WebCore_USER_AGENT_SCRIPTS}
</del><ins>+        COMMAND &quot;PYTHONPATH=${JavaScriptCore_SCRIPTS_DIR}&quot; ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/Scripts/make-js-file-arrays.py ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScripts.h ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScriptsData.cpp ${WebCore_USER_AGENT_SCRIPTS}
</ins><span class="cx">         VERBATIM)
</span><span class="cx">     list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/UserAgentScriptsData.cpp)
</span><span class="cx">     ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WebCore_USER_AGENT_SCRIPTS_DEPENDENCIES} UserAgentScriptsData.cpp UserAgentScripts.h)
</span><span class="lines">@@ -3604,9 +3601,9 @@
</span><span class="cx">     add_custom_command(
</span><span class="cx">         OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}BuiltinsWrapper.h ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.h ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.cpp
</span><span class="cx">         MAIN_DEPENDENCY ${WEBCORE_DIR}/generate-js-builtins
</span><del>-        DEPENDS ${WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR}/generate-js-builtins
</del><ins>+        DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins
</ins><span class="cx">         DEPENDS ${_builtinjs}
</span><del>-        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins --input ${_builtinjs} --output_dir ${DERIVED_SOURCES_WEBCORE_DIR} --generate_js_builtins_path ${WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR}
</del><ins>+        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins --input ${_builtinjs} --output_dir ${DERIVED_SOURCES_WEBCORE_DIR} --generate_js_builtins_path ${JavaScriptCore_SCRIPTS_DIR}
</ins><span class="cx">         VERBATIM)
</span><span class="cx">     list(APPEND WebCore_SOURCES
</span><span class="cx">         ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.h
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/WebCore/ChangeLog        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-10-16  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Unify handling of JavaScriptCore scripts that are used in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=150245
+
+        Reviewed by Alex Christensen.
+
+        Use the new JavaScriptCore_SCRIPTS_DIR variable.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+
+            No need to export other variables like InspectorScripts anymore.
+
</ins><span class="cx"> 2015-10-19  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add TextStream formatters for FillLayer and all it entails
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/WebCore/DerivedSources.make        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -901,8 +901,8 @@
</span><span class="cx"> all : XMLViewerCSS.h
</span><span class="cx"> 
</span><span class="cx"> XMLViewerCSS.h : xml/XMLViewer.css
</span><del>-        $(PYTHON) $(InspectorScripts)/cssmin.py &lt;&quot;$(WebCore)/xml/XMLViewer.css&quot; &gt; ./XMLViewer.min.css
-        $(PERL) $(InspectorScripts)/xxd.pl XMLViewer_css ./XMLViewer.min.css XMLViewerCSS.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/cssmin.py &lt;&quot;$(WebCore)/xml/XMLViewer.css&quot; &gt; ./XMLViewer.min.css
+        $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_css ./XMLViewer.min.css XMLViewerCSS.h
</ins><span class="cx">         $(DELETE) XMLViewer.min.css
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -912,8 +912,8 @@
</span><span class="cx"> all : XMLViewerJS.h
</span><span class="cx"> 
</span><span class="cx"> XMLViewerJS.h : xml/XMLViewer.js
</span><del>-        $(PYTHON) $(InspectorScripts)/jsmin.py &lt;&quot;$(WebCore)/xml/XMLViewer.js&quot; &gt; ./XMLViewer.min.js
-        $(PERL) $(InspectorScripts)/xxd.pl XMLViewer_js ./XMLViewer.min.js XMLViewerJS.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py &lt;&quot;$(WebCore)/xml/XMLViewer.js&quot; &gt; ./XMLViewer.min.js
+        $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_js ./XMLViewer.min.js XMLViewerJS.h
</ins><span class="cx">         $(DELETE) XMLViewer.min.js
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -1007,7 +1007,7 @@
</span><span class="cx"> all : UserAgentScripts.h
</span><span class="cx"> 
</span><span class="cx"> UserAgentScripts.h : Scripts/make-js-file-arrays.py $(USER_AGENT_SCRIPTS)
</span><del>-        PYTHONPATH=$(InspectorScripts) $(PYTHON) $&lt; $@ UserAgentScriptsData.cpp $(USER_AGENT_SCRIPTS)
</del><ins>+        PYTHONPATH=$(JavaScriptCore_SCRIPTS_DIR) $(PYTHON) $&lt; $@ UserAgentScriptsData.cpp $(USER_AGENT_SCRIPTS)
</ins><span class="cx"> endif
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="lines">@@ -1223,34 +1223,34 @@
</span><span class="cx"> all : InspectorOverlayPage.h
</span><span class="cx"> 
</span><span class="cx"> InspectorOverlayPage.h : InspectorOverlayPage.html InspectorOverlayPage.css InspectorOverlayPage.js
</span><del>-        $(PYTHON) $(InspectorScripts)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html ./InspectorOverlayPage.combined.html
-        $(PERL) $(InspectorScripts)/xxd.pl InspectorOverlayPage_html ./InspectorOverlayPage.combined.html InspectorOverlayPage.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html ./InspectorOverlayPage.combined.html
+        $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html ./InspectorOverlayPage.combined.html InspectorOverlayPage.h
</ins><span class="cx">         $(DELETE) InspectorOverlayPage.combined.html
</span><span class="cx"> 
</span><span class="cx"> all : CommandLineAPIModuleSource.h
</span><span class="cx"> 
</span><span class="cx"> CommandLineAPIModuleSource.h : CommandLineAPIModuleSource.js
</span><span class="cx">         echo &quot;//# sourceURL=__WebInspectorCommandLineAPIModuleSource__&quot; &gt; ./CommandLineAPIModuleSource.min.js
</span><del>-        $(PYTHON) $(InspectorScripts)/jsmin.py &lt;$(WebCore)/inspector/CommandLineAPIModuleSource.js &gt;&gt; ./CommandLineAPIModuleSource.min.js
-        $(PERL) $(InspectorScripts)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py &lt;$(WebCore)/inspector/CommandLineAPIModuleSource.js &gt;&gt; ./CommandLineAPIModuleSource.min.js
+        $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h
</ins><span class="cx">         $(DELETE) CommandLineAPIModuleSource.min.js
</span><span class="cx"> 
</span><span class="cx"> # Web Replay inputs generator
</span><span class="cx"> 
</span><span class="cx"> INPUT_GENERATOR_SCRIPTS = \
</span><del>-    $(WebReplayScripts)/CodeGeneratorReplayInputs.py \
-    $(WebReplayScripts)/CodeGeneratorReplayInputsTemplates.py \
</del><ins>+    $(JavaScriptCore_SCRIPTS_DIR)/CodeGeneratorReplayInputs.py \
+    $(JavaScriptCore_SCRIPTS_DIR)/CodeGeneratorReplayInputsTemplates.py \
</ins><span class="cx"> #
</span><span class="cx"> 
</span><span class="cx"> INPUT_GENERATOR_SPECIFICATIONS = \
</span><span class="cx">         $(WebCore)/replay/WebInputs.json \
</span><del>-        $(WebReplayScripts)/JSInputs.json \
</del><ins>+        $(JavaScriptCore_SCRIPTS_DIR)/JSInputs.json \
</ins><span class="cx"> #
</span><span class="cx"> 
</span><span class="cx"> all : WebReplayInputs.h
</span><span class="cx"> 
</span><span class="cx"> WebReplayInputs.h : $(INPUT_GENERATOR_SPECIFICATIONS) $(INPUT_GENERATOR_SCRIPTS)
</span><del>-        $(PYTHON) $(WebReplayScripts)/CodeGeneratorReplayInputs.py --outputDir . --framework WebCore $(INPUT_GENERATOR_SPECIFICATIONS)
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/CodeGeneratorReplayInputs.py --outputDir . --framework WebCore $(INPUT_GENERATOR_SPECIFICATIONS)
</ins><span class="cx"> 
</span><span class="cx"> -include $(JS_DOM_HEADERS:.h=.dep)
</span><span class="cx"> 
</span><span class="lines">@@ -1270,7 +1270,7 @@
</span><span class="cx"> all : $(WEBCORE_JS_BUILTINS:%.js=%Builtins.cpp)
</span><span class="cx"> 
</span><span class="cx"> %Builtins.cpp: %.js
</span><del>-        $(PYTHON) $(WebCore)/generate-js-builtins --input $&lt; --generate_js_builtins_path $(GenerateJSBuiltinsScripts)
</del><ins>+        $(PYTHON) $(WebCore)/generate-js-builtins --input $&lt; --generate_js_builtins_path $(JavaScriptCore_SCRIPTS_DIR)
</ins><span class="cx"> 
</span><span class="cx"> # ------------------------
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (191311 => 191312)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-10-19 20:07:50 UTC (rev 191311)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-10-19 20:18:43 UTC (rev 191312)
</span><span class="lines">@@ -28254,7 +28254,7 @@
</span><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                         shellPath = /bin/sh;
</span><del>-                        shellScript = &quot;mkdir -p \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\&quot;\ncd \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\&quot;\n\n/bin/ln -sfh \&quot;${SRCROOT}\&quot; WebCore\nexport WebCore=\&quot;WebCore\&quot;\nexport InspectorScripts=\&quot;${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\&quot;\nexport WebReplayScripts=\&quot;${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\&quot;\nexport GenerateJSBuiltinsScripts=\&quot;${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\&quot;\n\nif [ ! $CC ]; then\n    export CC=\&quot;`xcrun -find clang`\&quot;\nfi\n\nif [ ! $GPERF ]; then\n    export GPERF=\&quot;`xcrun -find gperf`\&quot;\nfi\n\nif [ \&quot;${ACTION}\&quot; = \&quot;build\&quot; -o \&quot;${ACTION}\&quot; = \&quot;install\&quot; -o \&quot;${ACTION}\&quot; = \&quot;installhdrs\&quot; ]; then\n    make  --no-builtin-rules -f \&quot;WebCore/DerivedSources.make\&quot; -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=\&quot;${SDKROOT}\&quot;\nfi\n&quot;;
</del><ins>+                        shellScript = &quot;mkdir -p \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\&quot;\ncd \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\&quot;\n\n/bin/ln -sfh \&quot;${SRCROOT}\&quot; WebCore\nexport WebCore=\&quot;WebCore\&quot;\nexport JavaScriptCore_SCRIPTS_DIR=\&quot;${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\&quot;\n\nif [ ! $CC ]; then\n    export CC=\&quot;`xcrun -find clang`\&quot;\nfi\n\nif [ ! $GPERF ]; then\n    export GPERF=\&quot;`xcrun -find gperf`\&quot;\nfi\n\nif [ \&quot;${ACTION}\&quot; = \&quot;build\&quot; -o \&quot;${ACTION}\&quot; = \&quot;install\&quot; -o \&quot;${ACTION}\&quot; = \&quot;installhdrs\&quot; ]; then\n    make  --no-builtin-rules -f \&quot;WebCore/DerivedSources.make\&quot; -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=\&quot;${SDKROOT}\&quot;\nfi\n&quot;;
</ins><span class="cx">                 };
</span><span class="cx"> /* End PBXShellScriptBuildPhase section */
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>