| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 4aef8088860f275126fd9eb2ea7c5365635016fe..4c4bd4ea02de1b478580d0a50d805d173594f7ad 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -16290,8 +16290,8 @@ void PropertyCell::set_type(Type* type, WriteBarrierMode ignored) {
|
| }
|
|
|
|
|
| -Type* PropertyCell::UpdateType(Handle<PropertyCell> cell,
|
| - Handle<Object> value) {
|
| +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
|
| @@ -16316,27 +16316,12 @@ Type* PropertyCell::UpdateType(Handle<PropertyCell> cell,
|
|
|
|
|
| void PropertyCell::SetValueInferType(Handle<PropertyCell> cell,
|
| - Handle<Object> value,
|
| - WriteBarrierMode mode) {
|
| - CALL_HEAP_FUNCTION_VOID(cell->GetIsolate(),
|
| - cell->SetValueInferType(*value, mode));
|
| -}
|
| -
|
| -
|
| -MaybeObject* PropertyCell::SetValueInferType(Object* value,
|
| - WriteBarrierMode ignored) {
|
| - set_value(value, ignored);
|
| - if (!Type::Any()->Is(type())) {
|
| - IdempotentPointerToHandleCodeTrampoline trampoline(GetIsolate());
|
| - MaybeObject* maybe_type = trampoline.CallWithReturnValue(
|
| - &PropertyCell::UpdateType,
|
| - Handle<PropertyCell>(this),
|
| - Handle<Object>(value, GetIsolate()));
|
| - Type* new_type = NULL;
|
| - if (!maybe_type->To(&new_type)) return maybe_type;
|
| - set_type(new_type);
|
| + Handle<Object> value) {
|
| + cell->set_value(*value);
|
| + if (!Type::Any()->Is(cell->type())) {
|
| + Type* new_type = UpdatedType(cell, value);
|
| + cell->set_type(new_type);
|
| }
|
| - return value;
|
| }
|
|
|
|
|
|
|