#include "src/ic/handler-configuration.h"
#include "src/codegen/code-factory.h"
#include "src/ic/handler-configuration-inl.h"
#include "src/objects/data-handler-inl.h"
#include "src/objects/maybe-object.h"
#include "src/objects/transitions.h"
namespace v8 {
namespace internal {
namespace {
template <typename BitField>
Tagged<Smi> SetBitFieldValue(Isolate* isolate, Tagged<Smi> smi_handler,
typename BitField::FieldType value) { … }
template <typename ICHandler, bool fill_handler = true>
int InitPrototypeChecksImpl(Isolate* isolate, Handle<ICHandler> handler,
Tagged<Smi>* smi_handler,
DirectHandle<Map> lookup_start_object_map,
MaybeObjectHandle data1,
MaybeObjectHandle maybe_data2) { … }
template <typename ICHandler>
int GetHandlerDataSize(Isolate* isolate, Tagged<Smi>* smi_handler,
Handle<Map> lookup_start_object_map,
MaybeObjectHandle data1,
MaybeObjectHandle maybe_data2 = MaybeObjectHandle()) { … }
template <typename ICHandler>
void InitPrototypeChecks(Isolate* isolate, Handle<ICHandler> handler,
Handle<Map> lookup_start_object_map,
MaybeObjectHandle data1,
MaybeObjectHandle maybe_data2 = MaybeObjectHandle()) { … }
}
Handle<Object> LoadHandler::LoadFromPrototype(
Isolate* isolate, Handle<Map> lookup_start_object_map,
Handle<JSReceiver> holder, Tagged<Smi> smi_handler,
MaybeObjectHandle maybe_data1, MaybeObjectHandle maybe_data2) { … }
Handle<Object> LoadHandler::LoadFullChain(Isolate* isolate,
Handle<Map> lookup_start_object_map,
const MaybeObjectHandle& holder,
Handle<Smi> smi_handler_handle) { … }
KeyedAccessLoadMode LoadHandler::GetKeyedAccessLoadMode(
Tagged<MaybeObject> handler) { … }
KeyedAccessStoreMode StoreHandler::GetKeyedAccessStoreMode(
Tagged<MaybeObject> handler) { … }
Handle<Object> StoreHandler::StoreElementTransition(
Isolate* isolate, DirectHandle<Map> receiver_map,
DirectHandle<Map> transition, KeyedAccessStoreMode store_mode,
MaybeHandle<UnionOf<Smi, Cell>> prev_validity_cell) { … }
MaybeObjectHandle StoreHandler::StoreOwnTransition(Isolate* isolate,
Handle<Map> transition_map) { … }
MaybeObjectHandle StoreHandler::StoreTransition(Isolate* isolate,
Handle<Map> transition_map) { … }
Handle<Object> StoreHandler::StoreThroughPrototype(
Isolate* isolate, Handle<Map> receiver_map, Handle<JSReceiver> holder,
Tagged<Smi> smi_handler, MaybeObjectHandle maybe_data1,
MaybeObjectHandle maybe_data2) { … }
MaybeObjectHandle StoreHandler::StoreGlobal(Handle<PropertyCell> cell) { … }
Handle<Object> StoreHandler::StoreProxy(Isolate* isolate,
Handle<Map> receiver_map,
Handle<JSProxy> proxy,
Handle<JSReceiver> receiver) { … }
bool LoadHandler::CanHandleHolderNotLookupStart(Tagged<Object> handler) { … }
#if defined(OBJECT_PRINT)
namespace {
void PrintSmiLoadHandler(int raw_handler, std::ostream& os) { … }
void PrintSmiStoreHandler(int raw_handler, std::ostream& os) { … }
}
void LoadHandler::PrintHandler(Tagged<Object> handler, std::ostream& os) { … }
void StoreHandler::PrintHandler(Tagged<Object> handler, std::ostream& os) { … }
std::ostream& operator<<(std::ostream& os, WasmValueType type) { … }
#endif
}
}