| Index: src/ia32/ic-ia32.cc
|
| diff --git a/src/ia32/ic-ia32.cc b/src/ia32/ic-ia32.cc
|
| index f8e4ea53d0f78cb32f63e86b30343f85c857f42c..22c51977705791e494c976da776b2bd1b34fd1ca 100644
|
| --- a/src/ia32/ic-ia32.cc
|
| +++ b/src/ia32/ic-ia32.cc
|
| @@ -856,6 +856,11 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
|
| __ test_b(FieldOperand(edi, Map::kBitFieldOffset),
|
| 1 << Map::kIsAccessCheckNeeded);
|
| __ j(not_zero, &slow);
|
| + // Check that the receiver is not observed. Observed objects are always
|
| + // handled by the runtime.
|
| + __ test_b(FieldOperand(edi, Map::kBitFieldOffset),
|
| + 1 << Map::kIsObserved);
|
| + __ j(not_zero, &slow);
|
| // Check that the key is a smi.
|
| __ JumpIfNotSmi(ecx, &slow);
|
| __ CmpInstanceType(edi, JS_ARRAY_TYPE);
|
|
|