<!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>[205692] trunk/Source/WebInspectorUI</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/205692">205692</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2016-09-08 21:33:11 -0700 (Thu, 08 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: get rid of extra copies of jsmin.py and cssmin.py
https://bugs.webkit.org/show_bug.cgi?id=161770
&lt;rdar://problem/28216813&gt;

Reviewed by Joseph Pecoraro.

* Scripts/copy-user-interface-resources-dryrun.rb:
- Keep track of the original working directory.
- Stage scripts from PrivateHeaders into the temporary directory.
- Add a comment to clarify what this script is simulating.
- Use system instead of exec so we can print an error message.

* Scripts/copy-user-interface-resources.pl:
- Use jsmin.py and cssmin.py from JavaScriptCore instead of
WebInspectorUI. There are no differences between the two copies.

* Scripts/cssmin.py: Removed.
* Scripts/jsmin.py: Removed.

* WebInspectorUI.xcodeproj/project.pbxproj:
- Remove unused copies of jsmin.py and cssmin.py.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIScriptscopyuserinterfaceresourcesdryrunrb">trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources-dryrun.rb</a></li>
<li><a href="#trunkSourceWebInspectorUIScriptscopyuserinterfaceresourcespl">trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl</a></li>
<li><a href="#trunkSourceWebInspectorUIWebInspectorUIxcodeprojprojectpbxproj">trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIScriptscssminpy">trunk/Source/WebInspectorUI/Scripts/cssmin.py</a></li>
<li><a href="#trunkSourceWebInspectorUIScriptsjsminpy">trunk/Source/WebInspectorUI/Scripts/jsmin.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/ChangeLog        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2016-09-08  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Web Inspector: get rid of extra copies of jsmin.py and cssmin.py
+        https://bugs.webkit.org/show_bug.cgi?id=161770
+        &lt;rdar://problem/28216813&gt;
+
+        Reviewed by Joseph Pecoraro.
+
+        * Scripts/copy-user-interface-resources-dryrun.rb:
+        - Keep track of the original working directory.
+        - Stage scripts from PrivateHeaders into the temporary directory.
+        - Add a comment to clarify what this script is simulating.
+        - Use system instead of exec so we can print an error message.
+
+        * Scripts/copy-user-interface-resources.pl:
+        - Use jsmin.py and cssmin.py from JavaScriptCore instead of
+        WebInspectorUI. There are no differences between the two copies.
+
+        * Scripts/cssmin.py: Removed.
+        * Scripts/jsmin.py: Removed.
+
+        * WebInspectorUI.xcodeproj/project.pbxproj:
+        - Remove unused copies of jsmin.py and cssmin.py.
+
</ins><span class="cx"> 2016-09-08  Matt Baker  &lt;mattbaker@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: TimelineDataGridNode should refresh when graph column is resized
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIScriptscopyuserinterfaceresourcesdryrunrb"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources-dryrun.rb (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources-dryrun.rb        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources-dryrun.rb        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -31,10 +31,16 @@
</span><span class="cx">   exit 1
</span><span class="cx"> end
</span><span class="cx"> 
</span><ins>+JAVASCRIPTCORE_PATH = File.expand_path File.join(File.dirname(__FILE__), &quot;..&quot;, &quot;..&quot;, &quot;JavaScriptCore&quot;)
</ins><span class="cx"> WEB_INSPECTOR_PATH = File.expand_path File.join(File.dirname(__FILE__), &quot;..&quot;)
</span><span class="cx"> COPY_USER_INTERFACE_RESOURCES_PATH = File.join WEB_INSPECTOR_PATH, &quot;Scripts&quot;, &quot;copy-user-interface-resources.pl&quot;
</span><span class="cx"> 
</span><ins>+# This script simulates processing user interface resources located in SRCROOT.
+# It places processed files in the specified output directory. This is most similar
+# to an isolated OBJROOT since it includes DerivedSources. It doesn't place files
+# into their DSTROOT locations, such as inside of WebInspectorUI.framework.
</ins><span class="cx"> $output_directory = File.expand_path ARGV[0]
</span><ins>+$start_directory = FileUtils.pwd
</ins><span class="cx"> 
</span><span class="cx"> Dir.mktmpdir do |tmpdir|
</span><span class="cx"> 
</span><span class="lines">@@ -46,12 +52,17 @@
</span><span class="cx">   
</span><span class="cx">   # Setup the environment and run.
</span><span class="cx">   ENV[&quot;DERIVED_SOURCES_DIR&quot;] = tmpdir
</span><ins>+  # Stage some scripts expected to be in various framework PrivateHeaders.
</ins><span class="cx">   ENV[&quot;JAVASCRIPTCORE_PRIVATE_HEADERS_DIR&quot;] = tmpdir
</span><ins>+  FileUtils.cp(File.join(JAVASCRIPTCORE_PATH, &quot;Scripts&quot;, &quot;cssmin.py&quot;), tmpdir)
+  FileUtils.cp(File.join(JAVASCRIPTCORE_PATH, &quot;Scripts&quot;, &quot;jsmin.py&quot;), tmpdir)
</ins><span class="cx">   ENV[&quot;SRCROOT&quot;] = WEB_INSPECTOR_PATH
</span><span class="cx">   ENV[&quot;TARGET_BUILD_DIR&quot;] = $output_directory
</span><span class="cx">   ENV[&quot;UNLOCALIZED_RESOURCES_FOLDER_PATH&quot;] = &quot;&quot;
</span><span class="cx">   ENV[&quot;COMBINE_INSPECTOR_RESOURCES&quot;] = &quot;YES&quot;
</span><span class="cx">   ENV[&quot;COMBINE_TEST_RESOURCES&quot;] = &quot;YES&quot;
</span><del>-  exec COPY_USER_INTERFACE_RESOURCES_PATH
</del><ins>+  ENV[&quot;FORCE_TOOL_INSTALL&quot;] = &quot;NO&quot;
+  FileUtils.cd $start_directory
+  system(COPY_USER_INTERFACE_RESOURCES_PATH) or raise &quot;Failed to process user interface resources.&quot;
</ins><span class="cx"> 
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIScriptscopyuserinterfaceresourcespl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> my $inspectorLicense = &lt;&lt;'EOF';
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2007-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2007-2016 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2008 Matt Lilek. All rights reserved.
</span><span class="cx">  * Copyright (C) 2008-2009 Anthony Ricaud &lt;rik@webkit.org&gt;
</span><span class="cx">  * Copyright (C) 2009-2010 Joseph Pecoraro. All rights reserved.
</span><span class="lines">@@ -135,6 +135,7 @@
</span><span class="cx"> my $python = ($OSNAME =~ /cygwin/) ? &quot;/usr/bin/python&quot; : &quot;python&quot;;
</span><span class="cx"> my $derivedSourcesDir = $ENV{'DERIVED_SOURCES_DIR'};
</span><span class="cx"> my $scriptsRoot = File::Spec-&gt;catdir($ENV{'SRCROOT'}, 'Scripts');
</span><ins>+my $sharedScriptsRoot = File::Spec-&gt;catdir($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'});
</ins><span class="cx"> my $uiRoot = File::Spec-&gt;catdir($ENV{'SRCROOT'}, 'UserInterface');
</span><span class="cx"> my $targetResourcePath = File::Spec-&gt;catdir($ENV{'TARGET_BUILD_DIR'}, $ENV{'UNLOCALIZED_RESOURCES_FOLDER_PATH'});
</span><span class="cx"> my $protocolDir = File::Spec-&gt;catdir($targetResourcePath, 'Protocol');
</span><span class="lines">@@ -222,8 +223,8 @@
</span><span class="cx">     seedFile($targetESLintJS, $eslintLicense);
</span><span class="cx"> 
</span><span class="cx">     # Minify the Main.js and Main.css files, with Main.js appending to the license that was exported above.
</span><del>-    my $jsMinScript = File::Spec-&gt;catfile($scriptsRoot, 'jsmin.py');
-    my $cssMinScript = File::Spec-&gt;catfile($scriptsRoot, 'cssmin.py');
</del><ins>+    my $jsMinScript = File::Spec-&gt;catfile($sharedScriptsRoot, 'jsmin.py');
+    my $cssMinScript = File::Spec-&gt;catfile($sharedScriptsRoot, 'cssmin.py');
</ins><span class="cx">     system(qq(&quot;$python&quot; &quot;$jsMinScript&quot; &lt; &quot;$derivedSourcesMainJS&quot; &gt;&gt; &quot;$targetMainJS&quot;)) and die &quot;Failed to minify $derivedSourcesMainJS: $!&quot;;
</span><span class="cx">     system(qq(&quot;$python&quot; &quot;$cssMinScript&quot; &lt; &quot;$derivedSourcesMainCSS&quot; &gt;&gt; &quot;$targetMainCSS&quot;)) and die &quot;Failed to minify $derivedSourcesMainCSS: $!&quot;;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIScriptscssminpy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebInspectorUI/Scripts/cssmin.py (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Scripts/cssmin.py        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/Scripts/cssmin.py        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-#!/usr/bin/python
-
-# Copyright (C) 2013 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-
-import re
-
-def cssminify(css):
-    rules = (
-        (r&quot;\/\*.*?\*\/&quot;, &quot;&quot;),          # delete comments
-        (r&quot;\n&quot;, &quot;&quot;),                   # delete new lines
-        (r&quot;\s+&quot;, &quot; &quot;),                 # change multiple spaces to one space
-        (r&quot;\s?([;{},~&gt;!])\s?&quot;, r&quot;\1&quot;), # delete space where it is not needed
-        (r&quot;:\s&quot;, &quot;:&quot;),                 # delete spaces after colons, but not before. E.g. do not break selectors &quot;a :focus&quot;, &quot;b :matches(...)&quot;, &quot;c :not(...)&quot; where the leading space is significant
-        (r&quot;\s?([-+])(?:\s(?![0-9(])(?!var))&quot;, r&quot;\1&quot;), # delete whitespace around + and - when not followed by a number, paren, or var(). E.g. strip for selector &quot;a + b&quot; but not &quot;calc(a + b)&quot; which requires spaces.
-        (r&quot;;}&quot;, &quot;}&quot;)                   # change ';}' to '}' because the semicolon is not needed
-    )
-
-    css = css.replace(&quot;\r\n&quot;, &quot;\n&quot;)
-    for rule in rules:
-        css = re.compile(rule[0], re.MULTILINE | re.UNICODE | re.DOTALL).sub(rule[1], css)
-    return css
-
-if __name__ == &quot;__main__&quot;:
-    import sys
-    if sys.version_info[0] == 3 and sys.stdin.encoding != 'UTF-8':
-        import io
-        sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='UTF-8')
-    sys.stdout.write(cssminify(sys.stdin.read()))
</del></span></pre></div>
<a id="trunkSourceWebInspectorUIScriptsjsminpy"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebInspectorUI/Scripts/jsmin.py (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Scripts/jsmin.py        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/Scripts/jsmin.py        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -1,238 +0,0 @@
</span><del>-# This code is original from jsmin by Douglas Crockford, it was translated to
-# Python by Baruch Even. It was rewritten by Dave St.Germain for speed.
-#
-# The MIT License (MIT)
-#
-# Copyright (c) 2013 Dave St.Germain
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the &quot;Software&quot;), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-
-import sys
-is_3 = sys.version_info &gt;= (3, 0)
-if is_3:
-    import io
-else:
-    import StringIO
-    try:
-        import cStringIO
-    except ImportError:
-        cStringIO = None
-
-
-__all__ = ['jsmin', 'JavascriptMinify']
-__version__ = '2.0.9'
-
-
-def jsmin(js):
-    &quot;&quot;&quot;
-    returns a minified version of the javascript string
-    &quot;&quot;&quot;
-    if not is_3:
-        if cStringIO and not isinstance(js, unicode):
-            # strings can use cStringIO for a 3x performance
-            # improvement, but unicode (in python2) cannot
-            klass = cStringIO.StringIO
-        else:
-            klass = StringIO.StringIO
-    else:
-        klass = io.StringIO
-    ins = klass(js)
-    outs = klass()
-    JavascriptMinify(ins, outs).minify()
-    return outs.getvalue()
-
-
-class JavascriptMinify(object):
-    &quot;&quot;&quot;
-    Minify an input stream of javascript, writing
-    to an output stream
-    &quot;&quot;&quot;
-
-    def __init__(self, instream=None, outstream=None):
-        self.ins = instream
-        self.outs = outstream
-
-    def minify(self, instream=None, outstream=None):
-        if instream and outstream:
-            self.ins, self.outs = instream, outstream
-
-        self.is_return = False
-        self.return_buf = ''
-
-        def write(char):
-            # all of this is to support literal regular expressions.
-            # sigh
-            if char in 'return':
-                self.return_buf += char
-                self.is_return = self.return_buf == 'return'
-            self.outs.write(char)
-            if self.is_return:
-                self.return_buf = ''
-
-        read = self.ins.read
-
-        space_strings = &quot;abcdefghijklmnopqrstuvwxyz&quot;\
-        &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\\&quot;
-        starters, enders = '{[(+-', '}])+-&quot;\''
-        newlinestart_strings = starters + space_strings
-        newlineend_strings = enders + space_strings
-        do_newline = False
-        do_space = False
-        escape_slash_count = 0
-        doing_single_comment = False
-        previous_before_comment = ''
-        doing_multi_comment = False
-        in_re = False
-        in_quote = ''
-        quote_buf = []
-
-        previous = read(1)
-        if previous == '\\':
-            escape_slash_count += 1
-        next1 = read(1)
-        if previous == '/':
-            if next1 == '/':
-                doing_single_comment = True
-            elif next1 == '*':
-                doing_multi_comment = True
-                previous = next1
-                next1 = read(1)
-            else:
-                write(previous)
-        elif not previous:
-            return
-        elif previous &gt;= '!':
-            if previous in &quot;'\&quot;&quot;:
-                in_quote = previous
-            write(previous)
-            previous_non_space = previous
-        else:
-            previous_non_space = ' '
-        if not next1:
-            return
-
-        while 1:
-            next2 = read(1)
-            if not next2:
-                last = next1.strip()
-                if not (doing_single_comment or doing_multi_comment)\
-                    and last not in ('', '/'):
-                    if in_quote:
-                        write(''.join(quote_buf))
-                    write(last)
-                break
-            if doing_multi_comment:
-                if next1 == '*' and next2 == '/':
-                    doing_multi_comment = False
-                    next2 = read(1)
-            elif doing_single_comment:
-                if next1 in '\r\n':
-                    doing_single_comment = False
-                    while next2 in '\r\n':
-                        next2 = read(1)
-                        if not next2:
-                            break
-                    if previous_before_comment in ')}]':
-                        do_newline = True
-                    elif previous_before_comment in space_strings:
-                        write('\n')
-            elif in_quote:
-                quote_buf.append(next1)
-
-                if next1 == in_quote:
-                    numslashes = 0
-                    for c in reversed(quote_buf[:-1]):
-                        if c != '\\':
-                            break
-                        else:
-                            numslashes += 1
-                    if numslashes % 2 == 0:
-                        in_quote = ''
-                        write(''.join(quote_buf))
-            elif next1 in '\r\n':
-                if previous_non_space in newlineend_strings \
-                    or previous_non_space &gt; '~':
-                    while 1:
-                        if next2 &lt; '!':
-                            next2 = read(1)
-                            if not next2:
-                                break
-                        else:
-                            if next2 in newlinestart_strings \
-                                or next2 &gt; '~' or next2 == '/':
-                                do_newline = True
-                            break
-            elif next1 &lt; '!' and not in_re:
-                if (previous_non_space in space_strings \
-                    or previous_non_space &gt; '~') \
-                    and (next2 in space_strings or next2 &gt; '~'):
-                    do_space = True
-                elif previous_non_space in '-+' and next2 == previous_non_space:
-                    # protect against + ++ or - -- sequences
-                    do_space = True
-                elif self.is_return and next2 == '/':
-                    # returning a regex...
-                    write(' ')
-            elif next1 == '/':
-                if do_space:
-                    write(' ')
-                if in_re:
-                    if previous != '\\' or (not escape_slash_count % 2) or next2 in 'gimy':
-                        in_re = False
-                    write('/')
-                elif next2 == '/':
-                    doing_single_comment = True
-                    previous_before_comment = previous_non_space
-                elif next2 == '*':
-                    doing_multi_comment = True
-                    previous = next1
-                    next1 = next2
-                    next2 = read(1)
-                else:
-                    in_re = previous_non_space in '(,=:[?!&amp;|' or self.is_return  # literal regular expression
-                    write('/')
-            else:
-                if do_space:
-                    do_space = False
-                    write(' ')
-                if do_newline:
-                    write('\n')
-                    do_newline = False
-
-                write(next1)
-                if not in_re and next1 in &quot;'\&quot;`&quot;:
-                    in_quote = next1
-                    quote_buf = []
-
-            previous = next1
-            next1 = next2
-
-            if previous &gt;= '!':
-                previous_non_space = previous
-
-            if previous == '\\':
-                escape_slash_count += 1
-            else:
-                escape_slash_count = 0
-
-if __name__ == '__main__':
-    minifier = JavascriptMinify(sys.stdin, sys.stdout)
-    minifier.minify()
-    sys.stdout.write('\n')
</del></span></pre></div>
<a id="trunkSourceWebInspectorUIWebInspectorUIxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj (205691 => 205692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj        2016-09-09 03:49:13 UTC (rev 205691)
+++ trunk/Source/WebInspectorUI/WebInspectorUI.xcodeproj/project.pbxproj        2016-09-09 04:33:11 UTC (rev 205692)
</span><span class="lines">@@ -12,8 +12,6 @@
</span><span class="cx"> /* End PBXBuildFile section */
</span><span class="cx"> 
</span><span class="cx"> /* Begin PBXFileReference section */
</span><del>-                1C435CAC14E7B287004E10EA /* cssmin.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = cssmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
-                1C435CAD14E7B287004E10EA /* jsmin.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = jsmin.py; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 1C60FE2F14E5F3CD006CD77D /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1C60FE3114E5F3CD006CD77D /* DebugRelease.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1C60FE3214E5F3CD006CD77D /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -54,8 +52,6 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 1C60FF1914E73C64006CD77D /* combine-resources.pl */,
</span><span class="cx">                                 1C60FFE114E79B0F006CD77D /* copy-user-interface-resources.pl */,
</span><del>-                                1C435CAC14E7B287004E10EA /* cssmin.py */,
-                                1C435CAD14E7B287004E10EA /* jsmin.py */,
</del><span class="cx">                                 1C60FF1A14E73DCA006CD77D /* remove-console-asserts.pl */,
</span><span class="cx">                         );
</span><span class="cx">                         path = Scripts;
</span></span></pre>
</div>
</div>

</body>
</html>