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

#include <ic.h>

Inheritance diagram for v8::internal::KeyedLoadIC:
Collaboration diagram for v8::internal::KeyedLoadIC:

Public Member Functions

 KeyedLoadIC (Isolate *isolate, Handle< FeedbackVector > vector, FeedbackSlot slot, FeedbackSlotKind kind)
 
V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectLoad (Handle< JSAny > object, Handle< Object > key)
 
- Public Member Functions inherited from v8::internal::LoadIC
 LoadIC (Isolate *isolate, Handle< FeedbackVector > vector, FeedbackSlot slot, FeedbackSlotKind kind)
 
bool ShouldThrowReferenceError () const
 
V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectLoad (Handle< JSAny > object, Handle< Name > name, bool update_feedback=true, DirectHandle< JSAny > receiver=DirectHandle< JSAny >())
 
- Public Member Functions inherited from v8::internal::IC
 IC (Isolate *isolate, Handle< FeedbackVector > vector, FeedbackSlot slot, FeedbackSlotKind kind)
 
virtual ~IC ()=default
 
State state () const
 
void UpdateState (DirectHandle< Object > lookup_start_object, DirectHandle< Object > name)
 
bool RecomputeHandlerForName (DirectHandle< Object > name)
 
void MarkRecomputeHandler (DirectHandle< Object > name)
 
bool IsAnyHas () const
 
bool IsAnyLoad () const
 
bool IsAnyStore () const
 
bool IsAnyDefineOwn () const
 
void OnFeedbackChanged (const char *reason)
 

Protected Member Functions

V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectRuntimeLoad (DirectHandle< JSAny > object, DirectHandle< Object > key, bool *is_found=nullptr)
 
V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectLoadName (Handle< JSAny > object, DirectHandle< Object > key, Handle< Name > name)
 
void UpdateLoadElement (DirectHandle< HeapObject > receiver, KeyedAccessLoadMode new_load_mode)
 
- Protected Member Functions inherited from v8::internal::LoadIC
void UpdateCaches (LookupIterator *lookup)
 
- Protected Member Functions inherited from v8::internal::IC
void set_slow_stub_reason (const char *reason)
 
void set_accessor (Handle< Object > accessor)
 
MaybeHandle< Objectaccessor () const
 
Isolateisolate () const
 
bool is_vector_set ()
 
bool vector_needs_update ()
 
bool ConfigureVectorState (IC::State new_state, DirectHandle< Object > key)
 
void ConfigureVectorState (DirectHandle< Name > name, DirectHandle< Map > map, DirectHandle< Object > handler)
 
void ConfigureVectorState (DirectHandle< Name > name, DirectHandle< Map > map, const MaybeObjectDirectHandle &handler)
 
void ConfigureVectorState (DirectHandle< Name > name, MapHandlesSpan maps, MaybeObjectHandles *handlers)
 
void ConfigureVectorState (DirectHandle< Name > name, MapsAndHandlers const &maps_and_handlers)
 
char TransitionMarkFromState (IC::State state)
 
void TraceIC (const char *type, DirectHandle< Object > name)
 
void TraceIC (const char *type, DirectHandle< Object > name, State old_state, State new_state)
 
MaybeDirectHandle< ObjectTypeError (MessageTemplate, Handle< Object > object, Handle< Object > key)
 
MaybeDirectHandle< ObjectReferenceError (Handle< Name > name)
 
void UpdateMonomorphicIC (const MaybeObjectDirectHandle &handler, DirectHandle< Name > name)
 
bool UpdateMegaDOMIC (const MaybeObjectDirectHandle &handler, DirectHandle< Name > name)
 
bool UpdatePolymorphicIC (DirectHandle< Name > name, const MaybeObjectDirectHandle &handler)
 
void UpdateMegamorphicCache (DirectHandle< Map > map, DirectHandle< Name > name, const MaybeObjectDirectHandle &handler)
 
StubCachestub_cache ()
 
void CopyICToMegamorphicCache (DirectHandle< Name > name)
 
bool IsTransitionOfMonomorphicTarget (Tagged< Map > source_map, Tagged< Map > target_map)
 
void SetCache (DirectHandle< Name > name, Handle< Object > handler)
 
void SetCache (DirectHandle< Name > name, const MaybeObjectHandle &handler)
 
