Index: src/ia32/code-stubs-ia32.cc |
=================================================================== |
--- src/ia32/code-stubs-ia32.cc (revision 10830) |
+++ src/ia32/code-stubs-ia32.cc (working copy) |
@@ -6823,7 +6823,7 @@ |
// not equal to the name and kProbes-th slot is not used (its name is the |
// undefined value), it guarantees the hash table doesn't contain the |
// property. It's true even if some slots represent deleted properties |
- // (their names are the null value). |
+ // (their names are the hole value). |
for (int i = 0; i < kInlinedProbes; i++) { |
// Compute the masked index: (hash + i + i * i) & mask. |
Register index = r0; |
@@ -6849,11 +6849,17 @@ |
__ cmp(entity_name, Handle<String>(name)); |
__ j(equal, miss); |
+ Label the_hole; |
+ // Check for the hole and skip. |
+ __ cmp(entity_name, masm->isolate()->factory()->the_hole_value()); |
+ __ j(equal, &the_hole, Label::kNear); |
+ |
// Check if the entry name is not a symbol. |
__ mov(entity_name, FieldOperand(entity_name, HeapObject::kMapOffset)); |
__ test_b(FieldOperand(entity_name, Map::kInstanceTypeOffset), |
kIsSymbolMask); |
__ j(zero, miss); |
+ __ bind(&the_hole); |
} |
StringDictionaryLookupStub stub(properties, |