| Index: src/ia32/builtins-ia32.cc
|
| ===================================================================
|
| --- src/ia32/builtins-ia32.cc (revision 2708)
|
| +++ src/ia32/builtins-ia32.cc (working copy)
|
| @@ -180,12 +180,16 @@
|
| // eax: initial map
|
| // ebx: JSObject
|
| // edi: start of next object
|
| + // Calculate the total number of properties described by the map.
|
| __ movzx_b(edx, FieldOperand(eax, Map::kUnusedPropertyFieldsOffset));
|
| + __ movzx_b(ecx, FieldOperand(eax, Map::kPreAllocatedPropertyFieldsOffset));
|
| + __ add(edx, Operand(ecx));
|
| + // Calculate unused properties past the end of the in-object properties.
|
| __ movzx_b(ecx, FieldOperand(eax, Map::kInObjectPropertiesOffset));
|
| - // Calculate unused properties past the end of the in-object properties.
|
| __ sub(edx, Operand(ecx));
|
| // Done if no extra properties are to be allocated.
|
| __ j(zero, &allocated);
|
| + __ Assert (positive, "Property allocation count failed.");
|
|
|
| // Scale the number of elements by pointer size and add the header for
|
| // FixedArrays to the start of the next object calculation from above.
|
| @@ -321,6 +325,7 @@
|
| __ pop(ecx);
|
| __ lea(esp, Operand(esp, ebx, times_2, 1 * kPointerSize)); // 1 ~ receiver
|
| __ push(ecx);
|
| + __ IncrementCounter(&Counters::constructed_objects, 1);
|
| __ ret(0);
|
| }
|
|
|
|
|