| Index: src/x64/full-codegen-x64.cc
|
| diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc
|
| index c24512ecae390cc9d0821aa06d2e110f2207ecad..931a227ed3895d99093cfdbe71e3f73b3f89adf1 100644
|
| --- a/src/x64/full-codegen-x64.cc
|
| +++ b/src/x64/full-codegen-x64.cc
|
| @@ -1609,21 +1609,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) {
|
| - __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
| - __ push(FieldOperand(rdi, JSFunction::kLiteralsOffset));
|
| - __ Push(Smi::FromInt(expr->literal_index()));
|
| - __ Push(constant_properties);
|
| - __ Push(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) {
|
| __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
| __ push(FieldOperand(rdi, JSFunction::kLiteralsOffset));
|
| __ Push(Smi::FromInt(expr->literal_index()));
|
| __ Push(constant_properties);
|
| __ Push(Smi::FromInt(flags));
|
| - __ CallRuntime(Runtime::kCreateObjectLiteralShallow, 4);
|
| + __ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
| } else {
|
| __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
| __ movq(rax, FieldOperand(rdi, JSFunction::kLiteralsOffset));
|
|
|