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 |