Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index aec412c5d8bc846dd0218defc99a09400ae75fc0..f82e92c904adcea112e05778334a7f036c5ee212 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -16310,8 +16310,8 @@ void PropertyCell::set_type(Type* type, WriteBarrierMode ignored) { |
} |
-Type* PropertyCell::UpdatedType(Handle<PropertyCell> cell, |
- Handle<Object> value) { |
+Handle<Type> PropertyCell::UpdatedType(Handle<PropertyCell> cell, |
+ Handle<Object> value) { |
Isolate* isolate = cell->GetIsolate(); |
Handle<Type> old_type(cell->type(), isolate); |
// TODO(2803): Do not track ConsString as constant because they cannot be |
@@ -16321,17 +16321,17 @@ Type* PropertyCell::UpdatedType(Handle<PropertyCell> cell, |
: Type::Constant(value, isolate), isolate); |
if (new_type->Is(old_type)) { |
- return *old_type; |
+ return old_type; |
} |
cell->dependent_code()->DeoptimizeDependentCodeGroup( |
isolate, DependentCode::kPropertyCellChangedGroup); |
if (old_type->Is(Type::None()) || old_type->Is(Type::Undefined())) { |
- return *new_type; |
+ return new_type; |
} |
- return Type::Any(); |
+ return handle(Type::Any(), isolate); |
} |
@@ -16339,8 +16339,8 @@ void PropertyCell::SetValueInferType(Handle<PropertyCell> cell, |
Handle<Object> value) { |
cell->set_value(*value); |
if (!Type::Any()->Is(cell->type())) { |
- Type* new_type = UpdatedType(cell, value); |
- cell->set_type(new_type); |
+ Handle<Type> new_type = UpdatedType(cell, value); |
+ cell->set_type(*new_type); |
} |
} |