Reviewers: fschneider, Description: Fix a bug where if a non-lazily-compiled function is a candidate for toplevel compilation and the toplevel compiler cannot handle the function, we would erroneously signal a stack overflow instead of falling back on the optimizing compiler.
Please review this at http://codereview.chromium.org/366005 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/compiler.cc Index: src/compiler.cc =================================================================== --- src/compiler.cc (revision 3218) +++ src/compiler.cc (working copy) @@ -503,6 +503,7 @@ } // Generate code and return it. + bool is_compiled = false; if (FLAG_fast_compiler && literal->try_fast_codegen()) { CodeGenSelector selector; CodeGenSelector::CodeGenTag code_gen = selector.Select(literal); @@ -510,9 +511,12 @@ code = FastCodeGenerator::MakeCode(literal, script, false); // Not eval. + is_compiled = true; } - ASSERT(code_gen == CodeGenSelector::NORMAL); - } else { + } + + if (!is_compiled) { + // We didn't try the fast compiler, or we failed to select it. code = CodeGenerator::MakeCode(literal, script, false); // Not eval. --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
