<!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>[202609] trunk/LayoutTests</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/202609">202609</a></dd>
<dt>Author</dt> <dd>ddkilzer@apple.com</dd>
<dt>Date</dt> <dd>2016-06-28 21:17:36 -0700 (Tue, 28 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Enhance shouldNotThrow()/shouldThrow() to accept functions and a descriptive message
&lt;https://webkit.org/b/159232&gt;

Reviewed by Brent Fulgham.

Based on a Blink change (patch by &lt;hongchan@chromium.org&gt;):
&lt;https://src.chromium.org/viewvc/blink?view=revision&amp;revision=192204&gt;

Currently, shouldNotThrow() and shouldThrow() take the following
arguments:

    shouldNotThrow(evalString)
    shouldThrow(evalString, expectedExceptionString)

The challenges with this design are:

    1) The 'evalString' must capture every variable that it
       needs, which means the code can be long, and concatenated
       into a single line.  It would be really nice to be able
       to use an (anonymous) function to capture variables
       instead.
    2) The 'evalString' is literally printed out in the test
       results, which isn't always the most descriptive.  A
       descriptive message would make it clearer what failed.
    3) When changing a shouldThrow() into a shouldNotThrow()
       or copying/pasting code, it's possible to forget to
       remove 'expectedExceptionString' from the function call.

This patch changes the methods to take the following arguments:

    shouldNotThrow(evalString|function [, message])
    shouldThrow(evalString|function, expectedExceptionString [, message])

If 'function' is passed in, then it is invoked instead of
evaluated, and 'message' replaces the literal code in the
pass/fail output.

This patch also adds the global 'didFailSomeTests' variable to
js-test.js, which already exists in js-test-pre.js.  This was
added to js-test-pre.js in <a href="http://trac.webkit.org/projects/webkit/changeset/153203">r153203</a> by Oliver Hunt to
LayoutTests/fast/js/resources/js-test-pre.js.

* fast/canvas/webgl/canvas-supports-context-expected.txt:
* fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt:
* fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
* fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt:
* storage/indexeddb/cursor-basics-expected.txt:
* storage/indexeddb/cursor-basics-private-expected.txt:
- Update expected results to include &quot;Some tests fail.&quot; since
  some subtests actually do fail during these tests.

* fast/css/parsing-css-lang.html:
* fast/css/parsing-css-matches-1.html:
* fast/css/parsing-css-matches-2.html:
* fast/css/parsing-css-matches-3.html:
* fast/css/parsing-css-matches-4.html:
* fast/css/parsing-css-not-1.html:
* fast/css/parsing-css-not-2.html:
* fast/css/parsing-css-not-3.html:
* fast/css/parsing-css-not-4.html:
* fast/css/parsing-css-nth-child-of-1.html:
* fast/css/parsing-css-nth-child-of-2.html:
* fast/css/parsing-css-nth-last-child-of-1.html:
* fast/css/parsing-css-nth-last-child-of-2.html:
* js/script-tests/arrowfunction-supercall.js:
- Remove expectedExceptionString from shouldNotThrow() calls
  after they were changed from shouldThrow() calls.

