Index: src/handles.cc |
=================================================================== |
--- src/handles.cc (revision 2578) |
+++ src/handles.cc (working copy) |
@@ -164,8 +164,11 @@ |
void NormalizeProperties(Handle<JSObject> object, |
- PropertyNormalizationMode mode) { |
- CALL_HEAP_FUNCTION_VOID(object->NormalizeProperties(mode)); |
+ PropertyNormalizationMode mode, |
+ int expected_additional_properties) { |
+ CALL_HEAP_FUNCTION_VOID(object->NormalizeProperties( |
+ mode, |
+ expected_additional_properties)); |
} |
@@ -651,13 +654,17 @@ |
OptimizedObjectForAddingMultipleProperties:: |
OptimizedObjectForAddingMultipleProperties(Handle<JSObject> object, |
+ int expected_additional_properties, |
bool condition) { |
object_ = object; |
if (condition && object_->HasFastProperties()) { |
// Normalize the properties of object to avoid n^2 behavior |
- // when extending the object multiple properties. |
+ // when extending the object multiple properties. Indicate the number of |
+ // properties to be added. |
unused_property_fields_ = object->map()->unused_property_fields(); |
- NormalizeProperties(object_, KEEP_INOBJECT_PROPERTIES); |
+ NormalizeProperties(object_, |
+ KEEP_INOBJECT_PROPERTIES, |
+ expected_additional_properties); |
has_been_transformed_ = true; |
} else { |