Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 25e1d7d74b4c70993c4367a81e65a2270ecad947..0b9d12cff2c21d1308f48aaf5f233860cb991ff5 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -162,24 +162,17 @@ |
return IsHeapObject() && HeapObject::cast(this)->Is##type_(); \ |
} |
HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DEF) |
+#undef IS_TYPE_FUNCTION_DEF |
+ |
+#define IS_TYPE_FUNCTION_DEF(Type, Value) \ |
+ bool Object::Is##Type(Isolate* isolate) const { \ |
+ return this == isolate->heap()->Value(); \ |
+ } \ |
+ bool HeapObject::Is##Type(Isolate* isolate) const { \ |
+ return this == isolate->heap()->Value(); \ |
+ } |
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(); |
-} |
bool HeapObject::IsString() const { |
return map()->instance_type() < FIRST_NONSTRING_TYPE; |
@@ -301,12 +294,12 @@ |
Handle<Object> Object::NewStorageFor(Isolate* isolate, |
Handle<Object> object, |
Representation representation) { |
- if (representation.IsSmi() && object->IsUninitialized()) { |
+ if (representation.IsSmi() && object->IsUninitialized(isolate)) { |
return handle(Smi::FromInt(0), isolate); |
} |
if (!representation.IsDouble()) return object; |
double value; |
- if (object->IsUninitialized()) { |
+ if (object->IsUninitialized(isolate)) { |
value = 0; |
} else if (object->IsMutableHeapNumber()) { |
value = HeapNumber::cast(*object)->value(); |
@@ -320,7 +313,7 @@ |
Handle<Object> Object::WrapForRead(Isolate* isolate, |
Handle<Object> object, |
Representation representation) { |
- DCHECK(!object->IsUninitialized()); |
+ DCHECK(!object->IsUninitialized(isolate)); |
if (!representation.IsDouble()) { |
DCHECK(object->FitsRepresentation(representation)); |
return object; |
@@ -955,13 +948,6 @@ |
STRUCT_LIST(MAKE_STRUCT_PREDICATE) |
#undef MAKE_STRUCT_PREDICATE |
-#define MAKE_ODDBALL_PREDICATE(Name) \ |
- bool HeapObject::Is##Name() const { \ |
- return IsOddball() && Oddball::cast(this)->kind() == Oddball::k##Name; \ |
- } |
-ODDBALL_LIST(MAKE_ODDBALL_PREDICATE) |
- |
-#undef MAKE_ODDBALL_PREDICATE |
double Object::Number() const { |
DCHECK(IsNumber()); |
return IsSmi() |
@@ -987,7 +973,8 @@ |
return Representation::Smi(); |
} else if (FLAG_track_double_fields && IsHeapNumber()) { |
return Representation::Double(); |
- } else if (FLAG_track_computed_fields && IsUninitialized()) { |
+ } else if (FLAG_track_computed_fields && |
+ IsUninitialized(HeapObject::cast(this)->GetIsolate())) { |
return Representation::None(); |
} else if (FLAG_track_heap_object_fields) { |
DCHECK(IsHeapObject()); |
@@ -2201,7 +2188,9 @@ |
FieldIndex index = FieldIndex::ForDescriptor(map(), descriptor); |
if (details.representation().IsDouble()) { |
// Nothing more to be done. |
- if (value->IsUninitialized()) return; |
+ if (value->IsUninitialized(this->GetIsolate())) { |
+ return; |
+ } |
if (IsUnboxedDoubleField(index)) { |
RawFastDoublePropertyAtPut(index, value->Number()); |
} else { |
@@ -2298,8 +2287,8 @@ |
DCHECK(IsHeapObject()); |
Isolate* isolate = HeapObject::cast(this)->GetIsolate(); |
if (!(IsString() || IsSymbol() || IsJSReceiver() || IsHeapNumber() || |
- IsSimd128Value() || IsUndefined(isolate) || IsTrue() || IsFalse() || |
- IsNull())) { |
+ IsSimd128Value() || IsUndefined(isolate) || IsTrue(isolate) || |
+ IsFalse(isolate) || IsNull(isolate))) { |
FATAL("API call returned invalid object"); |
} |
#endif // DEBUG |
@@ -5294,7 +5283,7 @@ |
void Map::set_prototype(Object* value, WriteBarrierMode mode) { |
- DCHECK(value->IsNull() || value->IsJSReceiver()); |
+ DCHECK(value->IsNull(GetIsolate()) || value->IsJSReceiver()); |
WRITE_FIELD(this, kPrototypeOffset, value); |
CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kPrototypeOffset, value, mode); |
} |
@@ -7323,8 +7312,9 @@ |
void AccessorPair::SetComponents(Object* getter, Object* setter) { |
- if (!getter->IsNull()) set_getter(getter); |
- if (!setter->IsNull()) set_setter(setter); |
+ Isolate* isolate = GetIsolate(); |
+ if (!getter->IsNull(isolate)) set_getter(getter); |
+ if (!setter->IsNull(isolate)) set_setter(setter); |
} |