Minor refactoring: unify lazy function compilation for in loop and no in loop variants.
Review URL: http://codereview.chromium.org/6542017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
3eb151ebea
commit
6aec28f447
@ -834,14 +834,16 @@ bool CompileLazyShared(Handle<SharedFunctionInfo> shared,
|
||||
}
|
||||
|
||||
|
||||
bool CompileLazy(Handle<JSFunction> function,
|
||||
ClearExceptionFlag flag) {
|
||||
static bool CompileLazyFunction(Handle<JSFunction> function,
|
||||
ClearExceptionFlag flag,
|
||||
InLoopFlag in_loop_flag) {
|
||||
bool result = true;
|
||||
if (function->shared()->is_compiled()) {
|
||||
function->ReplaceCode(function->shared()->code());
|
||||
function->shared()->set_code_age(0);
|
||||
} else {
|
||||
CompilationInfo info(function);
|
||||
if (in_loop_flag == IN_LOOP) info.MarkAsInLoop();
|
||||
result = CompileLazyHelper(&info, flag);
|
||||
ASSERT(!result || function->is_compiled());
|
||||
}
|
||||
@ -852,22 +854,15 @@ bool CompileLazy(Handle<JSFunction> function,
|
||||
}
|
||||
|
||||
|
||||
bool CompileLazy(Handle<JSFunction> function,
|
||||
ClearExceptionFlag flag) {
|
||||
return CompileLazyFunction(function, flag, NOT_IN_LOOP);
|
||||
}
|
||||
|
||||
|
||||
bool CompileLazyInLoop(Handle<JSFunction> function,
|
||||
ClearExceptionFlag flag) {
|
||||
bool result = true;
|
||||
if (function->shared()->is_compiled()) {
|
||||
function->ReplaceCode(function->shared()->code());
|
||||
function->shared()->set_code_age(0);
|
||||
} else {
|
||||
CompilationInfo info(function);
|
||||
info.MarkAsInLoop();
|
||||
result = CompileLazyHelper(&info, flag);
|
||||
ASSERT(!result || function->is_compiled());
|
||||
}
|
||||
if (result && function->is_compiled()) {
|
||||
PROFILE(FunctionCreateEvent(*function));
|
||||
}
|
||||
return result;
|
||||
return CompileLazyFunction(function, flag, IN_LOOP);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user