FeedbackSlotKind kind () const
 
bool IsGlobalIC () const
 
bool IsLoadIC () const
 
bool IsLoadGlobalIC () const
 
bool IsKeyedLoadIC () const
 
bool IsStoreGlobalIC () const
 
bool IsSetNamedIC () const
 
bool IsDefineNamedOwnIC () const
 
bool IsStoreInArrayLiteralIC () const
 
bool IsKeyedStoreIC () const
 
bool IsKeyedHasIC () const
 
bool IsDefineKeyedOwnIC () const
 
bool is_keyed () const
 
bool ShouldRecomputeHandler (DirectHandle< String > name)
 
Handle< Maplookup_start_object_map ()
 
void update_lookup_start_object_map (DirectHandle< Object > object)
 
void TargetMaps (MapHandles *list)
 
Tagged< MapFirstTargetMap ()
 
const FeedbackNexusnexus () const
 
FeedbackNexusnexus ()
 

Private Member Functions

Handle< ObjectLoadElementHandler (DirectHandle< Map > receiver_map, KeyedAccessLoadMode new_load_mode)
 
void LoadElementPolymorphicHandlers (MapHandles *receiver_maps, MaybeObjectHandles *handlers, KeyedAccessLoadMode new_load_mode)
 
KeyedAccessLoadMode GetKeyedAccessLoadModeFor (DirectHandle< Map > receiver_map) const
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from v8::internal::IC
using State = InlineCacheState
 
- Static Public Member Functions inherited from v8::internal::LoadIC
static bool ShouldThrowReferenceError (FeedbackSlotKind kind)
 
- Static Public Member Functions inherited from v8::internal::IC
static bool IsHandler (Tagged< MaybeObject > object)
 
static void OnFeedbackChanged (Isolate *isolate, Tagged< FeedbackVector > vector, FeedbackSlot slot, const char *reason)
 

Detailed Description

Definition at line 227 of file ic.h.

Constructor & Destructor Documentation

◆ KeyedLoadIC()

v8::internal::KeyedLoadIC::KeyedLoadIC ( Isolate * isolate,
Handle< FeedbackVector > vector,
FeedbackSlot slot,
FeedbackSlotKind kind )
inline

Definition at line 229 of file ic.h.

Member Function Documentation

◆ GetKeyedAccessLoadModeFor()

KeyedAccessLoadMode v8::internal::KeyedLoadIC::GetKeyedAccessLoadModeFor ( DirectHandle< Map > receiver_map) const
private

Definition at line 1143 of file ic.cc.

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

◆ Load()

MaybeDirectHandle< Object > v8::internal::KeyedLoadIC::Load ( Handle< JSAny > object,
Handle< Object > key )

Definition at line 1563 of file ic.cc.

Here is the call graph for this function:

◆ LoadElementHandler()

Handle< Object > v8::internal::KeyedLoadIC::LoadElementHandler ( DirectHandle< Map > receiver_map,
KeyedAccessLoadMode new_load_mode )
private

Definition at line 1366 of file ic.cc.

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

◆ LoadElementPolymorphicHandlers()

void v8::internal::KeyedLoadIC::LoadElementPolymorphicHandlers ( MapHandles * receiver_maps,
MaybeObjectHandles * handlers,
KeyedAccessLoadMode new_load_mode )
private

Definition at line 1425 of file ic.cc.

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

◆ LoadName()

MaybeDirectHandle< Object > v8::internal::KeyedLoadIC::LoadName ( Handle< JSAny > object,
DirectHandle< Object > key,
Handle< Name > name )
protected

Definition at line 1547 of file ic.cc.

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

◆ RuntimeLoad()

MaybeDirectHandle< Object > v8::internal::KeyedLoadIC::RuntimeLoad ( DirectHandle< JSAny > object,
DirectHandle< Object > key,
bool * is_found = nullptr )
protected

Definition at line 1529 of file ic.cc.

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

◆ UpdateLoadElement()

void v8::internal::KeyedLoadIC::UpdateLoadElement ( DirectHandle< HeapObject > receiver,
KeyedAccessLoadMode new_load_mode )
protected

Definition at line 1162 of file ic.cc.

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

Friends And Related Symbol Documentation

◆ IC

friend class IC
friend

Definition at line 249 of file ic.h.


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