Chromium Code Reviews| Index: src/objects-inl.h | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h | 
| index 364376c722776fcc01303b035e798130db116054..44f7b9e647daa8367da4238737eadfa04bc8eafb 100644 | 
| --- a/src/objects-inl.h | 
| +++ b/src/objects-inl.h | 
| @@ -162,6 +162,22 @@ HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DEF) | 
| ODDBALL_LIST(IS_TYPE_FUNCTION_DEF) | 
| #undef IS_TYPE_FUNCTION_DEF | 
| +bool HeapObject::IsTheHole(Isolate* isolate) const { | 
| + return this == isolate->heap()->the_hole_value(); | 
| +} | 
| + | 
| +bool HeapObject::IsUndefined(Isolate* isolate) const { | 
| + return this == isolate->heap()->undefined_value(); | 
| +} | 
| + | 
| +bool Object::IsTheHole(Isolate* isolate) const { | 
| + return this == isolate->heap()->the_hole_value(); | 
| +} | 
| + | 
| +bool Object::IsUndefined(Isolate* isolate) const { | 
| + return this == isolate->heap()->undefined_value(); | 
| +} | 
| 
 
Toon Verwaest
2016/06/01 12:36:17
We should replace the versions above with these ve
 
 | 
| + | 
| bool HeapObject::IsString() const { | 
| return map()->instance_type() < FIRST_NONSTRING_TYPE; | 
| } | 
| @@ -244,7 +260,6 @@ bool HeapObject::IsExternalTwoByteString() const { | 
| String::cast(this)->IsTwoByteRepresentation(); | 
| } | 
| - | 
| bool Object::HasValidElements() { | 
| // Dictionary is covered under FixedArray. | 
| return IsFixedArray() || IsFixedDoubleArray() || IsFixedTypedArrayBase(); | 
| @@ -3021,7 +3036,8 @@ bool HashTableBase::IsKey(Heap* heap, Object* k) { | 
| } | 
| bool HashTableBase::IsKey(Object* k) { | 
| - return !k->IsTheHole() && !k->IsUndefined(); | 
| + Isolate* isolate = this->GetIsolate(); | 
| + return !k->IsTheHole(isolate) && !k->IsUndefined(isolate); | 
| } |