Index: src/ic/accessor-assembler.cc |
diff --git a/src/ic/accessor-assembler.cc b/src/ic/accessor-assembler.cc |
index 22ecec2bb1462880d49c473d098a8c2b08f4e417..43c269f9bf97d8b06818d21ce88f4ee57c9b856e 100644 |
--- a/src/ic/accessor-assembler.cc |
+++ b/src/ic/accessor-assembler.cc |
@@ -690,14 +690,13 @@ void AccessorAssemblerImpl::HandleStoreFieldAndReturn( |
Node* prepared_value = PrepareValueForStore( |
handler_word, holder, representation, transition, value, miss); |
- Node* offset = DecodeWord<StoreHandler::FieldOffsetBits>(handler_word); |
Label if_inobject(this), if_out_of_object(this); |
Branch(IsSetWord<StoreHandler::IsInobjectBits>(handler_word), &if_inobject, |
&if_out_of_object); |
Bind(&if_inobject); |
{ |
- StoreNamedField(holder, offset, true, representation, prepared_value, |
+ StoreNamedField(handler_word, holder, true, representation, prepared_value, |
transition_to_field); |
if (transition_to_field) { |
StoreMap(holder, transition); |
@@ -719,7 +718,7 @@ void AccessorAssemblerImpl::HandleStoreFieldAndReturn( |
Bind(&storage_extended); |
} |
- StoreNamedField(holder, offset, false, representation, prepared_value, |
+ StoreNamedField(handler_word, holder, false, representation, prepared_value, |
transition_to_field); |
if (transition_to_field) { |
StoreMap(holder, transition); |
@@ -799,7 +798,7 @@ void AccessorAssemblerImpl::ExtendPropertiesBackingStore(Node* object) { |
StoreObjectField(object, JSObject::kPropertiesOffset, new_properties); |
} |
-void AccessorAssemblerImpl::StoreNamedField(Node* object, Node* offset, |
+void AccessorAssemblerImpl::StoreNamedField(Node* handler_word, Node* object, |
bool is_inobject, |
Representation representation, |
Node* value, |
@@ -810,6 +809,7 @@ void AccessorAssemblerImpl::StoreNamedField(Node* object, Node* offset, |
property_storage = LoadProperties(object); |
} |
+ Node* offset = DecodeWord<StoreHandler::FieldOffsetBits>(handler_word); |
if (representation.IsDouble()) { |
if (!FLAG_unbox_double_fields || !is_inobject) { |
if (transition_to_field) { |