Index: src/mips/ic-mips.cc |
diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc |
index aa2773462c73266aa2d61a07f1635e13bd25f825..4082e4a054ad028caa64919570bc7c32108de7aa 100644 |
--- a/src/mips/ic-mips.cc |
+++ b/src/mips/ic-mips.cc |
@@ -1329,6 +1329,11 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
__ lbu(t0, FieldMemOperand(receiver_map, Map::kBitFieldOffset)); |
__ And(t0, t0, Operand(1 << Map::kIsAccessCheckNeeded)); |
__ Branch(&slow, ne, t0, Operand(zero_reg)); |
+ // Check that the receiver is not observed. Observed objects are always |
+ // handled by the runtime. |
+ __ lbu(t0, FieldMemOperand(receiver_map, Map::kBitFieldOffset)); |
+ __ And(t0, t0, Operand(1 << Map::kIsObserved)); |
+ __ Branch(&slow, ne, t0, Operand(zero_reg)); |
// Check if the object is a JS array or not. |
__ lbu(t0, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset)); |
__ Branch(&array, eq, t0, Operand(JS_ARRAY_TYPE)); |