| 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);
|
| }
|
| }
|
|
|