Index: src/builtins-ia32.cc |
=================================================================== |
--- src/builtins-ia32.cc (revision 500) |
+++ src/builtins-ia32.cc (working copy) |
@@ -111,6 +111,7 @@ |
// edi: constructor |
// eax: initial map |
__ movzx_b(edi, FieldOperand(eax, Map::kInstanceSizeOffset)); |
+ __ shl(edi, kPointerSizeLog2); |
// Make sure that the maximum heap object size will never cause us |
// problem here, because it is always greater than the maximum |
// instance size that can be represented in a byte. |
@@ -163,8 +164,11 @@ |
// ebx: JSObject |
// edi: start of next object |
__ movzx_b(edx, FieldOperand(eax, Map::kUnusedPropertyFieldsOffset)); |
+ __ movzx_b(ecx, FieldOperand(eax, Map::kInObjectPropertiesOffset)); |
+ // Calculate unused properties past the end of the in-object properties. |
+ __ sub(edx, Operand(ecx)); |
__ test(edx, Operand(edx)); |
- // Done if no unused properties are to be allocated. |
+ // Done if no extra properties are to be allocated. |
__ j(zero, &allocated); |
// Scale the number of elements by pointer size and add the header for |