X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/6fe7ccc865dc7d7541b93c5bcaf6368d2c98a174..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/runtime/DateInstance.cpp diff --git a/runtime/DateInstance.cpp b/runtime/DateInstance.cpp index a502770..e095f88 100644 --- a/runtime/DateInstance.cpp +++ b/runtime/DateInstance.cpp @@ -24,7 +24,7 @@ #include "JSDateMath.h" #include "JSGlobalObject.h" - +#include "JSCInlines.h" #include #include @@ -32,43 +32,44 @@ using namespace WTF; namespace JSC { -const ClassInfo DateInstance::s_info = {"Date", &JSWrapperObject::s_info, 0, 0, CREATE_METHOD_TABLE(DateInstance)}; +const ClassInfo DateInstance::s_info = {"Date", &JSWrapperObject::s_info, 0, CREATE_METHOD_TABLE(DateInstance)}; -DateInstance::DateInstance(ExecState* exec, Structure* structure) - : JSWrapperObject(exec->globalData(), structure) +DateInstance::DateInstance(VM& vm, Structure* structure) + : JSWrapperObject(vm, structure) { } -void DateInstance::finishCreation(JSGlobalData& globalData) +void DateInstance::finishCreation(VM& vm) { - Base::finishCreation(globalData); - ASSERT(inherits(&s_info)); - setInternalValue(globalData, jsNaN()); + Base::finishCreation(vm); + ASSERT(inherits(info())); + setInternalValue(vm, jsNaN()); } -void DateInstance::finishCreation(JSGlobalData& globalData, double time) +void DateInstance::finishCreation(VM& vm, double time) { - Base::finishCreation(globalData); - ASSERT(inherits(&s_info)); - setInternalValue(globalData, jsNumber(timeClip(time))); + Base::finishCreation(vm); + ASSERT(inherits(info())); + setInternalValue(vm, jsNumber(timeClip(time))); } void DateInstance::destroy(JSCell* cell) { - jsCast(cell)->DateInstance::~DateInstance(); + static_cast(cell)->DateInstance::~DateInstance(); } const GregorianDateTime* DateInstance::calculateGregorianDateTime(ExecState* exec) const { double milli = internalNumber(); - if (isnan(milli)) + if (std::isnan(milli)) return 0; + VM& vm = exec->vm(); if (!m_data) - m_data = exec->globalData().dateInstanceCache.add(milli); + m_data = vm.dateInstanceCache.add(milli); if (m_data->m_gregorianDateTimeCachedForMS != milli) { - msToGregorianDateTime(exec, milli, false, m_data->m_cachedGregorianDateTime); + msToGregorianDateTime(vm, milli, WTF::LocalTime, m_data->m_cachedGregorianDateTime); m_data->m_gregorianDateTimeCachedForMS = milli; } return &m_data->m_cachedGregorianDateTime; @@ -77,14 +78,15 @@ const GregorianDateTime* DateInstance::calculateGregorianDateTime(ExecState* exe const GregorianDateTime* DateInstance::calculateGregorianDateTimeUTC(ExecState* exec) const { double milli = internalNumber(); - if (isnan(milli)) + if (std::isnan(milli)) return 0; + VM& vm = exec->vm(); if (!m_data) - m_data = exec->globalData().dateInstanceCache.add(milli); + m_data = vm.dateInstanceCache.add(milli); if (m_data->m_gregorianDateTimeUTCCachedForMS != milli) { - msToGregorianDateTime(exec, milli, true, m_data->m_cachedGregorianDateTimeUTC); + msToGregorianDateTime(vm, milli, WTF::UTCTime, m_data->m_cachedGregorianDateTimeUTC); m_data->m_gregorianDateTimeUTCCachedForMS = milli; } return &m_data->m_cachedGregorianDateTimeUTC;