#ifndef V8_OBJECTS_HASH_TABLE_INL_H_
#define V8_OBJECTS_HASH_TABLE_INL_H_
#include "src/execution/isolate-utils-inl.h"
#include "src/heap/heap.h"
#include "src/objects/fixed-array-inl.h"
#include "src/objects/hash-table.h"
#include "src/objects/heap-object-inl.h"
#include "src/objects/objects-inl.h"
#include "src/roots/roots-inl.h"
#include "src/objects/object-macros.h"
namespace v8 {
namespace internal {
OBJECT_CONSTRUCTORS_IMPL(HashTableBase, FixedArray)
template <typename Derived, typename Shape>
HashTable<Derived, Shape>::HashTable(Address ptr) : … { … }
template <typename Derived, typename Shape>
ObjectHashTableBase<Derived, Shape>::ObjectHashTableBase(Address ptr)
: … { … }
ObjectHashTable::ObjectHashTable(Address ptr)
: … { … }
RegisteredSymbolTable::RegisteredSymbolTable(Address ptr)
: … { … }
EphemeronHashTable::EphemeronHashTable(Address ptr)
: … { … }
ObjectHashSet::ObjectHashSet(Address ptr)
: … { … }
NameToIndexHashTable::NameToIndexHashTable(Address ptr)
: … { … }
template <typename Derived, int N>
ObjectMultiHashTableBase<Derived, N>::ObjectMultiHashTableBase(Address ptr)
: … { … }
ObjectTwoHashTable::ObjectTwoHashTable(Address ptr)
: … { … }
void EphemeronHashTable::set_key(int index, Tagged<Object> value) { … }
void EphemeronHashTable::set_key(int index, Tagged<Object> value,
WriteBarrierMode mode) { … }
int HashTableBase::NumberOfElements() const { … }
int HashTableBase::NumberOfDeletedElements() const { … }
int HashTableBase::Capacity() const { … }
InternalIndex::Range HashTableBase::IterateEntries() const { … }
void HashTableBase::ElementAdded() { … }
void HashTableBase::ElementRemoved() { … }
void HashTableBase::ElementsRemoved(int n) { … }
int HashTableBase::ComputeCapacity(int at_least_space_for) { … }
void HashTableBase::SetInitialNumberOfElements(int nof) { … }
void HashTableBase::SetNumberOfElements(int nof) { … }
void HashTableBase::SetNumberOfDeletedElements(int nod) { … }
template <typename Derived, typename Shape>
Handle<Map> HashTable<Derived, Shape>::GetMap(ReadOnlyRoots roots) { … }
Handle<Map> NameToIndexHashTable::GetMap(ReadOnlyRoots roots) { … }
Handle<Map> RegisteredSymbolTable::GetMap(ReadOnlyRoots roots) { … }
Handle<Map> EphemeronHashTable::GetMap(ReadOnlyRoots roots) { … }
template <typename Derived, typename Shape>
template <typename IsolateT>
InternalIndex HashTable<Derived, Shape>::FindEntry(IsolateT* isolate, Key key) { … }
template <typename Derived, typename Shape>
InternalIndex HashTable<Derived, Shape>::FindEntry(PtrComprCageBase cage_base,
ReadOnlyRoots roots, Key key,
int32_t hash) { … }
template <typename Derived, typename Shape>
template <typename IsolateT>
InternalIndex HashTable<Derived, Shape>::FindInsertionEntry(IsolateT* isolate,
uint32_t hash) { … }
template <typename Derived, typename Shape>
bool HashTable<Derived, Shape>::IsKey(ReadOnlyRoots roots, Tagged<Object> k) { … }
template <typename Derived, typename Shape>
bool HashTable<Derived, Shape>::ToKey(ReadOnlyRoots roots, InternalIndex entry,
Tagged<Object>* out_k) { … }
template <typename Derived, typename Shape>
bool HashTable<Derived, Shape>::ToKey(PtrComprCageBase cage_base,
InternalIndex entry,
Tagged<Object>* out_k) { … }
template <typename Derived, typename Shape>
Tagged<Object> HashTable<Derived, Shape>::KeyAt(InternalIndex entry) { … }
template <typename Derived, typename Shape>
Tagged<Object> HashTable<Derived, Shape>::KeyAt(PtrComprCageBase cage_base,
InternalIndex entry) { … }
template <typename Derived, typename Shape>
Tagged<Object> HashTable<Derived, Shape>::KeyAt(InternalIndex entry,
RelaxedLoadTag tag) { … }
template <typename Derived, typename Shape>
Tagged<Object> HashTable<Derived, Shape>::KeyAt(PtrComprCageBase cage_base,
InternalIndex entry,
RelaxedLoadTag tag) { … }
template <typename Derived, typename Shape>
void HashTable<Derived, Shape>::SetKeyAt(InternalIndex entry,
Tagged<Object> value,
WriteBarrierMode mode) { … }
template <typename Derived, typename Shape>
void HashTable<Derived, Shape>::set_key(int index, Tagged<Object> value) { … }
template <typename Derived, typename Shape>
void HashTable<Derived, Shape>::set_key(int index, Tagged<Object> value,
WriteBarrierMode mode) { … }
template <typename Derived, typename Shape>
void HashTable<Derived, Shape>::SetCapacity(int capacity) { … }
bool ObjectHashSet::Has(Isolate* isolate, Handle<Object> key, int32_t hash) { … }
bool ObjectHashSet::Has(Isolate* isolate, Handle<Object> key) { … }
bool ObjectHashTableShape::IsMatch(DirectHandle<Object> key,
Tagged<Object> other) { … }
bool RegisteredSymbolTableShape::IsMatch(DirectHandle<String> key,
Tagged<Object> value) { … }
uint32_t RegisteredSymbolTableShape::Hash(ReadOnlyRoots roots,
DirectHandle<String> key) { … }
uint32_t RegisteredSymbolTableShape::HashForObject(ReadOnlyRoots roots,
Tagged<Object> object) { … }
bool NameToIndexShape::IsMatch(DirectHandle<Name> key, Tagged<Object> other) { … }
uint32_t NameToIndexShape::HashForObject(ReadOnlyRoots roots,
Tagged<Object> other) { … }
uint32_t NameToIndexShape::Hash(ReadOnlyRoots roots, DirectHandle<Name> key) { … }
uint32_t ObjectHashTableShape::Hash(ReadOnlyRoots roots,
DirectHandle<Object> key) { … }
uint32_t ObjectHashTableShape::HashForObject(ReadOnlyRoots roots,
Tagged<Object> other) { … }
template <typename IsolateT>
Handle<NameToIndexHashTable> NameToIndexHashTable::Add(
IsolateT* isolate, Handle<NameToIndexHashTable> table,
IndirectHandle<Name> key, int32_t index) { … }
}
}
#include "src/objects/object-macros-undef.h"
#endif