| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 6df21de357ae9c10bb1aa3419a6018f365b64ebc..2b4db6e170c96517867fb72e322925329820df22 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -39,7 +39,7 @@ class ScriptDataImpl;
|
|
|
| // CompilationInfo encapsulates some information known at compile time. It
|
| // is constructed based on the resources available at compile-time.
|
| -class CompilationInfo BASE_EMBEDDED {
|
| +class CompilationInfo {
|
| public:
|
| CompilationInfo(Handle<Script> script, Zone* zone);
|
| CompilationInfo(Handle<SharedFunctionInfo> shared_info, Zone* zone);
|
| @@ -180,6 +180,13 @@ class CompilationInfo BASE_EMBEDDED {
|
| deferred_handles_ = deferred_handles;
|
| }
|
|
|
| + void SaveHandles() {
|
| + SaveHandle(&closure_);
|
| + SaveHandle(&shared_info_);
|
| + SaveHandle(&calling_context_);
|
| + SaveHandle(&script_);
|
| + }
|
| +
|
| private:
|
| Isolate* isolate_;
|
|
|
| @@ -268,6 +275,14 @@ class CompilationInfo BASE_EMBEDDED {
|
|
|
| DeferredHandles* deferred_handles_;
|
|
|
| + template<typename T>
|
| + void SaveHandle(Handle<T> *object) {
|
| + if (!object->is_null()) {
|
| + Handle<T> handle(*(*object));
|
| + *object = handle;
|
| + }
|
| + }
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CompilationInfo);
|
| };
|
|
|
| @@ -432,6 +447,8 @@ class Compiler : public AllStatic {
|
| // success and false if the compilation resulted in a stack overflow.
|
| static bool CompileLazy(CompilationInfo* info);
|
|
|
| + static void RecompileParallel(Handle<JSFunction> function);
|
| +
|
| // Compile a shared function info object (the function is possibly lazily
|
| // compiled).
|
| static Handle<SharedFunctionInfo> BuildFunctionInfo(FunctionLiteral* node,
|
| @@ -443,6 +460,8 @@ class Compiler : public AllStatic {
|
| bool is_toplevel,
|
| Handle<Script> script);
|
|
|
| + static void InstallOptimizedCode(OptimizingCompiler* info);
|
| +
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| static bool MakeCodeForLiveEdit(CompilationInfo* info);
|
| #endif
|
|
|