| Index: src/builtins/builtins-handler.cc
|
| diff --git a/src/builtins/builtins-handler.cc b/src/builtins/builtins-handler.cc
|
| index 2ff5309159679652a0b776ec33ffbf55250ed44f..adcc353470d45afb00b82006945713e0464fdc98 100644
|
| --- a/src/builtins/builtins-handler.cc
|
| +++ b/src/builtins/builtins-handler.cc
|
| @@ -186,21 +186,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 = LoadDetailsForKeyIndex<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);
|
| + StoreValueForKeyIndex<NameDictionary>(properties, var_name_index.value(),
|
| + value);
|
| Return(value);
|
| }
|
| }
|
|
|