V8 Project
v8::internal::JSDate Class Reference

#include <objects.h>

+ Inheritance diagram for v8::internal::JSDate:
+ Collaboration diagram for v8::internal::JSDate:

Public Types

enum  FieldIndex {
  kDateValue , kYear , kMonth , kDay ,
  kWeekday , kHour , kMinute , kSecond ,
  kFirstUncachedField , kMillisecond = kFirstUncachedField , kDays , kTimeInDay ,
  kFirstUTCField , kYearUTC = kFirstUTCField , kMonthUTC , kDayUTC ,
  kWeekdayUTC , kHourUTC , kMinuteUTC , kSecondUTC ,
  kMillisecondUTC , kDaysUTC , kTimeInDayUTC , kTimezoneOffset
}
 
- Public Types inherited from v8::internal::JSObject
enum  ExecutableAccessorInfoHandling { DEFAULT_HANDLING , DONT_FORCE_FIELD }
 
enum  SetFastElementsCapacitySmiMode { kAllowSmiElements , kForceSmiElements , kDontAllowSmiElements }
 
enum  DeepCopyHints { kNoHints = 0 , kObjectIsShallow = 1 }
 
- Public Types inherited from v8::internal::JSReceiver
enum  DeleteMode { NORMAL_DELETION , STRICT_DELETION , FORCE_DELETION }
 
enum  KeyCollectionType { OWN_ONLY , INCLUDE_PROTOS }
 
- Public Types inherited from v8::internal::Object
enum  StoreFromKeyed { MAY_BE_STORE_FROM_KEYED , CERTAINLY_NOT_STORE_FROM_KEYED }
 
enum  StorePropertyMode { NORMAL_PROPERTY , SUPER_PROPERTY }
 

Public Member Functions

void SetValue (Object *value, bool is_value_nan)
 
- Public Member Functions inherited from v8::internal::JSObject
 DECL_ACCESSORS (properties, FixedArray) inline void initialize_properties()
 
bool HasFastProperties ()
 
NameDictionaryproperty_dictionary ()
 
void initialize_elements ()
 
ElementsKind GetElementsKind ()
 
ElementsAccessorGetElementsAccessor ()
 
bool HasFastSmiElements ()
 
bool HasFastObjectElements ()
 
bool HasFastSmiOrObjectElements ()
 
bool HasFastElements ()
 
bool HasFastDoubleElements ()
 
bool HasFastHoleyElements ()
 
bool HasSloppyArgumentsElements ()
 
bool HasDictionaryElements ()
 
bool HasExternalUint8ClampedElements ()
 
bool HasExternalArrayElements ()
 
bool HasExternalInt8Elements ()
 
bool HasExternalUint8Elements ()
 
bool HasExternalInt16Elements ()
 
bool HasExternalUint16Elements ()
 
bool HasExternalInt32Elements ()
 
bool HasExternalUint32Elements ()
 
bool HasExternalFloat32Elements ()
 
bool HasExternalFloat64Elements ()
 
bool HasFixedTypedArrayElements ()
 
bool HasFixedUint8ClampedElements ()
 
bool HasFixedArrayElements ()
 
bool HasFixedInt8Elements ()
 
bool HasFixedUint8Elements ()
 
bool HasFixedInt16Elements ()
 
bool HasFixedUint16Elements ()
 
bool HasFixedInt32Elements ()
 
bool HasFixedUint32Elements ()
 
bool HasFixedFloat32Elements ()
 
bool HasFixedFloat64Elements ()
 
bool HasFastArgumentsElements ()
 
bool HasDictionaryArgumentsElements ()
 
SeededNumberDictionaryelement_dictionary ()
 
InterceptorInfoGetNamedInterceptor ()
 
InterceptorInfoGetIndexedInterceptor ()
 
bool IsDirty ()
 
ObjectGetHiddenProperty (Handle< Name > key)
 
bool WouldConvertToSlowElements (Handle< Object > key)
 
bool ShouldConvertToSlowElements (int new_capacity)
 
bool ShouldConvertToFastElements ()
 
bool ShouldConvertToFastDoubleElements (bool *has_smi_only_elements)
 
bool HasNamedInterceptor ()
 
bool HasIndexedInterceptor ()
 
int GetHeaderSize ()
 
int GetInternalFieldCount ()
 
int GetInternalFieldOffset (int index)
 
ObjectGetInternalField (int index)
 
void SetInternalField (int index, Object *value)
 
void SetInternalField (int index, Smi *value)
 
