| Index: src/handles.cc
|
| diff --git a/src/handles.cc b/src/handles.cc
|
| index cfe4dd74a6c5e8bef7cdb06ff6e3218629a29f19..c66056ebbc2ba31342d94acc48671678dcfe1f48 100644
|
| --- a/src/handles.cc
|
| +++ b/src/handles.cc
|
| @@ -31,6 +31,7 @@
|
| #include "api.h"
|
| #include "arguments.h"
|
| #include "bootstrapper.h"
|
| +#include "codegen.h"
|
| #include "compiler.h"
|
| #include "debug.h"
|
| #include "execution.h"
|
| @@ -672,13 +673,11 @@ bool EnsureCompiled(Handle<SharedFunctionInfo> shared,
|
| }
|
|
|
|
|
| -static bool CompileLazyHelper(Handle<SharedFunctionInfo> shared,
|
| - Handle<Object> receiver,
|
| - ClearExceptionFlag flag,
|
| - int loop_nesting) {
|
| +static bool CompileLazyHelper(CompilationInfo* info,
|
| + ClearExceptionFlag flag) {
|
| // Compile the source information to a code object.
|
| - ASSERT(!shared->is_compiled());
|
| - bool result = Compiler::CompileLazy(shared, receiver, loop_nesting);
|
| + ASSERT(!info->shared_info()->is_compiled());
|
| + bool result = Compiler::CompileLazy(info);
|
| ASSERT(result != Top::has_pending_exception());
|
| if (!result && flag == CLEAR_EXCEPTION) Top::clear_pending_exception();
|
| return result;
|
| @@ -687,16 +686,17 @@ static bool CompileLazyHelper(Handle<SharedFunctionInfo> shared,
|
|
|
| bool CompileLazyShared(Handle<SharedFunctionInfo> shared,
|
| ClearExceptionFlag flag) {
|
| - return CompileLazyHelper(shared, Handle<Object>::null(), flag, 0);
|
| + CompilationInfo info(shared, Handle<Object>::null(), 0);
|
| + return CompileLazyHelper(&info, flag);
|
| }
|
|
|
|
|
| bool CompileLazy(Handle<JSFunction> function,
|
| Handle<Object> receiver,
|
| ClearExceptionFlag flag) {
|
| - // Compile the source information to a code object.
|
| Handle<SharedFunctionInfo> shared(function->shared());
|
| - bool result = CompileLazyHelper(shared, receiver, flag, 0);
|
| + CompilationInfo info(shared, receiver, 0);
|
| + bool result = CompileLazyHelper(&info, flag);
|
| LOG(FunctionCreateEvent(*function));
|
| return result;
|
| }
|
| @@ -705,9 +705,9 @@ bool CompileLazy(Handle<JSFunction> function,
|
| bool CompileLazyInLoop(Handle<JSFunction> function,
|
| Handle<Object> receiver,
|
| ClearExceptionFlag flag) {
|
| - // Compile the source information to a code object.
|
| Handle<SharedFunctionInfo> shared(function->shared());
|
| - bool result = CompileLazyHelper(shared, receiver, flag, 1);
|
| + CompilationInfo info(shared, receiver, 1);
|
| + bool result = CompileLazyHelper(&info, flag);
|
| LOG(FunctionCreateEvent(*function));
|
| return result;
|
| }
|
|
|