<!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>[171013] 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/171013">171013</a></dd>
<dt>Author</dt> <dd>joepeck@webkit.org</dd>
<dt>Date</dt> <dd>2014-07-11 14:54:19 -0700 (Fri, 11 Jul 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Debugger Pause button does not work
https://bugs.webkit.org/show_bug.cgi?id=134785

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:
* CMakeLists.txt:
* DerivedSources.make:
Minification strips the sourceURL command. Add it back with minification.

Source/WebCore:
* CMakeLists.txt:
* DerivedSources.make:
* inspector/CommandLineAPIModuleSource.js:
Minification strips the sourceURL command. Add it back with minification.

Source/WebInspectorUI:
Previously we were automatically resuming if we had no recognized
call frames in the call stack we get when paused. However, we
were accidentally skipping over anonymous scripts instead of
just Web Inspector originated call frames.

Now that we allow anonymous scripts we can step into anonymous
scripts (e.g. evals, new Function(...)) as expected.

Also, remove the condition of automatically resuming if the
call stack was empty. The UI handles this with &quot;No Call Frames&quot;.

* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidPause):</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="#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="#trunkSourceWebCoreinspectorCommandLineAPIModuleSourcejs">trunk/Source/WebCore/inspector/CommandLineAPIModuleSource.js</a></li>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceControllersDebuggerManagerjs">trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -899,7 +899,8 @@
</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><span class="cx">     DEPENDS ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js &gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
</del><ins>+    COMMAND echo &quot;//# sourceURL=__WebInspectorInjectedScript__&quot; &gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
+    COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js &gt;&gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
</ins><span class="cx">     COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
</span><span class="cx">     VERBATIM)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2014-07-11  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        Web Inspector: Debugger Pause button does not work
+        https://bugs.webkit.org/show_bug.cgi?id=134785
+
+        Reviewed by Timothy Hatcher.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        Minification strips the sourceURL command. Add it back with minification.
+
</ins><span class="cx"> 2014-07-11  peavo@outlook.com  &lt;peavo@outlook.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win] Enable DFG JIT.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -147,7 +147,8 @@
</span><span class="cx">         $(PYTHON) $(JavaScriptCore)/inspector/scripts/CodeGeneratorInspector.py ./InspectorJS.json --output_h_dir . --output_cpp_dir . --output_js_dir . --output_type JavaScript
</span><span class="cx"> 
</span><span class="cx"> InjectedScriptSource.h : inspector/InjectedScriptSource.js $(JavaScriptCore)/inspector/scripts/jsmin.py $(JavaScriptCore)/inspector/scripts/xxd.pl
</span><del>-        $(PYTHON) $(JavaScriptCore)/inspector/scripts/jsmin.py &lt; $(JavaScriptCore)/inspector/InjectedScriptSource.js &gt; ./InjectedScriptSource.min.js
</del><ins>+        echo &quot;//# sourceURL=__WebInspectorInjectedScript__&quot; &gt; ./InjectedScriptSource.min.js
+        $(PYTHON) $(JavaScriptCore)/inspector/scripts/jsmin.py &lt; $(JavaScriptCore)/inspector/InjectedScriptSource.js &gt;&gt; ./InjectedScriptSource.min.js
</ins><span class="cx">         $(PERL) $(JavaScriptCore)/inspector/scripts/xxd.pl InjectedScriptSource_js ./InjectedScriptSource.min.js InjectedScriptSource.h
</span><span class="cx">         rm -f ./InjectedScriptSource.min.js
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebCore/CMakeLists.txt        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -3304,7 +3304,8 @@
</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><span class="cx">     DEPENDS ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py
</span><del>-    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
</del><ins>+    COMMAND echo &quot;//# sourceURL=__WebInspectorCommandLineAPIModuleSource__&quot; &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
+    COMMAND ${PYTHON_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/jsmin.py &lt; ${WEBCORE_DIR}/inspector/CommandLineAPIModuleSource.js &gt;&gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js
</ins><span class="cx">     COMMAND ${PERL_EXECUTABLE} ${WebCore_INSPECTOR_SCRIPTS_DIR}/xxd.pl CommandLineAPIModuleSource_js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.min.js ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h
</span><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/CommandLineAPIModuleSource.h)
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebCore/ChangeLog        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-07-11  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        Web Inspector: Debugger Pause button does not work
+        https://bugs.webkit.org/show_bug.cgi?id=134785
+
+        Reviewed by Timothy Hatcher.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * inspector/CommandLineAPIModuleSource.js:
+        Minification strips the sourceURL command. Add it back with minification.
+
</ins><span class="cx"> 2014-07-11  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use the bare minimum tile coverage rect when under memory pressure.
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebCore/DerivedSources.make        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -1185,7 +1185,8 @@
</span><span class="cx"> all : CommandLineAPIModuleSource.h
</span><span class="cx"> 
</span><span class="cx"> CommandLineAPIModuleSource.h : CommandLineAPIModuleSource.js
</span><del>-        $(PYTHON) $(InspectorScripts)/jsmin.py &lt;$(WebCore)/inspector/CommandLineAPIModuleSource.js &gt; ./CommandLineAPIModuleSource.min.js
</del><ins>+        echo &quot;//# sourceURL=__WebInspectorCommandLineAPIModuleSource__&quot; &gt; ./CommandLineAPIModuleSource.min.js
+        $(PYTHON) $(InspectorScripts)/jsmin.py &lt;$(WebCore)/inspector/CommandLineAPIModuleSource.js &gt;&gt; ./CommandLineAPIModuleSource.min.js
</ins><span class="cx">         $(PERL) $(InspectorScripts)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h
</span><span class="cx">         rm -f ./CommandLineAPIModuleSource.min.js
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorCommandLineAPIModuleSourcejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/CommandLineAPIModuleSource.js (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/CommandLineAPIModuleSource.js        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebCore/inspector/CommandLineAPIModuleSource.js        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -26,6 +26,8 @@
</span><span class="cx">  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><ins>+//# sourceURL=__WebInspectorCommandLineAPIModuleSource__
+
</ins><span class="cx"> /**
</span><span class="cx">  * @param {InjectedScriptHost} InjectedScriptHost
</span><span class="cx">  * @param {Window} inspectedWindow
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebInspectorUI/ChangeLog        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -1,5 +1,26 @@
</span><span class="cx"> 2014-07-11  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Web Inspector: Debugger Pause button does not work
+        https://bugs.webkit.org/show_bug.cgi?id=134785
+
+        Reviewed by Timothy Hatcher.
+
+        Previously we were automatically resuming if we had no recognized
+        call frames in the call stack we get when paused. However, we
+        were accidentally skipping over anonymous scripts instead of
+        just Web Inspector originated call frames.
+
+        Now that we allow anonymous scripts we can step into anonymous
+        scripts (e.g. evals, new Function(...)) as expected.
+
+        Also, remove the condition of automatically resuming if the
+        call stack was empty. The UI handles this with &quot;No Call Frames&quot;.
+
+        * UserInterface/Controllers/DebuggerManager.js:
+        (WebInspector.DebuggerManager.prototype.debuggerDidPause):
+
+2014-07-11  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
</ins><span class="cx">         Web Inspector: CSS Autocompletion: &quot;background&quot; only has colors, should support others
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=134839
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceControllersDebuggerManagerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js (171012 => 171013)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js        2014-07-11 21:10:46 UTC (rev 171012)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js        2014-07-11 21:54:19 UTC (rev 171013)
</span><span class="lines">@@ -358,8 +358,13 @@
</span><span class="cx">         for (var i = 0; i &lt; callFramesPayload.length; ++i) {
</span><span class="cx">             var callFramePayload = callFramesPayload[i];
</span><span class="cx">             var sourceCodeLocation = this._sourceCodeLocationFromPayload(callFramePayload.location);
</span><ins>+            // FIXME: There may be useful call frames without a source code location (native callframes), should we include them?
+            if (!sourceCodeLocation)
+                continue;
+            if (!sourceCodeLocation.sourceCode)
+                continue;
</ins><span class="cx">             // Exclude the case where the call frame is in the inspector code.
</span><del>-            if (!sourceCodeLocation || !sourceCodeLocation._sourceCode || !sourceCodeLocation._sourceCode._url || sourceCodeLocation._sourceCode._url.indexOf(&quot;__WebInspector&quot;) === 0)
</del><ins>+            if (sourceCodeLocation.sourceCode.url &amp;&amp; sourceCodeLocation.sourceCode.url.startsWith(&quot;__WebInspector&quot;))
</ins><span class="cx">                 continue;
</span><span class="cx">             var thisObject = WebInspector.RemoteObject.fromPayload(callFramePayload.this);
</span><span class="cx">             var scopeChain = this._scopeChainFromPayload(callFramePayload.scopeChain);
</span><span class="lines">@@ -367,11 +372,6 @@
</span><span class="cx">             this._callFrames.push(callFrame);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!this._callFrames.length) {
-            this.resume();
-            return;
-        }
-
</del><span class="cx">         this._activeCallFrame = this._callFrames[0];
</span><span class="cx"> 
</span><span class="cx">         if (!wasStillPaused)
</span></span></pre>
</div>
</div>

</body>
</html>