| 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 {
|
|
|