Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 3f72defaec375c03c49b662cad3b54805fd076c0..e8e4980b092ca14c36547549c7d3ae7d8cfc6660 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -2267,6 +2267,15 @@ 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 full 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); |
} |