| Index: src/x64/builtins-x64.cc
|
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
|
| index 381b9411c53a2d7696ef975a7dd3f9305b43a9a9..d9ff366ed85345fb7a8b3b7b13a07803273d1833 100644
|
| --- a/src/x64/builtins-x64.cc
|
| +++ b/src/x64/builtins-x64.cc
|
| @@ -2741,14 +2741,11 @@ static void CompatibleReceiverCheck(MacroAssembler* masm, Register receiver,
|
|
|
| // Load the next prototype.
|
| __ bind(&next_prototype);
|
| - __ movp(receiver, FieldOperand(map, Map::kPrototypeOffset));
|
| - // End if the prototype is null or not hidden.
|
| - __ CompareRoot(receiver, Heap::kNullValueRootIndex);
|
| - __ j(equal, receiver_check_failed);
|
| - __ movp(map, FieldOperand(receiver, HeapObject::kMapOffset));
|
| __ testq(FieldOperand(map, Map::kBitField3Offset),
|
| - Immediate(Map::IsHiddenPrototype::kMask));
|
| + Immediate(Map::HasHiddenPrototype::kMask));
|
| __ j(zero, receiver_check_failed);
|
| + __ movp(receiver, FieldOperand(map, Map::kPrototypeOffset));
|
| + __ movp(map, FieldOperand(receiver, HeapObject::kMapOffset));
|
| // Iterate.
|
| __ jmp(&prototype_loop_start, Label::kNear);
|
|
|
|
|