v8  3.14.5(node0.10.28)
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:

Public Member Functions

 KeyedStoreIC (Isolate *isolate)
 
MUST_USE_RESULT MaybeObject * Store (State state, StrictModeFlag strict_mode, Handle< Object > object, Handle< Object > name, Handle< Object > value, bool force_generic)
 
virtual Handle< CodeGetElementStubWithoutMapCheck (bool is_js_array, ElementsKind elements_kind, KeyedAccessGrowMode grow_mode)
 
virtual bool IsGeneric () const
 
- Public Member Functions inherited from KeyedIC
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT-STORE_TRANSITION_SMI_TO_OBJECT)
 
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE-STORE_TRANSITION_SMI_TO_DOUBLE)
 
 STATIC_ASSERT (kGrowICDelta==STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT-STORE_TRANSITION_DOUBLE_TO_OBJECT)
 
 KeyedIC (Isolate *isolate)
 
virtual ~KeyedIC ()
 
- Public Member Functions inherited from IC
 IC (FrameDepth depth, Isolate *isolate)
 
virtual ~IC ()
 
Codetarget () const
 
Address address () const
 
RelocInfo::Mode ComputeMode ()
 
bool IsContextual (Handle< Object > receiver)
 
bool SlowIsContextual ()
 

Static Public Member Functions

static void GenerateInitialize (MacroAssembler *masm)
 
static void GenerateMiss (MacroAssembler *masm, bool force_generic)
 
static void GenerateSlow (MacroAssembler *masm)
 
static void GenerateRuntimeSetProperty (MacroAssembler *masm, StrictModeFlag strict_mode)
 
static void GenerateGeneric (MacroAssembler *masm, StrictModeFlag strict_mode)
 
static void GenerateNonStrictArguments (MacroAssembler *masm)
 
static void GenerateTransitionElementsSmiToDouble (MacroAssembler *masm)
 
static void GenerateTransitionElementsDoubleToObject (MacroAssembler *masm)
 
- Static Public Member Functions inherited from KeyedIC
static KeyedAccessGrowMode GetGrowModeFromStubKind (StubKind stub_kind)
 
static StubKind GetGrowStubKind (StubKind stub_kind)
 
- Static Public Member Functions inherited from IC
static Address AddressFromUtilityId (UtilityId id)
 
static State StateFrom (Code *target, Object *receiver, Object *name)
 
static void Clear (Address address)
 
static InlineCacheHolderFlag GetCodeCacheForObject (Object *object, JSObject *holder)
 
static InlineCacheHolderFlag GetCodeCacheForObject (JSObject *object, JSObject *holder)
 
static JSObjectGetCodeCacheHolder (Object *object, InlineCacheHolderFlag holder)
 

Protected Member Functions

virtual Code::Kind kind () const
 
virtual Handle< CodeComputePolymorphicStub (MapHandleList *receiver_maps, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)
 
- Protected Member Functions inherited from KeyedIC
virtual Handle< Codestring_stub ()
 
Handle< CodeComputeStub (Handle< JSObject > receiver, StubKind stub_kind, StrictModeFlag strict_mode, Handle< Code > default_stub)
 
Handle< CodeComputeMonomorphicStubWithoutMapCheck (Handle< Map > receiver_map, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)
 
- Protected Member Functions inherited from IC
Address fp () const
 
Address pc () const
 
Isolateisolate () const
 
void set_target (Code *code)
 
FailureTypeError (const char *type, Handle< Object > object, Handle< Object > key)
 
FailureReferenceError (const char *type, Handle< String > name)
 

Friends

class IC
 

Additional Inherited Members

- Public Types inherited from KeyedIC
enum  StubKind {
  LOAD, STORE_NO_TRANSITION, STORE_TRANSITION_SMI_TO_OBJECT, STORE_TRANSITION_SMI_TO_DOUBLE,
  STORE_TRANSITION_DOUBLE_TO_OBJECT, STORE_TRANSITION_HOLEY_SMI_TO_OBJECT, STORE_TRANSITION_HOLEY_SMI_TO_DOUBLE, STORE_TRANSITION_HOLEY_DOUBLE_TO_OBJECT,
  STORE_AND_GROW_NO_TRANSITION, STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT,
  STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT
}
 
- 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 KeyedIC
static const int kGrowICDelta
 
- Static Protected Member Functions inherited from IC
static CodeGetTargetAtAddress (Address address)
 
static void SetTargetAtAddress (Address address, Code *target)
 
static void PostPatching (Address address, Code *target, Code *old_target)
 

Detailed Description

Definition at line 646 of file ic.h.

Constructor & Destructor Documentation

KeyedStoreIC ( Isolate isolate)
inlineexplicit

Definition at line 648 of file ic.h.

References ASSERT, and IC::target().

Member Function Documentation

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

Definition at line 660 of file ic.h.

References KeyedStoreIC::GenerateMiss().

static void GenerateMiss ( MacroAssembler masm,
bool  force_generic 
)
static
static void GenerateNonStrictArguments ( MacroAssembler masm)
static
static void GenerateRuntimeSetProperty ( MacroAssembler masm,
StrictModeFlag  strict_mode 
)
static
static void GenerateSlow ( MacroAssembler masm)
static
static void GenerateTransitionElementsDoubleToObject ( MacroAssembler masm)
static
static void GenerateTransitionElementsSmiToDouble ( MacroAssembler masm)
static
Handle< Code > GetElementStubWithoutMapCheck ( bool  is_js_array,
ElementsKind  elements_kind,
KeyedAccessGrowMode  grow_mode 
)
virtual

Implements KeyedIC.

Definition at line 1755 of file ic.cc.

virtual bool IsGeneric ( ) const
inlinevirtual

Reimplemented from IC.

Definition at line 677 of file ic.h.

References IC::target().

virtual Code::Kind kind ( ) const
inlineprotectedvirtual

Implements KeyedIC.

Definition at line 683 of file ic.h.

Friends And Related Function Documentation

friend class IC
friend

Definition at line 736 of file ic.h.


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