diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2016-08-25 19:20:41 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:30:55 +0000 |
commit | 6882a04fb36642862b11efe514251d32070c3d65 (patch) | |
tree | b7959826000b061fd5ccc7512035c7478742f7b0 /Source/JavaScriptCore/runtime/DateInstance.h | |
parent | ab6df191029eeeb0b0f16f127d553265659f739e (diff) | |
download | qtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz |
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
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 |