int NumberOfOwnProperties (PropertyAttributes filter=NONE)
 
void GetOwnPropertyNames (FixedArray *storage, int index, PropertyAttributes filter=NONE)
 
int NumberOfOwnElements (PropertyAttributes filter)
 
int NumberOfEnumElements ()
 
int GetOwnElementKeys (FixedArray *storage, PropertyAttributes filter)
 
int GetEnumElementKeys (FixedArray *storage)
 
ObjectRawFastPropertyAt (FieldIndex index)
 
void FastPropertyAtPut (FieldIndex index, Object *value)
 
void WriteToField (int descriptor, Object *value)
 
int GetInObjectPropertyOffset (int index)
 
ObjectInObjectPropertyAt (int index)
 
ObjectInObjectPropertyAtPut (int index, Object *value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void InitializeBody (Map *map, Object *pre_allocated_value, Object *filler_value)
 
bool ReferencesObject (Object *obj)
 
void JSObjectShortPrint (StringStream *accumulator)
 
void PrintInstanceMigration (FILE *file, Map *original_map, Map *new_map)
 
ObjectSlowReverseLookup (Object *value)
 
 STATIC_ASSERT (kHeaderSize==Internals::kJSObjectHeaderSize)
 
ContextGetCreationContext ()
 
- Public Member Functions inherited from v8::internal::JSReceiver
bool IsSimpleEnum ()
 
Stringclass_name ()
 
Stringconstructor_name ()
 
ObjectGetConstructor ()
 
ObjectGetIdentityHash ()
 
- Public Member Functions inherited from v8::internal::HeapObject
Mapmap () const
 
void set_map (Map *value)
 
void set_map_no_write_barrier (Map *value)
 
Mapsynchronized_map ()
 
MapWord synchronized_map_word () const
 
void synchronized_set_map (Map *value)
 
void synchronized_set_map_no_write_barrier (Map *value)
 
void synchronized_set_map_word (MapWord map_word)
 
MapWord map_word () const
 
void set_map_word (MapWord map_word)
 
HeapGetHeap () const
 
IsolateGetIsolate () const
 
Address address ()
 
void Iterate (ObjectVisitor *v)
 
void IterateBody (InstanceType type, int object_size, ObjectVisitor *v)
 
int Size ()
 
bool MayContainRawValues ()
 
int SizeFromMap (Map *map)
 
WriteBarrierMode GetWriteBarrierMode (const DisallowHeapAllocation &promise)
 
void HeapObjectShortPrint (OStream &os)
 
 STATIC_ASSERT (kMapOffset==Internals::kHeapObjectMapOffset)
 
- Public Member Functions inherited from v8::internal::Object
bool IsObject () const
 
 INLINE (bool IsFixedArrayBase() const)
 
 INLINE (bool IsExternal() const)
 
 INLINE (bool IsAccessorInfo() const)
 
 INLINE (bool IsStruct() const)
 
 INLINE (bool IsSpecObject()) const
 
 INLINE (bool IsSpecFunction()) const
 
 INLINE (bool IsTemplateInfo()) const
 
 INLINE (bool IsNameDictionary() const)
 
 INLINE (bool IsSeededNumberDictionary() const)
 
 INLINE (bool IsUnseededNumberDictionary() const)
 
 INLINE (bool IsOrderedHashSet() const)
 
 INLINE (bool IsOrderedHashMap() const)
 
bool IsCallable () const
 
 INLINE (bool IsUndefined() const)
 
 INLINE (bool IsNull() const)
 
 INLINE (bool IsTheHole() const)
 
 INLINE (bool IsException() const)
 
 INLINE (bool IsUninitialized() const)
 
 INLINE (bool IsTrue() const)
 
 INLINE (bool IsFalse() const)
 
 INLINE (bool IsArgumentsMarker() const)
 
 INLINE (bool IsFiller() const)
 
double Number ()
 
 INLINE (bool IsNaN() const)
 
 INLINE (bool IsMinusZero() const)
 
bool ToInt32 (int32_t *value)
 
bool ToUint32 (uint32_t *value)
 
Representation OptimalRepresentation ()
 
bool FitsRepresentation (Representation representation)
 
Handle< HeapTypeOptimalType (Isolate *isolate, Representation representation)
 
bool HasValidElements ()
 
bool HasSpecificClassOf (String *name)
 
bool BooleanValue ()
 
ObjectGetHash ()
 
bool SameValue (Object *other)
 
bool SameValueZero (Object *other)
 
bool ToArrayIndex (uint32_t *index)
 
bool IsStringObjectWithCharacterAt (uint32_t index)
 
void VerifyApiCallResultType ()
 
void ShortPrint (FILE *out=stdout)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static ObjectGetField (Object *date, Smi *index)
 
- Static Public Member Functions inherited from v8::internal::JSObject
static void ResetElements (Handle< JSObject > object)
 
static void SetMapAndElements (Handle< JSObject > object, Handle< Map > map, Handle< FixedArrayBase > elements)
 
static Handle< FixedArrayEnsureWritableFastElements (Handle< JSObject > object)
 
static Handle< ObjectPrepareElementsForSort (Handle< JSObject > object, uint32_t limit)
 
static Handle< ObjectPrepareSlowElementsForSort (Handle< JSObject > object, uint32_t limit)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetPropertyWithInterceptor (LookupIterator *it, Handle< Object > value)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetOwnPropertyIgnoreAttributes (Handle< JSObject > object, Handle< Name > key, Handle< Object > value, PropertyAttributes attributes, ExecutableAccessorInfoHandling handling=DEFAULT_HANDLING)
 
static void AddProperty (Handle< JSObject > object, Handle< Name > key, Handle< Object > value, PropertyAttributes attributes)
 
static void AllocateStorageForMap (Handle< JSObject > object, Handle< Map > map)
 
static void MigrateInstance (Handle< JSObject > instance)
 
static bool TryMigrateInstance (Handle< JSObject > instance)
 
static void SetNormalizedProperty (Handle< JSObject > object, Handle< Name > key, Handle< Object > value, PropertyDetails details)
 
static void OptimizeAsPrototype (Handle< JSObject > object, PrototypeOptimizationMode mode)
 
static void ReoptimizeIfPrototype (Handle< JSObject > object)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetPropertyAttributesWithInterceptor (Handle< JSObject > holder, Handle< Object > receiver, Handle< Name > name)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetPropertyAttributesWithFailedAccessCheck (LookupIterator *it)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetElementAttributeWithReceiver (Handle< JSObject > object, Handle< JSReceiver > receiver, uint32_t index, bool check_prototype)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetAccessor (Handle< JSObject > object, Handle< Name > name, AccessorComponent component)
 
static MaybeHandle< ObjectDefineAccessor (Handle< JSObject > object, Handle< Name > name, Handle< Object > getter, Handle< Object > setter, PropertyAttributes attributes)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetAccessor (Handle< JSObject > object, Handle< AccessorInfo > info)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetPropertyWithInterceptor (Handle< JSObject > object, Handle< Object > receiver, Handle< Name > name)
 
static Handle< ObjectSetHiddenProperty (Handle< JSObject > object, Handle< Name > key, Handle< Object > value)
 
static void DeleteHiddenProperty (Handle< JSObject > object, Handle< Name > key)
 
static bool HasHiddenProperties (Handle< JSObject > object)
 
static void SetIdentityHash (Handle< JSObject > object, Handle< Smi > hash)
 
static void ValidateElements (Handle< JSObject > object)
 
static void EnsureCanContainHeapObjectElements (Handle< JSObject > obj)
 
static void EnsureCanContainElements (Handle< JSObject > object, Object **elements, uint32_t count, EnsureElementsMode mode)
 
static void EnsureCanContainElements (Handle< JSObject > object, Handle< FixedArrayBase > elements, uint32_t length, EnsureElementsMode mode)
 
static void EnsureCanContainElements (Handle< JSObject > object, Arguments *arguments, uint32_t first_arg, uint32_t arg_count, EnsureElementsMode mode)
 
static int NewElementsCapacity (int old_capacity)
 
static MUST_USE_RESULT MaybeHandle< AccessorPairGetOwnElementAccessorPair (Handle< JSObject > object, uint32_t index)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetFastElement (Handle< JSObject > object, uint32_t index, Handle< Object > value, StrictMode strict_mode, bool check_prototype)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetOwnElement (Handle< JSObject > object, uint32_t index, Handle< Object > value, StrictMode strict_mode)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetElement (Handle< JSObject > object, uint32_t index, Handle< Object > value, PropertyAttributes attributes, StrictMode strict_mode, bool check_prototype=true, SetPropertyMode set_mode=SET_PROPERTY)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetElementWithInterceptor (Handle< JSObject > object, Handle< Object > receiver, uint32_t index)
 
static Handle< FixedArraySetFastElementsCapacityAndLength (Handle< JSObject > object, int capacity, int length, SetFastElementsCapacitySmiMode smi_mode)
 
static void SetFastDoubleElementsCapacityAndLength (Handle< JSObject > object, int capacity, int length)
 
static MUST_USE_RESULT MaybeHandle< JSObjectGetKeysForNamedInterceptor (Handle< JSObject > object, Handle< JSReceiver > receiver)
 
static MUST_USE_RESULT MaybeHandle< JSObjectGetKeysForIndexedInterceptor (Handle< JSObject > object, Handle< JSReceiver > receiver)
 
static MUST_USE_RESULT Maybe< boolHasRealNamedProperty (Handle< JSObject > object, Handle< Name > key)
 
static MUST_USE_RESULT Maybe< boolHasRealElementProperty (Handle< JSObject > object, uint32_t index)
 
static MUST_USE_RESULT Maybe< boolHasRealNamedCallbackProperty (Handle< JSObject > object, Handle< Name > key)
 
static Handle< MapGetElementsTransitionMap (Handle< JSObject > object, ElementsKind to_kind)
 
static void TransitionElementsKind (Handle< JSObject > object, ElementsKind to_kind)
 
static void MigrateToMap (Handle< JSObject > object, Handle< Map > new_map)
 
static void NormalizeProperties (Handle< JSObject > object, PropertyNormalizationMode mode, int expected_additional_properties)
 
static Handle< SeededNumberDictionaryNormalizeElements (Handle< JSObject > object)
 
static void MigrateSlowToFast (Handle< JSObject > object, int unused_property_fields)
 
static Handle< ObjectFastPropertyAt (Handle< JSObject > object, Representation representation, FieldIndex index)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetPrototype (Handle< JSObject > object, Handle< Object > value, bool from_javascript)
 
static MUST_USE_RESULT MaybeHandle< ObjectPreventExtensions (Handle< JSObject > object)
 
static MUST_USE_RESULT MaybeHandle< ObjectFreeze (Handle< JSObject > object)
 
static void SetObserved (Handle< JSObject > object)
 
static Handle< JSObjectCopy (Handle< JSObject > object)
 
static MUST_USE_RESULT MaybeHandle< JSObjectDeepCopy (Handle< JSObject > object, AllocationSiteUsageContext *site_context, DeepCopyHints hints=kNoHints)
 
static MUST_USE_RESULT MaybeHandle< JSObjectDeepWalk (Handle< JSObject > object, AllocationSiteCreationContext *site_context)
 
static Handle< ObjectGetDataProperty (Handle< JSObject > object, Handle< Name > key)
 
static Handle< ObjectGetDataProperty (LookupIterator *it)
 
static void PrintElementsTransition (FILE *file, Handle< JSObject > object, ElementsKind from_kind, Handle< FixedArrayBase > from_elements, ElementsKind to_kind, Handle< FixedArrayBase > to_elements)
 
static void EnqueueChangeRecord (Handle< JSObject > object, const char *type, Handle< Name > name, Handle< Object > old_value)
 
static void MigrateToNewProperty (Handle< JSObject > object, Handle< Map > transition, Handle< Object > value)
 
- Static Public Member Functions inherited from v8::internal::JSReceiver
static MUST_USE_RESULT MaybeHandle< ObjectSetElement (Handle< JSReceiver > object, uint32_t index, Handle< Object > value, PropertyAttributes attributes, StrictMode strict_mode)
 
static MUST_USE_RESULT Maybe< boolHasProperty (Handle< JSReceiver > object, Handle< Name > name)
 
static MUST_USE_RESULT Maybe< boolHasOwnProperty (Handle< JSReceiver >, Handle< Name > name)
 
static MUST_USE_RESULT Maybe< boolHasElement (Handle< JSReceiver > object, uint32_t index)
 
static MUST_USE_RESULT Maybe< boolHasOwnElement (Handle< JSReceiver > object, uint32_t index)
 
static MUST_USE_RESULT MaybeHandle< ObjectDeleteProperty (Handle< JSReceiver > object, Handle< Name > name, DeleteMode mode=NORMAL_DELETION)
 
static MUST_USE_RESULT MaybeHandle< ObjectDeleteElement (Handle< JSReceiver > object, uint32_t index, DeleteMode mode=NORMAL_DELETION)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetPropertyAttributes (Handle< JSReceiver > object, Handle< Name > name)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetPropertyAttributes (LookupIterator *it)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetOwnPropertyAttributes (Handle< JSReceiver > object, Handle< Name > name)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetElementAttribute (Handle< JSReceiver > object, uint32_t index)
 
static MUST_USE_RESULT Maybe< PropertyAttributesGetOwnElementAttribute (Handle< JSReceiver > object, uint32_t index)
 
static Handle< SmiGetOrCreateIdentityHash (Handle< JSReceiver > object)
 
static MUST_USE_RESULT MaybeHandle< FixedArrayGetKeys (Handle< JSReceiver > object, KeyCollectionType type)
 
- Static Public Member Functions inherited from v8::internal::HeapObject
static HeapObjectFromAddress (Address address)
 
static Object ** RawField (HeapObject *obj, int offset)
 
static void UpdateMapCodeCache (Handle< HeapObject > object, Handle< Name > name, Handle< Code > code)
 
- Static Public Member Functions inherited from v8::internal::Object
static Handle< ObjectNewStorageFor (Isolate *isolate, Handle< Object > object, Representation representation)
 
static Handle< ObjectWrapForRead (Isolate *isolate, Handle< Object > object, Representation representation)
 
static MaybeHandle< JSReceiverToObject (Isolate *isolate, Handle< Object > object)
 
static MaybeHandle< JSReceiverToObject (Isolate *isolate, Handle< Object > object, Handle< Context > context)
 
static MUST_USE_RESULT MaybeHandle< SmiToSmi (Isolate *isolate, Handle< Object > object)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetProperty (LookupIterator *it)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetProperty (Handle< Object > object, Handle< Name > key, Handle< Object > value, StrictMode strict_mode, StoreFromKeyed store_mode=MAY_BE_STORE_FROM_KEYED)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetProperty (LookupIterator *it, Handle< Object > value, StrictMode strict_mode, StoreFromKeyed store_mode, StorePropertyMode data_store_mode=NORMAL_PROPERTY)
 
static MUST_USE_RESULT MaybeHandle< ObjectWriteToReadOnlyProperty (LookupIterator *it, Handle< Object > value, StrictMode strict_mode)
 
static Handle< ObjectSetDataProperty (LookupIterator *it, Handle< Object > value)
 
static MUST_USE_RESULT MaybeHandle< ObjectAddDataProperty (LookupIterator *it, Handle< Object > value, PropertyAttributes attributes, StrictMode strict_mode, StoreFromKeyed store_mode)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetPropertyOrElement (Handle< Object > object, Handle< Name > key)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetProperty (Isolate *isolate, Handle< Object > object, const char *key)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetProperty (Handle< Object > object, Handle< Name > key)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetPropertyWithAccessor (Handle< Object > receiver, Handle< Name > name, Handle< JSObject > holder, Handle< Object > structure)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetPropertyWithAccessor (Handle< Object > receiver, Handle< Name > name, Handle< Object > value, Handle< JSObject > holder, Handle< Object > structure, StrictMode strict_mode)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetPropertyWithDefinedGetter (Handle< Object > receiver, Handle< JSReceiver > getter)
 
static MUST_USE_RESULT MaybeHandle< ObjectSetPropertyWithDefinedSetter (Handle< Object > receiver, Handle< JSReceiver > setter, Handle< Object > value)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetElement (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static MUST_USE_RESULT MaybeHandle< ObjectGetElementWithReceiver (Isolate *isolate, Handle< Object > object, Handle< Object > receiver, uint32_t index)
 
static Handle< SmiGetOrCreateHash (Isolate *isolate, Handle< Object > object)
 

Static Public Attributes

static const int kValueOffset = JSObject::kHeaderSize
 
static const int kYearOffset = kValueOffset + kPointerSize
 
static const int kMonthOffset = kYearOffset + kPointerSize
 
static const int kDayOffset = kMonthOffset + kPointerSize
 
static const int kWeekdayOffset = kDayOffset + kPointerSize
 
static const int kHourOffset = kWeekdayOffset + kPointerSize
 
static const int kMinOffset = kHourOffset + kPointerSize
 
static const int kSecOffset = kMinOffset + kPointerSize
 
static const int kCacheStampOffset = kSecOffset + kPointerSize
 
static const int kSize = kCacheStampOffset + kPointerSize
 
- Static Public Attributes inherited from v8::internal::JSObject
static const uint32_t kMaxElementCount = 0xffffffffu
 
static const uint32_t kMaxGap = 1024
 
static const int kMaxUncheckedFastElementsLength = 5000
 
static const int kMaxUncheckedOldFastElementsLength = 500
 
static const int kInitialMaxFastElementArray = 100000
 
static const int kInitialGlobalObjectUnusedPropertiesCount = 4
 
static const int kMaxInstanceSize = 255 * kPointerSize
 
static const int kFieldsAdded = 3
 
static const int kPropertiesOffset = HeapObject::kHeaderSize
 
static const int kElementsOffset = kPropertiesOffset + kPointerSize
 
static const int kHeaderSize = kElementsOffset + kPointerSize
 
- Static Public Attributes inherited from v8::internal::HeapObject
static const int kMapOffset = Object::kHeaderSize
 
static const int kHeaderSize = kMapOffset + kPointerSize
 
- Static Public Attributes inherited from v8::internal::Object
static const int kHeaderSize = 0
 

Private Member Functions

ObjectDoGetField (FieldIndex index)
 
ObjectGetUTCField (FieldIndex index, double value, DateCache *date_cache)
 
void SetCachedFields (int64_t local_time_ms, DateCache *date_cache)
 
 DISALLOW_IMPLICIT_CONSTRUCTORS (JSDate)
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::HeapObject
void IteratePointers (ObjectVisitor *v, int start, int end)
 
void IteratePointer (ObjectVisitor *v, int offset)
 
void IterateNextCodeLink (ObjectVisitor *v, int offset)
 

Detailed Description

Definition at line 7557 of file objects.h.

Member Enumeration Documentation

◆ FieldIndex

Enumerator
kDateValue 
kYear 
kMonth 
kDay 
kWeekday 
kHour 
kMinute 
kSecond 
kFirstUncachedField 
kMillisecond 
kDays 
kTimeInDay 
kFirstUTCField 
kYearUTC 
kMonthUTC 
kDayUTC 
kWeekdayUTC 
kHourUTC 
kMinuteUTC 
kSecondUTC 
kMillisecondUTC 
kDaysUTC 
kTimeInDayUTC 
kTimezoneOffset 

Definition at line 7595 of file objects.h.

7595  {
7596  kDateValue,
7597  kYear,
7598  kMonth,
7599  kDay,
7600  kWeekday,
7601  kHour,
7602  kMinute,
7603  kSecond,
7606  kDays,
7607  kTimeInDay,
7610  kMonthUTC,
7611  kDayUTC,
7612  kWeekdayUTC,
7613  kHourUTC,
7614  kMinuteUTC,
7615  kSecondUTC,
7617  kDaysUTC,
7618  kTimeInDayUTC,
7620  };

Member Function Documentation

◆ DISALLOW_IMPLICIT_CONSTRUCTORS()

v8::internal::JSDate::DISALLOW_IMPLICIT_CONSTRUCTORS ( JSDate  )
private

◆ DoGetField()

Object * v8::internal::JSDate::DoGetField ( FieldIndex  index)
inlineprivate

Definition at line 16128 of file objects.cc.

16128  {
16129  DCHECK(index != kDateValue);
16130 
16131  DateCache* date_cache = GetIsolate()->date_cache();
16132 
16133  if (index < kFirstUncachedField) {
16134  Object* stamp = cache_stamp();
16135  if (stamp != date_cache->stamp() && stamp->IsSmi()) {
16136  // Since the stamp is not NaN, the value is also not NaN.
16137  int64_t local_time_ms =
16138  date_cache->ToLocal(static_cast<int64_t>(value()->Number()));
16139  SetCachedFields(local_time_ms, date_cache);
16140  }
16141  switch (index) {
16142  case kYear: return year();
16143  case kMonth: return month();
16144  case kDay: return day();
16145  case kWeekday: return weekday();
16146  case kHour: return hour();
16147  case kMinute: return min();
16148  case kSecond: return sec();
16149  default: UNREACHABLE();
16150  }
16151  }
16152 
16153  if (index >= kFirstUTCField) {
16154  return GetUTCField(index, value()->Number(), date_cache);
16155  }
16156 
16157  double time = value()->Number();
16158  if (std::isnan(time)) return GetIsolate()->heap()->nan_value();
16159 
16160  int64_t local_time_ms = date_cache->ToLocal(static_cast<int64_t>(time));
16161  int days = DateCache::DaysFromTime(local_time_ms);
16162 
16163  if (index == kDays) return Smi::FromInt(days);
16164 
16165  int time_in_day_ms = DateCache::TimeInDay(local_time_ms, days);
16166  if (index == kMillisecond) return Smi::FromInt(time_in_day_ms % 1000);
16167  DCHECK(index == kTimeInDay);
16168  return Smi::FromInt(time_in_day_ms);
16169 }
static int TimeInDay(int64_t time_ms, int days)
Definition: date.h:65
static int DaysFromTime(int64_t time_ms)
Definition: date.h:57
Isolate * GetIsolate() const
Definition: objects-inl.h:1387
DateCache * date_cache()
Definition: isolate.h:1020
Object * GetUTCField(FieldIndex index, double value, DateCache *date_cache)
Definition: objects.cc:16172
void SetCachedFields(int64_t local_time_ms, DateCache *date_cache)
Definition: objects.cc:16232
friend class Object
Definition: objects.h:2219
static Smi * FromInt(int value)
Definition: objects-inl.h:1321
#define UNREACHABLE()
Definition: logging.h:30
#define DCHECK(condition)
Definition: logging.h:205
static int min(int a, int b)
Definition: liveedit.cc:273

References v8::internal::Isolate::date_cache(), v8::internal::DateCache::DaysFromTime(), DCHECK, v8::internal::Smi::FromInt(), v8::internal::HeapObject::GetIsolate(), GetUTCField(), v8::internal::Isolate::heap(), kDateValue, kDay, kDays, kFirstUncachedField, kFirstUTCField, kHour, kMillisecond, kMinute, kMonth, kSecond, kTimeInDay, kWeekday, kYear, v8::internal::min(), v8::internal::Object::Number(), SetCachedFields(), v8::internal::DateCache::stamp(), v8::internal::DateCache::TimeInDay(), v8::internal::DateCache::ToLocal(), and UNREACHABLE.

+ Here is the call graph for this function:

◆ GetField()

Object * v8::internal::JSDate::GetField ( Object date,
Smi index 
)
static

Definition at line 16122 of file objects.cc.

16122  {
16123  return JSDate::cast(object)->DoGetField(
16124  static_cast<FieldIndex>(index->value()));
16125 }

References v8::internal::Smi::value().

Referenced by v8::internal::RUNTIME_FUNCTION().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetUTCField()

Object * v8::internal::JSDate::GetUTCField ( FieldIndex  index,
double  value,
DateCache date_cache 
)
private

Definition at line 16172 of file objects.cc.

16174  {
16175  DCHECK(index >= kFirstUTCField);
16176 
16177  if (std::isnan(value)) return GetIsolate()->heap()->nan_value();
16178 
16179  int64_t time_ms = static_cast<int64_t>(value);
16180 
16181  if (index == kTimezoneOffset) {
16182  return Smi::FromInt(date_cache->TimezoneOffset(time_ms));
16183  }
16184 
16185  int days = DateCache::DaysFromTime(time_ms);
16186 
16187  if (index == kWeekdayUTC) return Smi::FromInt(date_cache->Weekday(days));
16188 
16189  if (index <= kDayUTC) {
16190  int year, month, day;
16191  date_cache->YearMonthDayFromDays(days, &year, &month, &day);
16192  if (index == kYearUTC) return Smi::FromInt(year);
16193  if (index == kMonthUTC) return Smi::FromInt(month);
16194  DCHECK(index == kDayUTC);
16195  return Smi::FromInt(day);
16196  }
16197 
16198  int time_in_day_ms = DateCache::TimeInDay(time_ms, days);
16199  switch (index) {
16200  case kHourUTC: return Smi::FromInt(time_in_day_ms / (60 * 60 * 1000));
16201  case kMinuteUTC: return Smi::FromInt((time_in_day_ms / (60 * 1000)) % 60);
16202  case kSecondUTC: return Smi::FromInt((time_in_day_ms / 1000) % 60);
16203  case kMillisecondUTC: return Smi::FromInt(time_in_day_ms % 1000);
16204  case kDaysUTC: return Smi::FromInt(days);
16205  case kTimeInDayUTC: return Smi::FromInt(time_in_day_ms);
16206  default: UNREACHABLE();
16207  }
16208 
16209  UNREACHABLE();
16210  return NULL;
16211 }
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

References v8::internal::DateCache::DaysFromTime(), DCHECK, v8::internal::Smi::FromInt(), v8::internal::HeapObject::GetIsolate(), v8::internal::Isolate::heap(), kDaysUTC, kDayUTC, kFirstUTCField, kHourUTC, kMillisecondUTC, kMinuteUTC, kMonthUTC, kSecondUTC, kTimeInDayUTC, kTimezoneOffset, kWeekdayUTC, kYearUTC, NULL, v8::internal::DateCache::TimeInDay(), v8::internal::DateCache::TimezoneOffset(), UNREACHABLE, v8::internal::DateCache::Weekday(), and v8::internal::DateCache::YearMonthDayFromDays().

Referenced by DoGetField().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetCachedFields()

void v8::internal::JSDate::SetCachedFields ( int64_t  local_time_ms,
DateCache date_cache 
)
inlineprivate

Definition at line 16232 of file objects.cc.

16232  {
16233  int days = DateCache::DaysFromTime(local_time_ms);
16234  int time_in_day_ms = DateCache::TimeInDay(local_time_ms, days);
16235  int year, month, day;
16236  date_cache->YearMonthDayFromDays(days, &year, &month, &day);
16237  int weekday = date_cache->Weekday(days);
16238  int hour = time_in_day_ms / (60 * 60 * 1000);
16239  int min = (time_in_day_ms / (60 * 1000)) % 60;
16240  int sec = (time_in_day_ms / 1000) % 60;
16241  set_cache_stamp(date_cache->stamp());
16242  set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER);
16243  set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER);
16244  set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER);
16245  set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER);
16246  set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER);
16247  set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER);
16248  set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER);
16249 }
@ SKIP_WRITE_BARRIER
Definition: objects.h:235

References v8::internal::DateCache::DaysFromTime(), v8::internal::Smi::FromInt(), v8::internal::min(), v8::internal::SKIP_WRITE_BARRIER, v8::internal::DateCache::stamp(), v8::internal::DateCache::TimeInDay(), v8::internal::DateCache::Weekday(), and v8::internal::DateCache::YearMonthDayFromDays().

Referenced by DoGetField().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetValue()

void v8::internal::JSDate::SetValue ( Object value,
bool  is_value_nan 
)

Definition at line 16214 of file objects.cc.

16214  {
16215  set_value(value);
16216  if (is_value_nan) {
16217  HeapNumber* nan = GetIsolate()->heap()->nan_value();
16218  set_cache_stamp(nan, SKIP_WRITE_BARRIER);
16219  set_year(nan, SKIP_WRITE_BARRIER);
16220  set_month(nan, SKIP_WRITE_BARRIER);
16221  set_day(nan, SKIP_WRITE_BARRIER);
16222  set_hour(nan, SKIP_WRITE_BARRIER);
16223  set_min(nan, SKIP_WRITE_BARRIER);
16224  set_sec(nan, SKIP_WRITE_BARRIER);
16225  set_weekday(nan, SKIP_WRITE_BARRIER);
16226  } else {
16228  }
16229 }
static const int kInvalidStamp
Definition: date.h:40

