| Index: test/cctest/test-heap.cc
 | 
| diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
 | 
| index daf45ad13edb08e2350c6f6aee6fb6945b4c56e4..a1ca9666e14846d7df65cba41608667379cb5a77 100644
 | 
| --- a/test/cctest/test-heap.cc
 | 
| +++ b/test/cctest/test-heap.cc
 | 
| @@ -1984,3 +1984,39 @@ TEST(PrintSharedFunctionInfo) {
 | 
|    g->shared()->PrintLn();
 | 
|  }
 | 
|  #endif  // OBJECT_PRINT
 | 
| +
 | 
| +
 | 
| +TEST(Regress2211) {
 | 
| +  InitializeVM();
 | 
| +  v8::HandleScope scope;
 | 
| +
 | 
| +  v8::Handle<v8::String> value = v8_str("val string");
 | 
| +  Smi* hash = Smi::FromInt(321);
 | 
| +  Heap* heap = Isolate::Current()->heap();
 | 
| +
 | 
| +  for (int i = 0; i < 2; i++) {
 | 
| +    // Store identity hash first and common hidden property second.
 | 
| +    v8::Handle<v8::Object> obj = v8::Object::New();
 | 
| +    Handle<JSObject> internal_obj = v8::Utils::OpenHandle(*obj);
 | 
| +    CHECK(internal_obj->HasFastProperties());
 | 
| +
 | 
| +    // In the first iteration, set hidden value first and identity hash second.
 | 
| +    // In the second iteration, reverse the order.
 | 
| +    if (i == 0) obj->SetHiddenValue(v8_str("key string"), value);
 | 
| +    MaybeObject* maybe_obj = internal_obj->SetIdentityHash(hash,
 | 
| +                                                           ALLOW_CREATION);
 | 
| +    CHECK(!maybe_obj->IsFailure());
 | 
| +    if (i == 1) obj->SetHiddenValue(v8_str("key string"), value);
 | 
| +
 | 
| +    // Check values.
 | 
| +    CHECK_EQ(hash,
 | 
| +             internal_obj->GetHiddenProperty(heap->identity_hash_symbol()));
 | 
| +    CHECK(value->Equals(obj->GetHiddenValue(v8_str("key string"))));
 | 
| +
 | 
| +    // Check size.
 | 
| +    DescriptorArray* descriptors = internal_obj->map()->instance_descriptors();
 | 
| +    ObjectHashTable* hashtable = ObjectHashTable::cast(
 | 
| +        internal_obj->FastPropertyAt(descriptors->GetFieldIndex(0)));
 | 
| +    CHECK_LE(hashtable->SizeFor(hashtable->length()), 52);
 | 
| +  }
 | 
| +}
 | 
| 
 |