Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 1d6fb1ff1c95ad81ac91dd68ef53970e2711fa2f..d9fb4a9b0d0335045a42477c6378879061f555c4 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -38,7 +38,9 @@ CompilationInfo::CompilationInfo(Handle<Script> script, |
osr_ast_id_(BailoutId::None()), |
parameter_count_(0), |
this_has_uses_(true), |
- optimization_id_(-1) { |
+ optimization_id_(-1), |
+ ast_value_factory_(NULL), |
+ ast_value_factory_owned_(false) { |
Initialize(script->GetIsolate(), BASE, zone); |
} |
@@ -51,7 +53,9 @@ CompilationInfo::CompilationInfo(Handle<SharedFunctionInfo> shared_info, |
osr_ast_id_(BailoutId::None()), |
parameter_count_(0), |
this_has_uses_(true), |
- optimization_id_(-1) { |
+ optimization_id_(-1), |
+ ast_value_factory_(NULL), |
+ ast_value_factory_owned_(false) { |
Initialize(script_->GetIsolate(), BASE, zone); |
} |
@@ -66,7 +70,9 @@ CompilationInfo::CompilationInfo(Handle<JSFunction> closure, |
osr_ast_id_(BailoutId::None()), |
parameter_count_(0), |
this_has_uses_(true), |
- optimization_id_(-1) { |
+ optimization_id_(-1), |
+ ast_value_factory_(NULL), |
+ ast_value_factory_owned_(false) { |
Initialize(script_->GetIsolate(), BASE, zone); |
} |
@@ -78,7 +84,9 @@ CompilationInfo::CompilationInfo(HydrogenCodeStub* stub, |
osr_ast_id_(BailoutId::None()), |
parameter_count_(0), |
this_has_uses_(true), |
- optimization_id_(-1) { |
+ optimization_id_(-1), |
+ ast_value_factory_(NULL), |
+ ast_value_factory_owned_(false) { |
Initialize(isolate, STUB, zone); |
code_stub_ = stub; |
} |
@@ -131,6 +139,7 @@ void CompilationInfo::Initialize(Isolate* isolate, |
CompilationInfo::~CompilationInfo() { |
delete deferred_handles_; |
delete no_frame_ranges_; |
+ if (ast_value_factory_owned_) delete ast_value_factory_; |
#ifdef DEBUG |
// Check that no dependent maps have been added or added dependent maps have |
// been rolled back or committed. |