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

#include <swiss-name-dictionary.h>

Inheritance diagram for v8::internal::SwissNameDictionary:
Collaboration diagram for v8::internal::SwissNameDictionary:

Classes

class  BodyDescriptor
 
class  IndexIterable
 
class  IndexIterator
 

Public Types

using Group = swiss_table::Group
 
using Offset = int
 
- Public Types inherited from v8::internal::HeapObject
using MapField = TaggedField<MapWord, HeapObject::kMapOffset>
 

Public Member Functions

template<typename IsolateT >
InternalIndex FindEntry (IsolateT *isolate, Tagged< Object > key)
 
template<typename IsolateT >
InternalIndex FindEntry (IsolateT *isolate, DirectHandle< Object > key)
 
bool ToKey (ReadOnlyRoots roots, InternalIndex entry, Tagged< Object > *out_key)
 
Tagged< ObjectKeyAt (InternalIndex entry)
 
Tagged< NameNameAt (InternalIndex entry)
 
Tagged< ObjectValueAt (InternalIndex entry)
 
std::optional< Tagged< Object > > TryValueAt (InternalIndex entry)
 
PropertyDetails DetailsAt (InternalIndex entry)
 
void ValueAtPut (InternalIndex entry, Tagged< Object > value)
 
void DetailsAtPut (InternalIndex entry, PropertyDetails value)
 
int NumberOfElements ()
 
int NumberOfDeletedElements ()
 
int Capacity ()
 
int UsedCapacity ()
 
int NumberOfEnumerableProperties ()
 
bool may_have_interesting_properties ()
 
void set_may_have_interesting_properties (bool value)
 
bool EqualsForTesting (Tagged< SwissNameDictionary > other)
 
template<typename IsolateT >
void Initialize (IsolateT *isolate, Tagged< ByteArray > meta_table, int capacity)
 
template<typename IsolateT >
void Rehash (IsolateT *isolate)
 
void SetHash (int hash)
 
int Hash ()
 
Tagged< ObjectSlowReverseLookup (Isolate *isolate, Tagged< Object > value)
 
IndexIterable IterateEntriesOrdered ()
 
IndexIterable IterateEntries ()
 
int EntryForEnumerationIndex (int enumeration_index)
 
 OBJECT_CONSTRUCTORS (SwissNameDictionary, HeapObject)
 
- 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

template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
static HandleType< SwissNameDictionaryAdd (IsolateT *isolate, HandleType< SwissNameDictionary > table, DirectHandle< Name > key, DirectHandle< Object > value, PropertyDetails details, InternalIndex *entry_out=nullptr)
 
template<template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
static HandleType< SwissNameDictionaryShrink (Isolate *isolate, HandleType< SwissNameDictionary > table)
 
template<template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
static HandleType< SwissNameDictionaryDeleteEntry (Isolate *isolate, HandleType< SwissNameDictionary > table, InternalIndex entry)
 
static bool IsKey (ReadOnlyRoots roots, Tagged< Object > key_candidate)
 
static DirectHandle< SwissNameDictionaryShallowCopy (Isolate *isolate, DirectHandle< SwissNameDictionary > table)
 
template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
static HandleType< SwissNameDictionaryRehash (IsolateT *isolate, HandleType< SwissNameDictionary > table, int new_capacity)
 
static constexpr bool IsValidCapacity (int capacity)
 
static int CapacityFor (int at_least_space_for)
 
static constexpr int MaxUsableCapacity (int capacity)
 
static constexpr int MaxCapacity ()
 
static constexpr int SizeFor (int capacity)
 
static constexpr int MetaTableSizePerEntryFor (int capacity)
 
static constexpr int MetaTableSizeFor (int capacity)
 
static constexpr int DataTableSize (int capacity)
 
static constexpr int CtrlTableSize (int capacity)
 
static constexpr Offset PrefixOffset ()
 
static constexpr Offset CapacityOffset ()
 
static constexpr Offset MetaTablePointerOffset ()
 
static constexpr Offset DataTableStartOffset ()
 
static constexpr Offset DataTableEndOffset (int capacity)
 
