Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 704fb4e7d28bc994e1dc06bd09542d663d77f8af..09f5de1f10a239ac32e3a42c14b1b8a02cff8d89 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1728,19 +1728,14 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
DONT_TRACK_ALLOCATION_SITE, |
length); |
__ CallStub(&stub); |
- } else if (expr->depth() > 1) { |
+ } else if (expr->depth() > 1 || |
+ Serializer::enabled() || |
+ length > FastCloneShallowArrayStub::kMaximumClonedLength) { |
__ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
__ push(FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
__ push(Immediate(Smi::FromInt(expr->literal_index()))); |
__ push(Immediate(constant_elements)); |
__ CallRuntime(Runtime::kCreateArrayLiteral, 3); |
- } else if (Serializer::enabled() || |
- length > FastCloneShallowArrayStub::kMaximumClonedLength) { |
- __ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ push(FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
- __ push(Immediate(Smi::FromInt(expr->literal_index()))); |
- __ push(Immediate(constant_elements)); |
- __ CallRuntime(Runtime::kCreateArrayLiteralShallow, 3); |
} else { |
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) || |
FLAG_smi_only_arrays); |