v8  3.11.10(node0.8.26)
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 Types

enum  SharedMode { MAY_BE_SHARED, CANNOT_BE_SHARED }
 

Public Member Functions

bool IsEmpty ()
 
bool MayContainTransitions ()
 
int number_of_descriptors ()
 
int NextEnumerationIndex ()
 
void SetNextEnumerationIndex (int value)
 
bool HasEnumCache ()
 
ObjectGetEnumCache ()
 
Object ** GetEnumCacheSlot ()
 
Object ** GetTransitionsSlot ()
 
int bit_field3_storage ()
 
void set_bit_field3_storage (int value)
 
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)
 
void SetNullValueUnchecked (int descriptor_number, Heap *heap)
 
PropertyDetails GetDetails (int descriptor_number)
 
void SetDetailsUnchecked (int descriptor_number, Smi *value)
 
PropertyType GetType (int descriptor_number)
 
int GetFieldIndex (int descriptor_number)
 
JSFunctionGetConstantFunction (int descriptor_number)
 
ObjectGetCallbacksObject (int descriptor_number)
 
AccessorDescriptorGetCallbacks (int descriptor_number)
 
bool IsProperty (int descriptor_number)
 
bool IsTransitionOnly (int descriptor_number)
 
bool IsNullDescriptor (int descriptor_number)
 
void Get (int descriptor_number, Descriptor *desc)
 
void Set (int descriptor_number, Descriptor *desc, const WhitenessWitness &)
 
MUST_USE_RESULT MaybeObject * CopyFrom (int dst_index, DescriptorArray *src, int src_index, const WhitenessWitness &)
 
MUST_USE_RESULT MaybeObject * CopyInsert (Descriptor *descriptor, TransitionFlag transition_flag)
 
MUST_USE_RESULT MaybeObject * RemoveTransitions (SharedMode shared_mode)
 
void SortUnchecked (const WhitenessWitness &)
 
void Sort (const WhitenessWitness &)
 
 INLINE (int Search(String *name))
 
 INLINE (int SearchWithCache(String *name))
 
bool Contains (String *name)
 
int BinarySearch (String *name, int low, int high)
 
int LinearSearch (SearchMode mode, String *name, int len)
 
- 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 *global_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 ShortPrint ()
 
void ShortPrint (FILE *out)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static void CopyFrom (Handle< DescriptorArray > dst, int dst_index, Handle< DescriptorArray > src, int src_index, const WhitenessWitness &witness)
 
static MUST_USE_RESULT
MaybeObject * 
Allocate (int number_of_descriptors, SharedMode shared_mode)
 
static DescriptorArraycast (Object *obj)
 
- 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 kBitField3StorageIndex = 0
 
static const int kTransitionsIndex = 1
 
static const int kEnumerationIndexIndex = 2
 
static const int kFirstIndex = 3
 
static const int kEnumCacheBridgeLength = 3
 
static const int kEnumCacheBridgeEnumIndex = 0
 
static const int kEnumCacheBridgeCacheIndex = 1
 
static const int kEnumCacheBridgeIndicesCacheIndex = 2
 
static const int kBitField3StorageOffset = FixedArray::kHeaderSize
 
static const int kTransitionsOffset = kBitField3StorageOffset + kPointerSize
 
static const int kEnumerationIndexOffset = kTransitionsOffset + kPointerSize
 
static const int kFirstOffset = kEnumerationIndexOffset + kPointerSize
 
static const int kEnumCacheBridgeEnumOffset = FixedArray::kHeaderSize
 
static const int kEnumCacheBridgeCacheOffset
 
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 2423 of file objects.h.

Member Enumeration Documentation

enum SharedMode
Enumerator
MAY_BE_SHARED 
CANNOT_BE_SHARED 

Definition at line 2559 of file objects.h.

Member Function Documentation

MaybeObject * Allocate ( int  number_of_descriptors,
SharedMode  shared_mode 
)
static
int BinarySearch ( String name,
int  low,
int  high 
)

Definition at line 6026 of file objects.cc.

References ASSERT, and String::Hash().

int bit_field3_storage ( )
inline
bool Contains ( String name)
inline

Definition at line 2584 of file objects.h.

References DescriptorArray::kNotFound.

