| Index: src/objects-inl.h | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h | 
| index 5dc3e201ae6f68d814b31d007385c0fef75fa4c3..ba424c2984610c81cbabf4f457d9af18a25d88e1 100644 | 
| --- a/src/objects-inl.h | 
| +++ b/src/objects-inl.h | 
| @@ -7183,9 +7183,16 @@ Maybe<bool> JSReceiver::HasProperty(Handle<JSReceiver> object, | 
|  | 
| Maybe<bool> JSReceiver::HasOwnProperty(Handle<JSReceiver> object, | 
| Handle<Name> name) { | 
| -  LookupIterator it = LookupIterator::PropertyOrElement( | 
| -      object->GetIsolate(), object, name, LookupIterator::HIDDEN); | 
| -  return HasProperty(&it); | 
| +  if (object->IsJSObject()) {  // Shortcut | 
| +    LookupIterator it = LookupIterator::PropertyOrElement( | 
| +        object->GetIsolate(), object, name, LookupIterator::HIDDEN); | 
| +    return HasProperty(&it); | 
| +  } | 
| + | 
| +  Maybe<PropertyAttributes> attributes = | 
| +      JSReceiver::GetOwnPropertyAttributes(object, name); | 
| +  MAYBE_RETURN(attributes, Nothing<bool>()); | 
| +  return Just(attributes.FromJust() != ABSENT); | 
| } | 
|  | 
|  | 
| @@ -7211,14 +7218,6 @@ Maybe<bool> JSReceiver::HasElement(Handle<JSReceiver> object, uint32_t index) { | 
| } | 
|  | 
|  | 
| -Maybe<bool> JSReceiver::HasOwnElement(Handle<JSReceiver> object, | 
| -                                      uint32_t index) { | 
| -  LookupIterator it(object->GetIsolate(), object, index, | 
| -                    LookupIterator::HIDDEN); | 
| -  return HasProperty(&it); | 
| -} | 
| - | 
| - | 
| Maybe<PropertyAttributes> JSReceiver::GetElementAttributes( | 
| Handle<JSReceiver> object, uint32_t index) { | 
| Isolate* isolate = object->GetIsolate(); | 
|  |