Chromium Code Reviews| Index: src/compiler.cc |
| =================================================================== |
| --- src/compiler.cc (revision 3198) |
| +++ src/compiler.cc (working copy) |
| @@ -119,7 +119,7 @@ |
| } |
| // Generate code and return it. |
| - if (FLAG_fast_compiler) { |
| + if (FLAG_fast_compiler && !Bootstrapper::IsActive()) { |
|
Kevin Millikin (Chromium)
2009/11/02 14:01:22
I will not commit this part of the change :)
|
| CodeGenSelector selector; |
| CodeGenSelector::CodeGenTag code_gen = selector.Select(literal); |
| if (code_gen == CodeGenSelector::FAST) { |
| @@ -587,7 +587,21 @@ |
| void CodeGenSelector::VisitForStatement(ForStatement* stmt) { |
| - BAILOUT("ForStatement"); |
| + // We do not handle loops with breaks or continue statements in their |
| + // body. We will bailout when we hit those statements in the body. |
| + if (stmt->init() != NULL) { |
| + Visit(stmt->init()); |
| + CHECK_BAILOUT; |
| + } |
| + if (stmt->cond() != NULL) { |
| + ProcessExpression(stmt->cond(), Expression::kTest); |
| + CHECK_BAILOUT; |
| + } |
| + Visit(stmt->body()); |
| + if (stmt->next() != NULL) { |
| + CHECK_BAILOUT; |
| + Visit(stmt->next()); |
| + } |
| } |