![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <descriptor-array.h>
Public Types | |
using | EntryKeyField = TaggedField<HeapObject, kEntryKeyOffset> |
using | EntryDetailsField = TaggedField<Smi, kEntryDetailsOffset> |
using | EntryValueField = TaggedField<MaybeObject, kEntryValueOffset> |
Public Member Functions | |
int16_t | number_of_slack_descriptors () const |
int | number_of_entries () const |
void | ClearEnumCache () |
void | CopyEnumCacheFrom (Tagged< DescriptorArray > array) |
Tagged< Name > | GetKey (InternalIndex descriptor_number) const |
Tagged< Name > | GetKey (PtrComprCageBase cage_base, InternalIndex descriptor_number) const |
Tagged< Object > | GetStrongValue (InternalIndex descriptor_number) |
Tagged< Object > | GetStrongValue (PtrComprCageBase cage_base, InternalIndex descriptor_number) |
Tagged< MaybeObject > | GetValue (InternalIndex descriptor_number) |
Tagged< MaybeObject > | GetValue (PtrComprCageBase cage_base, InternalIndex descriptor_number) |
PropertyDetails | GetDetails (InternalIndex descriptor_number) |
int | GetFieldIndex (InternalIndex descriptor_number) |
Tagged< FieldType > | GetFieldType (InternalIndex descriptor_number) |
Tagged< FieldType > | GetFieldType (PtrComprCageBase cage_base, InternalIndex descriptor_number) |
bool | IsInitializedDescriptor (InternalIndex descriptor_number) const |
Tagged< Name > | GetSortedKey (int descriptor_number) |
Tagged< Name > | GetSortedKey (PtrComprCageBase cage_base, int descriptor_number) |
int | GetSortedKeyIndex (int descriptor_number) |
void | Set (InternalIndex descriptor_number, Descriptor *desc) |
void | Set (InternalIndex descriptor_number, Tagged< Name > key, Tagged< MaybeObject > value, PropertyDetails details) |
void | Replace (InternalIndex descriptor_number, Descriptor *descriptor) |
void | GeneralizeAllFields (bool clear_constness) |
void | Append (Descriptor *desc) |
V8_EXPORT_PRIVATE void | Sort () |
V8_EXPORT_PRIVATE void | CheckNameCollisionDuringInsertion (Descriptor *desc, uint32_t descriptor_hash, int insertion_index) |
V8_INLINE InternalIndex | Search (Tagged< Name > name, int number_of_own_descriptors, bool concurrent_search=false) |
V8_INLINE InternalIndex | Search (Tagged< Name > name, Tagged< Map > map, bool concurrent_search=false) |
V8_INLINE InternalIndex | Search (int field_offset, int number_of_own_descriptors) |
V8_INLINE InternalIndex | Search (int field_offset, Tagged< Map > map) |
V8_INLINE InternalIndex | SearchWithCache (Isolate *isolate, Tagged< Name > name, Tagged< Map > map) |
bool | IsEqualUpTo (Tagged< DescriptorArray > desc, int nof_descriptors) |
void | Initialize (Tagged< EnumCache > enum_cache, Tagged< HeapObject > undefined_value, int nof_descriptors, int slack, uint32_t raw_gc_state) |
ObjectSlot | GetFirstPointerSlot () |
ObjectSlot | GetDescriptorSlot (int descriptor) |
void | PrintDescriptors (std::ostream &os) |
void | PrintDescriptorDetails (std::ostream &os, InternalIndex descriptor, PropertyDetails::PrintMode mode) |
template<typename IsolateT > | |
Handle< DescriptorArray > | Allocate (IsolateT *isolate, int nof_descriptors, int slack, AllocationType allocation) |
Static Public Member Functions | |
static void | InitializeOrChangeEnumCache (DirectHandle< DescriptorArray > descriptors, Isolate *isolate, DirectHandle< FixedArray > keys, DirectHandle< FixedArray > indices, AllocationType allocation_if_initialize) |
static DirectHandle< DescriptorArray > | CopyUpTo (Isolate *isolate, DirectHandle< DescriptorArray > desc, int enumeration_index, int slack=0) |
static DirectHandle< DescriptorArray > | CopyUpToAddAttributes (Isolate *isolate, DirectHandle< DescriptorArray > desc, int enumeration_index, PropertyAttributes attributes, int slack=0) |
template<typename IsolateT > | |
static V8_EXPORT_PRIVATE Handle< DescriptorArray > | Allocate (IsolateT *isolate, int nof_descriptors, int slack, AllocationType allocation=AllocationType::kYoung) |
static constexpr int | SizeFor (int number_of_all_descriptors) |
static constexpr int | OffsetOfDescriptorAt (int descriptor) |
static constexpr int | ToDetailsIndex (int descriptor_number) |
static constexpr int | ToKeyIndex (int descriptor_number) |
static constexpr int | ToValueIndex (int descriptor_number) |
Static Public Attributes | |
static const int | kNotFound = -1 |
static constexpr size_t | kSizeOfRawGcState |
static const int | kEntryKeyIndex = 0 |
static const int | kEntryDetailsIndex = 1 |
static const int | kEntryValueIndex = 2 |
static const int | kEntrySize = 3 |
static const int | kEntryKeyOffset = kEntryKeyIndex * kTaggedSize |
static const int | kEntryDetailsOffset = kEntryDetailsIndex * kTaggedSize |
static const int | kEntryValueOffset = kEntryValueIndex * kTaggedSize |
Private Member Functions | |
void | SetKey (InternalIndex descriptor_number, Tagged< Name > key) |
void | SetValue (InternalIndex descriptor_number, Tagged< MaybeObject > value) |
void | SetDetails (InternalIndex descriptor_number, PropertyDetails details) |
V8_INLINE InternalIndex | BinarySearch (Tagged< Name > name, int number_of_own_descriptors) |
V8_INLINE InternalIndex | LinearSearch (Tagged< Name > name, int number_of_own_descriptors) |
void | CopyFrom (InternalIndex index, Tagged< DescriptorArray > src) |
void | SetSortedKey (int pointer, int descriptor_number) |
void | SwapSortedKeys (int first, int second) |
Definition at line 54 of file descriptor-array.h.
Definition at line 229 of file descriptor-array.h.
Definition at line 228 of file descriptor-array.h.
Definition at line 230 of file descriptor-array.h.
Handle< DescriptorArray > v8::internal::DescriptorArray::Allocate | ( | IsolateT * | isolate, |
int | nof_descriptors, | ||
int | slack, | ||
AllocationType | allocation ) |
Definition at line 3873 of file objects.cc.
|
static |
|
inline |
|
private |
Definition at line 75 of file descriptor-array-inl.h.
void v8::internal::DescriptorArray::CheckNameCollisionDuringInsertion | ( | Descriptor * | desc, |
uint32_t | descriptor_hash, | ||
int | insertion_index ) |
Definition at line 3989 of file objects.cc.
void v8::internal::DescriptorArray::ClearEnumCache | ( | ) |
|
inline |
Definition at line 52 of file descriptor-array-inl.h.
|
private |
|
static |
Definition at line 3704 of file objects.cc.
|
static |
Definition at line 3711 of file objects.cc.
void v8::internal::DescriptorArray::GeneralizeAllFields | ( | bool | clear_constness | ) |
|
inline |
Definition at line 175 of file descriptor-array-inl.h.
|
inline |
Definition at line 266 of file descriptor-array-inl.h.
|
inline |
|
inline |
Definition at line 285 of file descriptor-array-inl.h.
|
inline |
|
inline |
Definition at line 167 of file descriptor-array-inl.h.
|
inline |
Definition at line 195 of file descriptor-array-inl.h.
|
inline |
Definition at line 220 of file descriptor-array-inl.h.
|
inline |
|
inline |
Definition at line 216 of file descriptor-array-inl.h.
|
inline |
Definition at line 235 of file descriptor-array-inl.h.
|
inline |
|
inline |
Definition at line 254 of file descriptor-array-inl.h.
|
inline |
void v8::internal::DescriptorArray::Initialize | ( | Tagged< EnumCache > | enum_cache, |
Tagged< HeapObject > | undefined_value, | ||
int | nof_descriptors, | ||
int | slack, | ||
uint32_t | raw_gc_state ) |
|
static |
bool v8::internal::DescriptorArray::IsEqualUpTo | ( | Tagged< DescriptorArray > | desc, |
int | nof_descriptors ) |
|
inline |
|
private |
Definition at line 111 of file descriptor-array-inl.h.
|
inline |
Definition at line 48 of file descriptor-array-inl.h.
|
inline |
Definition at line 44 of file descriptor-array-inl.h.
|
inlinestaticconstexpr |
void v8::internal::DescriptorArray::PrintDescriptorDetails | ( | std::ostream & | os, |
InternalIndex | descriptor, | ||
PropertyDetails::PrintMode | mode ) |
void v8::internal::DescriptorArray::PrintDescriptors | ( | std::ostream & | os | ) |
void v8::internal::DescriptorArray::Replace | ( | InternalIndex | descriptor_number, |
Descriptor * | descriptor ) |
InternalIndex v8::internal::DescriptorArray::Search | ( | int | field_offset, |
int | number_of_own_descriptors ) |
InternalIndex v8::internal::DescriptorArray::Search | ( | int | field_offset, |
Tagged< Map > | map ) |
InternalIndex v8::internal::DescriptorArray::Search | ( | Tagged< Name > | name, |
int | number_of_own_descriptors, | ||
bool | concurrent_search = false ) |
Definition at line 56 of file descriptor-array-inl.h.
|
inline |
Definition at line 306 of file descriptor-array-inl.h.
|
inline |
|
inlineprivate |
Definition at line 273 of file descriptor-array-inl.h.
|
inlineprivate |
Definition at line 208 of file descriptor-array-inl.h.
|
inlineprivate |
Definition at line 230 of file descriptor-array-inl.h.
|
inlineprivate |
Definition at line 246 of file descriptor-array-inl.h.
|
inlinestaticconstexpr |
void v8::internal::DescriptorArray::Sort | ( | ) |
|
inlineprivate |
Definition at line 339 of file descriptor-array-inl.h.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
static |
Definition at line 191 of file descriptor-array.h.
|
static |
Definition at line 196 of file descriptor-array.h.
|
static |
Definition at line 190 of file descriptor-array.h.
|
static |
Definition at line 195 of file descriptor-array.h.
|
static |
Definition at line 193 of file descriptor-array.h.
|
static |
Definition at line 192 of file descriptor-array.h.
|
static |
Definition at line 197 of file descriptor-array.h.
|
static |
Definition at line 161 of file descriptor-array.h.
|
staticconstexpr |
Definition at line 168 of file descriptor-array.h.