diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/DateInstance.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/DateInstance.h | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/Source/JavaScriptCore/runtime/DateInstance.h b/Source/JavaScriptCore/runtime/DateInstance.h index 870777240..000e1a157 100644 --- a/Source/JavaScriptCore/runtime/DateInstance.h +++ b/Source/JavaScriptCore/runtime/DateInstance.h @@ -25,69 +25,69 @@ namespace JSC { - class DateInstance : public JSWrapperObject { - protected: - JS_EXPORT_PRIVATE DateInstance(ExecState*, Structure*); - void finishCreation(VM&); - JS_EXPORT_PRIVATE void finishCreation(VM&, double); - - static void destroy(JSCell*); - - public: - typedef JSWrapperObject Base; - - static DateInstance* create(ExecState* exec, Structure* structure, double date) - { - DateInstance* instance = new (NotNull, allocateCell<DateInstance>(*exec->heap())) DateInstance(exec, structure); - instance->finishCreation(exec->vm(), date); - return instance; - } - - static DateInstance* create(ExecState* exec, Structure* structure) - { - DateInstance* instance = new (NotNull, allocateCell<DateInstance>(*exec->heap())) DateInstance(exec, structure); - instance->finishCreation(exec->vm()); - return instance; - } - - double internalNumber() const { return internalValue().asNumber(); } - - static JS_EXPORTDATA const ClassInfo s_info; - - const GregorianDateTime* gregorianDateTime(ExecState* exec) const - { - if (m_data && m_data->m_gregorianDateTimeCachedForMS == internalNumber()) - return &m_data->m_cachedGregorianDateTime; - return calculateGregorianDateTime(exec); - } - - const GregorianDateTime* gregorianDateTimeUTC(ExecState* exec) const - { - if (m_data && m_data->m_gregorianDateTimeUTCCachedForMS == internalNumber()) - return &m_data->m_cachedGregorianDateTimeUTC; - return calculateGregorianDateTimeUTC(exec); - } - - static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) - { - return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); - } - - private: - const GregorianDateTime* calculateGregorianDateTime(ExecState*) const; - const GregorianDateTime* calculateGregorianDateTimeUTC(ExecState*) const; - - mutable RefPtr<DateInstanceData> m_data; - }; - - DateInstance* asDateInstance(JSValue); - - inline DateInstance* asDateInstance(JSValue value) +class DateInstance : public JSWrapperObject { +protected: + JS_EXPORT_PRIVATE DateInstance(VM&, Structure*); + void finishCreation(VM&); + JS_EXPORT_PRIVATE void finishCreation(VM&, double); + + JS_EXPORT_PRIVATE static void destroy(JSCell*); + +public: + typedef JSWrapperObject Base; + + static DateInstance* create(VM& vm, Structure* structure, double date) + { + DateInstance* instance = new (NotNull, allocateCell<DateInstance>(vm.heap)) DateInstance(vm, structure); + instance->finishCreation(vm, date); + return instance; + } + + static DateInstance* create(VM& vm, Structure* structure) + { + DateInstance* instance = new (NotNull, allocateCell<DateInstance>(vm.heap)) DateInstance(vm, structure); + instance->finishCreation(vm); + return instance; + } + + double internalNumber() const { return internalValue().asNumber(); } + + DECLARE_EXPORT_INFO; + + const GregorianDateTime* gregorianDateTime(ExecState* exec) const { - ASSERT(asObject(value)->inherits(&DateInstance::s_info)); - return static_cast<DateInstance*>(asObject(value)); + if (m_data && m_data->m_gregorianDateTimeCachedForMS == internalNumber()) + return &m_data->m_cachedGregorianDateTime; + return calculateGregorianDateTime(exec); } + const GregorianDateTime* gregorianDateTimeUTC(ExecState* exec) const + { + if (m_data && m_data->m_gregorianDateTimeUTCCachedForMS == internalNumber()) + return &m_data->m_cachedGregorianDateTimeUTC; + return calculateGregorianDateTimeUTC(exec); + } + + static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) + { + return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); + } + +private: + JS_EXPORT_PRIVATE const GregorianDateTime* calculateGregorianDateTime(ExecState*) const; + JS_EXPORT_PRIVATE const GregorianDateTime* calculateGregorianDateTimeUTC(ExecState*) const; + + mutable RefPtr<DateInstanceData> m_data; +}; + +DateInstance* asDateInstance(JSValue); + +inline DateInstance* asDateInstance(JSValue value) +{ + ASSERT(asObject(value)->inherits(DateInstance::info())); + return static_cast<DateInstance*>(asObject(value)); +} + } // namespace JSC #endif // DateInstance_h |