2009-11-12 Steve VanDeBogart <vandebo@chromium.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2009 05:08:00 +0000 (05:08 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2009 05:08:00 +0000 (05:08 +0000)
        Reviewed by Adam Barth.

        Calculate the time offset only if we were able to parse
        the date string. This saves an IPC in Chromium for
        invalid date strings.
        https://bugs.webkit.org/show_bug.cgi?id=31416

        * wtf/DateMath.cpp:
        (WTF::parseDateFromNullTerminatedCharacters):
        (JSC::parseDateFromNullTerminatedCharacters):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@50927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/wtf/DateMath.cpp

index 03efd6dc9267b0f70a309eda353831b131af89b1..7d535ef76f2f071c1967225429daeefe9875d001 100644 (file)
@@ -1,3 +1,16 @@
+2009-11-12  Steve VanDeBogart  <vandebo@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Calculate the time offset only if we were able to parse
+        the date string. This saves an IPC in Chromium for
+        invalid date strings.
+        https://bugs.webkit.org/show_bug.cgi?id=31416
+
+        * wtf/DateMath.cpp:
+        (WTF::parseDateFromNullTerminatedCharacters):
+        (JSC::parseDateFromNullTerminatedCharacters):
+
 2009-11-12  Oliver Hunt  <oliver@apple.com>
 
         Rollout r50896 until i can work out why it causes failures.
index e45c560d6643670a6b5e8bff57930e0d6ec85532..1697df55a7a41719c4938edd95a4d8dd52c63fc4 100644 (file)
@@ -824,6 +824,9 @@ double parseDateFromNullTerminatedCharacters(const char* dateString)
     bool haveTZ;
     int offset;
     double ms = parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
+    if (isnan(ms))
+        return NaN;
+
     // fall back to local timezone
     if (!haveTZ) {
         double utcOffset = calculateUTCOffset();
@@ -967,6 +970,9 @@ double parseDateFromNullTerminatedCharacters(ExecState* exec, const char* dateSt
     bool haveTZ;
     int offset;
     double ms = WTF::parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
+    if (isnan(ms))
+        return NaN;
+
     // fall back to local timezone
     if (!haveTZ) {
         double utcOffset = getUTCOffset(exec);