Move JSC::parseDate() from DateConversion to JSDateMath
https://bugs.webkit.org/show_bug.cgi?id=91982

Reviewed by Geoffrey Garen.

Moveing this function into the other files removes the dependency
on JSC spcific classes in DateConversion.{cpp|h}.

* runtime/DateConversion.cpp:
* runtime/DateConversion.h:
(JSC):
* runtime/JSDateMath.cpp:
(JSC::parseDate):
(JSC):
* runtime/JSDateMath.h:
(JSC):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/runtime/DateConversion.cpp b/Source/JavaScriptCore/runtime/DateConversion.cpp
index 7bc0cbc..700a526 100644
--- a/Source/JavaScriptCore/runtime/DateConversion.cpp
+++ b/Source/JavaScriptCore/runtime/DateConversion.cpp
@@ -55,18 +55,6 @@
 
 namespace JSC {
 
-double parseDate(ExecState* exec, const UString &date)
-{
-    if (date == exec->globalData().cachedDateString)
-        return exec->globalData().cachedDateStringValue;
-    double value = parseES5DateFromNullTerminatedCharacters(date.utf8().data());
-    if (isnan(value))
-        value = parseDateFromNullTerminatedCharacters(exec, date.utf8().data());
-    exec->globalData().cachedDateString = date;
-    exec->globalData().cachedDateStringValue = value;
-    return value;
-}
-
 void formatDate(const GregorianDateTime &t, DateConversionBuffer& buffer)
 {
     snprintf(buffer, DateConversionBufferSize, "%s %s %02d %04d",
diff --git a/Source/JavaScriptCore/runtime/DateConversion.h b/Source/JavaScriptCore/runtime/DateConversion.h
index ff32b50..814d537 100644
--- a/Source/JavaScriptCore/runtime/DateConversion.h
+++ b/Source/JavaScriptCore/runtime/DateConversion.h
@@ -42,8 +42,6 @@
 #ifndef DateConversion_h
 #define DateConversion_h
 
-#include "UString.h"
-
 namespace JSC {
 
 class ExecState;
@@ -52,7 +50,6 @@
 static const unsigned DateConversionBufferSize = 100;
 typedef char DateConversionBuffer[DateConversionBufferSize];
 
-double parseDate(ExecState* exec, const UString&);
 void formatDate(const GregorianDateTime&, DateConversionBuffer&);
 void formatDateUTCVariant(const GregorianDateTime&, DateConversionBuffer&);
 void formatTime(const GregorianDateTime&, DateConversionBuffer&);
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp
index dbe7488..0dbeea4 100644
--- a/Source/JavaScriptCore/runtime/JSDateMath.cpp
+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp
@@ -259,4 +259,16 @@
     return ms - (offset * WTF::msPerMinute);
 }
 
+double parseDate(ExecState* exec, const UString& date)
+{
+    if (date == exec->globalData().cachedDateString)
+        return exec->globalData().cachedDateStringValue;
+    double value = parseES5DateFromNullTerminatedCharacters(date.utf8().data());
+    if (isnan(value))
+        value = parseDateFromNullTerminatedCharacters(exec, date.utf8().data());
+    exec->globalData().cachedDateString = date;
+    exec->globalData().cachedDateStringValue = value;
+    return value;
+}
+
 } // namespace JSC
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.h b/Source/JavaScriptCore/runtime/JSDateMath.h
index f77cf1e..d592fee 100644
--- a/Source/JavaScriptCore/runtime/JSDateMath.h
+++ b/Source/JavaScriptCore/runtime/JSDateMath.h
@@ -48,12 +48,14 @@
 namespace JSC {
 
 class ExecState;
+class UString;
 struct GregorianDateTime;
 
 void msToGregorianDateTime(ExecState*, double, bool outputIsUTC, GregorianDateTime&);
 double gregorianDateTimeToMS(ExecState*, const GregorianDateTime&, double, bool inputIsUTC);
 double getUTCOffset(ExecState*);
 double parseDateFromNullTerminatedCharacters(ExecState*, const char* dateString);
+double parseDate(ExecState*, const UString&);
 
 // Intentionally overridding the default tm of the system.
 // The members of tm differ on various operating systems.