Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 6d39cc1e6e5045bd2f7237e835f2384d37085f1b..c9f7f32b6a2ec74ae81a14cd91017e1056c77742 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1586,21 +1586,15 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
: ObjectLiteral::kNoFlags; |
int properties_count = constant_properties->length() / 2; |
if ((FLAG_track_double_fields && expr->may_store_doubles()) || |
- expr->depth() > 1) { |
- __ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ push(FieldOperand(edi, JSFunction::kLiteralsOffset)); |
- __ push(Immediate(Smi::FromInt(expr->literal_index()))); |
- __ push(Immediate(constant_properties)); |
- __ push(Immediate(Smi::FromInt(flags))); |
- __ CallRuntime(Runtime::kCreateObjectLiteral, 4); |
- } else if (Serializer::enabled() || flags != ObjectLiteral::kFastElements || |
+ expr->depth() > 1 || Serializer::enabled() || |
+ flags != ObjectLiteral::kFastElements || |
properties_count > FastCloneShallowObjectStub::kMaximumClonedProperties) { |
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
__ push(FieldOperand(edi, JSFunction::kLiteralsOffset)); |
__ push(Immediate(Smi::FromInt(expr->literal_index()))); |
__ push(Immediate(constant_properties)); |
__ push(Immediate(Smi::FromInt(flags))); |
- __ CallRuntime(Runtime::kCreateObjectLiteralShallow, 4); |
+ __ CallRuntime(Runtime::kCreateObjectLiteral, 4); |
} else { |
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
__ mov(eax, FieldOperand(edi, JSFunction::kLiteralsOffset)); |