Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 74fecc29df17614a9f6b1378ff980b2ca5059146..32411e474a1c8c4a95dc334455229b8148833cdd 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -4257,6 +4257,22 @@ void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) { |
} |
+void LCodeGen::DoIn(LIn* instr) { |
+ Register obj = ToRegister(instr->object()); |
+ Register key = ToRegister(instr->key()); |
+ __ Push(key, obj); |
+ ASSERT(instr->HasPointerMap() && instr->HasDeoptimizationEnvironment()); |
+ LPointerMap* pointers = instr->pointer_map(); |
+ LEnvironment* env = instr->deoptimization_environment(); |
+ RecordPosition(pointers->position()); |
+ RegisterEnvironmentForDeoptimization(env); |
+ SafepointGenerator safepoint_generator(this, |
+ pointers, |
+ env->deoptimization_index()); |
+ __ InvokeBuiltin(Builtins::IN, CALL_JS, &safepoint_generator); |
+} |
+ |
+ |
void LCodeGen::DoStackCheck(LStackCheck* instr) { |
// Perform stack overflow check. |
Label ok; |
@@ -4286,6 +4302,8 @@ void LCodeGen::DoOsrEntry(LOsrEntry* instr) { |
} |
+ |
+ |
#undef __ |
} } // namespace v8::internal |