Index: src/runtime.cc |
=================================================================== |
--- src/runtime.cc (revision 5675) |
+++ src/runtime.cc (working copy) |
@@ -3538,12 +3538,12 @@ |
if (((unchecked & (DONT_DELETE | DONT_ENUM | READ_ONLY)) != 0) && |
is_element) { |
// Normalize the elements to enable attributes on the property. |
- js_object->NormalizeElements(); |
- NumberDictionary* dictionary = js_object->element_dictionary(); |
+ NormalizeElements(js_object); |
+ Handle<NumberDictionary> dictionary(js_object->element_dictionary()); |
// Make sure that we never go back to fast case. |
dictionary->set_requires_slow_elements(); |
PropertyDetails details = PropertyDetails(attr, NORMAL); |
- dictionary->Set(index, *obj_value, details); |
+ NumberDictionarySet(dictionary, index, obj_value, details); |
} |
LookupResult result; |
@@ -3557,7 +3557,7 @@ |
// new attributes. |
if (result.IsProperty() && attr != result.GetAttributes()) { |
// New attributes - normalize to avoid writing to instance descriptor |
- js_object->NormalizeProperties(CLEAR_INOBJECT_PROPERTIES, 0); |
+ NormalizeProperties(js_object, CLEAR_INOBJECT_PROPERTIES, 0); |
// Use IgnoreAttributes version since a readonly property may be |
// overridden and SetProperty does not allow this. |
return js_object->IgnoreAttributesAndSetLocalProperty(*name, |
@@ -4154,7 +4154,7 @@ |
Handle<Object> object = args.at<Object>(0); |
if (object->IsJSObject()) { |
Handle<JSObject> js_object = Handle<JSObject>::cast(object); |
- js_object->NormalizeProperties(CLEAR_INOBJECT_PROPERTIES, 0); |
+ NormalizeProperties(js_object, CLEAR_INOBJECT_PROPERTIES, 0); |
} |
return *object; |
} |