Index: src/compiler.cc |
=================================================================== |
--- src/compiler.cc (revision 3658) |
+++ src/compiler.cc (working copy) |
@@ -493,7 +493,8 @@ |
// Generate code and return it. |
bool is_compiled = false; |
- if (FLAG_fast_compiler && literal->try_fast_codegen()) { |
+ if (FLAG_always_fast_compiler || |
+ (FLAG_fast_compiler && literal->try_fast_codegen())) { |
CodeGenSelector selector; |
CodeGenSelector::CodeGenTag code_gen = selector.Select(literal); |
if (code_gen == CodeGenSelector::FAST) { |
@@ -703,7 +704,20 @@ |
void CodeGenSelector::VisitForStatement(ForStatement* stmt) { |
- BAILOUT("ForStatement"); |
+ if (!FLAG_always_fast_compiler) BAILOUT("ForStatement"); |
+ if (stmt->init() != NULL) { |
+ Visit(stmt->init()); |
+ CHECK_BAILOUT; |
+ } |
+ if (stmt->cond() != NULL) { |
+ Visit(stmt->cond()); |
+ CHECK_BAILOUT; |
+ } |
+ Visit(stmt->body()); |
+ if (stmt->next() != NULL) { |
+ CHECK_BAILOUT; |
+ Visit(stmt->next()); |
+ } |
} |