static constexpr Offset CtrlTableStartOffset (int capacity)
 
static constexpr Offset PropertyDetailsTableStartOffset (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 constexpr bool kIsOrderedDictionaryType = true
 
static constexpr int kNotFoundSentinel = -1
 
static const int kGroupWidth = Group::kWidth
 
static const bool kUseSIMD = kGroupWidth == 16
 
static constexpr int kInitialCapacity = kSwissNameDictionaryInitialCapacity
 
static constexpr int kDataTableEntryCount = 2
 
static constexpr int kDataTableKeyEntryIndex = 0
 
static constexpr int kDataTableValueEntryIndex = kDataTableKeyEntryIndex + 1
 
static constexpr int kMetaTableElementCountFieldIndex = 0
 
static constexpr int kMetaTableDeletedElementCountFieldIndex = 1
 
static constexpr int kMetaTableEnumerationDataStartIndex = 2
 
static constexpr int kMax1ByteMetaTableCapacity = (1 << 8)
 
static constexpr int kMax2ByteMetaTableCapacity = (1 << 16)
 
- 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
 

Private Types

using ctrl_t = swiss_table::ctrl_t
 
using Ctrl = swiss_table::Ctrl
 

Private Member Functions

uint8_t * PropertyDetailsTable ()
 
void ClearDataTableEntry (Isolate *isolate, int entry)
 
void SetKey (int entry, Tagged< Object > key)
 
void DetailsAtPut (int entry, PropertyDetails value)
 
void ValueAtPut (int entry, Tagged< Object > value)
 
PropertyDetails DetailsAt (int entry)
 
Tagged< ObjectValueAtRaw (int entry)
 
Tagged< ObjectKeyAt (int entry)
 
bool ToKey (ReadOnlyRoots roots, int entry, Tagged< Object > *out_key)
 
int FindFirstEmpty (uint32_t hash)
 
int AddInternal (Tagged< Name > key, Tagged< Object > value, PropertyDetails details)
 
ctrl_tCtrlTable ()
 
void SetCtrl (int entry, ctrl_t h)
 
ctrl_t GetCtrl (int entry)
 
Tagged< ObjectLoadFromDataTable (int entry, int data_offset)
 
Tagged< ObjectLoadFromDataTable (PtrComprCageBase cage_base, int entry, int data_offset)
 
void StoreToDataTable (int entry, int data_offset, Tagged< Object > data)
 
void StoreToDataTableNoBarrier (int entry, int data_offset, Tagged< Object > data)
 
void SetCapacity (int capacity)
 
void SetNumberOfElements (int elements)
 
void SetNumberOfDeletedElements (int deleted_elements)
 
void SetEntryForEnumerationIndex (int enumeration_index, int entry)
 
void SetMetaTableField (int field_index, int value)
 
int GetMetaTableField (int field_index)
 

Static Private Member Functions

template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
static HandleType< SwissNameDictionaryEnsureGrowable (IsolateT *isolate, HandleType< SwissNameDictionary > table)
 
static bool IsEmpty (ctrl_t c)
 
static bool IsFull (ctrl_t c)
 
static bool IsDeleted (ctrl_t c)
 
static bool IsEmptyOrDeleted (ctrl_t c)
 
static swiss_table::ProbeSequence< Group::kWidthprobe (uint32_t hash, int capacity)
 
template<typename T >
static void SetMetaTableField (Tagged< ByteArray > meta_table, int field_index, int value)
 
template<typename T >
static int GetMetaTableField (Tagged< ByteArray > meta_table, int field_index)
 

Additional Inherited Members

- 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::HeapObject
template<typename T >
static bool IsSmi (T obj)
 
template<typename T >
static bool IsHeapObject (T obj)
 

Detailed Description

Definition at line 71 of file swiss-name-dictionary.h.

Member Typedef Documentation

◆ Ctrl

◆ ctrl_t

◆ Group

◆ Offset

Member Function Documentation

◆ Add()

template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
HandleType< SwissNameDictionary > v8::internal::SwissNameDictionary::Add ( IsolateT * isolate,
HandleType< SwissNameDictionary > table,
DirectHandle< Name > key,
DirectHandle< Object > value,
PropertyDetails details,
InternalIndex * entry_out = nullptr )
inlinestatic

Definition at line 517 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ AddInternal()

int v8::internal::SwissNameDictionary::AddInternal ( Tagged< Name > key,
Tagged< Object > value,
PropertyDetails details )
inlineprivate

Definition at line 543 of file swiss-name-dictionary-inl.h.

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

◆ Capacity()

int v8::internal::SwissNameDictionary::Capacity ( )
inline

Definition at line 44 of file swiss-name-dictionary-inl.h.

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

◆ CapacityFor()

int v8::internal::SwissNameDictionary::CapacityFor ( int at_least_space_for)
inlinestatic

Definition at line 117 of file swiss-name-dictionary-inl.h.

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

◆ CapacityOffset()

int v8::internal::SwissNameDictionary::CapacityOffset ( )
inlinestaticconstexpr

Definition at line 682 of file swiss-name-dictionary-inl.h.

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

◆ ClearDataTableEntry()

void v8::internal::SwissNameDictionary::ClearDataTableEntry ( Isolate * isolate,
int entry )
inlineprivate

Definition at line 258 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ CtrlTable()

swiss_table::ctrl_t * v8::internal::SwissNameDictionary::CtrlTable ( )
inlineprivate

Definition at line 34 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ CtrlTableSize()

int v8::internal::SwissNameDictionary::CtrlTableSize ( int capacity)
inlinestaticconstexpr

Definition at line 87 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ CtrlTableStartOffset()

int v8::internal::SwissNameDictionary::CtrlTableStartOffset ( int capacity)
inlinestaticconstexpr

Definition at line 702 of file swiss-name-dictionary-inl.h.

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

◆ DataTableEndOffset()

int v8::internal::SwissNameDictionary::DataTableEndOffset ( int capacity)
inlinestaticconstexpr

Definition at line 697 of file swiss-name-dictionary-inl.h.

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

◆ DataTableSize()

int v8::internal::SwissNameDictionary::DataTableSize ( int capacity)
inlinestaticconstexpr

Definition at line 82 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ DataTableStartOffset()

int v8::internal::SwissNameDictionary::DataTableStartOffset ( )
inlinestaticconstexpr

Definition at line 692 of file swiss-name-dictionary-inl.h.

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

◆ DeleteEntry()

template<template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
template V8_EXPORT_PRIVATE IndirectHandle< SwissNameDictionary > v8::internal::SwissNameDictionary::DeleteEntry ( Isolate * isolate,
HandleType< SwissNameDictionary > table,
InternalIndex entry )
static

Definition at line 18 of file swiss-name-dictionary.cc.

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

◆ DetailsAt() [1/2]

PropertyDetails v8::internal::SwissNameDictionary::DetailsAt ( int entry)
inlineprivate

Definition at line 330 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ DetailsAt() [2/2]

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

Definition at line 338 of file swiss-name-dictionary-inl.h.

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

◆ DetailsAtPut() [1/2]

void v8::internal::SwissNameDictionary::DetailsAtPut ( int entry,
PropertyDetails value )
inlineprivate

Definition at line 280 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ DetailsAtPut() [2/2]

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

Definition at line 286 of file swiss-name-dictionary-inl.h.

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

◆ EnsureGrowable()

template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
HandleType< SwissNameDictionary > v8::internal::SwissNameDictionary::EnsureGrowable ( IsolateT * isolate,
HandleType< SwissNameDictionary > table )
inlinestaticprivate

Definition at line 346 of file swiss-name-dictionary-inl.h.

◆ EntryForEnumerationIndex()

int v8::internal::SwissNameDictionary::EntryForEnumerationIndex ( int enumeration_index)
inline

Definition at line 136 of file swiss-name-dictionary-inl.h.

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

◆ EqualsForTesting()

bool v8::internal::SwissNameDictionary::EqualsForTesting ( Tagged< SwissNameDictionary > other)

Definition at line 88 of file swiss-name-dictionary.cc.

Here is the call graph for this function:

◆ FindEntry() [1/2]

template<typename IsolateT >
InternalIndex v8::internal::SwissNameDictionary::FindEntry ( IsolateT * isolate,
DirectHandle< Object > key )
inline

Definition at line 219 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ FindEntry() [2/2]

template<typename IsolateT >
InternalIndex v8::internal::SwissNameDictionary::FindEntry ( IsolateT * isolate,
Tagged< Object > key )
inline

Definition at line 153 of file swiss-name-dictionary-inl.h.

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

◆ FindFirstEmpty()

int v8::internal::SwissNameDictionary::FindFirstEmpty ( uint32_t hash)
inlineprivate

Definition at line 395 of file swiss-name-dictionary-inl.h.

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

◆ GetCtrl()

swiss_table::ctrl_t v8::internal::SwissNameDictionary::GetCtrl ( int entry)
inlineprivate

Definition at line 359 of file swiss-name-dictionary-inl.h.

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

◆ GetMetaTableField() [1/2]

int v8::internal::SwissNameDictionary::GetMetaTableField ( int field_index)
inlineprivate

Definition at line 428 of file swiss-name-dictionary-inl.h.

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

◆ GetMetaTableField() [2/2]

template<typename T >
int v8::internal::SwissNameDictionary::GetMetaTableField ( Tagged< ByteArray > meta_table,
int field_index )
inlinestaticprivate

Definition at line 458 of file swiss-name-dictionary-inl.h.

◆ Hash()

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

Definition at line 674 of file swiss-name-dictionary-inl.h.

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

◆ Initialize()

template<typename IsolateT >
template V8_EXPORT_PRIVATE void v8::internal::SwissNameDictionary::Initialize ( IsolateT * isolate,
Tagged< ByteArray > meta_table,
int capacity )

Definition at line 569 of file swiss-name-dictionary-inl.h.

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

◆ IsDeleted()

bool v8::internal::SwissNameDictionary::IsDeleted ( ctrl_t c)
inlinestaticprivate

Definition at line 747 of file swiss-name-dictionary-inl.h.

◆ IsEmpty()

bool v8::internal::SwissNameDictionary::IsEmpty ( ctrl_t c)
inlinestaticprivate

Definition at line 736 of file swiss-name-dictionary-inl.h.

◆ IsEmptyOrDeleted()

bool v8::internal::SwissNameDictionary::IsEmptyOrDeleted ( ctrl_t c)
inlinestaticprivate

Definition at line 750 of file swiss-name-dictionary-inl.h.

◆ IsFull()

bool v8::internal::SwissNameDictionary::IsFull ( ctrl_t c)
inlinestaticprivate

Definition at line 739 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ IsKey()

bool v8::internal::SwissNameDictionary::IsKey ( ReadOnlyRoots roots,
Tagged< Object > key_candidate )
inlinestatic

Definition at line 495 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ IsValidCapacity()

bool v8::internal::SwissNameDictionary::IsValidCapacity ( int capacity)
inlinestaticconstexpr

Definition at line 75 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ IterateEntries()

SwissNameDictionary::IndexIterable v8::internal::SwissNameDictionary::IterateEntries ( )
inline

Definition at line 666 of file swiss-name-dictionary-inl.h.

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

◆ IterateEntriesOrdered()

SwissNameDictionary::IndexIterable v8::internal::SwissNameDictionary::IterateEntriesOrdered ( )
inline

Definition at line 649 of file swiss-name-dictionary-inl.h.

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

◆ KeyAt() [1/2]

Tagged< Object > v8::internal::SwissNameDictionary::KeyAt ( int entry)
inlineprivate

Definition at line 291 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ KeyAt() [2/2]

Tagged< Object > v8::internal::SwissNameDictionary::KeyAt ( InternalIndex entry)
inline

Definition at line 295 of file swiss-name-dictionary-inl.h.

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

◆ LoadFromDataTable() [1/2]

Tagged< Object > v8::internal::SwissNameDictionary::LoadFromDataTable ( int entry,
int data_offset )
inlineprivate

Definition at line 224 of file swiss-name-dictionary-inl.h.

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

◆ LoadFromDataTable() [2/2]

Tagged< Object > v8::internal::SwissNameDictionary::LoadFromDataTable ( PtrComprCageBase cage_base,
int entry,
int data_offset )
inlineprivate

Definition at line 229 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ MaxCapacity()

int v8::internal::SwissNameDictionary::MaxCapacity ( )
inlinestaticconstexpr

Definition at line 713 of file swiss-name-dictionary-inl.h.

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

◆ MaxUsableCapacity()

int v8::internal::SwissNameDictionary::MaxUsableCapacity ( int capacity)
inlinestaticconstexpr

Definition at line 103 of file swiss-name-dictionary-inl.h.

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

◆ may_have_interesting_properties()

bool v8::internal::SwissNameDictionary::may_have_interesting_properties ( )
inline

Definition at line 130 of file swiss-name-dictionary.h.

◆ MetaTablePointerOffset()

int v8::internal::SwissNameDictionary::MetaTablePointerOffset ( )
inlinestaticconstexpr

Definition at line 687 of file swiss-name-dictionary-inl.h.

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

◆ MetaTableSizeFor()

int v8::internal::SwissNameDictionary::MetaTableSizeFor ( int capacity)
inlinestaticconstexpr

Definition at line 483 of file swiss-name-dictionary-inl.h.

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

◆ MetaTableSizePerEntryFor()

int v8::internal::SwissNameDictionary::MetaTableSizePerEntryFor ( int capacity)
inlinestaticconstexpr

Definition at line 468 of file swiss-name-dictionary-inl.h.

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

◆ NameAt()

Tagged< Name > v8::internal::SwissNameDictionary::NameAt ( InternalIndex entry)
inline

Definition at line 299 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ NumberOfDeletedElements()

int v8::internal::SwissNameDictionary::NumberOfDeletedElements ( )
inline

Definition at line 58 of file swiss-name-dictionary-inl.h.

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

◆ NumberOfElements()

int v8::internal::SwissNameDictionary::NumberOfElements ( )
inline

Definition at line 54 of file swiss-name-dictionary-inl.h.

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

◆ NumberOfEnumerableProperties()

int v8::internal::SwissNameDictionary::NumberOfEnumerableProperties ( )

Definition at line 266 of file swiss-name-dictionary.cc.

Here is the call graph for this function:

◆ OBJECT_CONSTRUCTORS()

v8::internal::SwissNameDictionary::OBJECT_CONSTRUCTORS ( SwissNameDictionary ,
HeapObject  )

◆ PrefixOffset()

int v8::internal::SwissNameDictionary::PrefixOffset ( )
inlinestaticconstexpr

Definition at line 677 of file swiss-name-dictionary-inl.h.

Here is the caller graph for this function:

◆ probe()

swiss_table::ProbeSequence< SwissNameDictionary::kGroupWidth > v8::internal::SwissNameDictionary::probe ( uint32_t hash,
int capacity )
inlinestaticprivate

Definition at line 759 of file swiss-name-dictionary-inl.h.

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

◆ PropertyDetailsTable()

uint8_t * v8::internal::SwissNameDictionary::PropertyDetailsTable ( )
inlineprivate

Definition at line 39 of file swiss-name-dictionary-inl.h.

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

◆ PropertyDetailsTableStartOffset()

int v8::internal::SwissNameDictionary::PropertyDetailsTableStartOffset ( int capacity)
inlinestaticconstexpr

Definition at line 707 of file swiss-name-dictionary-inl.h.

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

◆ Rehash() [1/2]

template<typename IsolateT >
void v8::internal::SwissNameDictionary::Rehash ( IsolateT * isolate)

Definition at line 223 of file swiss-name-dictionary.cc.

Here is the call graph for this function:

◆ Rehash() [2/2]

template<typename IsolateT , template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
HandleType< SwissNameDictionary > v8::internal::SwissNameDictionary::Rehash ( IsolateT * isolate,
HandleType< SwissNameDictionary > table,
int new_capacity )
static

Definition at line 48 of file swiss-name-dictionary.cc.

Here is the call graph for this function:

◆ set_may_have_interesting_properties()

void v8::internal::SwissNameDictionary::set_may_have_interesting_properties ( bool value)
inline

Definition at line 131 of file swiss-name-dictionary.h.

◆ SetCapacity()

void v8::internal::SwissNameDictionary::SetCapacity ( int capacity)
inlineprivate

Definition at line 48 of file swiss-name-dictionary-inl.h.

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

◆ SetCtrl()

void v8::internal::SwissNameDictionary::SetCtrl ( int entry,
ctrl_t h )
inlineprivate

Definition at line 365 of file swiss-name-dictionary-inl.h.

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

◆ SetEntryForEnumerationIndex()

void v8::internal::SwissNameDictionary::SetEntryForEnumerationIndex ( int enumeration_index,
int entry )
inlineprivate

Definition at line 142 of file swiss-name-dictionary-inl.h.

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

◆ SetHash()

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

Definition at line 670 of file swiss-name-dictionary-inl.h.

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

◆ SetKey()

void v8::internal::SwissNameDictionary::SetKey ( int entry,
Tagged< Object > key )
inlineprivate

Definition at line 275 of file swiss-name-dictionary-inl.h.

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

◆ SetMetaTableField() [1/2]

void v8::internal::SwissNameDictionary::SetMetaTableField ( int field_index,
int value )
inlineprivate

Definition at line 413 of file swiss-name-dictionary-inl.h.

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

◆ SetMetaTableField() [2/2]

template<typename T >
void v8::internal::SwissNameDictionary::SetMetaTableField ( Tagged< ByteArray > meta_table,
int field_index,
int value )
inlinestaticprivate

Definition at line 445 of file swiss-name-dictionary-inl.h.

◆ SetNumberOfDeletedElements()

void v8::internal::SwissNameDictionary::SetNumberOfDeletedElements ( int deleted_elements)
inlineprivate

Definition at line 66 of file swiss-name-dictionary-inl.h.

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

◆ SetNumberOfElements()

void v8::internal::SwissNameDictionary::SetNumberOfElements ( int elements)
inlineprivate

Definition at line 62 of file swiss-name-dictionary-inl.h.

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

◆ ShallowCopy()

DirectHandle< SwissNameDictionary > v8::internal::SwissNameDictionary::ShallowCopy ( Isolate * isolate,
DirectHandle< SwissNameDictionary > table )
static

Definition at line 118 of file swiss-name-dictionary.cc.

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

◆ Shrink()

template<template< typename > typename HandleType>
requires (std::is_convertible_v<HandleType<SwissNameDictionary>, DirectHandle<SwissNameDictionary>>)
template V8_EXPORT_PRIVATE IndirectHandle< SwissNameDictionary > v8::internal::SwissNameDictionary::Shrink ( Isolate * isolate,
HandleType< SwissNameDictionary > table )
static

Definition at line 192 of file swiss-name-dictionary.cc.

Here is the caller graph for this function:

◆ SizeFor()

int v8::internal::SwissNameDictionary::SizeFor ( int capacity)
inlinestaticconstexpr

Definition at line 94 of file swiss-name-dictionary-inl.h.

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

◆ SlowReverseLookup()

Tagged< Object > v8::internal::SwissNameDictionary::SlowReverseLookup ( Isolate * isolate,
Tagged< Object > value )

Definition at line 283 of file swiss-name-dictionary.cc.

Here is the call graph for this function:

◆ StoreToDataTable()

void v8::internal::SwissNameDictionary::StoreToDataTable ( int entry,
int data_offset,
Tagged< Object > data )
inlineprivate

Definition at line 237 of file swiss-name-dictionary-inl.h.

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

◆ StoreToDataTableNoBarrier()

void v8::internal::SwissNameDictionary::StoreToDataTableNoBarrier ( int entry,
int data_offset,
Tagged< Object > data )
inlineprivate

Definition at line 248 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ ToKey() [1/2]

bool v8::internal::SwissNameDictionary::ToKey ( ReadOnlyRoots roots,
int entry,
Tagged< Object > * out_key )
inlineprivate

Definition at line 500 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ ToKey() [2/2]

bool v8::internal::SwissNameDictionary::ToKey ( ReadOnlyRoots roots,
InternalIndex entry,
Tagged< Object > * out_key )
inline

Definition at line 508 of file swiss-name-dictionary-inl.h.

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

◆ TryValueAt()

std::optional< Tagged< Object > > v8::internal::SwissNameDictionary::TryValueAt ( InternalIndex entry)
inline

Definition at line 313 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ UsedCapacity()

int v8::internal::SwissNameDictionary::UsedCapacity ( )
inline

Definition at line 70 of file swiss-name-dictionary-inl.h.

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

◆ ValueAt()

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

Definition at line 308 of file swiss-name-dictionary-inl.h.

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

◆ ValueAtPut() [1/2]

void v8::internal::SwissNameDictionary::ValueAtPut ( int entry,
Tagged< Object > value )
inlineprivate

Definition at line 265 of file swiss-name-dictionary-inl.h.

Here is the call graph for this function:

◆ ValueAtPut() [2/2]

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

Definition at line 270 of file swiss-name-dictionary-inl.h.

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

◆ ValueAtRaw()

Tagged< Object > v8::internal::SwissNameDictionary::ValueAtRaw ( int entry)
inlineprivate

Definition at line 304 of file swiss-name-dictionary-inl.h.

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

Member Data Documentation

◆ kDataTableEntryCount

int v8::internal::SwissNameDictionary::kDataTableEntryCount = 2
staticconstexpr

Definition at line 237 of file swiss-name-dictionary.h.

◆ kDataTableKeyEntryIndex

int v8::internal::SwissNameDictionary::kDataTableKeyEntryIndex = 0
staticconstexpr

Definition at line 238 of file swiss-name-dictionary.h.

◆ kDataTableValueEntryIndex

int v8::internal::SwissNameDictionary::kDataTableValueEntryIndex = kDataTableKeyEntryIndex + 1
staticconstexpr

Definition at line 239 of file swiss-name-dictionary.h.

◆ kGroupWidth

int v8::internal::SwissNameDictionary::kGroupWidth = Group::kWidth
staticconstexpr

Definition at line 226 of file swiss-name-dictionary.h.

◆ kInitialCapacity

int v8::internal::SwissNameDictionary::kInitialCapacity = kSwissNameDictionaryInitialCapacity
staticconstexpr

Definition at line 233 of file swiss-name-dictionary.h.

◆ kIsOrderedDictionaryType

bool v8::internal::SwissNameDictionary::kIsOrderedDictionaryType = true
staticconstexpr

Definition at line 220 of file swiss-name-dictionary.h.

◆ kMax1ByteMetaTableCapacity

int v8::internal::SwissNameDictionary::kMax1ByteMetaTableCapacity = (1 << 8)
staticconstexpr

Definition at line 255 of file swiss-name-dictionary.h.

◆ kMax2ByteMetaTableCapacity

int v8::internal::SwissNameDictionary::kMax2ByteMetaTableCapacity = (1 << 16)
staticconstexpr

Definition at line 258 of file swiss-name-dictionary.h.

◆ kMetaTableDeletedElementCountFieldIndex

int v8::internal::SwissNameDictionary::kMetaTableDeletedElementCountFieldIndex = 1
staticconstexpr

Definition at line 248 of file swiss-name-dictionary.h.

◆ kMetaTableElementCountFieldIndex

int v8::internal::SwissNameDictionary::kMetaTableElementCountFieldIndex = 0
staticconstexpr

Definition at line 247 of file swiss-name-dictionary.h.

◆ kMetaTableEnumerationDataStartIndex

int v8::internal::SwissNameDictionary::kMetaTableEnumerationDataStartIndex = 2
staticconstexpr

Definition at line 251 of file swiss-name-dictionary.h.

◆ kNotFoundSentinel

int v8::internal::SwissNameDictionary::kNotFoundSentinel = -1
staticconstexpr

Definition at line 224 of file swiss-name-dictionary.h.

◆ kUseSIMD

const bool v8::internal::SwissNameDictionary::kUseSIMD = kGroupWidth == 16
static

Definition at line 227 of file swiss-name-dictionary.h.


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