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