chromium/v8/src/objects/hash-table-inl.h

// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#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"

// Has to be the last include (doesn't have include guards):
#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) {}

// static
int HashTableBase::ComputeCapacity(int at_least_space_for) {}

void HashTableBase::SetInitialNumberOfElements(int nof) {}

void HashTableBase::SetNumberOfElements(int nof) {}

void HashTableBase::SetNumberOfDeletedElements(int nod) {}

// static
template <typename Derived, typename Shape>
Handle<Map> HashTable<Derived, Shape>::GetMap(ReadOnlyRoots roots) {}

// static
Handle<Map> NameToIndexHashTable::GetMap(ReadOnlyRoots roots) {}

// static
Handle<Map> RegisteredSymbolTable::GetMap(ReadOnlyRoots roots) {}

// static
Handle<Map> EphemeronHashTable::GetMap(ReadOnlyRoots roots) {}

template <typename Derived, typename Shape>
template <typename IsolateT>
InternalIndex HashTable<Derived, Shape>::FindEntry(IsolateT* isolate, Key key) {}

// Find entry for key otherwise return kNotFound.
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) {}

// static
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) {}

}  // namespace internal
}  // namespace v8

#include "src/objects/object-macros-undef.h"

#endif  // V8_OBJECTS_HASH_TABLE_INL_H_