diff options
author | Steve Block <steveblock@google.com> | 2009-12-15 10:12:09 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-12-17 17:41:10 +0000 |
commit | 643ca7872b450ea4efacab6188849e5aac2ba161 (patch) | |
tree | 6982576c228bcd1a7efe98afed544d840751094c /JavaScriptCore/runtime/DateInstance.cpp | |
parent | d026980fde6eb3b01c1fe49441174e89cd1be298 (diff) | |
download | external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.zip external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.gz external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.bz2 |
Merge webkit.org at r51976 : Initial merge by git.
Change-Id: Ib0e7e2f0fb4bee5a186610272edf3186f0986b43
Diffstat (limited to 'JavaScriptCore/runtime/DateInstance.cpp')
-rw-r--r-- | JavaScriptCore/runtime/DateInstance.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/JavaScriptCore/runtime/DateInstance.cpp b/JavaScriptCore/runtime/DateInstance.cpp index d4c9ef7..77a92be 100644 --- a/JavaScriptCore/runtime/DateInstance.cpp +++ b/JavaScriptCore/runtime/DateInstance.cpp @@ -46,30 +46,36 @@ DateInstance::DateInstance(ExecState* exec, double time) setInternalValue(jsNumber(exec, timeClip(time))); } -bool DateInstance::getGregorianDateTime(ExecState* exec, bool outputIsUTC, GregorianDateTime& t) const +const GregorianDateTime* DateInstance::calculateGregorianDateTime(ExecState* exec) const { double milli = internalNumber(); if (isnan(milli)) - return false; + return 0; if (!m_data) m_data = exec->globalData().dateInstanceCache.add(milli); - if (outputIsUTC) { - if (m_data->m_gregorianDateTimeUTCCachedForMS != milli) { - WTF::msToGregorianDateTime(internalNumber(), true, m_data->m_cachedGregorianDateTimeUTC); - m_data->m_gregorianDateTimeUTCCachedForMS = milli; - } - t.copyFrom(m_data->m_cachedGregorianDateTimeUTC); - } else { - if (m_data->m_gregorianDateTimeCachedForMS != milli) { - WTF::msToGregorianDateTime(internalNumber(), false, m_data->m_cachedGregorianDateTime); - m_data->m_gregorianDateTimeCachedForMS = milli; - } - t.copyFrom(m_data->m_cachedGregorianDateTime); + if (m_data->m_gregorianDateTimeCachedForMS != milli) { + msToGregorianDateTime(exec, milli, false, m_data->m_cachedGregorianDateTime); + m_data->m_gregorianDateTimeCachedForMS = milli; } + return &m_data->m_cachedGregorianDateTime; +} + +const GregorianDateTime* DateInstance::calculateGregorianDateTimeUTC(ExecState* exec) const +{ + double milli = internalNumber(); + if (isnan(milli)) + return 0; - return true; + if (!m_data) + m_data = exec->globalData().dateInstanceCache.add(milli); + + if (m_data->m_gregorianDateTimeUTCCachedForMS != milli) { + msToGregorianDateTime(exec, milli, true, m_data->m_cachedGregorianDateTimeUTC); + m_data->m_gregorianDateTimeUTCCachedForMS = milli; + } + return &m_data->m_cachedGregorianDateTimeUTC; } } // namespace JSC |