v8
3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
|
#include <ic.h>
Data Structures | |
class | Contextual |
class | StringStubState |
Public Member Functions | |
MUST_USE_RESULT MaybeObject * | LoadFunction (State state, Code::ExtraICState extra_ic_state, Handle< Object > object, Handle< String > name) |
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 () |
Protected Member Functions | |
CallICBase (Code::Kind kind, Isolate *isolate) | |
bool | TryUpdateExtraICState (LookupResult *lookup, Handle< Object > object, Code::ExtraICState *extra_ic_state) |
Handle< Code > | ComputeMonomorphicStub (LookupResult *lookup, State state, Code::ExtraICState extra_state, Handle< Object > object, Handle< String > name) |
void | UpdateCaches (LookupResult *lookup, State state, Code::ExtraICState extra_ic_state, Handle< Object > object, Handle< String > name) |
Handle< Object > | TryCallAsFunction (Handle< Object > object) |
void | ReceiverToObjectIfRequired (Handle< Object > callee, Handle< Object > object) |
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) |
Static Protected Member Functions | |
static void | Clear (Address address, Code *target) |
static void | GenerateMiss (MacroAssembler *masm, int argc, IC::UtilityId id, Code::ExtraICState extra_state) |
static void | GenerateNormal (MacroAssembler *masm, int argc) |
static void | GenerateMonomorphicCacheProbe (MacroAssembler *masm, int argc, Code::Kind kind, Code::ExtraICState extra_state) |
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) |
Protected Attributes | |
Code::Kind | kind_ |
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 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) |
|
inlineprotected |
Definition at line 367 of file ic.cc.
References Code::arguments_count(), BitField< bool, 0, 1 >::decode(), Code::extra_ic_state(), Code::ic_state(), Code::kind(), IC::SetTargetAtAddress(), and v8::internal::UNINITIALIZED.
Referenced by IC::Clear().
|
protected |
Definition at line 638 of file ic.cc.
References Code::arguments_count(), ASSERT, Handle< T >::cast(), JSFunction::cast(), StubCache::ComputeCallConstant(), StubCache::ComputeCallField(), StubCache::ComputeCallGlobal(), StubCache::ComputeCallInterceptor(), StubCache::ComputeCallNormal(), v8::internal::CONSTANT_FUNCTION, v8::internal::FIELD, v8::internal::INTERCEPTOR, IC::isolate(), CallICBase::kind_, v8::internal::NORMAL, Handle< T >::null(), Isolate::stub_cache(), and IC::target().
Referenced by CallICBase::UpdateCaches().
|
staticprotected |
Referenced by CallIC::GenerateMiss(), and KeyedCallIC::GenerateMiss().
|
staticprotected |
|
staticprotected |
Referenced by CallIC::GenerateNormal().
MaybeObject * LoadFunction | ( | State | state, |
Code::ExtraICState | extra_ic_state, | ||
Handle< Object > | object, | ||
Handle< String > | name | ||
) |
Definition at line 509 of file ic.cc.
References ABSENT, ASSERT, Handle< T >::cast(), IC::fp(), Object::GetElement(), Object::GetProperty(), v8::internal::INTERCEPTOR, IC::IsContextual(), IC::isolate(), CallICBase::ReceiverToObjectIfRequired(), IC::ReferenceError(), RETURN_IF_EMPTY_HANDLE, CallICBase::TryCallAsFunction(), IC::TypeError(), and CallICBase::UpdateCaches().
Referenced by KeyedCallIC::LoadFunction().
Definition at line 483 of file ic.cc.
References Code::arguments_count(), Handle< T >::cast(), JSFunctionProxy::cast(), StandardFrame::ComputeExpressionsCount(), IC::isolate(), StandardFrame::SetExpression(), and IC::target().
Referenced by CallICBase::LoadFunction(), and KeyedCallIC::LoadFunction().
Definition at line 466 of file ic.cc.
References Code::arguments_count(), StandardFrame::ComputeExpressionsCount(), Execution::GetFunctionDelegate(), StandardFrame::SetExpression(), and IC::target().
Referenced by CallICBase::LoadFunction(), and KeyedCallIC::LoadFunction().
|
protected |
Definition at line 594 of file ic.cc.
References Memory::Address_at(), Code::arguments_count(), ASSERT, Isolate::c_entry_fp(), Code::CALL_IC, JSValue::cast(), String::cast(), v8::internal::CONSTANT_FUNCTION, BitField< StringStubFeedback, 1, 1 >::decode(), v8::internal::DEFAULT_STRING_STUB, v8::internal::DoubleToInteger(), IC::fp(), IC::isolate(), ExitFrameConstants::kCallerFPOffset, StandardFrameConstants::kCallerSPOffset, CallICBase::kind_, v8::internal::kPointerSize, String::length(), Memory::Object_at(), v8::internal::STRING_INDEX_OUT_OF_BOUNDS, IC::target(), and BitField< StringStubFeedback, 1, 1 >::update().
Referenced by CallICBase::UpdateCaches().
|
protected |
Definition at line 692 of file ic.cc.
References Code::arguments_count(), Code::CALL_IC, Handle< T >::cast(), JSObject::cast(), StubCache::ComputeCallMegamorphic(), StubCache::ComputeCallPreMonomorphic(), CallICBase::ComputeMonomorphicStub(), Handle< T >::is_null(), IC::isolate(), CallICBase::kind_, v8::internal::MEGAMORPHIC, v8::internal::MONOMORPHIC, v8::internal::MONOMORPHIC_PROTOTYPE_FAILURE, v8::internal::PREMONOMORPHIC, StubCache::Set(), IC::set_target(), Isolate::stub_cache(), IC::target(), TRACE_IC, CallICBase::TryUpdateExtraICState(), and v8::internal::UNINITIALIZED.
Referenced by CallICBase::LoadFunction().
|
protected |
Definition at line 259 of file ic.h.
Referenced by CallICBase::ComputeMonomorphicStub(), CallICBase::TryUpdateExtraICState(), and CallICBase::UpdateCaches().