Reviewers: danno,

Message:
PTAL.

Description:
Unless undefined is explicitly allows as hash, use ALLOW_CREATION.


Please review this at https://chromiumcodereview.appspot.com/10873008/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/objects-inl.h
  M src/objects.cc


Index: src/objects-inl.h
diff --git a/src/objects-inl.h b/src/objects-inl.h
index 6c4cd54f6624601f2ca21814113a3cc11824b927..6261d803cb1e86a2c5f7d431b35679e2a68f352c 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -5075,7 +5075,7 @@ bool ObjectHashTableShape<entrysize>::IsMatch(Object* key, Object* other) {

 template <int entrysize>
 uint32_t ObjectHashTableShape<entrysize>::Hash(Object* key) {
-  MaybeObject* maybe_hash = key->GetHash(OMIT_CREATION);
+  MaybeObject* maybe_hash = key->GetHash(ALLOW_CREATION);
   return Smi::cast(maybe_hash->ToObjectChecked())->value();
 }

@@ -5083,7 +5083,7 @@ uint32_t ObjectHashTableShape<entrysize>::Hash(Object* key) {
 template <int entrysize>
 uint32_t ObjectHashTableShape<entrysize>::HashForObject(Object* key,
                                                         Object* other) {
-  MaybeObject* maybe_hash = other->GetHash(OMIT_CREATION);
+  MaybeObject* maybe_hash = other->GetHash(ALLOW_CREATION);
   return Smi::cast(maybe_hash->ToObjectChecked())->value();
 }

Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index 64f5a452d7c74ae961b6af3ec44a48d981f30fd1..a883635fc27587c7df7ffacda72042318bf48d2c 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -2761,7 +2761,7 @@ void JSProxy::Fix() {

   // Inherit identity, if it was present.
   Object* hash;
-  if (maybe_hash->To<Object>(&hash) && hash->IsSmi()) {
+  if (maybe_hash->To(&hash) && hash->IsSmi()) {
     Handle<JSObject> new_self(JSObject::cast(*self));
     isolate->factory()->SetIdentityHash(new_self, Smi::cast(hash));
   }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to