v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DescriptorArray Class Reference

#include <objects.h>

Inheritance diagram for DescriptorArray:
Collaboration diagram for DescriptorArray:

Data Structures

class  WhitenessWitness
 

Public Member Functions

bool IsEmpty ()
 
int number_of_descriptors ()
 
int number_of_descriptors_storage ()
 
int NumberOfSlackDescriptors ()
 
void SetNumberOfDescriptors (int number_of_descriptors)
 
int number_of_entries ()
 
bool HasEnumCache ()
 
void CopyEnumCacheFrom (DescriptorArray *array)
 
FixedArrayGetEnumCache ()
 
bool HasEnumIndicesCache ()
 
FixedArrayGetEnumIndicesCache ()
 
Object ** GetEnumCacheSlot ()
 
void ClearEnumCache ()
 
void SetEnumCache (FixedArray *bridge_storage, FixedArray *new_cache, Object *new_index_cache)
 
StringGetKey (int descriptor_number)
 
Object ** GetKeySlot (int descriptor_number)
 
ObjectGetValue (int descriptor_number)
 
Object ** GetValueSlot (int descriptor_number)
 
PropertyDetails GetDetails (int descriptor_number)
 
PropertyType GetType (int descriptor_number)
 
int GetFieldIndex (int descriptor_number)
 
JSFunctionGetConstantFunction (int descriptor_number)
 
ObjectGetCallbacksObject (int descriptor_number)
 
AccessorDescriptorGetCallbacks (int descriptor_number)
 
StringGetSortedKey (int descriptor_number)
 
int GetSortedKeyIndex (int descriptor_number)
 
void SetSortedKey (int pointer, int descriptor_number)
 
void Get (int descriptor_number, Descriptor *desc)
 
void Set (int descriptor_number, Descriptor *desc, const WhitenessWitness &)
 
void Set (int descriptor_number, Descriptor *desc)
 
void Append (Descriptor *desc, const WhitenessWitness &)
 
void Append (Descriptor *desc)
 
void CopyFrom (int dst_index, DescriptorArray *src, int src_index, const WhitenessWitness &)
 
MUST_USE_RESULT MaybeObject * CopyUpTo (int enumeration_index)
 
void Sort ()
 
 INLINE (int Search(String *name, int number_of_own_descriptors))
 
 INLINE (int SearchWithCache(String *name, Map *map))
 
- Public Member Functions inherited from FixedArray
Objectget (int index)
 
void set (int index, Object *value)
 
bool is_the_hole (int index)
 
void set (int index, Smi *value)
 
void set (int index, Object *value, WriteBarrierMode mode)
 
void set_undefined (int index)
 
void set_undefined (Heap *heap, int index)
 
void set_null (int index)
 
void set_null (Heap *heap, int index)
 
void set_the_hole (int index)
 
void set_unchecked (int index, Smi *value)
 
void set_null_unchecked (Heap *heap, int index)
 
void set_unchecked (Heap *heap, int index, Object *value, WriteBarrierMode mode)
 
Object ** data_start ()
 
Object ** GetFirstElementAddress ()
 
bool ContainsOnlySmisOrHoles ()
 
MUST_USE_RESULT MaybeObject * Copy ()
 
MUST_USE_RESULT MaybeObject * CopySize (int new_length)
 
MUST_USE_RESULT MaybeObject * AddKeysFromJSArray (JSArray *array)
 
MUST_USE_RESULT MaybeObject * UnionOfKeys (FixedArray *other)
 
void CopyTo (int pos, FixedArray *dest, int dest_pos, int len)
 
void SwapPairs (FixedArray *numbers, int i, int j)
 
void SortPairs (FixedArray *numbers, uint32_t len)
 
- Public Member Functions inherited from FixedArrayBase
int length ()
 
void set_length (int value)
 
- Public Member Functions inherited from HeapObject
Mapmap ()
 
void set_map (Map *value)
 
void set_map_no_write_barrier (Map *value)
 
MapWord map_word ()
 
void set_map_word (MapWord map_word)
 
HeapGetHeap ()
 
IsolateGetIsolate ()
 
Address address ()
 
void Iterate (ObjectVisitor *v)
 
void IterateBody (InstanceType type, int object_size, ObjectVisitor *v)
 
int Size ()
 
int SizeFromMap (Map *map)
 
WriteBarrierMode GetWriteBarrierMode (const AssertNoAllocation &)
 
void HeapObjectShortPrint (StringStream *accumulator)
 
 STATIC_CHECK (kMapOffset==Internals::kHeapObjectMapOffset)
 
- Public Member Functions inherited from Object
bool IsObject ()
 
bool IsFixedArrayBase ()
 
bool IsInstanceOf (FunctionTemplateInfo *type)
 
