Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 3267951c68941847915d941c1ea0f0e1a4da23c9..7ab9102df5ea274e90e9a9d8624dc91471bf25e5 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2351,6 +2351,16 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
} |
} |
} else { |
+ // Call to some other expression. If the expression is an anonymous |
+ // function literal not called in a loop, mark it as one that should |
+ // also use the fast code generator. |
+ FunctionLiteral* lit = fun->AsFunctionLiteral(); |
+ if (lit != NULL && |
+ lit->name()->Equals(isolate()->heap()->empty_string()) && |
+ loop_depth() == 0) { |
+ lit->set_try_full_codegen(true); |
+ } |
+ |
{ PreservePositionScope scope(masm()->positions_recorder()); |
VisitForStackValue(fun); |
} |