v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <ic.h>
Public Member Functions | |
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 () |
virtual Handle< Code > | GetElementStubWithoutMapCheck (bool is_js_array, ElementsKind elements_kind, KeyedAccessGrowMode grow_mode)=0 |
Public Member Functions inherited from IC | |
IC (FrameDepth depth, Isolate *isolate) | |
virtual | ~IC () |
Code * | target () const |
Address | address () const |
virtual bool | IsGeneric () const |
RelocInfo::Mode | ComputeMode () |
bool | IsContextual (Handle< Object > receiver) |
bool | SlowIsContextual () |
Static Public Member Functions | |
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 JSObject * | GetCodeCacheHolder (Object *object, InlineCacheHolderFlag holder) |
Static Public Attributes | |
static const int | kGrowICDelta |
Protected Member Functions | |
virtual Handle< Code > | string_stub () |
virtual Code::Kind | kind () const =0 |
Handle< Code > | ComputeStub (Handle< JSObject > receiver, StubKind stub_kind, StrictModeFlag strict_mode, Handle< Code > default_stub) |
virtual Handle< Code > | ComputePolymorphicStub (MapHandleList *receiver_maps, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode)=0 |
Handle< Code > | ComputeMonomorphicStubWithoutMapCheck (Handle< Map > receiver_map, StrictModeFlag strict_mode, KeyedAccessGrowMode grow_mode) |
Protected Member Functions inherited from IC | |
Address | fp () const |
Address | pc () const |
Isolate * | isolate () const |
void | set_target (Code *code) |
Failure * | TypeError (const char *type, Handle< Object > object, Handle< Object > key) |
Failure * | ReferenceError (const char *type, Handle< String > name) |
Additional Inherited Members | |
Static Protected Member Functions inherited from IC | |
static Code * | GetTargetAtAddress (Address address) |
static void | SetTargetAtAddress (Address address, Code *target) |
static void | PostPatching (Address address, Code *target, Code *old_target) |
enum StubKind |
|
protected |
Definition at line 1688 of file ic.cc.
References ASSERT, KeyedIC::GetElementStubWithoutMapCheck(), v8::internal::JS_ARRAY_TYPE, v8::internal::kNotStringTag, and KeyedIC::string_stub().
Referenced by KeyedLoadIC::ComputePolymorphicStub(), and KeyedStoreIC::ComputePolymorphicStub().
|
protectedpure virtual |
Implemented in KeyedStoreIC, and KeyedLoadIC.
Referenced by KeyedIC::ComputeStub().
|
protected |
Definition at line 1593 of file ic.cc.
References v8::internal::ALLOW_JSARRAY_GROWTH, ASSERT, List< T, P >::at(), Code::ComputeExtraICState(), Code::ComputeFlags(), KeyedIC::ComputePolymorphicStub(), v8::internal::DO_NOT_ALLOW_JSARRAY_GROWTH, Isolate::factory(), v8::internal::flags, Code::GetKeyedAccessGrowMode(), Code::ic_state(), v8::internal::IsMoreGeneralElementsKindTransition(), IC::isolate(), KeyedIC::kind(), v8::internal::kMaxKeyedPolymorphism, KeyedIC::LOAD, v8::internal::MEGAMORPHIC, v8::internal::MONOMORPHIC, Code::NORMAL, v8::internal::PREMONOMORPHIC, IC::target(), TRACE_GENERIC_IC, v8::internal::UNINITIALIZED, and PolymorphicCodeCache::Update().
Referenced by KeyedLoadIC::Load(), and KeyedStoreIC::Store().
|
pure virtual |
Implemented in KeyedStoreIC, and KeyedLoadIC.
Referenced by KeyedIC::ComputeMonomorphicStubWithoutMapCheck().
|
inlinestatic |
Definition at line 408 of file ic.h.
References v8::internal::ALLOW_JSARRAY_GROWTH, v8::internal::DO_NOT_ALLOW_JSARRAY_GROWTH, and KeyedIC::STORE_AND_GROW_NO_TRANSITION.
Definition at line 415 of file ic.h.
References ASSERT, KeyedIC::kGrowICDelta, KeyedIC::LOAD, and KeyedIC::STORE_AND_GROW_NO_TRANSITION.
|
protectedpure virtual |
Implemented in KeyedStoreIC, and KeyedLoadIC.
Referenced by KeyedIC::ComputeStub().
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 | ) |
Reimplemented in KeyedLoadIC.
Definition at line 430 of file ic.h.
References Handle< T >::null().
Referenced by KeyedIC::ComputeMonomorphicStubWithoutMapCheck().
|
static |
Definition at line 393 of file ic.h.
Referenced by KeyedIC::GetGrowStubKind().