<!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 "${JAVASCRIPTCORE_DIR}/Scripts")
+
</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 > ${_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} > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
</del><ins>+ COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${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 "//# sourceURL=__WebInspectorInjectedScript__" > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
</span><del>- COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${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 < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${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 <bburg@apple.com>
+
+ 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 <timothy_horton@apple.com>
</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) > ./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) > ./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 "//# sourceURL=__WebInspectorInjectedScript__" > ./InjectedScriptSource.min.js
</span><del>-        $(PYTHON) $(JavaScriptCore)/inspector/scripts/jsmin.py < $(JavaScriptCore)/inspector/InjectedScriptSource.js >> ./InjectedScriptSource.min.js
-        $(PERL) $(JavaScriptCore)/inspector/scripts/xxd.pl InjectedScriptSource_js ./InjectedScriptSource.min.js InjectedScriptSource.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py < $(JavaScriptCore)/inspector/InjectedScriptSource.js >> ./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 = "<group>"; };
</span><span class="cx">                 9928FF3A18AC4AEC00B8CF12 /* JSReplayInputs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReplayInputs.h; sourceTree = "<group>"; };
</span><span class="cx">                 9928FF3D18AC4B1C00B8CF12 /* JSInputs.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = JSInputs.json; sourceTree = "<group>"; };
</span><ins>+                9959E9271BD17FA0001AA413 /* cssmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = cssmin.py; sourceTree = "<group>"; };
+                9959E9281BD17FA0001AA413 /* generate-js-builtins */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-js-builtins"; sourceTree = "<group>"; };
+                9959E9291BD17FA0001AA413 /* jsmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = jsmin.py; sourceTree = "<group>"; };
+                9959E92A1BD17FA0001AA413 /* xxd.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = xxd.pl; sourceTree = "<group>"; };
+                9959E92F1BD181F6001AA413 /* generate-combined-inspector-json.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-combined-inspector-json.py"; sourceTree = "<group>"; };
+                9959E9301BD181F6001AA413 /* inline-and-minify-stylesheets-and-scripts.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "inline-and-minify-stylesheets-and-scripts.py"; sourceTree = "<group>"; };
</ins><span class="cx">                 99E45A1D18A1B1E70026D88F /* CodeGeneratorReplayInputs.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = CodeGeneratorReplayInputs.py; sourceTree = "<group>"; };
</span><span class="cx">                 99E45A1E18A1B1E70026D88F /* CodeGeneratorReplayInputsTemplates.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = CodeGeneratorReplayInputsTemplates.py; sourceTree = "<group>"; };
</span><span class="cx">                 99E45A1F18A1B2590026D88F /* EmptyInputCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmptyInputCursor.h; sourceTree = "<group>"; };
</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 = "<group>"; };
</span><span class="cx">                 A513E5BD185BFACC007E95AD /* JSInjectedScriptHostPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInjectedScriptHostPrototype.h; sourceTree = "<group>"; };
</span><span class="cx">                 A513E5C3185F92C9007E95AD /* InjectedScriptSource.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = InjectedScriptSource.js; sourceTree = "<group>"; };
</span><del>-                A513E5C4185F92DC007E95AD /* jsmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = jsmin.py; sourceTree = "<group>"; };
-                A513E5C5185F92F0007E95AD /* xxd.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = xxd.pl; sourceTree = "<group>"; };
</del><span class="cx">                 A513E5C6185F9436007E95AD /* InjectedScriptSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptSource.h; sourceTree = "<group>"; };
</span><span class="cx">                 A513E5C8185F9624007E95AD /* InjectedScriptManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptManager.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A513E5C9185F9624007E95AD /* InjectedScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptManager.h; sourceTree = "<group>"; };
</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 = "<group>"; };
</span><span class="cx">                 A532438618568317002ED692 /* InspectorProtocolObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InspectorProtocolObjects.h; sourceTree = "<group>"; };
</span><span class="cx">                 A532438D185696CA002ED692 /* protocol */ = {isa = PBXFileReference; lastKnownFileType = folder; path = protocol; sourceTree = "<group>"; };
</span><del>-                A5324391185696E6002ED692 /* generate-combined-inspector-json.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-combined-inspector-json.py"; sourceTree = "<group>"; };
</del><span class="cx">                 A53243951856A475002ED692 /* CombinedDomains.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = CombinedDomains.json; sourceTree = "<group>"; };
</span><span class="cx">                 A53243961856A475002ED692 /* InspectorBackendCommands.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = InspectorBackendCommands.js; sourceTree = "<group>"; };
</span><span class="cx">                 A5339EC41BB399900054F005 /* InspectorHeapAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorHeapAgent.cpp; sourceTree = "<group>"; };
</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 = "<group>"; };
</span><span class="cx">                 A5840E1E187B7B8600843B10 /* InjectedScriptModule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptModule.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A5840E1F187B7B8600843B10 /* InjectedScriptModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptModule.h; sourceTree = "<group>"; };
</span><del>-                A5840E26187C980700843B10 /* cssmin.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = cssmin.py; sourceTree = "<group>"; };
-                A5840E28187CA5B800843B10 /* inline-and-minify-stylesheets-and-scripts.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "inline-and-minify-stylesheets-and-scripts.py"; sourceTree = "<group>"; };
</del><span class="cx">                 A58C024118E4A41A00032BC5 /* JSContextPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSContextPrivate.h; sourceTree = "<group>"; };
</span><span class="cx">                 A58E35901860DEC7001F24FE /* InjectedScriptHost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScriptHost.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A593CF7A1840360300BFCE27 /* InspectorBackendDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackendDispatcher.cpp; sourceTree = "<group>"; };
</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 = "<group>"; };
</span><span class="cx">                 A718F61A11754A21002465A7 /* RegExpJitTables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpJitTables.h; sourceTree = "<group>"; };
</span><span class="cx">                 A718F8211178EB4B002465A7 /* create_regex_tables */ = {isa = PBXFileReference; explicitFileType = text.script.python; fileEncoding = 4; path = create_regex_tables; sourceTree = "<group>"; };
</span><del>-                A71DA80D1880D71F00D1F299 /* generate-js-builtins */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-js-builtins"; sourceTree = "<group>"; };
</del><span class="cx">                 A72028B41797601E0098028C /* JSCTestRunnerUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCTestRunnerUtils.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A72028B51797601E0098028C /* JSCTestRunnerUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCTestRunnerUtils.h; sourceTree = "<group>"; };
</span><span class="cx">                 A72028B91797603D0098028C /* JSFunctionInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFunctionInlines.h; sourceTree = "<group>"; };
</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 = "<group>";
</span><span class="lines">@@ -5729,6 +5729,19 @@
</span><span class="cx">                         path = bytecode;
</span><span class="cx">                         sourceTree = "<group>";
</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 = "<group>";
+                };
</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 = "<group>";
</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 "${JavaScriptCore_SCRIPTS_DIR}/*")
+foreach (_script ${_JavaScriptCore_Scripts})
+ file(COPY ${_script} DESTINATION ${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts)
+endforeach()
+
</ins><span class="cx"> set(JavaScriptCore_POST_BUILD_COMMAND "${CMAKE_BINARY_DIR}/DerivedSources/JavaScriptCore/postBuild.cmd")
</span><span class="cx"> file(WRITE "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f \"${DERIVED_SOURCES_DIR}/JavaScriptCore/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\" >nul 2>nul\n")
</span><span class="cx"> file(APPEND "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f \"${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\" >nul 2>nul\n")
</span><del>-file(APPEND "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f /s \"${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector/scripts/*.*\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\" >nul 2>nul\n")
-file(APPEND "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f /s \"${DERIVED_SOURCES_DIR}/JavaScriptCore/generate-js-builtins\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\" >nul 2>nul\n")
</del><ins>+file(APPEND "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f \"${JavaScriptCore_SCRIPTS_DIR}/*.*\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts\" >nul 2>nul\n")
</ins><span class="cx"> foreach (_directory ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES})
</span><span class="cx"> file(APPEND "${JavaScriptCore_POST_BUILD_COMMAND}" "@xcopy /y /d /f \"${JAVASCRIPTCORE_DIR}/${_directory}/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore\" >nul 2>nul\n")
</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"\/\*.*?\*\/", ""), # delete comments
+ (r"\n", ""), # delete new lines
+ (r"\s+", " "), # change multiple spaces to one space
+ (r"\s?([;:{},+>])\s?", r"\1"), # delete space where it is not needed
+ (r";}", "}") # change ';}' to '}' because the semicolon is not needed
+ )
+
+ css = css.replace("\r\n", "\n")
+ for rule in rules:
+ css = re.compile(rule[0], re.MULTILINE | re.UNICODE | re.DOTALL).sub(rule[1], css)
+ return css
+
+if __name__ == "__main__":
+ 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) < 2:
+ print("usage: %s [json files or directory of json files ...]" % 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("File \"%s\" not found" % arg)
+ elif os.path.isdir(arg):
+ files.extend(glob.glob(os.path.join(arg, "*.json")))
+ 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 "domains".
+# Validate each file is valid JSON and that there is a "domain" key.
+
+first = True
+print("{\"domains\":[")
+for file in files:
+ if first:
+ first = False
+ else:
+ print(",")
+
+ string = open(file).read()
+
+ try:
+ dictionary = json.loads(string)
+ if not "domain" in dictionary:
+ raise Exception("File \"%s\" does not contains a \"domain\" key." % file)
+ except ValueError:
+ sys.stderr.write("File \"%s\" does not contain valid JSON:\n" % file)
+ raise
+
+ print(string.rstrip())
+print("]}")
+
</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 = """ *
+ * 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
+"""
+
+generatorString = "/* Generated by %s do not hand edit. */\n" % os.path.basename(__file__)
+
+functionHeadRegExp = re.compile(r"(?:function|constructor)\s+\w+\s*\(.*?\)", re.MULTILINE | re.S)
+functionNameRegExp = re.compile(r"(?:function|constructor)\s+(\w+)\s*\(", re.MULTILINE | re.S)
+functionIsConstructorRegExp = re.compile(r"^constructor", re.MULTILINE | re.S)
+functionParameterFinder = re.compile(r"^(?:function|constructor)\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\s*\)", re.MULTILINE | re.S)
+
+multilineCommentRegExp = re.compile(r"\/\*.*?\*\/", re.MULTILINE | re.S)
+singleLineCommentRegExp = re.compile(r"\/\/.*?\n", re.MULTILINE | re.S)
+
+def getCopyright(source):
+ copyrightBlock = multilineCommentRegExp.findall(source)[0]
+ copyrightBlock = copyrightBlock[:copyrightBlock.index("Redistribution")]
+ copyRightLines = []
+
+ for line in copyrightBlock.split("\n"):
+ line = line.replace("/*", "")
+ line = line.replace("*/", "")
+ line = line.replace("*", "")
+ line = line.replace("Copyright", "")
+ line = line.replace("copyright", "")
+ line = line.replace("(C)", "")
+ line = line.replace("(c)", "")
+ 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 + "." + self.name
+ mangledName = ""
+ i = 0
+ while i < 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 + "Constructor"
+ return mangledName
+
+def getFunctions(source):
+
+ source = multilineCommentRegExp.sub("/**/", singleLineCommentRegExp.sub("//\n", source))
+
+ matches = [ f for f in functionHeadRegExp.finditer(source)]
+ functionBounds = []
+ start = 0
+ end = 0
+ for match in matches:
+ start = match.start()
+ if start < end:
+ continue
+ end = match.end()
+ while source[end] != '{':
+ end = end + 1
+ depth = 1
+ end = end + 1
+ while depth > 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("", 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("#include " + headerName + "\n")
+
+def generateCode(source):
+ inputFile = open(source, "r")
+ baseName = os.path.basename(source).replace(".js", "")
+
+ source = ""
+ for line in inputFile:
+ source = source + line
+
+ if sys.platform == "cygwin":
+ source = source.replace("\r\n", "\n")
+ 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 + "_H"
+headerName = scopeName + ".h"
+
+headerIncludes = ["\"BuiltinUtils.h\""] if namespace == "JSC" else ["<builtins/BuiltinUtils.h>"]
+contentIncludes = ["\"BuiltinExecutables.h\"", "\"Executable.h\"", "\"JSCellInlines.h\"", "\"VM.h\""] if namespace == "JSC" else ["<runtime/Executable.h>", "<runtime/StructureInlines.h>", "<runtime/JSCJSValueInlines.h>", "<runtime/JSCellInlines.h>", "<runtime/VM.h>", "\"WebCoreJSClientData.h\""]
+
+copyrights = list(set(copyrights))
+
+copyrightBody = ""
+for copyright in copyrights:
+ copyrightBody = copyrightBody +" * Copyright (C) " + copyright + "\n"
+
+builtinsHeader = open(output_base + ".h.tmp", "w")
+builtinsImplementation = open(output_base + ".cpp.tmp", "w")
+copyrightText = "/*\n" + copyrightBody + copyrightText
+builtinsHeader.write("""%s
+%s
+
+#ifndef %s
+#define %s
+
+""" % (generatorString, copyrightText, includeGuard, includeGuard))
+
+writeIncludeDirectives(builtinsHeader, headerIncludes)
+
+builtinsHeader.write("""
+namespace JSC {
+ class FunctionExecutable;
+}
+
+namespace %s {
+
+""" % namespace)
+
+codeReferences = []
+
+for (objectName, functions) in builtins:
+ print("Generating bindings for the %s builtin." % objectName)
+ builtinsHeader.write("/* %s functions */\n" % objectName)
+ for function in functions:
+ name = function.name
+ mangledName = function.mangleName(objectName)
+ mangledName = mangledName[0].lower() + mangledName[1:] + "Code"
+ codeReferences.append((mangledName, function))
+ builtinsHeader.write("extern const char* s_%s;\n" % mangledName)
+ builtinsHeader.write("extern const int s_%sLength;\n" % mangledName)
+ builtinsHeader.write("extern const JSC::ConstructAbility s_%sConstructAbility;\n" % mangledName)
+ builtinsHeader.write("\n")
+ builtinsHeader.write("#define %s_FOREACH_%s_BUILTIN(macro) \\\n" % (macroPrefix, objectName.replace(".", "_").upper()))
+ for function in functions:
+ mangledName = function.mangleName(objectName)
+ builtinsHeader.write(" macro(%s, %s, %d) \\\n" % (function.name, mangledName, len(function.parameters)))
+ builtinsHeader.write("\n")
+ for function in functions:
+ builtinsHeader.write("#define %s_BUILTIN_%s 1\n" % (macroPrefix, function.mangleName(objectName).upper()))
+ builtinsHeader.write("\n\n")
+names = []
+builtinsHeader.write("#define %s_FOREACH_BUILTIN(macro)\\\n" % macroPrefix)
+for (codeReference, function) in codeReferences:
+ builtinsHeader.write(" macro(%s, %s, s_%sLength) \\\n" % (codeReference, function.name, codeReference))
+ names.append(function.name)
+
+builtinsHeader.write("\n\n")
+builtinsHeader.write("#define %s_FOREACH_BUILTIN_FUNCTION_NAME(macro) \\\n" % macroPrefix)
+for name in sorted(set(names)):
+ builtinsHeader.write(" macro(%s) \\\n" % name)
+builtinsHeader.write("""
+
+#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
+ JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
+
+%s_FOREACH_BUILTIN(DECLARE_BUILTIN_GENERATOR)
+#undef DECLARE_BUILTIN_GENERATOR
+
+#define %s_BUILTIN_EXISTS(name) defined %s_BUILTIN_ ## name
+
+}
+
+#endif // %s
+
+""" % (macroPrefix, macroPrefix, macroPrefix, includeGuard))
+
+builtinsImplementation.write("""%s
+%s
+
+#include "config.h"
+
+#include "%s"
+
+""" % (generatorString, copyrightText, headerName))
+
+writeIncludeDirectives(builtinsImplementation, contentIncludes)
+
+builtinsImplementation.write("""
+namespace %s {
+
+""" % (namespace))
+
+
+
+for (codeReference, function) in codeReferences:
+ source = function.source
+ source = "(function " + source[source.index("("):] + ")"
+ lines = json.dumps(source)[1:-1].split("\\n")
+ sourceLength = len(source)
+ source = ""
+ for line in lines:
+ source = source + (" \"%s\\n\" \\\n" % line)
+ builtinsImplementation.write("const char* s_%s =\n%s;\n\n" % (codeReference, source))
+ builtinsImplementation.write("const int s_%sLength = %d;\n\n" % (codeReference, sourceLength + 1)) # + 1 for \n
+ constructAbility = "JSC::ConstructAbility::CannotConstruct"
+ if function.isConstructor:
+ constructAbility = "JSC::ConstructAbility::CanConstruct"
+ builtinsImplementation.write("const JSC::ConstructAbility s_%sConstructAbility = %s;\n\n" % (codeReference, constructAbility)) # + 1 for \n
+
+builtinsImplementation.write("""
+#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
+JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \\
+""");
+
+if (namespace == "JSC"):
+ builtinsImplementation.write("""{\\
+ return vm.builtinExecutables()->codeName##Executable()->link(vm, vm.builtinExecutables()->codeName##Source()); \\
+""")
+else:
+ builtinName = scopeName[0].lower() + scopeName[1:]
+ builtinsImplementation.write("""{\\
+ JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \\
+ return clientData->builtinFunctions().%s().codeName##Executable()->link(vm, clientData->builtinFunctions().%s().codeName##Source()); \\
+"""% (builtinName, builtinName))
+
+builtinsImplementation.write("""}
+%s_FOREACH_BUILTIN(DEFINE_BUILTIN_GENERATOR)
+#undef DEFINE_BUILTIN_GENERATOR
+}
+
+"""% (macroPrefix))
+
+builtinsHeader.close()
+builtinsImplementation.close()
+
+if (not os.path.exists(output_base + ".h")) or (not filecmp.cmp(output_base + ".h.tmp", output_base + ".h", shallow=False)):
+ if (os.path.exists(output_base + ".h")):
+ os.remove(output_base + ".h")
+ os.rename(output_base + ".h.tmp", output_base + ".h")
+else:
+ os.remove(output_base + ".h.tmp")
+
+if (not os.path.exists(output_base + ".cpp")) or (not filecmp.cmp(output_base + ".cpp.tmp", output_base + ".cpp", shallow=False)):
+ if (os.path.exists(output_base + ".cpp")):
+ os.remove(output_base + ".cpp")
+ os.rename(output_base + ".cpp.tmp", output_base + ".cpp")
+else:
+ os.remove(output_base + ".cpp.tmp")
</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.
+# - <link href="..." rel="stylesheet"> => <style>...</style>
+# - <script src="..."> => <script>...</script>
+
+import cssmin
+import jsmin
+import os.path
+import re
+import sys
+
+
+def main(argv):
+
+ if len(argv) < 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, "<style>", "</style>")
+
+ def inlineScript(match):
+ return inline(match, jsmin.jsmin, "<script>", "</script>")
+
+ outputContent = re.sub(r'<link rel="stylesheet" href=[\'"]([^\'"]+)[\'"]>', inlineStylesheet, inputContent)
+ outputContent = re.sub(r'<script src=[\'"]([^\'"]+)[\'"]></script>', 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 "Software"), 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 "AS IS", 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 >= (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):
+ """
+ returns a minified version of the javascript string
+ """
+ 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):
+ """
+ Minify an input stream of javascript, writing
+ to an output stream
+ """
+
+ 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 = "abcdefghijklmnopqrstuvwxyz"\
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\"
+ starters, enders = '{[(+-', '}])+-"\''
+ 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 >= '!':
+ if previous in "'\"":
+ 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 > '~':
+ while 1:
+ if next2 < '!':
+ next2 = read(1)
+ if not next2:
+ break
+ else:
+ if next2 in newlinestart_strings \
+ or next2 > '~' or next2 == '/':
+ do_newline = True
+ break
+ elif next1 < '!' and not in_re:
+ if (previous_non_space in space_strings \
+ or previous_non_space > '~') \
+ and (next2 in space_strings or next2 > '~'):
+ 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 '(,=:[?!&|' 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 "'\"":
+ in_quote = next1
+ quote_buf = []
+
+ previous = next1
+ next1 = next2
+
+ if previous >= '!':
+ 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
+# "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 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, '<', $fname) or die "Can't open file for read: $fname $!";
+$/ = undef;
+$text = <$input>;
+close($input);
+
+$text = join(', ', map('0x' . unpack("H*", $_), split(undef, $text)));
+
+open($output, '>', $output) or die "Can't open file for write: $output $!";
+print $output "const unsigned char $varname\[\] = {\n$text\n};\n";
+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 = """ *
- * 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
-"""
-
-generatorString = "/* Generated by %s do not hand edit. */\n" % os.path.basename(__file__)
-
-functionHeadRegExp = re.compile(r"(?:function|constructor)\s+\w+\s*\(.*?\)", re.MULTILINE | re.S)
-functionNameRegExp = re.compile(r"(?:function|constructor)\s+(\w+)\s*\(", re.MULTILINE | re.S)
-functionIsConstructorRegExp = re.compile(r"^constructor", re.MULTILINE | re.S)
-functionParameterFinder = re.compile(r"^(?:function|constructor)\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\s*\)", re.MULTILINE | re.S)
-
-multilineCommentRegExp = re.compile(r"\/\*.*?\*\/", re.MULTILINE | re.S)
-singleLineCommentRegExp = re.compile(r"\/\/.*?\n", re.MULTILINE | re.S)
-
-def getCopyright(source):
- copyrightBlock = multilineCommentRegExp.findall(source)[0]
- copyrightBlock = copyrightBlock[:copyrightBlock.index("Redistribution")]
- copyRightLines = []
-
- for line in copyrightBlock.split("\n"):
- line = line.replace("/*", "")
- line = line.replace("*/", "")
- line = line.replace("*", "")
- line = line.replace("Copyright", "")
- line = line.replace("copyright", "")
- line = line.replace("(C)", "")
- line = line.replace("(c)", "")
- 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 + "." + self.name
- mangledName = ""
- i = 0
- while i < 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 + "Constructor"
- return mangledName
-
-def getFunctions(source):
-
- source = multilineCommentRegExp.sub("/**/", singleLineCommentRegExp.sub("//\n", source))
-
- matches = [ f for f in functionHeadRegExp.finditer(source)]
- functionBounds = []
- start = 0
- end = 0
- for match in matches:
- start = match.start()
- if start < end:
- continue
- end = match.end()
- while source[end] != '{':
- end = end + 1
- depth = 1
- end = end + 1
- while depth > 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("", 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("#include " + headerName + "\n")
-
-def generateCode(source):
- inputFile = open(source, "r")
- baseName = os.path.basename(source).replace(".js", "")
-
- source = ""
- for line in inputFile:
- source = source + line
-
- if sys.platform == "cygwin":
- source = source.replace("\r\n", "\n")
- 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 + "_H"
-headerName = scopeName + ".h"
-
-headerIncludes = ["\"BuiltinUtils.h\""] if namespace == "JSC" else ["<builtins/BuiltinUtils.h>"]
-contentIncludes = ["\"BuiltinExecutables.h\"", "\"Executable.h\"", "\"JSCellInlines.h\"", "\"VM.h\""] if namespace == "JSC" else ["<runtime/Executable.h>", "<runtime/StructureInlines.h>", "<runtime/JSCJSValueInlines.h>", "<runtime/JSCellInlines.h>", "<runtime/VM.h>", "\"WebCoreJSClientData.h\""]
-
-copyrights = list(set(copyrights))
-
-copyrightBody = ""
-for copyright in copyrights:
- copyrightBody = copyrightBody +" * Copyright (C) " + copyright + "\n"
-
-builtinsHeader = open(output_base + ".h.tmp", "w")
-builtinsImplementation = open(output_base + ".cpp.tmp", "w")
-copyrightText = "/*\n" + copyrightBody + copyrightText
-builtinsHeader.write("""%s
-%s
-
-#ifndef %s
-#define %s
-
-""" % (generatorString, copyrightText, includeGuard, includeGuard))
-
-writeIncludeDirectives(builtinsHeader, headerIncludes)
-
-builtinsHeader.write("""
-namespace JSC {
- class FunctionExecutable;
-}
-
-namespace %s {
-
-""" % namespace)
-
-codeReferences = []
-
-for (objectName, functions) in builtins:
- print("Generating bindings for the %s builtin." % objectName)
- builtinsHeader.write("/* %s functions */\n" % objectName)
- for function in functions:
- name = function.name
- mangledName = function.mangleName(objectName)
- mangledName = mangledName[0].lower() + mangledName[1:] + "Code"
- codeReferences.append((mangledName, function))
- builtinsHeader.write("extern const char* s_%s;\n" % mangledName)
- builtinsHeader.write("extern const int s_%sLength;\n" % mangledName)
- builtinsHeader.write("extern const JSC::ConstructAbility s_%sConstructAbility;\n" % mangledName)
- builtinsHeader.write("\n")
- builtinsHeader.write("#define %s_FOREACH_%s_BUILTIN(macro) \\\n" % (macroPrefix, objectName.replace(".", "_").upper()))
- for function in functions:
- mangledName = function.mangleName(objectName)
- builtinsHeader.write(" macro(%s, %s, %d) \\\n" % (function.name, mangledName, len(function.parameters)))
- builtinsHeader.write("\n")
- for function in functions:
- builtinsHeader.write("#define %s_BUILTIN_%s 1\n" % (macroPrefix, function.mangleName(objectName).upper()))
- builtinsHeader.write("\n\n")
-names = []
-builtinsHeader.write("#define %s_FOREACH_BUILTIN(macro)\\\n" % macroPrefix)
-for (codeReference, function) in codeReferences:
- builtinsHeader.write(" macro(%s, %s, s_%sLength) \\\n" % (codeReference, function.name, codeReference))
- names.append(function.name)
-
-builtinsHeader.write("\n\n")
-builtinsHeader.write("#define %s_FOREACH_BUILTIN_FUNCTION_NAME(macro) \\\n" % macroPrefix)
-for name in sorted(set(names)):
- builtinsHeader.write(" macro(%s) \\\n" % name)
-builtinsHeader.write("""
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-%s_FOREACH_BUILTIN(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-#define %s_BUILTIN_EXISTS(name) defined %s_BUILTIN_ ## name
-
-}
-
-#endif // %s
-
-""" % (macroPrefix, macroPrefix, macroPrefix, includeGuard))
-
-builtinsImplementation.write("""%s
-%s
-
-#include "config.h"
-
-#include "%s"
-
-""" % (generatorString, copyrightText, headerName))
-
-writeIncludeDirectives(builtinsImplementation, contentIncludes)
-
-builtinsImplementation.write("""
-namespace %s {
-
-""" % (namespace))
-
-
-
-for (codeReference, function) in codeReferences:
- source = function.source
- source = "(function " + source[source.index("("):] + ")"
- lines = json.dumps(source)[1:-1].split("\\n")
- sourceLength = len(source)
- source = ""
- for line in lines:
- source = source + (" \"%s\\n\" \\\n" % line)
- builtinsImplementation.write("const char* s_%s =\n%s;\n\n" % (codeReference, source))
- builtinsImplementation.write("const int s_%sLength = %d;\n\n" % (codeReference, sourceLength + 1)) # + 1 for \n
- constructAbility = "JSC::ConstructAbility::CannotConstruct"
- if function.isConstructor:
- constructAbility = "JSC::ConstructAbility::CanConstruct"
- builtinsImplementation.write("const JSC::ConstructAbility s_%sConstructAbility = %s;\n\n" % (codeReference, constructAbility)) # + 1 for \n
-
-builtinsImplementation.write("""
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \\
-""");
-
-if (namespace == "JSC"):
- builtinsImplementation.write("""{\\
- return vm.builtinExecutables()->codeName##Executable()->link(vm, vm.builtinExecutables()->codeName##Source()); \\
-""")
-else:
- builtinName = scopeName[0].lower() + scopeName[1:]
- builtinsImplementation.write("""{\\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \\
- return clientData->builtinFunctions().%s().codeName##Executable()->link(vm, clientData->builtinFunctions().%s().codeName##Source()); \\
-"""% (builtinName, builtinName))
-
-builtinsImplementation.write("""}
-%s_FOREACH_BUILTIN(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-}
-
-"""% (macroPrefix))
-
-builtinsHeader.close()
-builtinsImplementation.close()
-
-if (not os.path.exists(output_base + ".h")) or (not filecmp.cmp(output_base + ".h.tmp", output_base + ".h", shallow=False)):
- if (os.path.exists(output_base + ".h")):
- os.remove(output_base + ".h")
- os.rename(output_base + ".h.tmp", output_base + ".h")
-else:
- os.remove(output_base + ".h.tmp")
-
-if (not os.path.exists(output_base + ".cpp")) or (not filecmp.cmp(output_base + ".cpp.tmp", output_base + ".cpp", shallow=False)):
- if (os.path.exists(output_base + ".cpp")):
- os.remove(output_base + ".cpp")
- os.rename(output_base + ".cpp.tmp", output_base + ".cpp")
-else:
- os.remove(output_base + ".cpp.tmp")
</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"\/\*.*?\*\/", ""), # delete comments
- (r"\n", ""), # delete new lines
- (r"\s+", " "), # change multiple spaces to one space
- (r"\s?([;:{},+>])\s?", r"\1"), # delete space where it is not needed
- (r";}", "}") # change ';}' to '}' because the semicolon is not needed
- )
-
- css = css.replace("\r\n", "\n")
- for rule in rules:
- css = re.compile(rule[0], re.MULTILINE | re.UNICODE | re.DOTALL).sub(rule[1], css)
- return css
-
-if __name__ == "__main__":
- 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) < 2:
- print("usage: %s [json files or directory of json files ...]" % 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("File \"%s\" not found" % arg)
- elif os.path.isdir(arg):
- files.extend(glob.glob(os.path.join(arg, "*.json")))
- 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 "domains".
-# Validate each file is valid JSON and that there is a "domain" key.
-
-first = True
-print("{\"domains\":[")
-for file in files:
- if first:
- first = False
- else:
- print(",")
-
- string = open(file).read()
-
- try:
- dictionary = json.loads(string)
- if not "domain" in dictionary:
- raise Exception("File \"%s\" does not contains a \"domain\" key." % file)
- except ValueError:
- sys.stderr.write("File \"%s\" does not contain valid JSON:\n" % file)
- raise
-
- print(string.rstrip())
-print("]}")
-
</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.
-# - <link href="..." rel="stylesheet"> => <style>...</style>
-# - <script src="..."> => <script>...</script>
-
-import cssmin
-import jsmin
-import os.path
-import re
-import sys
-
-
-def main(argv):
-
- if len(argv) < 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, "<style>", "</style>")
-
- def inlineScript(match):
- return inline(match, jsmin.jsmin, "<script>", "</script>")
-
- outputContent = re.sub(r'<link rel="stylesheet" href=[\'"]([^\'"]+)[\'"]>', inlineStylesheet, inputContent)
- outputContent = re.sub(r'<script src=[\'"]([^\'"]+)[\'"]></script>', 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 "Software"), 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 "AS IS", 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 >= (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):
- """
- returns a minified version of the javascript string
- """
- 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):
- """
- Minify an input stream of javascript, writing
- to an output stream
- """
-
- 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 = "abcdefghijklmnopqrstuvwxyz"\
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\"
- starters, enders = '{[(+-', '}])+-"\''
- 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 >= '!':
- if previous in "'\"":
- 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 > '~':
- while 1:
- if next2 < '!':
- next2 = read(1)
- if not next2:
- break
- else:
- if next2 in newlinestart_strings \
- or next2 > '~' or next2 == '/':
- do_newline = True
- break
- elif next1 < '!' and not in_re:
- if (previous_non_space in space_strings \
- or previous_non_space > '~') \
- and (next2 in space_strings or next2 > '~'):
- 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 '(,=:[?!&|' 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 "'\"":
- in_quote = next1
- quote_buf = []
-
- previous = next1
- next1 = next2
-
- if previous >= '!':
- 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
-# "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 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, '<', $fname) or die "Can't open file for read: $fname $!";
-$/ = undef;
-$text = <$input>;
-close($input);
-
-$text = join(', ', map('0x' . unpack("H*", $_), split(undef, $text)));
-
-open($output, '>', $output) or die "Can't open file for write: $output $!";
-print $output "const unsigned char $varname\[\] = {\n$text\n};\n";
-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 "${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore")
- set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR "${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore")
</del><ins>+ set(JavaScriptCore_SCRIPTS_DIR "${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore/Scripts")
</ins><span class="cx"> else ()
</span><del>- set(WebCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
- set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}")
</del><ins>+ set(JavaScriptCore_SCRIPTS_DIR "${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore/Scripts")
</ins><span class="cx"> endif ()
</span><span class="cx"> else ()
</span><del>- set(WebCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
- set(WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}")
</del><ins>+ set(JavaScriptCore_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/Scripts")
</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 "//# sourceURL=__WebInspectorCommandLineAPIModuleSource__" > ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
</span><del>- COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py < ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js >> ${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 < ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js >> ${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 < ${WEBCORE_DIR}/xml/XMLViewer.css > ${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 < ${WEBCORE_DIR}/xml/XMLViewer.css > ${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 < ${WEBCORE_DIR}/xml/XMLViewer.js > ${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 < ${WEBCORE_DIR}/xml/XMLViewer.js > ${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 "PYTHONPATH=${WebCore_INSPECTOR_SCRIPTS_DIR}" ${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 "PYTHONPATH=${JavaScriptCore_SCRIPTS_DIR}" ${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 <bburg@apple.com>
+
+ 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 <simon.fraser@apple.com>
</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 <"$(WebCore)/xml/XMLViewer.css" > ./XMLViewer.min.css
-        $(PERL) $(InspectorScripts)/xxd.pl XMLViewer_css ./XMLViewer.min.css XMLViewerCSS.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/cssmin.py <"$(WebCore)/xml/XMLViewer.css" > ./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 <"$(WebCore)/xml/XMLViewer.js" > ./XMLViewer.min.js
-        $(PERL) $(InspectorScripts)/xxd.pl XMLViewer_js ./XMLViewer.min.js XMLViewerJS.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py <"$(WebCore)/xml/XMLViewer.js" > ./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) $< $@ UserAgentScriptsData.cpp $(USER_AGENT_SCRIPTS)
</del><ins>+        PYTHONPATH=$(JavaScriptCore_SCRIPTS_DIR) $(PYTHON) $< $@ 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 "//# sourceURL=__WebInspectorCommandLineAPIModuleSource__" > ./CommandLineAPIModuleSource.min.js
</span><del>-        $(PYTHON) $(InspectorScripts)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js >> ./CommandLineAPIModuleSource.min.js
-        $(PERL) $(InspectorScripts)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h
</del><ins>+        $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js >> ./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 $< --generate_js_builtins_path $(GenerateJSBuiltinsScripts)
</del><ins>+        $(PYTHON) $(WebCore)/generate-js-builtins --input $< --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 = "mkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\"\n\n/bin/ln -sfh \"${SRCROOT}\" WebCore\nexport WebCore=\"WebCore\"\nexport InspectorScripts=\"${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\"\nexport WebReplayScripts=\"${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\"\nexport GenerateJSBuiltinsScripts=\"${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\"\n\nif [ ! $CC ]; then\n export CC=\"`xcrun -find clang`\"\nfi\n\nif [ ! $GPERF ]; then\n export GPERF=\"`xcrun -find gperf`\"\nfi\n\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" ]; then\n make --no-builtin-rules -f \"WebCore/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=\"${SDKROOT}\"\nfi\n";
</del><ins>+                        shellScript = "mkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/WebCore\"\n\n/bin/ln -sfh \"${SRCROOT}\" WebCore\nexport WebCore=\"WebCore\"\nexport JavaScriptCore_SCRIPTS_DIR=\"${JAVASCRIPTCORE_PRIVATE_HEADERS_DIR}\"\n\nif [ ! $CC ]; then\n export CC=\"`xcrun -find clang`\"\nfi\n\nif [ ! $GPERF ]; then\n export GPERF=\"`xcrun -find gperf`\"\nfi\n\nif [ \"${ACTION}\" = \"build\" -o \"${ACTION}\" = \"install\" -o \"${ACTION}\" = \"installhdrs\" ]; then\n make --no-builtin-rules -f \"WebCore/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.activecpu` SDKROOT=\"${SDKROOT}\"\nfi\n";
</ins><span class="cx">                 };
</span><span class="cx"> /* End PBXShellScriptBuildPhase section */
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>