v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
KeyedStoreIC Class Reference

#include <ic.h>

Inheritance diagram for KeyedStoreIC:
Collaboration diagram for KeyedStoreIC:

Data Structures

class  ExtraICStateKeyedAccessStoreMode
 

Public Member Functions

 KeyedStoreIC (FrameDepth depth, Isolate *isolate)
 
MUST_USE_RESULT MaybeObject * Store (Handle< Object > object, Handle< Object > name, Handle< Object > value)
 
- Public Member Functions inherited from StoreIC
 StoreIC (FrameDepth depth, Isolate *isolate)
 
StrictMode strict_mode () const
 
MUST_USE_RESULT MaybeObject * Store (Handle< Object > object, Handle< String > name, Handle< Object > value, JSReceiver::StoreFromKeyed store_mode=JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED)
 
- Public Member Functions inherited from IC
 IC (FrameDepth depth, Isolate *isolate)
 
virtual ~IC ()
 
State state () const
 
Address address () const
 
void UpdateState (Handle< Object > receiver, Handle< Object > name)
 
void MarkMonomorphicPrototypeFailure ()
 

Static Public Member Functions

static ExtraICState ComputeExtraICState (StrictMode flag, KeyedAccessStoreMode mode)
 
static KeyedAccessStoreMode GetKeyedAccessStoreMode (ExtraICState extra_state)
 
static void GenerateInitialize (MacroAssembler *masm)
 
static void GeneratePreMonomorphic (MacroAssembler *masm)
 
static void GenerateMiss (MacroAssembler *masm)
 
static void GenerateSlow (MacroAssembler *masm)
 
static void GenerateRuntimeSetProperty (MacroAssembler *masm, StrictMode strict_mode)
 
static void GenerateGeneric (MacroAssembler *masm, StrictMode strict_mode)
 
static void GenerateSloppyArguments (MacroAssembler *masm)
 
- Static Public Member Functions inherited from StoreIC
static ExtraICState ComputeExtraICState (StrictMode flag)
 
static StrictMode GetStrictMode (ExtraICState state)
 
static void GenerateSlow (MacroAssembler *masm)
 
static void GenerateInitialize (MacroAssembler *masm)
 
static void GeneratePreMonomorphic (MacroAssembler *masm)
 
static void GenerateMiss (MacroAssembler *masm)
 
static void GenerateMegamorphic (MacroAssembler *masm)
 
static void GenerateNormal (MacroAssembler *masm)
 
static void GenerateRuntimeSetProperty (MacroAssembler *masm, StrictMode strict_mode)
 
static Handle< Codeinitialize_stub (Isolate *isolate, StrictMode strict_mode)
 
- Static Public Member Functions inherited from IC
static Address AddressFromUtilityId (UtilityId id)
 
static void Clear (Isolate *isolate, Address address, ConstantPoolArray *constant_pool)
 
static InlineCacheHolderFlag GetCodeCacheForObject (Object *object)
 
static HeapObjectGetCodeCacheHolder (Isolate *isolate, Object *object, InlineCacheHolderFlag holder)
 
static InlineCacheHolderFlag GetCodeCacheFlag (HeapType *type)
 
static Handle< MapGetCodeCacheHolder (InlineCacheHolderFlag flag, HeapType *type, Isolate *isolate)
 
static bool IsCleared (Code *code)
 
static Handle< MapTypeToMap (HeapType *type, Isolate *isolate)
 
template<class T >
static T::TypeHandle MapToType (Handle< Map > map, typename T::Region *region)
 
static Handle< HeapTypeCurrentTypeOf (Handle< Object > object, Isolate *isolate)
 

Protected Member Functions

virtual Code::Kind kind () const
 
virtual void UpdateMegamorphicCache (HeapType *type, Name *name, Code *code)
 
virtual Handle< Codepre_monomorphic_stub ()
 
virtual Handle< Codeslow_stub () const
 
virtual Handle< Codemegamorphic_stub ()
 
Handle< CodeStoreElementStub (Handle< JSObject > receiver, KeyedAccessStoreMode store_mode)
 
- Protected Member Functions inherited from StoreIC
void UpdateCaches (LookupResult *lookup, Handle< JSObject > receiver, Handle< String > name, Handle< Object > value)
 
virtual Handle< CodeCompileHandler (LookupResult *lookup, Handle< Object > object, Handle< String > name, Handle< Object > value, InlineCacheHolderFlag cache_holder)
 
- Protected Member Functions inherited from IC
Handle< Codetarget () const
 
Address fp () const
 
Address pc () const
 
Isolateisolate () const
 
void set_target (Code *code)
 
