Home | History | Annotate | Download | only in src

Lines Matching full:receiver

174                                              Object* receiver) {
177 for (Object* current = receiver;
193 Object* receiver,
198 if (cache_holder == OWN_MAP && !receiver->IsJSObject()) {
203 receiver->GetPrototype()->IsNull()) {
207 Map* map = IC::GetCodeCacheHolder(receiver, cache_holder)->map();
210 // receiver itself or changes to one of its prototypes.
212 // If there are changes to the receiver itself, the map of the
213 // receiver will have changed and the current target will not be in
214 // the receiver map's code cache. Therefore, if the current target
215 // is in the receiver map's code cache, the inline cache failed due
227 IC::State IC::StateFrom(Code* target, Object* receiver, Object* name) {
231 if (receiver->IsUndefined() || receiver->IsNull()) return state;
249 TryRemoveInvalidPrototypeDependentStub(target, receiver, name)) {
259 if (receiver->IsJSBuiltinsObject()) {
460 // Patch the receiver and use the delegate as the function to
482 // Do not wrap receiver for strict mode functions or for builtins.
489 // Change the receiver to the result of calling ToObject on it.
557 // Make receiver an object if the callee requires it. Strict mode or builtin
558 // functions do not wrap the receiver, non-strict functions and objects
605 // Check there's the right string value or wrapper in the receiver slot.
652 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
660 argc, kind_, extra_state, name, receiver, global, cell, function);
664 // property must be found in the receiver for the stub to be
666 if (!holder.is_identical_to(receiver)) return Handle<Code>::null();
789 // Make receiver an object if the callee requires it. Strict mode or builtin
790 // functions do not wrap the receiver, non-strict functions and objects
937 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
950 code = isolate()->stub_cache()->ComputeLoadNonexistent(name, receiver);
957 name, receiver, holder, lookup->GetFieldIndex());
962 name, receiver, holder, constant);
970 name, receiver, global, cell, lookup->IsDontDelete());
974 // property must be found in the receiver for the stub to be
976 if (!holder.is_identical_to(receiver)) return;
987 name, receiver, holder, callback);
993 name, receiver, holder);
1008 // the receiver into stub cache.
1013 isolate()->stub_cache()->Set(*name, receiver->map(), *code);
1019 isolate()->stub_cache()->Set(*name, receiver->map(), *code);
1171 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1172 if (receiver->elements()->map() ==
1175 } else if (receiver->HasIndexedInterceptor()) {
1178 stub = ComputeStub(receiver, LOAD, kNonStrictMode, stub);
1202 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1220 name, receiver, holder, lookup->GetFieldIndex());
1225 name, receiver, holder, constant);
1235 name, receiver, holder, callback);
1241 name, receiver, holder);
1278 static bool LookupForWrite(Handle<JSObject> receiver,
1281 receiver->LocalLookup(*name, lookup);
1287 receiver->GetNamedInterceptor()->setter()->IsUndefined()) {
1288 receiver->LocalLookupRealNamedProperty(*name, lookup);
1319 // Ignore other stores where the receiver is not a JSObject.
1324 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1330 JSObject::SetElement(receiver, index, value, NONE, strict_mode);
1338 if (receiver->IsJSArray() &&
1340 Handle<JSArray>::cast(receiver)->AllowsSetElementsLength() &&
1341 receiver->HasFastProperties()) {
1349 return receiver->SetProperty(*name, *value, NONE, strict_mode);
1352 // Lookup the property locally in the receiver.
1353 if (FLAG_use_ic && !receiver->IsJSGlobalProxy()) {
1356 if (LookupForWrite(receiver, name, &lookup)) {
1358 UpdateCaches(&lookup, state, strict_mode, receiver, name, value);
1372 if (receiver->IsJSGlobalProxy()) {
1375 // proxy as receiver.
1386 return receiver->SetProperty(*name, *value, NONE, strict_mode);
1393 Handle<JSObject> receiver,
1396 ASSERT(!receiver->IsJSGlobalProxy());
1415 receiver,
1425 name, receiver, index, transition, strict_mode);
1429 if (receiver->IsGlobalObject()) {
1433 Handle<GlobalObject> global = Handle<GlobalObject>::cast(receiver);
1438 if (lookup->holder() != *receiver) return;
1449 name, receiver, callback, strict_mode);
1453 ASSERT(!receiver->GetNamedInterceptor()->setter()->IsUndefined());
1455 name, receiver, strict_mode);
1479 isolate()->stub_cache()->Set(*name, receiver->map(), *code);
1523 Handle<Code> KeyedIC::ComputeStub(Handle<JSObject> receiver,
1550 // The first time a receiver is seen that is a transitioned version of
1551 // the previous monomorphic receiver type, assume the new ElementsKind
1559 receiver->GetElementsKind());
1566 receiver, stub_kind, strict_mode, generic_stub);
1570 // Determine the list of receiver maps that this call site has seen,
1572 Handle<Map> receiver_map(receiver->map());
1576 Handle<Map> new_map = ComputeTransitionedMap(receiver, stub_kind);
1586 // If the maximum number of receiver maps has been exceeded, use the generic
1634 Handle<Code> KeyedIC::ComputeMonomorphicStub(Handle<JSObject> receiver,
1638 if (receiver->HasFastElements() ||
1639 receiver->HasFastSmiOnlyElements() ||
1640 receiver->HasExternalArrayElements() ||
1641 receiver->HasFastDoubleElements() ||
1642 receiver->HasDictionaryElements()) {
1644 receiver, stub_kind, strict_mode);
1651 Handle<Map> KeyedIC::ComputeTransitionedMap(Handle<JSObject> receiver,
1658 return JSObject::GetElementsTransitionMap(receiver, FAST_ELEMENTS);
1662 return JSObject::GetElementsTransitionMap(receiver, FAST_DOUBLE_ELEMENTS);
1716 KeyedIC::StubKind KeyedStoreIC::GetStubKind(Handle<JSObject> receiver,
1721 bool allow_growth = receiver->IsJSArray() &&
1722 JSArray::cast(*receiver)->length()->IsSmi() &&
1723 index >= Smi::cast(JSArray::cast(*receiver)->length())->value();
1727 if (receiver->HasFastSmiOnlyElements()) {
1734 } else if (receiver->HasFastDoubleElements()) {
1742 if (receiver->HasFastSmiOnlyElements()) {
1748 } else if (receiver->HasFastDoubleElements()) {
1779 // Ignore stores where the receiver is not a JSObject.
1781 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1787 JSObject::SetElement(receiver, index, value, NONE, strict_mode);
1793 if (FLAG_use_ic && !receiver->IsJSGlobalProxy()) {
1795 if (LookupForWrite(receiver, name, &lookup)) {
1796 UpdateCaches(&lookup, state, strict_mode, receiver, name, value);
1801 return receiver->SetProperty(*name, *value, NONE, strict_mode);
1814 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
1815 if (receiver->elements()->map() ==
1820 StubKind stub_kind = GetStubKind(receiver, key, value);
1821 stub = ComputeStub(receiver, stub_kind, strict_mode, stub);
1841 Handle<JSObject> receiver,
1844 ASSERT(!receiver->IsJSGlobalProxy());
1864 name, receiver, lookup->GetFieldIndex(),
1872 name, receiver, index, transition, strict_mode);
2014 JSArray* receiver = JSArray::cast(args[0]);
2023 receiver->LocalLookup(isolate->heap()->length_symbol(), &debug_lookup);
2028 { MaybeObject* maybe_result = receiver->SetElementsLength(len);