| Index: src/api.cc
 | 
| diff --git a/src/api.cc b/src/api.cc
 | 
| index 71a715c1bb28b20189b91421f7605518f9174f98..a59b934d3456e5bb36882b2d108ae4a86737966f 100644
 | 
| --- a/src/api.cc
 | 
| +++ b/src/api.cc
 | 
| @@ -3092,39 +3092,7 @@ int v8::Object::GetIdentityHash() {
 | 
|    ENTER_V8(isolate);
 | 
|    i::HandleScope scope(isolate);
 | 
|    i::Handle<i::JSObject> self = Utils::OpenHandle(this);
 | 
| -  i::Handle<i::Object> hidden_props_obj(i::GetHiddenProperties(self, true));
 | 
| -  if (!hidden_props_obj->IsJSObject()) {
 | 
| -    // We failed to create hidden properties.  That's a detached
 | 
| -    // global proxy.
 | 
| -    ASSERT(hidden_props_obj->IsUndefined());
 | 
| -    return 0;
 | 
| -  }
 | 
| -  i::Handle<i::JSObject> hidden_props =
 | 
| -      i::Handle<i::JSObject>::cast(hidden_props_obj);
 | 
| -  i::Handle<i::String> hash_symbol = isolate->factory()->identity_hash_symbol();
 | 
| -  if (hidden_props->HasLocalProperty(*hash_symbol)) {
 | 
| -    i::Handle<i::Object> hash = i::GetProperty(hidden_props, hash_symbol);
 | 
| -    CHECK(!hash.is_null());
 | 
| -    CHECK(hash->IsSmi());
 | 
| -    return i::Smi::cast(*hash)->value();
 | 
| -  }
 | 
| -
 | 
| -  int hash_value;
 | 
| -  int attempts = 0;
 | 
| -  do {
 | 
| -    // Generate a random 32-bit hash value but limit range to fit
 | 
| -    // within a smi.
 | 
| -    hash_value = i::V8::Random(self->GetIsolate()) & i::Smi::kMaxValue;
 | 
| -    attempts++;
 | 
| -  } while (hash_value == 0 && attempts < 30);
 | 
| -  hash_value = hash_value != 0 ? hash_value : 1;  // never return 0
 | 
| -  CHECK(!i::SetLocalPropertyIgnoreAttributes(
 | 
| -          hidden_props,
 | 
| -          hash_symbol,
 | 
| -          i::Handle<i::Object>(i::Smi::FromInt(hash_value)),
 | 
| -          static_cast<PropertyAttributes>(None)).is_null());
 | 
| -
 | 
| -  return hash_value;
 | 
| +  return i::GetIdentityHash(self)->value();
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |