v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::SmallOrderedNameDictionary Class Reference

#include <ordered-hash-table.h>

Inheritance diagram for v8::internal::SmallOrderedNameDictionary:
Collaboration diagram for v8::internal::SmallOrderedNameDictionary:

Public Member Functions

Tagged< ObjectValueAt (InternalIndex entry)
 
void ValueAtPut (InternalIndex entry, Tagged< Object > value)
 
PropertyDetails DetailsAt (InternalIndex entry)
 
void DetailsAtPut (InternalIndex entry, PropertyDetails value)
 
void SetHash (int hash)
 
int Hash ()
 
V8_EXPORT_PRIVATE void SetEntry (InternalIndex entry, Tagged< Object > key, Tagged< Object > value, PropertyDetails details)
 
 OBJECT_CONSTRUCTORS (SmallOrderedNameDictionary, SmallOrderedHashTable< SmallOrderedNameDictionary >)
 
- Public Member Functions inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
void Initialize (Isolate *isolate, int capacity)
 
Handle< SmallOrderedHashSetAllocate (Isolate *isolate, int capacity, AllocationType allocation)
 
Handle< SmallOrderedHashMapAllocate (Isolate *isolate, int capacity, AllocationType allocation)
 
Handle< SmallOrderedNameDictionaryAllocate (Isolate *isolate, int capacity, AllocationType allocation)
 
bool HasKey (Isolate *isolate, DirectHandle< Object > key)
 
InternalIndex FindEntry (Isolate *isolate, Tagged< Object > key)
 
InternalIndex V8_EXPORT_PRIVATE FindEntry (Isolate *isolate, Tagged< Object > key)
 
int Capacity () const
 
int NumberOfElements () const
 
int NumberOfDeletedElements () const
 
int NumberOfBuckets () const
 
V8_INLINE Tagged< ObjectKeyAt (InternalIndex entry) const
 
InternalIndex::Range IterateEntries ()
 
- Public Member Functions inherited from v8::internal::HeapObject
constexpr HeapObject ()=default
 
void set_map (Isolate *isolate, Tagged< Map > value)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value)
 
ObjectSlot map_slot () const
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
bool release_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
bool relaxed_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
template<typename IsolateT >
void set_map_after_allocation (IsolateT *isolate, Tagged< Map > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void set_map_word (Tagged< Map > map, RelaxedStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, RelaxedStoreTag)
 
void set_map_word (Tagged< Map > map, ReleaseStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, ReleaseStoreTag)
 
ReadOnlyRoots EarlyGetReadOnlyRoots () const
 
Address address () const
 
V8_EXPORT_PRIVATE int SizeFromMap (Tagged< Map > map) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
T ReadField (size_t offset) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
void WriteField (size_t offset, T value) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Relaxed_ReadField (size_t offset) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
void Relaxed_WriteField (size_t offset, T value)
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Acquire_ReadField (size_t offset) const
 
Address ReadSandboxedPointerField (size_t offset, PtrComprCageBase cage_base) const
 
void WriteSandboxedPointerField (size_t offset, PtrComprCageBase cage_base, Address value)
 
void WriteSandboxedPointerField (size_t offset, Isolate *isolate, Address value)
 
size_t ReadBoundedSizeField (size_t offset) const
 
void WriteBoundedSizeField (size_t offset, size_t value)
 
template<ExternalPointerTag tag>
void InitExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
template<ExternalPointerTagRange tag_range>
Address ReadExternalPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<CppHeapPointerTag lower_bound, CppHeapPointerTag upper_bound>
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate) const
 
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, CppHeapPointerTagRange tag_range) const
 
template<ExternalPointerTag tag>
void WriteExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedExternalPointerField (size_t offset)
 
bool IsLazilyInitializedExternalPointerFieldInitialized (size_t offset) const
 
template<ExternalPointerTag tag>
void WriteLazilyInitializedExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedCppHeapPointerField (size_t offset)
 
template<CppHeapPointerTag tag>
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value)
 
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value, CppHeapPointerTag tag)
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
Tagged< ObjectReadMaybeEmptyTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
void WriteTrustedPointerField (size_t offset, Tagged< ExposedTrustedObject > value)
 
bool IsTrustedPointerFieldEmpty (size_t offset) const
 
bool IsTrustedPointerFieldUnpublished (size_t offset, IndirectPointerTag tag, IsolateForSandbox isolate) const
 
