| Index: src/a64/ic-a64.cc
|
| diff --git a/src/a64/ic-a64.cc b/src/a64/ic-a64.cc
|
| index e695f13473f7c51a7aa725006ed7a310ec0baf2b..a2fa028b80028699139e715fc96448372dbdb7df 100644
|
| --- a/src/a64/ic-a64.cc
|
| +++ b/src/a64/ic-a64.cc
|
| @@ -1553,10 +1553,11 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
|
| __ JumpIfSmi(receiver, &slow);
|
| __ Ldr(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
|
|
|
| - // Check that the receiver does not require access checks. We need to do this
|
| - // because this generic stub does not perform map checks.
|
| + // Check that the receiver does not require access checks and is not observed.
|
| + // The generic stub does not perform map checks or handle observed objects.
|
| __ Ldrb(x10, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
|
| - __ Tbnz(x10, Map::kIsAccessCheckNeeded, &slow);
|
| + __ TestAndBranchIfAnySet(
|
| + x10, (1 << Map::kIsAccessCheckNeeded) | (1 << Map::kIsObserved), &slow);
|
|
|
| // Check if the object is a JS array or not.
|
| Register instance_type = x10;
|
|
|