void CopyFrom ( Handle< DescriptorArray dst,
int  dst_index,
Handle< DescriptorArray src,
int  src_index,
const WhitenessWitness witness 
)
static
MaybeObject * CopyFrom ( int  dst_index,
DescriptorArray src,
int  src_index,
const WhitenessWitness witness 
)
void Get ( int  descriptor_number,
Descriptor *  desc 
)
inline
Object * GetCallbacksObject ( int  descriptor_number)
inline
JSFunction * GetConstantFunction ( int  descriptor_number)
inline
int GetFieldIndex ( int  descriptor_number)
inline
Object ** GetKeySlot ( int  descriptor_number)
inline
Object** GetTransitionsSlot ( )
inline
Object ** GetValueSlot ( int  descriptor_number)
inline
INLINE ( int   SearchString *name)
INLINE ( int   SearchWithCacheString *name)
bool IsNullDescriptor ( int  descriptor_number)
inline

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

References DescriptorArray::GetType(), and v8::internal::NULL_DESCRIPTOR.

Referenced by Map::PropertyIndexFor().

bool IsProperty ( int  descriptor_number)
inline
int LinearSearch ( SearchMode  mode,
String name,
int  len 
)

Definition at line 6053 of file objects.cc.

References String::Equals(), v8::internal::EXPECT_SORTED, and String::Hash().

bool MayContainTransitions ( )
inline
MaybeObject * RemoveTransitions ( SharedMode  shared_mode)
void Set ( int  descriptor_number,
Descriptor *  desc,
const WhitenessWitness  
)
inline
void set_bit_field3_storage ( int  value)
inline
void SetDetailsUnchecked ( int  descriptor_number,
Smi value 
)
inline
void SetEnumCache ( FixedArray bridge_storage,
FixedArray new_cache,
Object new_index_cache 
)

Definition at line 5782 of file objects.cc.

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

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

void SetNullValueUnchecked ( int  descriptor_number,
Heap heap 
)
inline
void Sort ( const WhitenessWitness witness)

Definition at line 6020 of file objects.cc.

References SLOW_ASSERT.

Referenced by StringDictionary::TransformPropertiesToFastFor().

void SortUnchecked ( const WhitenessWitness witness)

Definition at line 5967 of file objects.cc.

Referenced by Heap::AllocateInitialMap().

Field Documentation

const int kBitField3StorageIndex = 0
static

Definition at line 2608 of file objects.h.

const int kBitField3StorageOffset = FixedArray::kHeaderSize
static
const int kDescriptorDetails = 1
static

Definition at line 2632 of file objects.h.

const int kDescriptorKey = 0
static

Definition at line 2631 of file objects.h.

const int kDescriptorSize = 3
static

Definition at line 2634 of file objects.h.

Referenced by DescriptorArray::number_of_descriptors().

const int kDescriptorValue = 2
static

Definition at line 2633 of file objects.h.

const int kEnumCacheBridgeCacheIndex = 1
static

Definition at line 2616 of file objects.h.

Referenced by DescriptorArray::GetEnumCache().

const int kEnumCacheBridgeCacheOffset
static
Initial value:

Definition at line 2627 of file objects.h.

const int kEnumCacheBridgeEnumIndex = 0
static

Definition at line 2615 of file objects.h.

Referenced by DescriptorArray::NextEnumerationIndex().

const int kEnumCacheBridgeEnumOffset = FixedArray::kHeaderSize
static

Definition at line 2626 of file objects.h.

const int kEnumCacheBridgeIndicesCacheIndex = 2
static

Definition at line 2617 of file objects.h.

const int kEnumCacheBridgeLength = 3
static

Definition at line 2614 of file objects.h.

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

const int kEnumerationIndexOffset = kTransitionsOffset + kPointerSize
static

Definition at line 2622 of file objects.h.

Referenced by DescriptorArray::GetEnumCacheSlot().

const int kFirstIndex = 3
static

Definition at line 2611 of file objects.h.

Referenced by DescriptorArray::IsEmpty(), and DescriptorArray::number_of_descriptors().

const int kFirstOffset = kEnumerationIndexOffset + kPointerSize
static
const int kMaxNumberOfDescriptors = 1024 + 512
static
const int kTransitionsIndex = 1
static
const int kTransitionsOffset = kBitField3StorageOffset + kPointerSize
static

Definition at line 2621 of file objects.h.

Referenced by DescriptorArray::GetTransitionsSlot().


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