void ClearTrustedPointerField (size_t offest)
 
void ClearTrustedPointerField (size_t offest, ReleaseStoreTag)
 
Tagged< CodeReadCodePointerField (size_t offset, IsolateForSandbox isolate) const
 
void WriteCodePointerField (size_t offset, Tagged< Code > value)
 
bool IsCodePointerFieldEmpty (size_t offset) const
 
void ClearCodePointerField (size_t offest)
 
Address ReadCodeEntrypointViaCodePointerField (size_t offset, CodeEntrypointTag tag) const
 
void WriteCodeEntrypointViaCodePointerField (size_t offset, Address value, CodeEntrypointTag tag)
 
ObjectSlot RawField (int byte_offset) const
 
MaybeObjectSlot RawMaybeWeakField (int byte_offset) const
 
InstructionStreamSlot RawInstructionStreamField (int byte_offset) const
 
ExternalPointerSlot RawExternalPointerField (int byte_offset, ExternalPointerTagRange tag_range) const
 
CppHeapPointerSlot RawCppHeapPointerField (int byte_offset) const
 
IndirectPointerSlot RawIndirectPointerField (int byte_offset, IndirectPointerTag tag) const
 
WriteBarrierMode GetWriteBarrierMode (const DisallowGarbageCollection &promise)
 
void HeapObjectShortPrint (std::ostream &os)
 
void Print ()
 
bool CheckRequiredAlignment (PtrComprCageBase cage_base) const
 
bool NeedsRehashing (InstanceType instance_type) const
 
bool NeedsRehashing (PtrComprCageBase cage_base) const
 
bool CanBeRehashed (PtrComprCageBase cage_base) const
 
template<typename IsolateT >
void RehashBasedOnMap (IsolateT *isolate)
 
Address GetFieldAddress (int field_offset) const
 
HeapObjectoperator-> ()
 
const HeapObjectoperator-> () const
 
template<HeapObject::EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, MemoryOrder order, VerificationMode mode)
 
- Public Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
V8_INLINE constexpr TaggedImpl ()
 
V8_INLINE constexpr TaggedImpl (Address ptr)
 
 operator bool () const=delete
 
