Chromium Code Reviews| Index: src/objects.cc |
| diff --git a/src/objects.cc b/src/objects.cc |
| index e7d816334e3bd82bf6d29b75815280d59b593c02..9d8986f7b66fcf45e531b6f6b9baedbe4dfb37c8 100644 |
| --- a/src/objects.cc |
| +++ b/src/objects.cc |
| @@ -1869,15 +1869,10 @@ void JSObject::AddSlowProperty(Handle<JSObject> object, |
| MaybeHandle<Object> JSObject::AddPropertyInternal( |
| - Handle<JSObject> object, |
| - Handle<Name> name, |
| - Handle<Object> value, |
| - PropertyAttributes attributes, |
| - StrictMode strict_mode, |
| + Handle<JSObject> object, Handle<Name> name, Handle<Object> value, |
| + PropertyAttributes attributes, StoreMode mode, |
|
Igor Sheludko
2014/07/21 12:17:31
The |mode| parameter is not used. Lets remove it a
|
| JSReceiver::StoreFromKeyed store_mode, |
| - ExtensibilityCheck extensibility_check, |
| - StoreMode mode, |
| - TransitionFlag transition_flag) { |
| + ExtensibilityCheck extensibility_check, TransitionFlag transition_flag) { |
| ASSERT(!object->IsJSGlobalProxy()); |
| Isolate* isolate = object->GetIsolate(); |
| @@ -1888,14 +1883,10 @@ MaybeHandle<Object> JSObject::AddPropertyInternal( |
| if (extensibility_check == PERFORM_EXTENSIBILITY_CHECK && |
| !object->map()->is_extensible()) { |
| - if (strict_mode == SLOPPY) { |
| - return value; |
| - } else { |
| - Handle<Object> args[1] = { name }; |
| - Handle<Object> error = isolate->factory()->NewTypeError( |
| - "object_not_extensible", HandleVector(args, ARRAY_SIZE(args))); |
| - return isolate->Throw<Object>(error); |
| - } |
| + Handle<Object> args[1] = {name}; |
| + Handle<Object> error = isolate->factory()->NewTypeError( |
| + "object_not_extensible", HandleVector(args, ARRAY_SIZE(args))); |
| + return isolate->Throw<Object>(error); |
| } |
| if (object->HasFastProperties()) { |
| @@ -2259,11 +2250,10 @@ void JSObject::MigrateFastToFast(Handle<JSObject> object, Handle<Map> new_map) { |
| void JSObject::GeneralizeFieldRepresentation(Handle<JSObject> object, |
| int modify_index, |
| Representation new_representation, |
| - Handle<HeapType> new_field_type, |
| - StoreMode store_mode) { |
| + Handle<HeapType> new_field_type) { |
| Handle<Map> new_map = Map::GeneralizeRepresentation( |
| - handle(object->map()), modify_index, new_representation, |
| - new_field_type, store_mode); |
| + handle(object->map()), modify_index, new_representation, new_field_type, |
| + FORCE_FIELD); |
| MigrateToMap(object, new_map); |
| } |
| @@ -3992,9 +3982,9 @@ MaybeHandle<Object> JSObject::SetPropertyUsingTransition( |
| // fast copy of the map. If we get a fast copy of the map, all field |
| // representations will be tagged since the transition is omitted. |
| return JSObject::AddPropertyInternal( |
| - object, name, value, attributes, SLOPPY, |
| + object, name, value, attributes, FORCE_FIELD, |
| JSReceiver::CERTAINLY_NOT_STORE_FROM_KEYED, |
| - JSReceiver::OMIT_EXTENSIBILITY_CHECK, FORCE_FIELD, OMIT_TRANSITION); |
| + JSReceiver::OMIT_EXTENSIBILITY_CHECK, OMIT_TRANSITION); |
| } |
| // Keep the target CONSTANT if the same value is stored. |
| @@ -4051,8 +4041,7 @@ void JSObject::SetPropertyToField(LookupResult* lookup, Handle<Object> value) { |
| lookup->isolate(), field_representation); |
| JSObject::GeneralizeFieldRepresentation(handle(lookup->holder()), |
| lookup->GetDescriptorIndex(), |
| - field_representation, field_type, |
| - FORCE_FIELD); |
| + field_representation, field_type); |
| } |
| lookup->holder()->WriteToField(lookup->GetDescriptorIndex(), *value); |
| } |
| @@ -4074,9 +4063,9 @@ void JSObject::ConvertAndSetOwnProperty(LookupResult* lookup, |
| int descriptor_index = lookup->GetDescriptorIndex(); |
| if (lookup->GetAttributes() == attributes) { |
| - JSObject::GeneralizeFieldRepresentation( |
| - object, descriptor_index, Representation::Tagged(), |
| - HeapType::Any(lookup->isolate()), FORCE_FIELD); |
| + JSObject::GeneralizeFieldRepresentation(object, descriptor_index, |
| + Representation::Tagged(), |
| + HeapType::Any(lookup->isolate())); |
| } else { |
| Handle<Map> old_map(object->map()); |
| Handle<Map> new_map = Map::CopyGeneralizeAllRepresentations(old_map, |
| @@ -4101,12 +4090,9 @@ void JSObject::SetPropertyToFieldWithAttributes(LookupResult* lookup, |
| } |
| -void JSObject::AddProperty( |
| - Handle<JSObject> object, |
| - Handle<Name> name, |
| - Handle<Object> value, |
| - PropertyAttributes attributes, |
| - StoreMode store_mode) { |
| +void JSObject::AddProperty(Handle<JSObject> object, Handle<Name> name, |
| + Handle<Object> value, |
| + PropertyAttributes attributes) { |
| #ifdef DEBUG |
| uint32_t index; |
| ASSERT(!object->IsJSProxy()); |
| @@ -4116,7 +4102,7 @@ void JSObject::AddProperty( |
| ASSERT(!it.IsFound()); |
| ASSERT(object->map()->is_extensible()); |
| #endif |
| - SetOwnPropertyIgnoreAttributes(object, name, value, attributes, store_mode, |
| + SetOwnPropertyIgnoreAttributes(object, name, value, attributes, |
| OMIT_EXTENSIBILITY_CHECK).Check(); |
| } |
| @@ -4128,7 +4114,6 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( |
| Handle<Name> name, |
| Handle<Object> value, |
| PropertyAttributes attributes, |
| - StoreMode mode, |
| ExtensibilityCheck extensibility_check, |
| StoreFromKeyed store_from_keyed, |
| ExecutableAccessorInfoHandling handling) { |
| @@ -4159,7 +4144,7 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( |
| ASSERT(PrototypeIterator::GetCurrent(iter)->IsJSGlobalObject()); |
| return SetOwnPropertyIgnoreAttributes( |
| Handle<JSObject>::cast(PrototypeIterator::GetCurrent(iter)), name, |
| - value, attributes, mode, extensibility_check); |
| + value, attributes, extensibility_check); |
| } |
| if (lookup.IsInterceptor() || |
| @@ -4173,9 +4158,9 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes( |
| TransitionFlag flag = lookup.IsFound() |
| ? OMIT_TRANSITION : INSERT_TRANSITION; |
| // Neither properties nor transitions found. |
| - return AddPropertyInternal(object, name, value, attributes, SLOPPY, |
| - store_from_keyed, extensibility_check, mode, |
| - flag); |
| + return AddPropertyInternal(object, name, value, attributes, |
| + ALLOW_AS_CONSTANT, store_from_keyed, |
| + extensibility_check, flag); |
| } |
| Handle<Object> old_value = isolate->factory()->the_hole_value(); |
| @@ -5141,7 +5126,7 @@ Handle<Object> JSObject::SetHiddenPropertiesHashTable(Handle<JSObject> object, |
| } |
| SetOwnPropertyIgnoreAttributes(object, isolate->factory()->hidden_string(), |
| - value, DONT_ENUM, ALLOW_AS_CONSTANT, |
| + value, DONT_ENUM, |
| OMIT_EXTENSIBILITY_CHECK).Assert(); |
| return object; |
| } |