bool IsStruct ()
 
 INLINE (bool IsSpecObject())
 
 INLINE (bool IsSpecFunction())
 
 INLINE (bool IsUndefined())
 
 INLINE (bool IsNull())
 
 INLINE (bool IsTheHole())
 
 INLINE (bool IsTrue())
 
 INLINE (bool IsFalse())
 
bool IsArgumentsMarker ()
 
bool NonFailureIsHeapObject ()
 
bool IsFiller ()
 
double Number ()
 
bool IsNaN ()
 
bool HasValidElements ()
 
bool HasSpecificClassOf (String *name)
 
MUST_USE_RESULT MaybeObject * ToObject ()
 
ObjectToBoolean ()
 
MUST_USE_RESULT MaybeObject * ToObject (Context *native_context)
 
MUST_USE_RESULT MaybeObject * ToSmi ()
 
void Lookup (String *name, LookupResult *result)
 
MUST_USE_RESULT MaybeObject * GetProperty (String *key)
 
MUST_USE_RESULT MaybeObject * GetProperty (String *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithReceiver (Object *receiver, String *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetProperty (Object *receiver, LookupResult *result, String *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithDefinedGetter (Object *receiver, JSReceiver *getter)
 
MUST_USE_RESULT MaybeObject * GetElement (uint32_t index)
 
ObjectGetElementNoExceptionThrown (uint32_t index)
 
MUST_USE_RESULT MaybeObject * GetElementWithReceiver (Object *receiver, uint32_t index)
 
ObjectGetPrototype ()
 
MUST_USE_RESULT MaybeObject * GetHash (CreationFlag flag)
 
bool SameValue (Object *other)
 
bool ToArrayIndex (uint32_t *index)
 
bool IsStringObjectWithCharacterAt (uint32_t index)
 
void VerifyApiCallResultType ()
 
void ShortPrint ()
 
void ShortPrint (FILE *out)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static MUST_USE_RESULT
MaybeObject * 
Allocate (int number_of_descriptors, int slack=0)
 
static DescriptorArraycast (Object *obj)
 
static int LengthFor (int number_of_descriptors)
 
- Static Public Member Functions inherited from FixedArray
static int SizeFor (int length)
 
static int OffsetOfElementAt (int index)
 
static FixedArraycast (Object *obj)
 
- Static Public Member Functions inherited from FixedArrayBase
static FixedArrayBasecast (Object *object)
 
- Static Public Member Functions inherited from HeapObject
static HeapObjectFromAddress (Address address)
 
static Object ** RawField (HeapObject *obj, int offset)
 
static HeapObjectcast (Object *obj)
 
- Static Public Member Functions inherited from Object
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< String > key, PropertyAttributes *attributes)
 
static Handle< ObjectGetElement (Handle< Object > object, uint32_t index)
 
static Objectcast (Object *value)
 

Static Public Attributes

static const int kNotFound = -1
 
static const int kDescriptorLengthIndex = 0
 
static const int kEnumCacheIndex = 1
 
static const int kFirstIndex = 2
 
static const int kEnumCacheBridgeLength = 2
 
static const int kEnumCacheBridgeCacheIndex = 0
 
static const int kEnumCacheBridgeIndicesCacheIndex = 1
 
static const int kDescriptorLengthOffset = FixedArray::kHeaderSize
 
static const int kEnumCacheOffset = kDescriptorLengthOffset + kPointerSize
 
static const int kFirstOffset = kEnumCacheOffset + kPointerSize
 
static const int kEnumCacheBridgeCacheOffset = FixedArray::kHeaderSize
 
static const int kDescriptorKey = 0
 
static const int kDescriptorDetails = 1
 
static const int kDescriptorValue = 2
 
static const int kDescriptorSize = 3
 
static const int kMaxNumberOfDescriptors = 1024 + 512
 
- Static Public Attributes inherited from FixedArray
static const int kMaxSize = 128 * MB * kPointerSize
 
static const int kMaxLength = (kMaxSize - kHeaderSize) / kPointerSize
 
- Static Public Attributes inherited from FixedArrayBase
static const int kLengthOffset = HeapObject::kHeaderSize
 
static const int kHeaderSize = kLengthOffset + kPointerSize
 
- Static Public Attributes inherited from HeapObject
static const int kMapOffset = Object::kHeaderSize
 
static const int kHeaderSize = kMapOffset + kPointerSize
 
- Static Public Attributes inherited from Object
static const int kHeaderSize = 0
 

Additional Inherited Members

- Protected Member Functions inherited from HeapObject
void IteratePointers (ObjectVisitor *v, int start, int end)
 
void IteratePointer (ObjectVisitor *v, int offset)
 
- Static Protected Member Functions inherited from FixedArray
static void NoWriteBarrierSet (FixedArray *array, int index, Object *value)
 
static void NoIncrementalWriteBarrierSet (FixedArray *array, int index, Object *value)
 

Detailed Description

Definition at line 2477 of file objects.h.

Member Function Documentation

static DescriptorArray* cast ( Object obj)
inlinestatic
void ClearEnumCache ( )

Definition at line 6048 of file objects.cc.

References Smi::FromInt().

void CopyEnumCacheFrom ( DescriptorArray array)
inline

Definition at line 2524 of file objects.h.

References FixedArray::get().

Referenced by Map::ShareDescriptor().

void CopyFrom ( int  dst_index,
DescriptorArray src,
int  src_index,
const WhitenessWitness witness 
)
MaybeObject * CopyUpTo ( int  enumeration_index)
void Get ( int  descriptor_number,
Descriptor *  desc 
)
inline
Object * GetCallbacksObject ( int  descriptor_number)
inline
JSFunction * GetConstantFunction ( int  descriptor_number)
inline
FixedArray* GetEnumCache ( )
inline

Definition at line 2528 of file objects.h.

References ASSERT, FixedArray::cast(), and FixedArray::get().

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

Object** GetEnumCacheSlot ( )
inline

Definition at line 2548 of file objects.h.

References ASSERT, and HeapObject::RawField().

FixedArray* GetEnumIndicesCache ( )
inline

Definition at line 2542 of file objects.h.

References ASSERT, FixedArray::cast(), and FixedArray::get().

Object ** GetKeySlot ( int  descriptor_number)
inline
String * GetSortedKey ( int  descriptor_number)
inline
int GetSortedKeyIndex ( int  descriptor_number)
inline
Object ** GetValueSlot ( int  descriptor_number)
inline
bool HasEnumCache ( )
inline

Definition at line 2520 of file objects.h.

Referenced by Map::ShareDescriptor().

bool HasEnumIndicesCache ( )
inline

Definition at line 2534 of file objects.h.

References FixedArray::cast(), and FixedArray::get().

INLINE ( int   SearchString *name, int number_of_own_descriptors)
INLINE ( int   SearchWithCacheString *name, Map *map)
bool IsEmpty ( )
inline

Definition at line 1939 of file objects-inl.h.

References ASSERT, HEAP, DescriptorArray::kFirstIndex, and FixedArrayBase::length().

static int LengthFor ( int  number_of_descriptors)
inlinestatic

Definition at line 2669 of file objects.h.

int number_of_descriptors_storage ( )
inline

Definition at line 2508 of file objects.h.

int number_of_entries ( )
inline

Definition at line 2518 of file objects.h.

int NumberOfSlackDescriptors ( )
inline

Definition at line 2513 of file objects.h.

Referenced by Map::ShareDescriptor().

void Set ( int  descriptor_number,
Descriptor *  desc 
)
inline
void SetEnumCache ( FixedArray bridge_storage,
FixedArray new_cache,
Object new_index_cache 
)

Definition at line 6053 of file objects.cc.

References ASSERT, FixedArray::cast(), and FixedArrayBase::length().

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

void SetNumberOfDescriptors ( int  number_of_descriptors)
inline
void SetSortedKey ( int  pointer,
int  descriptor_number 
)
inline

Definition at line 2109 of file objects-inl.h.

References DescriptorArray::GetDetails(), and FixedArray::set().

Referenced by DescriptorArray::Append().

Field Documentation

const int kDescriptorDetails = 1
static

Definition at line 2640 of file objects.h.

const int kDescriptorKey = 0
static

Definition at line 2639 of file objects.h.

const int kDescriptorLengthIndex = 0
static

Definition at line 2621 of file objects.h.

const int kDescriptorLengthOffset = FixedArray::kHeaderSize
static

Definition at line 2631 of file objects.h.

Referenced by DescriptorArray::SetNumberOfDescriptors().

const int kDescriptorSize = 3
static

Definition at line 2642 of file objects.h.

const int kDescriptorValue = 2
static

Definition at line 2641 of file objects.h.

const int kEnumCacheBridgeCacheIndex = 0
static

Definition at line 2627 of file objects.h.

const int kEnumCacheBridgeCacheOffset = FixedArray::kHeaderSize
static

Definition at line 2636 of file objects.h.

const int kEnumCacheBridgeIndicesCacheIndex = 1
static

Definition at line 2628 of file objects.h.

const int kEnumCacheBridgeLength = 2
static

Definition at line 2626 of file objects.h.

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

const int kEnumCacheIndex = 1
static

Definition at line 2622 of file objects.h.

const int kEnumCacheOffset = kDescriptorLengthOffset + kPointerSize
static

Definition at line 2632 of file objects.h.

const int kFirstIndex = 2
static

Definition at line 2623 of file objects.h.

Referenced by DescriptorArray::IsEmpty().

const int kFirstOffset = kEnumCacheOffset + kPointerSize
static
const int kMaxNumberOfDescriptors = 1024 + 512
static

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