summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp
index 47c9d44..648dc70 100644
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/DateMath.cpp
@@ -2,6 +2,7 @@
* Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
* Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
* Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2007-2009 Torch Mobile, Inc.
*
* The Original Code is Mozilla Communicator client code, released
* March 31, 1998.
@@ -375,14 +376,19 @@ static int32_t calculateUTCOffset()
localt.tm_wday = 0;
localt.tm_yday = 0;
localt.tm_isdst = 0;
-#if PLATFORM(WIN_OS) || PLATFORM(SOLARIS) || COMPILER(RVCT)
+#if HAVE(TM_GMTOFF)
+ localt.tm_gmtoff = 0;
+#endif
+#if HAVE(TM_ZONE)
+ localt.tm_zone = 0;
+#endif
+
+#if HAVE(TIMEGM)
+ time_t utcOffset = timegm(&localt) - mktime(&localt);
+#else
// Using a canned date of 01/01/2009 on platforms with weaker date-handling foo.
localt.tm_year = 109;
time_t utcOffset = 1230768000 - mktime(&localt);
-#else
- localt.tm_zone = 0;
- localt.tm_gmtoff = 0;
- time_t utcOffset = timegm(&localt) - mktime(&localt);
#endif
return static_cast<int32_t>(utcOffset * 1000);
@@ -512,7 +518,7 @@ void msToGregorianDateTime(double ms, bool outputIsUTC, GregorianDateTime& tm)
tm.year = year - 1900;
tm.isDST = dstOff != 0.0;
- tm.utcOffset = static_cast<long>((dstOff + utcOff) / msPerSecond);
+ tm.utcOffset = outputIsUTC ? 0 : static_cast<long>((dstOff + utcOff) / msPerSecond);
tm.timeZone = NULL;
}