Index: src/builtins/builtins-handler.cc |
diff --git a/src/builtins/builtins-handler.cc b/src/builtins/builtins-handler.cc |
index 8be2a3beaa81a675784de1781fe7174ee478f5c2..6a9eb3a9550d1ad0027bc59ce1b2f9f37381f3d1 100644 |
--- a/src/builtins/builtins-handler.cc |
+++ b/src/builtins/builtins-handler.cc |
@@ -239,21 +239,15 @@ TF_BUILTIN(StoreIC_Normal, CodeStubAssembler) { |
&var_name_index, &slow); |
Bind(&found); |
{ |
- const int kNameToDetailsOffset = (NameDictionary::kEntryDetailsIndex - |
- NameDictionary::kEntryKeyIndex) * |
- kPointerSize; |
- Node* details = LoadFixedArrayElement(properties, var_name_index.value(), |
- kNameToDetailsOffset); |
+ Node* details = LoadDetailsByKeyIndex<NameDictionary>( |
+ properties, var_name_index.value()); |
// Check that the property is a writable data property (no accessor). |
const int kTypeAndReadOnlyMask = PropertyDetails::KindField::kMask | |
PropertyDetails::kAttributesReadOnlyMask; |
STATIC_ASSERT(kData == 0); |
- GotoIf(IsSetSmi(details, kTypeAndReadOnlyMask), &slow); |
- const int kNameToValueOffset = |
- (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) * |
- kPointerSize; |
- StoreFixedArrayElement(properties, var_name_index.value(), value, |
- UPDATE_WRITE_BARRIER, kNameToValueOffset); |
+ GotoIf(IsSetWord32(details, kTypeAndReadOnlyMask), &slow); |
+ StoreValueByKeyIndex<NameDictionary>(properties, var_name_index.value(), |
+ value); |
Return(value); |
} |
} |