Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 290154ebce43c8af39c4694dae8b5aee99051f9f..0802c24ae859d9e499ff8caeacc1a2cbecdc74bc 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1760,24 +1760,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
allocation_site_mode = DONT_TRACK_ALLOCATION_SITE; |
} |
- Heap* heap = isolate()->heap(); |
- if (has_constant_fast_elements && |
- constant_elements_values->map() == heap->fixed_cow_array_map()) { |
- // If the elements are already FAST_*_ELEMENTS, the boilerplate cannot |
- // change, so it's possible to specialize the stub in advance. |
- __ IncrementCounter(isolate()->counters()->cow_arrays_created_stub(), 1); |
- __ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ mov(eax, FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
- __ mov(ebx, Immediate(Smi::FromInt(expr->literal_index()))); |
- __ mov(ecx, Immediate(constant_elements)); |
- FastCloneShallowArrayStub stub( |
- isolate(), |
- FastCloneShallowArrayStub::COPY_ON_WRITE_ELEMENTS, |
- allocation_site_mode, |
- length); |
- __ CallStub(&stub); |
- } else if (expr->depth() > 1 || Serializer::enabled() || |
- length > FastCloneShallowArrayStub::kMaximumClonedLength) { |
+ if (expr->depth() > 1) { |
__ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
__ push(FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
__ push(Immediate(Smi::FromInt(expr->literal_index()))); |
@@ -1785,25 +1768,11 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { |
__ push(Immediate(Smi::FromInt(flags))); |
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4); |
} else { |
- ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) || |
- FLAG_smi_only_arrays); |
- FastCloneShallowArrayStub::Mode mode = |
- FastCloneShallowArrayStub::CLONE_ANY_ELEMENTS; |
- |
- // If the elements are already FAST_*_ELEMENTS, the boilerplate cannot |
- // change, so it's possible to specialize the stub in advance. |
- if (has_constant_fast_elements) { |
- mode = FastCloneShallowArrayStub::CLONE_ELEMENTS; |
- } |
- |
__ mov(ebx, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
__ mov(eax, FieldOperand(ebx, JSFunction::kLiteralsOffset)); |
__ mov(ebx, Immediate(Smi::FromInt(expr->literal_index()))); |
__ mov(ecx, Immediate(constant_elements)); |
- FastCloneShallowArrayStub stub(isolate(), |
- mode, |
- allocation_site_mode, |
- length); |
+ FastCloneShallowArrayStub stub(isolate(), allocation_site_mode); |
__ CallStub(&stub); |
} |