References v8::internal::Smi::FromInt(), v8::internal::HeapObject::GetIsolate(), v8::internal::Isolate::heap(), v8::internal::DateCache::kInvalidStamp, and v8::internal::SKIP_WRITE_BARRIER.

+ Here is the call graph for this function:

Member Data Documentation

◆ kCacheStampOffset

const int v8::internal::JSDate::kCacheStampOffset = kSecOffset + kPointerSize
static

Definition at line 7631 of file objects.h.

◆ kDayOffset

const int v8::internal::JSDate::kDayOffset = kMonthOffset + kPointerSize
static

Definition at line 7626 of file objects.h.

◆ kHourOffset

const int v8::internal::JSDate::kHourOffset = kWeekdayOffset + kPointerSize
static

Definition at line 7628 of file objects.h.

◆ kMinOffset

const int v8::internal::JSDate::kMinOffset = kHourOffset + kPointerSize
static

Definition at line 7629 of file objects.h.

◆ kMonthOffset

const int v8::internal::JSDate::kMonthOffset = kYearOffset + kPointerSize
static

Definition at line 7625 of file objects.h.

◆ kSecOffset

const int v8::internal::JSDate::kSecOffset = kMinOffset + kPointerSize
static

Definition at line 7630 of file objects.h.

◆ kSize

const int v8::internal::JSDate::kSize = kCacheStampOffset + kPointerSize
static

Definition at line 7632 of file objects.h.

Referenced by v8::internal::JSObject::GetHeaderSize().

◆ kValueOffset

const int v8::internal::JSDate::kValueOffset = JSObject::kHeaderSize
static

Definition at line 7623 of file objects.h.

◆ kWeekdayOffset

const int v8::internal::JSDate::kWeekdayOffset = kDayOffset + kPointerSize
static

Definition at line 7627 of file objects.h.

◆ kYearOffset

const int v8::internal::JSDate::kYearOffset = kValueOffset + kPointerSize
static

Definition at line 7624 of file objects.h.


The documentation for this class was generated from the following files: