Index: src/lookup.cc |
diff --git a/src/lookup.cc b/src/lookup.cc |
index 55e9d689a118765c97256aee5d5f98a8138d3ce2..6a540de4df621f82adda771e9007fa5ac9adae40 100644 |
--- a/src/lookup.cc |
+++ b/src/lookup.cc |
@@ -289,7 +289,7 @@ Handle<Object> LookupIterator::GetDataValue() const { |
} |
-void LookupIterator::WriteDataValue(Handle<Object> value) { |
+Handle<Object> LookupIterator::WriteDataValue(Handle<Object> value) { |
DCHECK_EQ(DATA, state_); |
Handle<JSObject> holder = GetHolder<JSObject>(); |
if (holder_map_->is_dictionary_map()) { |
@@ -297,7 +297,7 @@ void LookupIterator::WriteDataValue(Handle<Object> value) { |
if (holder->IsGlobalObject()) { |
Handle<PropertyCell> cell( |
PropertyCell::cast(property_dictionary->ValueAt(dictionary_entry()))); |
- PropertyCell::SetValueInferType(cell, value); |
+ value = PropertyCell::SetValueInferType(cell, value); |
} else { |
property_dictionary->ValueAtPut(dictionary_entry(), *value); |
} |
@@ -306,6 +306,7 @@ void LookupIterator::WriteDataValue(Handle<Object> value) { |
} else { |
DCHECK_EQ(v8::internal::CONSTANT, property_details_.type()); |
} |
+ return value; |
} |