V8 Project
|
#include <ic.h>
Classes | |
class | StrictModeState |
Public Member Functions | |
StoreIC (FrameDepth depth, Isolate *isolate) | |
StrictMode | strict_mode () const |
MUST_USE_RESULT MaybeHandle< Object > | Store (Handle< Object > object, Handle< Name > name, Handle< Object > value, JSReceiver::StoreFromKeyed store_mode=JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED) |
bool | LookupForWrite (LookupIterator *it, Handle< Object > value, JSReceiver::StoreFromKeyed store_mode) |
![]() | |
IC (FrameDepth depth, Isolate *isolate) | |
virtual | ~IC () |
State | state () const |
Address | address () const |
void | UpdateState (Handle< Object > receiver, Handle< Object > name) |
bool | IsNameCompatibleWithPrototypeFailure (Handle< Object > name) |
void | MarkPrototypeFailure (Handle< Object > name) |
Static Public Attributes | |
static const ExtraICState | kStrictModeState = 1 << StrictModeState::kShift |
Static Protected Member Functions | |
static Handle< Code > | pre_monomorphic_stub (Isolate *isolate, StrictMode strict_mode) |
![]() | |
static Code * | GetTargetAtAddress (Address address, ConstantPoolArray *constant_pool) |
static void | SetTargetAtAddress (Address address, Code *target, ConstantPoolArray *constant_pool) |
static void | OnTypeFeedbackChanged (Isolate *isolate, Address address, State old_state, State new_state, bool target_remains_ic_stub) |
static void | PostPatching (Address address, Code *target, Code *old_target) |
Private Member Functions | |
void | set_target (Code *code) |
Static Private Member Functions | |
static void | Clear (Isolate *isolate, Address address, Code *target, ConstantPoolArray *constant_pool) |
Friends | |
class | IC |
Additional Inherited Members | |
![]() | |
enum | UtilityId { kUtilityCount } |
enum | FrameDepth { NO_EXTRA_FRAME = 0 , EXTRA_CALL_FRAME = 1 } |
typedef InlineCacheState | State |
|
inline |
|
staticprivate |
Definition at line 536 of file ic.cc.
References v8::internal::IC::address(), v8::internal::IC::constant_pool(), v8::internal::PropertyICCompiler::FindPreMonomorphic(), v8::internal::IC::IsCleared(), v8::internal::IC::isolate(), v8::internal::IC::SetTargetAtAddress(), and v8::internal::IC::target().
Referenced by v8::internal::IC::Clear().
|
protectedvirtual |
Reimplemented from v8::internal::IC.
Definition at line 1423 of file ic.cc.
References v8::internal::ACCESSOR, v8::internal::Isolate::builtins(), v8::internal::Handle< T >::cast(), v8::internal::NamedStoreHandlerCompiler::CompileStoreCallback(), v8::internal::NamedStoreHandlerCompiler::CompileStoreField(), v8::internal::NamedStoreHandlerCompiler::CompileStoreInterceptor(), v8::internal::NamedStoreHandlerCompiler::CompileStoreTransition(), v8::internal::NamedStoreHandlerCompiler::CompileStoreViaSetter(), v8::internal::CONSTANT, DCHECK, DCHECK_NE, v8::internal::TypeImpl< Config >::Iterator< T >::Done(), v8::internal::FIELD, v8::internal::StoreGlobalStub::GetCodeCopyFromTemplate(), v8::internal::AccessorInfo::IsCompatibleReceiverType(), v8::internal::IC::isolate(), v8::internal::IC::receiver_type(), slow_stub(), TRACE_GENERIC_IC, UNREACHABLE, v8::internal::PropertyCell::UpdatedType(), and v8::internal::HeapObject::UpdateMapCodeCache().
|
inlinestatic |
Definition at line 450 of file ic.h.
References v8::internal::flag.
Referenced by initialize_stub(), and pre_monomorphic_stub().
|
inlinestatic |
Definition at line 471 of file ic.h.
References v8::internal::LoadIC::GenerateMiss().
Referenced by v8::internal::PropertyICCompiler::CompileStoreInitialize().
|
static |
Referenced by v8::internal::PropertyICCompiler::CompileStoreMegamorphic().
|
static |
|
static |
|
inlinestatic |
Definition at line 472 of file ic.h.
References v8::internal::LoadIC::GenerateMiss().
Referenced by v8::internal::PropertyICCompiler::CompileStorePreMonomorphic().
|
static |
|
static |
Definition at line 1370 of file ic.cc.
References v8::internal::Isolate::builtins(), v8::internal::PropertyICCompiler::ComputeStore(), DCHECK, v8::internal::IC::extra_ic_state(), v8::internal::GENERIC, v8::internal::IC::isolate(), v8::internal::IC::kind(), v8::internal::STRICT, and strict_mode().
Referenced by v8::internal::KeyedStoreIC::Store(), and v8::internal::KeyedStoreIC::StoreElementStub().
|
inlinestatic |
Definition at line 453 of file ic.h.
References v8::internal::IC::state().
Referenced by v8::internal::KeyedStoreIC::Clear(), v8::internal::PropertyICCompiler::CompileStoreGeneric(), set_target(), v8::internal::KeyedStoreIC::set_target(), and v8::internal::IC::SetTargetAtAddress().
|
static |
Definition at line 1346 of file ic.cc.
References ComputeExtraICState(), v8::internal::PropertyICCompiler::ComputeStore(), v8::internal::IC::isolate(), strict_mode(), and v8::internal::UNINITIALIZED.
bool v8::internal::StoreIC::LookupForWrite | ( | LookupIterator * | it, |
Handle< Object > | value, | ||
JSReceiver::StoreFromKeyed | store_mode | ||
) |
Definition at line 1221 of file ic.cc.
References v8::internal::ACCESSOR, DCHECK, v8::internal::PrototypeIterator::GetCurrent(), map, NONE, UNREACHABLE, and v8::internal::IC::update_receiver_type().
Referenced by UpdateCaches().
Reimplemented from v8::internal::IC.
Definition at line 1355 of file ic.cc.
References v8::internal::Isolate::builtins(), v8::internal::PropertyICCompiler::ComputeStore(), DCHECK, v8::internal::IC::extra_ic_state(), v8::internal::IC::isolate(), v8::internal::IC::kind(), v8::internal::MEGAMORPHIC, v8::internal::STRICT, and strict_mode().
Reimplemented in v8::internal::KeyedStoreIC.
Definition at line 499 of file ic.h.
References v8::internal::IC::isolate(), and v8::internal::LoadIC::pre_monomorphic_stub().
Referenced by UpdateCaches().
|
staticprotected |
Definition at line 1395 of file ic.cc.
References ComputeExtraICState(), v8::internal::PropertyICCompiler::ComputeStore(), v8::internal::IC::isolate(), v8::internal::PREMONOMORPHIC, v8::internal::IC::state(), and strict_mode().
|
inlineprivate |
Definition at line 139 of file ic-inl.h.
References DCHECK, v8::internal::Code::extra_ic_state(), v8::internal::IC::extra_ic_state(), GetStrictMode(), v8::internal::IC::set_target(), and v8::internal::IC::target().
Referenced by UpdateCaches().
Definition at line 1385 of file ic.cc.
References v8::internal::Isolate::builtins(), DCHECK, v8::internal::IC::isolate(), and v8::internal::IC::kind().
Referenced by CompileHandler(), v8::internal::KeyedStoreIC::Store(), and UpdateCaches().
MaybeHandle< Object > v8::internal::StoreIC::Store | ( | Handle< Object > | object, |
Handle< Name > | name, | ||
Handle< Object > | value, | ||
JSReceiver::StoreFromKeyed | store_mode = JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED |
||
) |
Definition at line 1280 of file ic.cc.
References ASSIGN_RETURN_ON_EXCEPTION, v8::internal::Handle< T >::cast(), v8::internal::IC::isolate(), v8::internal::MigrateDeprecated(), name, NONE, v8::internal::JSObject::SetElement(), v8::internal::Object::SetProperty(), strict_mode(), v8::internal::IC::TypeError(), and UpdateCaches().
Referenced by v8::internal::RUNTIME_FUNCTION(), and v8::internal::KeyedStoreIC::Store().
|
inline |
Definition at line 465 of file ic.h.
References v8::internal::IC::extra_ic_state().
Referenced by generic_stub(), initialize_stub(), megamorphic_stub(), pre_monomorphic_stub(), v8::internal::RUNTIME_FUNCTION(), v8::internal::KeyedStoreIC::set_target(), Store(), v8::internal::KeyedStoreIC::Store(), and v8::internal::KeyedStoreIC::StoreElementStub().
|
protected |
Definition at line 1402 of file ic.cc.
References v8::internal::IC::ComputeHandler(), v8::internal::IC::isolate(), LookupForWrite(), v8::internal::IC::PatchCache(), pre_monomorphic_stub(), set_target(), slow_stub(), v8::internal::IC::state(), TRACE_GENERIC_IC, TRACE_IC, and v8::internal::UNINITIALIZED.
Referenced by Store().
|
static |