* resources/js-test-pre.js:
(shouldNotThrow): Change to invoke first argument if it is a
function, else use eval() as before.  Use second argurment in
place of first argument (if set) when printing results.  NOTE:
Care was taken not to add any lines of code to prevent changes
to test results.
(shouldThrow): Ditto.  Reformat code.
* resources/js-test.js: Declare 'didFailSomeTests'.
(testFailed): Set 'didFailSomeTests' to true when a test fails.
(shouldNotThrow): Same changes as js-test-pre.js.
(shouldThrow): Ditto.
(isSuccessfullyParsed): Output a message if 'didFailSomeTests'
is true.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglcanvassupportscontextexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/canvas-supports-context-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcanvaswebglglbindattriblocationbeforecompiletestexpectedtxt">trunk/LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcsslanghtml">trunk/LayoutTests/fast/css/parsing-css-lang.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssmatches1html">trunk/LayoutTests/fast/css/parsing-css-matches-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssmatches2html">trunk/LayoutTests/fast/css/parsing-css-matches-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssmatches3html">trunk/LayoutTests/fast/css/parsing-css-matches-3.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssmatches4html">trunk/LayoutTests/fast/css/parsing-css-matches-4.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnot1html">trunk/LayoutTests/fast/css/parsing-css-not-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnot2html">trunk/LayoutTests/fast/css/parsing-css-not-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnot3html">trunk/LayoutTests/fast/css/parsing-css-not-3.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnot4html">trunk/LayoutTests/fast/css/parsing-css-not-4.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnthchildof1html">trunk/LayoutTests/fast/css/parsing-css-nth-child-of-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnthchildof2html">trunk/LayoutTests/fast/css/parsing-css-nth-child-of-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnthlastchildof1html">trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-1.html</a></li>
<li><a href="#trunkLayoutTestsfastcssparsingcssnthlastchildof2html">trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-2.html</a></li>
<li><a href="#trunkLayoutTestsfastcssgridlayoutgridelementautorepeatgetsetexpectedtxt">trunk/LayoutTests/fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomgetElementsByClassNameASCIIcaseinsensitiveexpectedtxt">trunk/LayoutTests/fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsscripttestsarrowfunctionsupercalljs">trunk/LayoutTests/js/script-tests/arrowfunction-supercall.js</a></li>
<li><a href="#trunkLayoutTestsresourcesjstestprejs">trunk/LayoutTests/resources/js-test-pre.js</a></li>
<li><a href="#trunkLayoutTestsresourcesjstestjs">trunk/LayoutTests/resources/js-test.js</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursorbasicsexpectedtxt">trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbcursorbasicsprivateexpectedtxt">trunk/LayoutTests/storage/indexeddb/cursor-basics-private-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/ChangeLog        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2016-06-28  David Kilzer  &lt;ddkilzer@apple.com&gt;
+
+        Enhance shouldNotThrow()/shouldThrow() to accept functions and a descriptive message
+        &lt;https://webkit.org/b/159232&gt;
+
+        Reviewed by Brent Fulgham.
+
+        Based on a Blink change (patch by &lt;hongchan@chromium.org&gt;):
+        &lt;https://src.chromium.org/viewvc/blink?view=revision&amp;revision=192204&gt;
+
+        Currently, shouldNotThrow() and shouldThrow() take the following
+        arguments:
+
+            shouldNotThrow(evalString)
+            shouldThrow(evalString, expectedExceptionString)
+
+        The challenges with this design are:
+
+            1) The 'evalString' must capture every variable that it
+               needs, which means the code can be long, and concatenated
+               into a single line.  It would be really nice to be able
+               to use an (anonymous) function to capture variables
+               instead.
+            2) The 'evalString' is literally printed out in the test
+               results, which isn't always the most descriptive.  A
+               descriptive message would make it clearer what failed.
+            3) When changing a shouldThrow() into a shouldNotThrow()
+               or copying/pasting code, it's possible to forget to
+               remove 'expectedExceptionString' from the function call.
+
+        This patch changes the methods to take the following arguments:
+
+            shouldNotThrow(evalString|function [, message])
+            shouldThrow(evalString|function, expectedExceptionString [, message])
+
+        If 'function' is passed in, then it is invoked instead of
+        evaluated, and 'message' replaces the literal code in the
+        pass/fail output.
+
+        This patch also adds the global 'didFailSomeTests' variable to
+        js-test.js, which already exists in js-test-pre.js.  This was
+        added to js-test-pre.js in r153203 by Oliver Hunt to
+        LayoutTests/fast/js/resources/js-test-pre.js.
+
+        * fast/canvas/webgl/canvas-supports-context-expected.txt:
+        * fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt:
+        * fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
+        * fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt:
+        * storage/indexeddb/cursor-basics-expected.txt:
+        * storage/indexeddb/cursor-basics-private-expected.txt:
+        - Update expected results to include &quot;Some tests fail.&quot; since
+          some subtests actually do fail during these tests.
+
+        * fast/css/parsing-css-lang.html:
+        * fast/css/parsing-css-matches-1.html:
+        * fast/css/parsing-css-matches-2.html:
+        * fast/css/parsing-css-matches-3.html:
+        * fast/css/parsing-css-matches-4.html:
+        * fast/css/parsing-css-not-1.html:
+        * fast/css/parsing-css-not-2.html:
+        * fast/css/parsing-css-not-3.html:
+        * fast/css/parsing-css-not-4.html:
+        * fast/css/parsing-css-nth-child-of-1.html:
+        * fast/css/parsing-css-nth-child-of-2.html:
+        * fast/css/parsing-css-nth-last-child-of-1.html:
+        * fast/css/parsing-css-nth-last-child-of-2.html:
+        * js/script-tests/arrowfunction-supercall.js:
+        - Remove expectedExceptionString from shouldNotThrow() calls
+          after they were changed from shouldThrow() calls.
+
+        * resources/js-test-pre.js:
+        (shouldNotThrow): Change to invoke first argument if it is a
+        function, else use eval() as before.  Use second argurment in
+        place of first argument (if set) when printing results.  NOTE:
+        Care was taken not to add any lines of code to prevent changes
+        to test results.
+        (shouldThrow): Ditto.  Reformat code.
+        * resources/js-test.js: Declare 'didFailSomeTests'.
+        (testFailed): Set 'didFailSomeTests' to true when a test fails.
+        (shouldNotThrow): Same changes as js-test-pre.js.
+        (shouldThrow): Ditto.
+        (isSuccessfullyParsed): Output a message if 'didFailSomeTests'
+        is true.
+
</ins><span class="cx"> 2016-06-28  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Implement &quot;replacement&quot; codec
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglcanvassupportscontextexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/canvas-supports-context-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/canvas-supports-context-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/canvas/webgl/canvas-supports-context-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -115,6 +115,7 @@
</span><span class="cx"> PASS document.createElement('canvas').probablySupportsContext() is false
</span><span class="cx"> 
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcanvaswebglglbindattriblocationbeforecompiletestexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> PASS getError was expected value: NO_ERROR : 
</span><span class="cx"> 
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcsslanghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-lang.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-lang.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-lang.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :lang(stringList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidLanguageRange(languageRangeString, expectedSerializedLanguageRange) {
</span><del>-    shouldNotThrow('document.querySelector(\':lang(' + languageRangeString.replace(/\\/g, '\\\\') + ')\')', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(\':lang(' + languageRangeString.replace(/\\/g, '\\\\') + ')\')');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':lang(' + languageRangeString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssmatches1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-matches-1.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-matches-1.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-matches-1.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :matches(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':matches(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssmatches2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-matches-2.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-matches-2.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-matches-2.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :matches(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':matches(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssmatches3html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-matches-3.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-matches-3.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-matches-3.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :matches(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':matches(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssmatches4html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-matches-4.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-matches-4.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-matches-4.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :matches(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:matches(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':matches(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnot1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-not-1.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-not-1.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-not-1.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :not(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':not(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnot2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-not-2.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-not-2.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-not-2.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :not(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':not(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnot3html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-not-3.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-not-3.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-not-3.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :not(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':not(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnot4html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-not-4.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-not-4.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-not-4.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :not(selectorList) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:not(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':not(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnthchildof1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-nth-child-of-1.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-nth-child-of-1.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-nth-child-of-1.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :nth-child(of) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:nth-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:nth-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':nth-child(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnthchildof2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-nth-child-of-2.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-nth-child-of-2.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-nth-child-of-2.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :nth-child(of) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:nth-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:nth-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':nth-child(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnthlastchildof1html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-1.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-1.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-1.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :nth-last-child(of) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:nth-last-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:nth-last-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':nth-last-child(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssparsingcssnthlastchildof2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-2.html (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-2.html        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css/parsing-css-nth-last-child-of-2.html        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> description('Test the parsing of :nth-last-child(of) for querySelector and style.');
</span><span class="cx"> 
</span><span class="cx"> function testValidSelector(selectorString, expectedSerializedSelector) {
</span><del>-    shouldNotThrow('document.querySelector(&quot;:nth-last-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)', '&quot;Error: SyntaxError: DOM Exception 12&quot;');
</del><ins>+    shouldNotThrow('document.querySelector(&quot;:nth-last-child(' + selectorString.replace(/\\/g, '\\\\') + ')&quot;)');
</ins><span class="cx"> 
</span><span class="cx">     var styleContainer = document.getElementById('style-container');
</span><span class="cx">     styleContainer.innerHTML = ':nth-last-child(' + selectorString + ') { }';
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgridlayoutgridelementautorepeatgetsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -57,6 +57,7 @@
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS window.getComputedStyle(element, '').getPropertyValue('grid-template-columns') is &quot;none&quot;
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomgetElementsByClassNameASCIIcaseinsensitiveexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -3,6 +3,7 @@
</span><span class="cx"> PASS getByClassName('ä') is &quot;ä&quot;
</span><span class="cx"> PASS getByClassName('Ä') is &quot;Ä&quot;
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsjsscripttestsarrowfunctionsupercalljs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/script-tests/arrowfunction-supercall.js (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/script-tests/arrowfunction-supercall.js        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/js/script-tests/arrowfunction-supercall.js        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> shouldBe(&quot;(new class extends A { constructor() { ((a = super())=&gt;{})() } }).id&quot;, &quot;value&quot;);
</span><span class="cx"> shouldThrow('(new class extends A { constructor() { ((a = this)=&gt;{ return a; })() } })', '&quot;ReferenceError: Cannot access uninitialized variable.&quot;');
</span><span class="cx"> shouldThrow('(new class extends A { constructor() { ((a = this, b=super())=&gt;{ return a; })() } })', '&quot;ReferenceError: Cannot access uninitialized variable.&quot;');
</span><del>-shouldNotThrow('(new class extends A { constructor() { ((a = new.target)=&gt;{ return a; })(); super(); } })', '&quot;ReferenceError: Cannot access uninitialized variable.&quot;');
-shouldNotThrow('(new class extends A { constructor() { ((a = new.target, b=super())=&gt;{ return a; })() } })', '&quot;ReferenceError: Cannot access uninitialized variable.&quot;');
</del><ins>+shouldNotThrow('(new class extends A { constructor() { ((a = new.target)=&gt;{ return a; })(); super(); } })');
+shouldNotThrow('(new class extends A { constructor() { ((a = new.target, b=super())=&gt;{ return a; })() } })');
</ins><span class="cx"> 
</span><span class="cx"> var successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsresourcesjstestprejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/js-test-pre.js (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/js-test-pre.js        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/resources/js-test-pre.js        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -583,38 +583,38 @@
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function shouldNotThrow(_a) {
</del><ins>+function shouldNotThrow(_a, _message) {
</ins><span class="cx">     try {
</span><del>-        eval(_a);
-        testPassed(_a + &quot; did not throw exception.&quot;);
</del><ins>+        typeof _a == &quot;function&quot; ? _a() : eval(_a);
+        testPassed((_message ? _message : _a) + &quot; did not throw exception.&quot;);
</ins><span class="cx">     } catch (e) {
</span><del>-        testFailed(_a + &quot; should not throw exception. Threw exception &quot; + e + &quot;.&quot;);
</del><ins>+        testFailed((_message ? _message : _a) + &quot; should not throw exception. Threw exception &quot; + e + &quot;.&quot;);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function shouldThrow(_a, _e)
</del><ins>+function shouldThrow(_a, _e, _message)
</ins><span class="cx"> {
</span><del>-  var exception;
-  var _av;
-  try {
-     _av = eval(_a);
-  } catch (e) {
-     exception = e;
-  }
</del><ins>+    var _exception;
+    var _av;
+    try {
+        _av = typeof _a == &quot;function&quot; ? _a() : eval(_a);
+    } catch (e) {
+        _exception = e;
+    }
</ins><span class="cx"> 
</span><del>-  var _ev;
-  if (_e)
-      _ev =  eval(_e);
</del><ins>+    var _ev;
+    if (_e)
+        _ev = eval(_e);
</ins><span class="cx"> 
</span><del>-  if (exception) {
-    if (typeof _e == &quot;undefined&quot; || exception == _ev)
-      testPassed(_a + &quot; threw exception &quot; + exception + &quot;.&quot;);
</del><ins>+    if (_exception) {
+        if (typeof _e == &quot;undefined&quot; || _exception == _ev)
+            testPassed((_message ? _message : _a) + &quot; threw exception &quot; + _exception + &quot;.&quot;);
+        else
+            testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Threw exception &quot; + _exception + &quot;.&quot;);
+    } else if (typeof _av == &quot;undefined&quot;)
+        testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was undefined.&quot;);
</ins><span class="cx">     else
</span><del>-      testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Threw exception &quot; + exception + &quot;.&quot;);
-  } else if (typeof _av == &quot;undefined&quot;)
-    testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was undefined.&quot;);
-  else
-    testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was &quot; + _av + &quot;.&quot;);
</del><ins>+        testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was &quot; + _av + &quot;.&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function shouldHaveHadError(message)
</span></span></pre></div>
<a id="trunkLayoutTestsresourcesjstestjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/js-test.js (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/js-test.js        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/resources/js-test.js        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -10,8 +10,10 @@
</span><span class="cx">         testRunner.setPrivateBrowsingEnabled(true);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-var description, debug, successfullyParsed;
</del><ins>+var description, debug, didFailSomeTests, successfullyParsed;
</ins><span class="cx"> 
</span><ins>+didFailSomeTests = false;
+
</ins><span class="cx"> var expectingError; // set by shouldHaveError()
</span><span class="cx"> var expectedErrorMessage; // set by onerror when expectingError is true
</span><span class="cx"> var unexpectedErrorMessage; // set by onerror when expectingError is not true
</span><span class="lines">@@ -153,6 +155,7 @@
</span><span class="cx"> 
</span><span class="cx"> function testFailed(msg)
</span><span class="cx"> {
</span><ins>+    didFailSomeTests = true;
</ins><span class="cx">     debug('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -559,38 +562,38 @@
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function shouldNotThrow(_a) {
</del><ins>+function shouldNotThrow(_a, _message) {
</ins><span class="cx">     try {
</span><del>-        eval(_a);
-        testPassed(_a + &quot; did not throw exception.&quot;);
</del><ins>+        typeof _a == &quot;function&quot; ?  _a() : eval(_a);
+        testPassed((_message ? _message : _a) + &quot; did not throw exception.&quot;);
</ins><span class="cx">     } catch (e) {
</span><del>-        testFailed(_a + &quot; should not throw exception. Threw exception &quot; + e + &quot;.&quot;);
</del><ins>+        testFailed((_message ? _message : _a) + &quot; should not throw exception. Threw exception &quot; + e + &quot;.&quot;);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function shouldThrow(_a, _e)
</del><ins>+function shouldThrow(_a, _e, _message)
</ins><span class="cx"> {
</span><del>-  var _exception;
-  var _av;
-  try {
-     _av = eval(_a);
-  } catch (e) {
-     _exception = e;
-  }
</del><ins>+    var _exception;
+    var _av;
+    try {
+        _av = typeof _a == &quot;function&quot; ? _a() : eval(_a);
+    } catch (e) {
+        _exception = e;
+    }
</ins><span class="cx"> 
</span><del>-  var _ev;
-  if (_e)
-      _ev = eval(_e);
</del><ins>+    var _ev;
+    if (_e)
+        _ev = eval(_e);
</ins><span class="cx"> 
</span><del>-  if (_exception) {
-    if (typeof _e == &quot;undefined&quot; || _exception == _ev)
-      testPassed(_a + &quot; threw exception &quot; + _exception + &quot;.&quot;);
</del><ins>+    if (_exception) {
+        if (typeof _e == &quot;undefined&quot; || _exception == _ev)
+            testPassed((_message ? _message : _a) + &quot; threw exception &quot; + _exception + &quot;.&quot;);
+        else
+            testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Threw exception &quot; + _exception + &quot;.&quot;);
+    } else if (typeof _av == &quot;undefined&quot;)
+        testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was undefined.&quot;);
</ins><span class="cx">     else
</span><del>-      testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Threw exception &quot; + _exception + &quot;.&quot;);
-  } else if (typeof _av == &quot;undefined&quot;)
-    testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was undefined.&quot;);
-  else
-    testFailed(_a + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was &quot; + _av + &quot;.&quot;);
</del><ins>+        testFailed((_message ? _message : _a) + &quot; should throw &quot; + (typeof _e == &quot;undefined&quot; ? &quot;an exception&quot; : _ev) + &quot;. Was &quot; + _av + &quot;.&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function shouldBeNow(a, delta)
</span><span class="lines">@@ -691,6 +694,8 @@
</span><span class="cx">     // FIXME: Remove this and only report unexpected syntax errors.
</span><span class="cx">     successfullyParsed = !unexpectedErrorMessage;
</span><span class="cx">     shouldBeTrue(&quot;successfullyParsed&quot;);
</span><ins>+    if (didFailSomeTests)
+        debug(&quot;Some tests failed.&quot;);
</ins><span class="cx">     debug('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursorbasicsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/storage/indexeddb/cursor-basics-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -82,6 +82,7 @@
</span><span class="cx"> PASS cursor.primaryKey is 0
</span><span class="cx"> PASS 'value' in cursor is false
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbcursorbasicsprivateexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/cursor-basics-private-expected.txt (202608 => 202609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/cursor-basics-private-expected.txt        2016-06-29 04:06:31 UTC (rev 202608)
+++ trunk/LayoutTests/storage/indexeddb/cursor-basics-private-expected.txt        2016-06-29 04:17:36 UTC (rev 202609)
</span><span class="lines">@@ -82,6 +82,7 @@
</span><span class="cx"> PASS cursor.primaryKey is 0
</span><span class="cx"> PASS 'value' in cursor is false
</span><span class="cx"> PASS successfullyParsed is true
</span><ins>+Some tests failed.
</ins><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>