<!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>[170440] trunk</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/170440">170440</a></dd>
<dt>Author</dt> <dd>ggaren@apple.com</dd>
<dt>Date</dt> <dd>2014-06-25 14:51:45 -0700 (Wed, 25 Jun 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/166876">r166876</a>.

Caused some ECMA test262 failures

Reverted changeset:

&quot;Date object needs to check for ES5 15.9.1.14 TimeClip limit.&quot;
https://bugs.webkit.org/show_bug.cgi?id=131248
http://trac.webkit.org/changeset/166876</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDateConstructorcpp">trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSDateMathcpp">trunk/Source/JavaScriptCore/runtime/JSDateMath.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSDateMathh">trunk/Source/JavaScriptCore/runtime/JSDateMath.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMcpp">trunk/Source/JavaScriptCore/runtime/VM.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfDateMathcpp">trunk/Source/WTF/wtf/DateMath.cpp</a></li>
<li><a href="#trunkSourceWTFwtfDateMathh">trunk/Source/WTF/wtf/DateMath.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsjsregress131248expectedtxt">trunk/LayoutTests/js/regress-131248-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsregress131248html">trunk/LayoutTests/js/regress-131248.html</a></li>
<li><a href="#trunkLayoutTestsjsscripttestsregress131248js">trunk/LayoutTests/js/script-tests/regress-131248.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/LayoutTests/ChangeLog        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-06-25  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Unreviewed, rolling out r166876.
+
+        Caused some ECMA test262 failures
+
+        Reverted changeset:
+
+        &quot;Date object needs to check for ES5 15.9.1.14 TimeClip limit.&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=131248
+        http://trac.webkit.org/changeset/166876
+
</ins><span class="cx"> 2014-06-25  Dirk Schulze  &lt;krit@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Add all blend modes to feBlend
</span></span></pre></div>
<a id="trunkLayoutTestsjsregress131248expectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/regress-131248-expected.txt (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/regress-131248-expected.txt        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/LayoutTests/js/regress-131248-expected.txt        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,41 +0,0 @@
</span><del>-This test checks date values at the limits set by the ES5 15.9.1.14 TimeClip specification and ensures that we don't crash on any assertions.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-(new Date(1396547803766)).setDate(1396549003769) ==&gt; NaN ms, Invalid Date
-(new Date(1396547803766)).setDate(100000000) ==&gt; NaN ms, Invalid Date
-(new Date(1396547803766)).setDate(99983840) ==&gt; NaN ms, Invalid Date
-(new Date(1396547803766)).setDate(99983839) ==&gt; 8639999978203766 ms, Fri Sep 12 275760
-(new Date(1396547803766)).setDate(10000000) ==&gt; 865396288603766 ms, Thu Apr 25 29393
-
-(new Date(0)).setTime(8640000000000001) ==&gt; NaN ms, Invalid Date NaN ms
-(new Date(0)).setTime(8640000000000000) ==&gt; 8640000000000000 ms, Sat, 13 Sep 275760 00:00:00 GMT 0 ms
-(new Date(0)).setTime(-8640000000000000) ==&gt; -8640000000000000 ms, Tue, 20 Apr -271821 00:00:00 GMT 0 ms
-(new Date(0)).setTime(-8640000000000001) ==&gt; NaN ms, Invalid Date NaN ms
-
-(new Date(13 Sep 275760 00:00:00 -0001) ==&gt; NaN ms, Invalid Date NaN ms
-(new Date(13 Sep 275760 00:00:00 +0000) ==&gt; 8640000000000000 ms, Sat, 13 Sep 275760 00:00:00 GMT 0 ms
-(new Date(13 Sep 275760 00:00:00 +0001) ==&gt; 8639999996400000 ms, Fri, 12 Sep 275760 23:00:00 GMT 0 ms
-(new Date(20 Apr -271821 00:00:00 -0001) ==&gt; -8639999996400000 ms, Tue, 20 Apr -271821 01:00:00 GMT 0 ms
-(new Date(20 Apr -271821 00:00:00 +0000) ==&gt; -8640000000000000 ms, Tue, 20 Apr -271821 00:00:00 GMT 0 ms
-(new Date(20 Apr -271821 00:00:00 +0001) ==&gt; NaN ms, Invalid Date NaN ms
-
-(new Date(19 Apr -271821 23:59:59) ==&gt; NaN ms, Invalid Date NaN ms
-
-(new Date(275760-09-13T00:00:00.001) ==&gt; NaN ms, Invalid Date NaN ms
-(new Date(275760-09-13T00:00:00.000) ==&gt; 8640000000000000 ms, Sat, 13 Sep 275760 00:00:00 GMT 0 ms
-(new Date(-271821-04-20T00:00:00.0000) ==&gt; -8640000000000000 ms, Tue, 20 Apr -271821 00:00:00 GMT 0 ms
-(new Date(-271821-04-19T23:59:59.999) ==&gt; NaN ms, Invalid Date NaN ms
-
-(new Date(Sat, 13 Sep 275760 00:00:00 UTC-2) ==&gt; NaN ms, Invalid Date NaN ms
-(new Date(Sat, 13 Sep 275760 00:00:00 UTC) ==&gt; 8640000000000000 ms, Sat, 13 Sep 275760 00:00:00 GMT 0 ms
-(new Date(Sat, 13 Sep 275760 00:00:00 UTC+2) ==&gt; 8639999992800000 ms, Fri, 12 Sep 275760 22:00:00 GMT 0 ms
-(new Date(Tue, 20 Apr -271821 00:00:00 UTC-2) ==&gt; -8639999992800000 ms, Tue, 20 Apr -271821 02:00:00 GMT 0 ms
-(new Date(Tue, 20 Apr -271821 00:00:00 UTC) ==&gt; -8640000000000000 ms, Tue, 20 Apr -271821 00:00:00 GMT 0 ms
-(new Date(Tue, 20 Apr -271821 00:00:00 UTC+2) ==&gt; NaN ms, Invalid Date NaN ms
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsjsregress131248html"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/regress-131248.html (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/regress-131248.html        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/LayoutTests/js/regress-131248.html        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;script-tests/regress-131248.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjsscripttestsregress131248js"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/script-tests/regress-131248.js (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/script-tests/regress-131248.js        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/LayoutTests/js/script-tests/regress-131248.js        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-description(
-&quot;This test checks date values at the limits set by the ES5 15.9.1.14 TimeClip specification and ensures that we don't crash on any assertions.&quot;
-);
-
-function testDateFromSetDateAdjustement(initialMs, adjustMs) {
-    var date = new Date(initialMs);
-    debug(&quot;(new Date(&quot; + initialMs + &quot;)).setDate(&quot; + adjustMs + &quot;) ==&gt; &quot; + date.setDate(adjustMs) + &quot; ms, &quot; + date.toDateString());
-}
-
-testDateFromSetDateAdjustement(1396547803766, 1396549003769);
-testDateFromSetDateAdjustement(1396547803766, 100000000);
-testDateFromSetDateAdjustement(1396547803766, 99983839+1);
-testDateFromSetDateAdjustement(1396547803766, 99983839);
-testDateFromSetDateAdjustement(1396547803766, 10000000);
-debug(&quot;&quot;);
-
-function testDateFromSetTimeWithMilliseconds(ms) {
-    var date = new Date(0);
-    debug(&quot;(new Date(0)).setTime(&quot; + ms + &quot;) ==&gt; &quot; + date.setTime(ms) + &quot; ms, &quot; + date.toUTCString() + &quot; &quot; + date.getUTCMilliseconds() + &quot; ms&quot;);
-}
-
-testDateFromSetTimeWithMilliseconds(8640000000000001);
-testDateFromSetTimeWithMilliseconds(8640000000000000);
-testDateFromSetTimeWithMilliseconds(-8640000000000000);
-testDateFromSetTimeWithMilliseconds(-8640000000000001);
-debug(&quot;&quot;);
-
-function testDateFromString(str) {
-    var date = new Date(str);
-    debug(&quot;(new Date(&quot; + str + &quot;) ==&gt; &quot; + date.getTime() + &quot; ms, &quot; + date.toUTCString() + &quot; &quot; + date.getUTCMilliseconds() + &quot; ms&quot;);
-}
-
-testDateFromString(&quot;13 Sep 275760 00:00:00 -0001&quot;);
-testDateFromString(&quot;13 Sep 275760 00:00:00 +0000&quot;);
-testDateFromString(&quot;13 Sep 275760 00:00:00 +0001&quot;);
-testDateFromString(&quot;20 Apr -271821 00:00:00 -0001&quot;);
-testDateFromString(&quot;20 Apr -271821 00:00:00 +0000&quot;);
-testDateFromString(&quot;20 Apr -271821 00:00:00 +0001&quot;);
-debug(&quot;&quot;);
-
-testDateFromString(&quot;19 Apr -271821 23:59:59&quot;);
-debug(&quot;&quot;);
-
-testDateFromString(&quot;275760-09-13T00:00:00.001&quot;);
-testDateFromString(&quot;275760-09-13T00:00:00.000&quot;);
-testDateFromString(&quot;-271821-04-20T00:00:00.0000&quot;);
-testDateFromString(&quot;-271821-04-19T23:59:59.999&quot;);
-debug(&quot;&quot;);
-
-testDateFromString(&quot;Sat, 13 Sep 275760 00:00:00 UTC-2&quot;);
-testDateFromString(&quot;Sat, 13 Sep 275760 00:00:00 UTC&quot;);
-testDateFromString(&quot;Sat, 13 Sep 275760 00:00:00 UTC+2&quot;);
-testDateFromString(&quot;Tue, 20 Apr -271821 00:00:00 UTC-2&quot;);
-testDateFromString(&quot;Tue, 20 Apr -271821 00:00:00 UTC&quot;);
-testDateFromString(&quot;Tue, 20 Apr -271821 00:00:00 UTC+2&quot;);
-debug(&quot;&quot;);
-
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-06-25  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Unreviewed, rolling out r166876.
+
+        Caused some ECMA test262 failures
+
+        Reverted changeset:
+
+        &quot;Date object needs to check for ES5 15.9.1.14 TimeClip limit.&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=131248
+        http://trac.webkit.org/changeset/166876
+
</ins><span class="cx"> 2014-06-25  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win] Unreviewed gardening.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDateConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- *  Copyright (C) 2004-2008, 2011, 2014 Apple Inc. All rights reserved.
</del><ins>+ *  Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  *  This library is free software; you can redistribute it and/or
</span><span class="cx">  *  modify it under the terms of the GNU Lesser General Public
</span><span class="lines">@@ -190,12 +190,7 @@
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     GregorianDateTime ts;
</span><del>-
-    double currentTime = timeClip(currentTimeMS());
-    if (std::isnan(currentTime))
-        return JSValue::encode(jsNaN());
-    
-    msToGregorianDateTime(vm, currentTime, false, ts);
</del><ins>+    msToGregorianDateTime(vm, currentTimeMS(), false, ts);
</ins><span class="cx">     return JSValue::encode(jsNontrivialString(&amp;vm, formatDateTime(ts, DateTimeFormatDateAndTime, false)));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSDateMathcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSDateMath.cpp (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSDateMath.cpp        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/JavaScriptCore/runtime/JSDateMath.cpp        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- * Copyright (C) 2006-2007, 2012, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007, 2012 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2007-2009 Torch Mobile, Inc.
</span><span class="cx">  * Copyright (C) 2010 &amp;yet, LLC. (nate@andyet.net)
</span><span class="lines">@@ -138,7 +138,6 @@
</span><span class="cx">     double start = cache.start;
</span><span class="cx">     double end = cache.end;
</span><span class="cx"> 
</span><del>-    ASSERT(fabs(ms) &lt;= WTF::maxECMAScriptTime);
</del><span class="cx">     if (start &lt;= ms) {
</span><span class="cx">         // If the time fits in the cached interval, return the cached offset.
</span><span class="cx">         if (ms &lt;= end) return cache.offset;
</span><span class="lines">@@ -146,7 +145,7 @@
</span><span class="cx">         // Compute a possible new interval end.
</span><span class="cx">         double newEnd = end + cache.increment;
</span><span class="cx"> 
</span><del>-        if (ms &lt;= newEnd &amp;&amp; newEnd &lt;= WTF::maxECMAScriptTime) {
</del><ins>+        if (ms &lt;= newEnd) {
</ins><span class="cx">             LocalTimeOffset endOffset = calculateLocalTimeOffset(newEnd);
</span><span class="cx">             if (cache.offset == endOffset) {
</span><span class="cx">                 // If the offset at the end of the new interval still matches
</span><span class="lines">@@ -195,19 +194,15 @@
</span><span class="cx">     double ms = timeToMS(t.hour(), t.minute(), t.second(), milliSeconds);
</span><span class="cx">     double result = (day * WTF::msPerDay) + ms;
</span><span class="cx"> 
</span><del>-    if (fabs(result) &gt; WTF::maxECMAScriptTime)
-        return std::numeric_limits&lt;double&gt;::quiet_NaN();
-
</del><span class="cx">     if (!inputIsUTC)
</span><span class="cx">         result -= localTimeOffset(vm, result).offset;
</span><span class="cx"> 
</span><del>-    return timeClip(result);
</del><ins>+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // input is UTC
</span><span class="cx"> void msToGregorianDateTime(VM&amp; vm, double ms, bool outputIsUTC, GregorianDateTime&amp; tm)
</span><span class="cx"> {
</span><del>-    ASSERT(fabs(ms) &lt;= WTF::maxECMAScriptTime);
</del><span class="cx">     LocalTimeOffset localTime;
</span><span class="cx">     if (!outputIsUTC) {
</span><span class="cx">         localTime = localTimeOffset(vm, ms);
</span><span class="lines">@@ -227,13 +222,13 @@
</span><span class="cx">     tm.setUtcOffset(localTime.offset / WTF::msPerSecond);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static double parseDateFromNullTerminatedCharacters(VM&amp; vm, const char* dateString)
</del><ins>+double parseDateFromNullTerminatedCharacters(VM&amp; vm, const char* dateString)
</ins><span class="cx"> {
</span><span class="cx">     bool haveTZ;
</span><span class="cx">     int offset;
</span><span class="cx">     double ms = WTF::parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
</span><del>-    if (std::isnan(ms) || fabs(ms) &gt; WTF::maxECMAScriptTime)
-        return std::numeric_limits&lt;double&gt;::quiet_NaN();
</del><ins>+    if (std::isnan(ms))
+        return QNaN;
</ins><span class="cx"> 
</span><span class="cx">     // fall back to local timezone
</span><span class="cx">     if (!haveTZ)
</span><span class="lines">@@ -249,7 +244,6 @@
</span><span class="cx">     double value = parseES5DateFromNullTerminatedCharacters(date.utf8().data());
</span><span class="cx">     if (std::isnan(value))
</span><span class="cx">         value = parseDateFromNullTerminatedCharacters(vm, date.utf8().data());
</span><del>-    value = timeClip(value);
</del><span class="cx">     vm.cachedDateString = date;
</span><span class="cx">     vm.cachedDateStringValue = value;
</span><span class="cx">     return value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSDateMathh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSDateMath.h (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSDateMath.h        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/JavaScriptCore/runtime/JSDateMath.h        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- * Copyright (C) 2006-2007, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2010 Research In Motion Limited. All rights reserved.
</span><span class="cx">  *
</span><span class="lines">@@ -53,6 +53,7 @@
</span><span class="cx"> void msToGregorianDateTime(VM&amp;, double, bool outputIsUTC, GregorianDateTime&amp;);
</span><span class="cx"> double gregorianDateTimeToMS(VM&amp;, const GregorianDateTime&amp;, double, bool inputIsUTC);
</span><span class="cx"> double getUTCOffset(VM&amp;);
</span><ins>+double parseDateFromNullTerminatedCharacters(VM&amp;, const char* dateString);
</ins><span class="cx"> double parseDate(VM&amp;, const WTF::String&amp;);
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.cpp (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.cpp        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/JavaScriptCore/runtime/VM.cpp        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -496,7 +496,7 @@
</span><span class="cx"> {
</span><span class="cx">     localTimeOffsetCache.reset();
</span><span class="cx">     cachedDateString = String();
</span><del>-    cachedDateStringValue = std::numeric_limits&lt;double&gt;::quiet_NaN();
</del><ins>+    cachedDateStringValue = QNaN;
</ins><span class="cx">     dateInstanceCache.reset();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/WTF/ChangeLog        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-06-25  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Unreviewed, rolling out r166876.
+
+        Caused some ECMA test262 failures
+
+        Reverted changeset:
+
+        &quot;Date object needs to check for ES5 15.9.1.14 TimeClip limit.&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=131248
+        http://trac.webkit.org/changeset/166876
+
</ins><span class="cx"> 2014-06-25  peavo@outlook.com  &lt;peavo@outlook.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win64] ASM LLINT is not enabled.
</span></span></pre></div>
<a id="trunkSourceWTFwtfDateMathcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/DateMath.cpp (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/DateMath.cpp        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/WTF/wtf/DateMath.cpp        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- * Copyright (C) 2006-2007, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2007-2009 Torch Mobile, Inc.
</span><span class="cx">  * Copyright (C) 2010 &amp;yet, LLC. (nate@andyet.net)
</span><span class="lines">@@ -109,6 +109,10 @@
</span><span class="cx"> /* Constants */
</span><span class="cx"> 
</span><span class="cx"> static const double maxUnixTime = 2145859200.0; // 12/31/2037
</span><ins>+// ECMAScript asks not to support for a date of which total
+// millisecond value is larger than the following value.
+// See 15.9.1.14 of ECMA-262 5th edition.
+static const double maxECMAScriptTime = 8.64E15;
</ins><span class="cx"> 
</span><span class="cx"> // Day of year for the first day of each month, where index 0 is January, and day 0 is January 1.
</span><span class="cx"> // First for non-leap years, then for leap years.
</span><span class="lines">@@ -180,7 +184,6 @@
</span><span class="cx"> 
</span><span class="cx"> int msToYear(double ms)
</span><span class="cx"> {
</span><del>-    ASSERT(fabs(ms) &lt;= maxECMAScriptTime);
</del><span class="cx">     int approxYear = static_cast&lt;int&gt;(floor(ms / (msPerDay * 365.2425)) + 1970);
</span><span class="cx">     double msFromApproxYearTo1970 = msPerDay * daysFrom1970ToYear(approxYear);
</span><span class="cx">     if (msFromApproxYearTo1970 &gt; ms)
</span><span class="lines">@@ -327,7 +330,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /*
</span><del>- * Find an equivalent year for the one given, where equivalence is determined by
</del><ins>+ * Find an equivalent year for the one given, where equivalence is deterined by
</ins><span class="cx">  * the two years having the same leapness and the first day of the year, falling
</span><span class="cx">  * on the same day of the week.
</span><span class="cx">  *
</span><span class="lines">@@ -793,6 +796,7 @@
</span><span class="cx">     return dateSeconds * msPerSecond;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// Odd case where 'exec' is allowed to be 0, to accomodate a caller in WebCore.
</ins><span class="cx"> double parseDateFromNullTerminatedCharacters(const char* dateString, bool&amp; haveTZ, int&amp; offset)
</span><span class="cx"> {
</span><span class="cx">     haveTZ = false;
</span></span></pre></div>
<a id="trunkSourceWTFwtfDateMathh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/DateMath.h (170439 => 170440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/DateMath.h        2014-06-25 21:43:14 UTC (rev 170439)
+++ trunk/Source/WTF/wtf/DateMath.h        2014-06-25 21:51:45 UTC (rev 170440)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- * Copyright (C) 2006-2007, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2010 Research In Motion Limited. All rights reserved.
</span><span class="cx">  *
</span><span class="lines">@@ -53,11 +53,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span><span class="cx"> 
</span><del>-// ECMAScript asks not to support for a date of which total
-// millisecond value is larger than the following value.
-// See 15.9.1.14 of ECMA-262 5th edition.
-static const double maxECMAScriptTime = 8.64E15;
-
</del><span class="cx"> struct LocalTimeOffset {
</span><span class="cx">     LocalTimeOffset()
</span><span class="cx">         : isDST(false)
</span></span></pre>
</div>
</div>

</body>
</html>