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. Review URL: http://codereview.chromium.org/366005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
0ce4eab1b2
commit
0bf546f243
@ -503,6 +503,7 @@ Handle<JSFunction> Compiler::BuildBoilerplate(FunctionLiteral* literal,
|
||||
}
|
||||
|
||||
// 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 @@ Handle<JSFunction> Compiler::BuildBoilerplate(FunctionLiteral* literal,
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user