Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index a9bf9a80e717e1e91ff94a20ea84190653dadd61..7a60adc0b37db09bf368fc6ee61556f461d016a6 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -969,6 +969,16 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
// We got a fixed array in register rax. 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(rbx, cell); |
+ __ Move(FieldOperand(rbx, JSGlobalPropertyCell::kValueOffset), |
+ Smi::FromInt(TypeFeedbackCells::kForInSlowCaseMarker)); |
+ |
__ Move(rbx, Smi::FromInt(1)); // Smi indicates slow check |
__ movq(rcx, Operand(rsp, 0 * kPointerSize)); // Get enumerated object |
STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_SPEC_OBJECT_TYPE); |