bool is_target_set ()
 
FailureTypeError (const char *type, Handle< Object > object, Handle< Object > key)
 
FailureReferenceError (const char *type, Handle< String > name)
 
Handle< CodeComputeHandler (LookupResult *lookup, Handle< Object > object, Handle< String > name, Handle< Object > value=Handle< Code >::null())
 
void UpdateMonomorphicIC (Handle< HeapType > type, Handle< Code > handler, Handle< String > name)
 
bool UpdatePolymorphicIC (Handle< HeapType > type, Handle< String > name, Handle< Code > code)
 
void CopyICToMegamorphicCache (Handle< String > name)
 
bool IsTransitionOfMonomorphicTarget (Map *source_map, Map *target_map)
 
void PatchCache (Handle< HeapType > type, Handle< String > name, Handle< Code > code)
 
bool TryRemoveInvalidPrototypeDependentStub (Handle< Object > receiver, Handle< String > name)
 
void TryRemoveInvalidHandlers (Handle< Map > map, Handle< String > name)
 
ExtraICState extra_ic_state () const
 
void set_extra_ic_state (ExtraICState state)
 
void UpdateTarget ()
 

Static Protected Member Functions

static Handle< Codepre_monomorphic_stub (Isolate *isolate, StrictMode strict_mode)
 
- Static Protected Member Functions inherited from StoreIC
static Handle< Codepre_monomorphic_stub (Isolate *isolate, StrictMode strict_mode)
 
- Static Protected Member Functions inherited from IC
static CodeGetTargetAtAddress (Address address, ConstantPoolArray *constant_pool)
 
static void SetTargetAtAddress (Address address, Code *target, ConstantPoolArray *constant_pool)
 
static void PostPatching (Address address, Code *target, Code *old_target)
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from IC
enum  UtilityId { kUtilityCount }
 
enum  FrameDepth { NO_EXTRA_FRAME = 0, EXTRA_CALL_FRAME = 1 }
 
typedef InlineCacheState State
 
- Static Public Attributes inherited from StoreIC
static const ExtraICState kStrictModeState
 

Detailed Description

Definition at line 584 of file ic.h.

Constructor & Destructor Documentation

KeyedStoreIC ( FrameDepth  depth,
Isolate isolate 
)
inline

Definition at line 602 of file ic.h.

References ASSERT, and IC::target().

Member Function Documentation

static void GenerateGeneric ( MacroAssembler masm,
StrictMode  strict_mode 
)
static
static void GenerateInitialize ( MacroAssembler masm)
inlinestatic

Definition at line 612 of file ic.h.

References KeyedStoreIC::GenerateMiss().

static void GenerateMiss ( MacroAssembler masm)
static
static void GeneratePreMonomorphic ( MacroAssembler masm)
inlinestatic

Definition at line 613 of file ic.h.

References KeyedStoreIC::GenerateMiss().

static void GenerateRuntimeSetProperty ( MacroAssembler masm,
StrictMode  strict_mode 
)
static
static void GenerateSloppyArguments ( MacroAssembler masm)
static
static void GenerateSlow ( MacroAssembler masm)
static
static KeyedAccessStoreMode GetKeyedAccessStoreMode ( ExtraICState  extra_state)
inlinestatic
virtual Code::Kind kind ( ) const
inlineprotectedvirtual

Reimplemented from StoreIC.

Definition at line 624 of file ic.h.

virtual Handle<Code> megamorphic_stub ( )
inlineprotectedvirtual

Reimplemented from StoreIC.

Definition at line 642 of file ic.h.

References Isolate::builtins(), IC::isolate(), v8::internal::STRICT, and StoreIC::strict_mode().

virtual Handle<Code> pre_monomorphic_stub ( )
inlineprotectedvirtual

Reimplemented from StoreIC.

Definition at line 628 of file ic.h.

References IC::isolate(), and StoreIC::strict_mode().

static Handle<Code> pre_monomorphic_stub ( Isolate isolate,
StrictMode  strict_mode 
)
inlinestaticprotected

Definition at line 631 of file ic.h.

References Isolate::builtins(), and v8::internal::STRICT.

virtual Handle<Code> slow_stub ( ) const
inlineprotectedvirtual

Reimplemented from StoreIC.

Definition at line 639 of file ic.h.

References Isolate::builtins(), and IC::isolate().

virtual void UpdateMegamorphicCache ( HeapType type,
Name name,
Code code 
)
inlineprotectedvirtual

Reimplemented from IC.

Definition at line 626 of file ic.h.

Friends And Related Function Documentation

friend class IC
friend

Definition at line 685 of file ic.h.


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