Lines Matching refs:lookup
173 LookupResult* lookup, in HasNormalObjectsInPrototypeChain() argument
175 Object* end = lookup->IsProperty() in HasNormalObjectsInPrototypeChain()
176 ? lookup->holder() : Object::cast(isolate->heap()->null_value()); in HasNormalObjectsInPrototypeChain()
420 LookupResult* lookup) { in LookupForRead() argument
424 object->Lookup(*name, lookup); in LookupForRead()
428 if (!lookup->IsFound() in LookupForRead()
429 || (lookup->type() != INTERCEPTOR) in LookupForRead()
430 || !lookup->IsCacheable()) { in LookupForRead()
434 Handle<JSObject> holder(lookup->holder()); in LookupForRead()
439 holder->LocalLookupRealNamedProperty(*name, lookup); in LookupForRead()
440 if (lookup->IsProperty()) { in LookupForRead()
441 ASSERT(lookup->type() != INTERCEPTOR); in LookupForRead()
447 lookup->NotFound(); in LookupForRead()
525 LookupResult lookup(isolate()); in LoadFunction() local
526 LookupForRead(object, name, &lookup); in LoadFunction()
528 if (!lookup.IsProperty()) { in LoadFunction()
538 UpdateCaches(&lookup, state, extra_ic_state, object, name); in LoadFunction()
544 Object::GetProperty(object, object, &lookup, name, &attr); in LoadFunction()
547 if (lookup.type() == INTERCEPTOR && attr == ABSENT) { in LoadFunction()
584 bool CallICBase::TryUpdateExtraICState(LookupResult* lookup, in TryUpdateExtraICState() argument
588 if (lookup->type() != CONSTANT_FUNCTION) return false; in TryUpdateExtraICState()
589 JSFunction* function = lookup->GetConstantFunction(); in TryUpdateExtraICState()
628 Handle<Code> CallICBase::ComputeMonomorphicStub(LookupResult* lookup, in ComputeMonomorphicStub() argument
634 Handle<JSObject> holder(lookup->holder()); in ComputeMonomorphicStub()
635 switch (lookup->type()) { in ComputeMonomorphicStub()
637 int index = lookup->GetFieldIndex(); in ComputeMonomorphicStub()
645 Handle<JSFunction> function(lookup->GetConstantFunction()); in ComputeMonomorphicStub()
656 Handle<JSGlobalPropertyCell> cell(global->GetPropertyCell(lookup)); in ComputeMonomorphicStub()
682 void CallICBase::UpdateCaches(LookupResult* lookup, in UpdateCaches() argument
688 if (!lookup->IsProperty() || !lookup->IsCacheable()) return; in UpdateCaches()
690 if (lookup->holder() != *object && in UpdateCaches()
692 isolate(), lookup, object->GetPrototype())) { in UpdateCaches()
710 TryUpdateExtraICState(lookup, object, &extra_ic_state)) { in UpdateCaches()
711 code = ComputeMonomorphicStub(lookup, state, extra_ic_state, in UpdateCaches()
718 code = ComputeMonomorphicStub(lookup, state, extra_ic_state, in UpdateCaches()
725 code = ComputeMonomorphicStub(lookup, state, extra_ic_state, in UpdateCaches()
891 LookupResult lookup(isolate()); in Load() local
892 LookupForRead(object, name, &lookup); in Load()
895 if (!lookup.IsProperty()) { in Load()
904 UpdateCaches(&lookup, state, object, name); in Load()
908 if (lookup.IsFound() && in Load()
909 (lookup.type() == INTERCEPTOR || lookup.type() == HANDLER)) { in Load()
912 Object::GetProperty(object, object, &lookup, name, &attr); in Load()
923 return object->GetProperty(*object, &lookup, *name, &attr); in Load()
927 void LoadIC::UpdateCaches(LookupResult* lookup, in UpdateCaches() argument
932 if (!lookup->IsCacheable()) return; in UpdateCaches()
939 if (HasNormalObjectsInPrototypeChain(isolate(), lookup, *object)) return; in UpdateCaches()
948 } else if (!lookup->IsProperty()) { in UpdateCaches()
953 Handle<JSObject> holder(lookup->holder()); in UpdateCaches()
954 switch (lookup->type()) { in UpdateCaches()
957 name, receiver, holder, lookup->GetFieldIndex()); in UpdateCaches()
960 Handle<JSFunction> constant(lookup->GetConstantFunction()); in UpdateCaches()
968 Handle<JSGlobalPropertyCell> cell(global->GetPropertyCell(lookup)); in UpdateCaches()
970 name, receiver, global, cell, lookup->IsDontDelete()); in UpdateCaches()
981 Handle<Object> callback_object(lookup->GetCallbackObject()); in UpdateCaches()
1130 LookupResult lookup(isolate()); in Load() local
1131 LookupForRead(object, name, &lookup); in Load()
1134 if (!lookup.IsProperty() && IsContextual(object)) { in Load()
1139 UpdateCaches(&lookup, state, object, name); in Load()
1143 if (lookup.IsFound() && lookup.type() == INTERCEPTOR) { in Load()
1146 Object::GetProperty(object, object, &lookup, name, &attr); in Load()
1156 return object->GetProperty(*object, &lookup, *name, &attr); in Load()
1194 void KeyedLoadIC::UpdateCaches(LookupResult* lookup, in UpdateCaches() argument
1199 if (!lookup->IsProperty() || !lookup->IsCacheable()) return; in UpdateCaches()
1204 if (HasNormalObjectsInPrototypeChain(isolate(), lookup, *object)) return; in UpdateCaches()
1216 Handle<JSObject> holder(lookup->holder()); in UpdateCaches()
1217 switch (lookup->type()) { in UpdateCaches()
1220 name, receiver, holder, lookup->GetFieldIndex()); in UpdateCaches()
1223 Handle<JSFunction> constant(lookup->GetConstantFunction()); in UpdateCaches()
1229 Handle<Object> callback_object(lookup->GetCallbackObject()); in UpdateCaches()
1239 ASSERT(HasInterceptorGetter(lookup->holder())); in UpdateCaches()
1264 static bool StoreICableLookup(LookupResult* lookup) { in StoreICableLookup() argument
1266 if (!lookup->IsFound() || lookup->type() == NULL_DESCRIPTOR) return false; in StoreICableLookup()
1269 if (!lookup->IsCacheable()) return false; in StoreICableLookup()
1272 if (lookup->IsReadOnly()) return false; in StoreICableLookup()
1280 LookupResult* lookup) { in LookupForWrite() argument
1281 receiver->LocalLookup(*name, lookup); in LookupForWrite()
1282 if (!StoreICableLookup(lookup)) { in LookupForWrite()
1286 if (lookup->type() == INTERCEPTOR && in LookupForWrite()
1288 receiver->LocalLookupRealNamedProperty(*name, lookup); in LookupForWrite()
1289 return StoreICableLookup(lookup); in LookupForWrite()
1354 LookupResult lookup(isolate()); in Store() local
1356 if (LookupForWrite(receiver, name, &lookup)) { in Store()
1358 UpdateCaches(&lookup, state, strict_mode, receiver, name, value); in Store()
1363 if (lookup.IsProperty() && lookup.IsReadOnly()) { in Store()
1390 void StoreIC::UpdateCaches(LookupResult* lookup, in UpdateCaches() argument
1397 ASSERT(StoreICableLookup(lookup)); in UpdateCaches()
1399 ASSERT(lookup->type() != HANDLER); in UpdateCaches()
1401 ASSERT(lookup->type() != NULL_DESCRIPTOR); in UpdateCaches()
1406 PropertyType type = lookup->type(); in UpdateCaches()
1416 lookup->GetFieldIndex(), in UpdateCaches()
1421 if (lookup->GetAttributes() != NONE) return; in UpdateCaches()
1422 Handle<Map> transition(lookup->GetTransitionMap()); in UpdateCaches()
1434 Handle<JSGlobalPropertyCell> cell(global->GetPropertyCell(lookup)); in UpdateCaches()
1438 if (lookup->holder() != *receiver) return; in UpdateCaches()
1443 Handle<Object> callback_object(lookup->GetCallbackObject()); in UpdateCaches()
1794 LookupResult lookup(isolate()); in Store() local
1795 if (LookupForWrite(receiver, name, &lookup)) { in Store()
1796 UpdateCaches(&lookup, state, strict_mode, receiver, name, value); in Store()
1838 void KeyedStoreIC::UpdateCaches(LookupResult* lookup, in UpdateCaches() argument
1845 ASSERT(StoreICableLookup(lookup)); in UpdateCaches()
1847 ASSERT(lookup->type() != HANDLER); in UpdateCaches()
1849 ASSERT(lookup->type() != NULL_DESCRIPTOR); in UpdateCaches()
1854 PropertyType type = lookup->type(); in UpdateCaches()
1864 name, receiver, lookup->GetFieldIndex(), in UpdateCaches()
1868 if (lookup->GetAttributes() == NONE) { in UpdateCaches()
1869 Handle<Map> transition(lookup->GetTransitionMap()); in UpdateCaches()