Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 0b7c7fd451fdc1bdf2dd31ee91b13308f8f8ec9d..86ca138ad25495ea867d0fd43a908edec1a4fb2d 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -1033,6 +1033,16 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
// We got a fixed array in register eax. Iterate through that. |
Label non_proxy; |
__ bind(&fixed_array); |
+ |
+ Handle<JSGlobalPropertyCell> cell = |
+ isolate()->factory()->NewJSGlobalPropertyCell( |
+ Handle<Object>( |
+ Smi::FromInt(TypeFeedbackCells::kForInFastCaseMarker))); |
+ RecordTypeFeedbackCell(stmt->PrepareId(), cell); |
+ __ LoadHeapObject(ebx, cell); |
+ __ mov(FieldOperand(ebx, JSGlobalPropertyCell::kValueOffset), |
+ Immediate(Smi::FromInt(TypeFeedbackCells::kForInSlowCaseMarker))); |
+ |
__ mov(ebx, Immediate(Smi::FromInt(1))); // Smi indicates slow check |
__ mov(ecx, Operand(esp, 0 * kPointerSize)); // Get enumerated object |
STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_SPEC_OBJECT_TYPE); |