Changeset 50590 in webkit for trunk/JavaScriptCore/runtime
- Timestamp:
- Nov 5, 2009, 10:26:47 PM (16 years ago)
- Location:
- trunk/JavaScriptCore/runtime
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/DateConstructor.cpp
r50183 r50590 85 85 JSValue primitive = args.at(0).toPrimitive(exec); 86 86 if (primitive.isString()) 87 value = parseDate( primitive.getString());87 value = parseDate(exec, primitive.getString()); 88 88 else 89 89 value = primitive.toNumber(exec); … … 109 109 t.isDST = -1; 110 110 double ms = (numArgs >= 7) ? args.at(6).toNumber(exec) : 0; 111 value = gregorianDateTimeToMS( t, ms, false);111 value = gregorianDateTimeToMS(exec, t, ms, false); 112 112 } 113 113 } … … 133 133 tm localTM; 134 134 getLocalTime(&localTime, &localTM); 135 GregorianDateTime ts( localTM);135 GregorianDateTime ts(exec, localTM); 136 136 return jsNontrivialString(exec, formatDate(ts) + " " + formatTime(ts, false)); 137 137 } … … 145 145 static JSValue JSC_HOST_CALL dateParse(ExecState* exec, JSObject*, JSValue, const ArgList& args) 146 146 { 147 return jsNumber(exec, parseDate( args.at(0).toString(exec)));147 return jsNumber(exec, parseDate(exec, args.at(0).toString(exec))); 148 148 } 149 149 … … 174 174 t.second = args.at(5).toInt32(exec); 175 175 double ms = (n >= 7) ? args.at(6).toNumber(exec) : 0; 176 return jsNumber(exec, gregorianDateTimeToMS( t, ms, true));176 return jsNumber(exec, gregorianDateTimeToMS(exec, t, ms, true)); 177 177 } 178 178 -
trunk/JavaScriptCore/runtime/DateConversion.cpp
r49734 r50590 52 52 namespace JSC { 53 53 54 double parseDate( const UString &date)54 double parseDate(ExecState* exec, const UString &date) 55 55 { 56 return parseDateFromNullTerminatedCharacters(date.UTF8String().c_str() );56 return parseDateFromNullTerminatedCharacters(date.UTF8String().c_str(), exec); 57 57 } 58 58 -
trunk/JavaScriptCore/runtime/DateConversion.h
r49734 r50590 43 43 #define DateConversion_h 44 44 45 namespace WTF {46 struct GregorianDateTime;47 }48 49 45 namespace JSC { 50 46 47 class ExecState; 51 48 class UString; 49 struct GregorianDateTime; 52 50 53 double parseDate( const UString&);54 UString formatDate(const WTF::GregorianDateTime&);55 UString formatDateUTCVariant(const WTF::GregorianDateTime&);56 UString formatTime(const WTF::GregorianDateTime&, bool inputIsUTC);51 double parseDate(ExecState* exec, const UString&); 52 UString formatDate(const GregorianDateTime&); 53 UString formatDateUTCVariant(const GregorianDateTime&); 54 UString formatTime(const GregorianDateTime&, bool inputIsUTC); 57 55 58 56 } // namespace JSC -
trunk/JavaScriptCore/runtime/DateInstance.cpp
r50359 r50590 58 58 if (outputIsUTC) { 59 59 if (m_data->m_gregorianDateTimeUTCCachedForMS != milli) { 60 msToGregorianDateTime( internalNumber(), true, m_data->m_cachedGregorianDateTimeUTC);60 msToGregorianDateTime(exec, internalNumber(), true, m_data->m_cachedGregorianDateTimeUTC); 61 61 m_data->m_gregorianDateTimeUTCCachedForMS = milli; 62 62 } … … 65 65 66 66 if (m_data->m_gregorianDateTimeCachedForMS != milli) { 67 msToGregorianDateTime( internalNumber(), false, m_data->m_cachedGregorianDateTime);67 msToGregorianDateTime(exec, internalNumber(), false, m_data->m_cachedGregorianDateTime); 68 68 m_data->m_gregorianDateTimeCachedForMS = milli; 69 69 } -
trunk/JavaScriptCore/runtime/DateInstance.h
r50359 r50590 39 39 static JS_EXPORTDATA const ClassInfo info; 40 40 41 const WTF::GregorianDateTime* gregorianDateTime(ExecState*, bool outputIsUTC) const;41 const GregorianDateTime* gregorianDateTime(ExecState*, bool outputIsUTC) const; 42 42 43 43 static PassRefPtr<Structure> createStructure(JSValue prototype) -
trunk/JavaScriptCore/runtime/DateInstanceCache.h
r50175 r50590 41 41 42 42 double m_gregorianDateTimeCachedForMS; 43 WTF::GregorianDateTime m_cachedGregorianDateTime;43 GregorianDateTime m_cachedGregorianDateTime; 44 44 double m_gregorianDateTimeUTCCachedForMS; 45 WTF::GregorianDateTime m_cachedGregorianDateTimeUTC;45 GregorianDateTime m_cachedGregorianDateTimeUTC; 46 46 47 47 private: -
trunk/JavaScriptCore/runtime/DatePrototype.cpp
r50377 r50590 843 843 } 844 844 845 JSValue result = jsNumber(exec, gregorianDateTimeToMS( gregorianDateTime, ms, inputIsUTC));845 JSValue result = jsNumber(exec, gregorianDateTimeToMS(exec, gregorianDateTime, ms, inputIsUTC)); 846 846 thisDateObj->setInternalValue(result); 847 847 return result; … … 865 865 GregorianDateTime gregorianDateTime; 866 866 if (numArgsToUse == 3 && isnan(milli)) 867 WTF::msToGregorianDateTime(0, true, gregorianDateTime);867 msToGregorianDateTime(exec, 0, true, gregorianDateTime); 868 868 else { 869 869 ms = milli - floor(milli / msPerSecond) * msPerSecond; … … 880 880 } 881 881 882 JSValue result = jsNumber(exec, gregorianDateTimeToMS( gregorianDateTime, ms, inputIsUTC));882 JSValue result = jsNumber(exec, gregorianDateTimeToMS(exec, gregorianDateTime, ms, inputIsUTC)); 883 883 thisDateObj->setInternalValue(result); 884 884 return result; … … 990 990 // Based on ECMA 262 B.2.5 (setYear) 991 991 // the time must be reset to +0 if it is NaN. 992 msToGregorianDateTime( 0, true, gregorianDateTime);992 msToGregorianDateTime(exec, 0, true, gregorianDateTime); 993 993 else { 994 994 double secs = floor(milli / msPerSecond); … … 1007 1007 1008 1008 gregorianDateTime.year = (year > 99 || year < 0) ? year - 1900 : year; 1009 JSValue result = jsNumber(exec, gregorianDateTimeToMS( gregorianDateTime, ms, outputIsUTC));1009 JSValue result = jsNumber(exec, gregorianDateTimeToMS(exec, gregorianDateTime, ms, outputIsUTC)); 1010 1010 thisDateObj->setInternalValue(result); 1011 1011 return result; -
trunk/JavaScriptCore/runtime/InitializeThreading.cpp
r46598 r50590 52 52 #if ENABLE(JSC_MULTIPLE_THREADS) 53 53 s_dtoaP5Mutex = new Mutex; 54 WTF::initializeDates();54 initializeDates(); 55 55 #endif 56 56 } -
trunk/JavaScriptCore/runtime/JSGlobalData.cpp
r48905 r50590 148 148 , firstStringifierToMark(0) 149 149 , markStack(vptrSet.jsArrayVPtr) 150 , cachedUTCOffset(NaN) 150 151 #ifndef NDEBUG 151 152 , mainThreadOnly(false) -
trunk/JavaScriptCore/runtime/JSGlobalData.h
r50174 r50590 154 154 MarkStack markStack; 155 155 156 double cachedUTCOffset; 157 156 158 #ifndef NDEBUG 157 159 bool mainThreadOnly; -
trunk/JavaScriptCore/runtime/JSGlobalObject.h
r49721 r50590 443 443 , m_savedDynamicGlobalObject(m_dynamicGlobalObjectSlot) 444 444 { 445 m_dynamicGlobalObjectSlot = dynamicGlobalObject; 445 if (!m_dynamicGlobalObjectSlot) { 446 m_dynamicGlobalObjectSlot = dynamicGlobalObject; 447 448 // Reset the UTC cache between JS invocations to force the VM 449 // to observe time zone changes. 450 callFrame->globalData().cachedUTCOffset = NaN; 451 } 446 452 } 447 453
Note:
See TracChangeset
for help on using the changeset viewer.