Chromium Code Reviews| Index: src/hydrogen.cc |
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
| index 36d62d271ce7d1b8451324cc923827a2586b6f26..7f7439009042a38777ac840a89296f118a0a3dfa 100644 |
| --- a/src/hydrogen.cc |
| +++ b/src/hydrogen.cc |
| @@ -8851,23 +8851,22 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { |
| { NoObservableSideEffectsScope no_effects(this); |
| ASSERT(initial_map->instance_type() == JS_OBJECT_TYPE); |
| Add<HStoreNamedField>(receiver, |
| - HObjectAccess::ForMapAndOffset(initial_map, JSObject::kMapOffset), |
| - Add<HConstant>(initial_map)); |
| + HObjectAccess::ForMap(), |
| + Add<HConstant>(initial_map)); |
| HValue* empty_fixed_array = Add<HConstant>(factory->empty_fixed_array()); |
| Add<HStoreNamedField>(receiver, |
| - HObjectAccess::ForMapAndOffset(initial_map, |
| - JSObject::kPropertiesOffset), |
| - empty_fixed_array); |
| + HObjectAccess::ForPropertiesPointer(), |
| + empty_fixed_array); |
| Add<HStoreNamedField>(receiver, |
| - HObjectAccess::ForMapAndOffset(initial_map, |
| - JSObject::kElementsOffset), |
| - empty_fixed_array); |
| + HObjectAccess::ForElementsPointer(), |
| + empty_fixed_array); |
| if (initial_map->inobject_properties() != 0) { |
| HConstant* undefined = graph()->GetConstantUndefined(); |
| for (int i = 0; i < initial_map->inobject_properties(); i++) { |
| int property_offset = initial_map->GetInObjectPropertyOffset(i); |
| Add<HStoreNamedField>(receiver, |
| - HObjectAccess::ForMapAndOffset(initial_map, property_offset), |
| + HObjectAccess::ForMapAndOffset(initial_map, property_offset, |
| + HObjectAccess::FOR_FIELD), |
| undefined); |
| } |
| } |
| @@ -10496,10 +10495,10 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral( |
| // this store in the folding case. |
| HConstant* empty_fixed_array = Add<HConstant>( |
| isolate()->factory()->empty_fixed_array()); |
| - Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(), |
| - empty_fixed_array); |
| BuildEmitObjectHeader(boilerplate_object, object); |
|
Igor Sheludko
2014/06/05 09:04:30
I think it is better to move BuildEmitObjectHeader
Jakob Kummerow
2014/06/05 14:33:31
Done.
|
| + Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(), |
| + empty_fixed_array, INITIALIZING_STORE); |
|
Igor Sheludko
2014/06/05 09:04:30
I think it is cleaner not to pass INITIALIZING_STO
Jakob Kummerow
2014/06/05 14:33:31
Done. (I think this was a rebasing artifact, as I
|
| Handle<FixedArrayBase> elements(boilerplate_object->elements()); |
| int elements_size = (elements->length() > 0 && |
| @@ -10612,7 +10611,8 @@ void HOptimizedGraphBuilder::BuildEmitInObjectProperties( |
| // The access for the store depends on the type of the boilerplate. |
| HObjectAccess access = boilerplate_object->IsJSArray() ? |
| HObjectAccess::ForJSArrayOffset(property_offset) : |
| - HObjectAccess::ForMapAndOffset(boilerplate_map, property_offset); |
| + HObjectAccess::ForMapAndOffset(boilerplate_map, property_offset, |
| + HObjectAccess::FOR_FIELD); |
| if (value->IsJSObject()) { |
| Handle<JSObject> value_object = Handle<JSObject>::cast(value); |
| @@ -10661,7 +10661,8 @@ void HOptimizedGraphBuilder::BuildEmitInObjectProperties( |
| ASSERT(boilerplate_object->IsJSObject()); |
| int property_offset = boilerplate_object->GetInObjectPropertyOffset(i); |
| HObjectAccess access = |
| - HObjectAccess::ForMapAndOffset(boilerplate_map, property_offset); |
| + HObjectAccess::ForMapAndOffset(boilerplate_map, property_offset, |
| + HObjectAccess::FOR_FIELD); |
| Add<HStoreNamedField>(object, access, value_instruction); |
| } |
| } |