constexpr bool operator== (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool operator!= (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool SafeEquals (TaggedImpl< kOtherRefType, Address > other) const
 
constexpr bool operator< (TaggedImpl other) const
 
V8_INLINE constexpr Address ptr () const
 
constexpr bool IsObject () const
 
constexpr bool IsSmi () const
 
bool ToSmi (Tagged< Smi > *value) const
 
Tagged< SmiToSmi () const
 
constexpr bool IsHeapObject () const
 
constexpr bool IsCleared () const
 
constexpr bool IsStrongOrWeak () const
 
constexpr bool IsStrong () const
 
constexpr bool IsStrongOrSmi () const
 
constexpr bool IsWeak () const
 
constexpr bool IsWeakOrCleared () const
 
bool GetHeapObjectIfStrong (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfStrong (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong () const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong (Isolate *isolate) const
 
bool GetHeapObjectIfWeak (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfWeak (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak () const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak (Isolate *isolate) const
 
bool GetHeapObject (Tagged< HeapObject > *result) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result) const
 
bool GetHeapObject (Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
Tagged< HeapObjectGetHeapObject () const
 
Tagged< HeapObjectGetHeapObject (Isolate *isolate) const
 
Tagged< ObjectGetHeapObjectOrSmi () const
 
Tagged< ObjectGetHeapObjectOrSmi (Isolate *isolate) const
 
Tagged< Tcast () const
 

Static Public Member Functions

static Handle< SmallOrderedNameDictionaryRehash (Isolate *isolate, Handle< SmallOrderedNameDictionary > table, int new_capacity)
 
static V8_EXPORT_PRIVATE Handle< SmallOrderedNameDictionaryDeleteEntry (Isolate *isolate, Handle< SmallOrderedNameDictionary > table, InternalIndex entry)
 
static V8_EXPORT_PRIVATE MaybeHandle< SmallOrderedNameDictionaryAdd (Isolate *isolate, Handle< SmallOrderedNameDictionary > table, DirectHandle< Name > key, DirectHandle< Object > value, PropertyDetails details)
 
static DirectHandle< MapGetMap (RootsTable &roots)
 
static bool Is (DirectHandle< HeapObject > table)
 
- Static Public Member Functions inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
static Handle< SmallOrderedNameDictionaryAllocate (Isolate *isolate, int capacity, AllocationType allocation=AllocationType::kYoung)
 
static bool Delete (Isolate *isolate, Tagged< SmallOrderedNameDictionary > table, Tagged< Object > key)
 
static MaybeHandle< SmallOrderedNameDictionaryGrow (Isolate *isolate, Handle< SmallOrderedNameDictionary > table)
 
static Handle< SmallOrderedNameDictionaryShrink (Isolate *isolate, Handle< SmallOrderedNameDictionary > table)
 
static int SizeFor (int capacity)
 
- Static Public Member Functions inherited from v8::internal::HeapObject
static void SetFillerMap (const WritableFreeSpace &writable_page, Tagged< Map > value)
 
static Tagged< HeapObjectFromAddress (Address address)
 
template<typename CompareAndSwapImpl >
static Tagged< ObjectSeqCst_CompareAndSwapField (Tagged< Object > expected_value, Tagged< Object > new_value, CompareAndSwapImpl compare_and_swap_impl)
 
template<typename ObjectType >
static JSDispatchHandle AllocateAndInstallJSDispatchHandle (ObjectType host, size_t offset, Isolate *isolate, uint16_t parameter_count, DirectHandle< Code > code, WriteBarrierMode mode=WriteBarrierMode::UPDATE_WRITE_BARRIER)
 
static void Print (Tagged< Object > obj)
 
static void Print (Tagged< Object > obj, std::ostream &os)
 
static AllocationAlignment RequiredAlignment (Tagged< Map > map)
 

Static Public Attributes

static const int kKeyIndex = 0
 
static const int kValueIndex = 1
 
static const int kPropertyDetailsIndex = 2
 
static const int kEntrySize = 3
 
static const int kPrefixSize = 1
 
- Static Public Attributes inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
static const int kMinCapacity
 
static const uint8_t kNotFound
 
static const int kMaxCapacity
 
static const int kLoadFactor
 
static const int kGrowthHack
 
- Static Public Attributes inherited from v8::internal::HeapObject
static constexpr int kMapOffset = offsetof(HeapObjectLayout, map_)
 
static constexpr int kHeaderSize = sizeof(HeapObjectLayout)
 
- Static Public Attributes inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
static const bool kIsFull
 
static const bool kCanBeWeak
 

Additional Inherited Members

- Public Types inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
using Offset
 
using ByteIndex
 
- Public Types inherited from v8::internal::HeapObject
using MapField = TaggedField<MapWord, HeapObject::kMapOffset>
 
- Protected Member Functions inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
void SetDataEntry (int entry, int relative_index, Tagged< Object > value)
 
Offset GetBucketsStartOffset () const
 
Address GetHashTableStartAddress (int capacity) const
 
void SetFirstEntry (int bucket, uint8_t value)
 
int GetFirstEntry (int bucket) const
 
Offset GetChainTableOffset () const
 
void SetNextEntry (int entry, int next_entry)
 
int GetNextEntry (int entry) const
 
V8_INLINE Tagged< ObjectGetDataEntry (int entry, int relative_index)
 
int HashToBucket (int hash) const
 
int HashToFirstEntry (int hash) const
 
void SetNumberOfBuckets (int num)
 
void SetNumberOfElements (int num)
 
void SetNumberOfDeletedElements (int num)
 
uint8_t getByte (Offset offset, ByteIndex index) const
 
void setByte (Offset offset, ByteIndex index, uint8_t value)
 
Offset GetDataEntryOffset (int entry, int relative_index) const
 
int UsedCapacity () const
 
- Protected Member Functions inherited from v8::internal::HeapObject
V8_INLINE constexpr HeapObject (Address ptr, HeapObject::SkipTypeCheckTag)
 
 HeapObject (Address ptr)
 
Address field_address (size_t offset) const
 
- Protected Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
Addressptr_location ()
 
const Addressptr_location () const
 
- Static Protected Member Functions inherited from v8::internal::SmallOrderedHashTable< SmallOrderedNameDictionary >
static Handle< SmallOrderedNameDictionaryRehash (Isolate *isolate, Handle< SmallOrderedNameDictionary > table, int new_capacity)
 
static constexpr Offset PrefixOffset ()
 
static constexpr Offset NumberOfElementsOffset ()
 
static constexpr Offset NumberOfDeletedElementsOffset ()
 
static constexpr Offset NumberOfBucketsOffset ()
 
static constexpr Offset PaddingOffset ()
 
static constexpr size_t PaddingSize ()
 
static constexpr Offset DataTableStartOffset ()
 
static constexpr int DataTableSizeFor (int capacity)
 
- Static Protected Member Functions inherited from v8::internal::HeapObject
template<typename T >
static bool IsSmi (T obj)
 
template<typename T >
static bool IsHeapObject (T obj)
 

Detailed Description

Definition at line 905 of file ordered-hash-table.h.

Member Function Documentation

◆ Add()

MaybeHandle< SmallOrderedNameDictionary > v8::internal::SmallOrderedNameDictionary::Add ( Isolate * isolate,
Handle< SmallOrderedNameDictionary > table,
DirectHandle< Name > key,
DirectHandle< Object > value,
PropertyDetails details )
static

Definition at line 836 of file ordered-hash-table.cc.

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

◆ DeleteEntry()

Handle< SmallOrderedNameDictionary > v8::internal::SmallOrderedNameDictionary::DeleteEntry ( Isolate * isolate,
Handle< SmallOrderedNameDictionary > table,
InternalIndex entry )
static

Definition at line 923 of file ordered-hash-table.cc.

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

◆ DetailsAt()

PropertyDetails v8::internal::SmallOrderedNameDictionary::DetailsAt ( InternalIndex entry)
inline

Definition at line 142 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

◆ DetailsAtPut()

void v8::internal::SmallOrderedNameDictionary::DetailsAtPut ( InternalIndex entry,
PropertyDetails value )
inline

Definition at line 150 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

◆ GetMap()

DirectHandle< Map > v8::internal::SmallOrderedNameDictionary::GetMap ( RootsTable & roots)
inlinestatic

Definition at line 72 of file ordered-hash-table-inl.h.

◆ Hash()

int v8::internal::SmallOrderedNameDictionary::Hash ( )
inline

Definition at line 205 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

◆ Is()

bool v8::internal::SmallOrderedNameDictionary::Is ( DirectHandle< HeapObject > table)
inlinestatic

Definition at line 172 of file ordered-hash-table-inl.h.

◆ OBJECT_CONSTRUCTORS()

v8::internal::SmallOrderedNameDictionary::OBJECT_CONSTRUCTORS ( SmallOrderedNameDictionary ,
SmallOrderedHashTable< SmallOrderedNameDictionary >  )

◆ Rehash()

Handle< SmallOrderedNameDictionary > v8::internal::SmallOrderedNameDictionary::Rehash ( Isolate * isolate,
Handle< SmallOrderedNameDictionary > table,
int new_capacity )
static

Definition at line 991 of file ordered-hash-table.cc.

Here is the call graph for this function:

◆ SetEntry()

void v8::internal::SmallOrderedNameDictionary::SetEntry ( InternalIndex entry,
Tagged< Object > key,
Tagged< Object > value,
PropertyDetails details )

Definition at line 879 of file ordered-hash-table.cc.

Here is the call graph for this function:

◆ SetHash()

void v8::internal::SmallOrderedNameDictionary::SetHash ( int hash)
inline

Definition at line 200 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

◆ ValueAt()

Tagged< Object > v8::internal::SmallOrderedNameDictionary::ValueAt ( InternalIndex entry)
inline

Definition at line 131 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

◆ ValueAtPut()

void v8::internal::SmallOrderedNameDictionary::ValueAtPut ( InternalIndex entry,
Tagged< Object > value )
inline

Definition at line 136 of file ordered-hash-table-inl.h.

Here is the call graph for this function:

Member Data Documentation

◆ kEntrySize

const int v8::internal::SmallOrderedNameDictionary::kEntrySize = 3
static

Definition at line 937 of file ordered-hash-table.h.

◆ kKeyIndex

const int v8::internal::SmallOrderedNameDictionary::kKeyIndex = 0
static

Definition at line 934 of file ordered-hash-table.h.

◆ kPrefixSize

const int v8::internal::SmallOrderedNameDictionary::kPrefixSize = 1
static

Definition at line 938 of file ordered-hash-table.h.

◆ kPropertyDetailsIndex

const int v8::internal::SmallOrderedNameDictionary::kPropertyDetailsIndex = 2
static

Definition at line 936 of file ordered-hash-table.h.

◆ kValueIndex

const int v8::internal::SmallOrderedNameDictionary::kValueIndex = 1
static

Definition at line 935 of file ordered-hash-table.h.


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