| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 0ba80d35907c536934ba37beec838afaaf2ba0ca..e250a7f367a8fcbdf58ed0300f3be20451d1611b 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -1219,16 +1219,13 @@ Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
|
|
|
| case LookupIterator::ACCESSOR: {
|
| // Use simple field loads for some well-known callback properties.
|
| - if (receiver_is_holder) {
|
| - DCHECK(receiver->IsJSObject());
|
| - Handle<JSObject> js_receiver = Handle<JSObject>::cast(receiver);
|
| - int object_offset;
|
| - if (Accessors::IsJSObjectFieldAccessor(map, lookup->name(),
|
| - &object_offset)) {
|
| - FieldIndex index =
|
| - FieldIndex::ForInObjectOffset(object_offset, js_receiver->map());
|
| - return SimpleFieldLoad(index);
|
| - }
|
| + // The method will only return true for absolute truths based on the
|
| + // receiver maps.
|
| + int object_offset;
|
| + if (Accessors::IsJSObjectFieldAccessor(map, lookup->name(),
|
| + &object_offset)) {
|
| + FieldIndex index = FieldIndex::ForInObjectOffset(object_offset, *map);
|
| + return SimpleFieldLoad(index);
|
| }
|
|
|
| Handle<Object> accessors = lookup->GetAccessors();
|
|
|