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

#include <ic.h>

Inheritance diagram for v8::internal::StoreIC:
Collaboration diagram for v8::internal::StoreIC:

Public Member Functions

 StoreIC (Isolate *isolate, Handle< FeedbackVector > vector, FeedbackSlot slot, FeedbackSlotKind kind)
 
V8_WARN_UNUSED_RESULT MaybeDirectHandle< ObjectStore (Handle< JSAny > object, Handle< Name > name, DirectHandle< Object > value, StoreOrigin store_origin=StoreOrigin::kNamed)
 
bool LookupForWrite (LookupIterator *it, DirectHandle< Object > value, StoreOrigin store_origin)
 
- 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

void UpdateCaches (LookupIterator *lookup, DirectHandle< Object > value, StoreOrigin store_origin)
 
- 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

MaybeObjectHandle ComputeHandler (LookupIterator *lookup)
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from v8::internal::IC
using State = InlineCacheState
 
- 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 262 of file ic.h.

Constructor & Destructor Documentation

◆ StoreIC()

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

Definition at line 264 of file ic.h.

Here is the call graph for this function:

Member Function Documentation

◆ ComputeHandler()

MaybeObjectHandle v8::internal::StoreIC::ComputeHandler ( LookupIterator * lookup)
private

Definition at line 1969 of file ic.cc.

Here is the caller graph for this function:

◆ LookupForWrite()

bool v8::internal::StoreIC::LookupForWrite ( LookupIterator * it,
DirectHandle< Object > value,
StoreOrigin store_origin )

Definition at line 1598 of file ic.cc.

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

◆ Store()

MaybeDirectHandle< Object > v8::internal::StoreIC::Store ( Handle< JSAny > object,
Handle< Name > name,
DirectHandle< Object > value,
StoreOrigin store_origin = StoreOrigin::kNamed )

Definition at line 1827 of file ic.cc.

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

◆ UpdateCaches()

void v8::internal::StoreIC::UpdateCaches ( LookupIterator * lookup,
DirectHandle< Object > value,
StoreOrigin store_origin )
protected

Definition at line 1943 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 287 of file ic.h.


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