| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 7599c13a0c48f98e2c545a049be02b2fba3c05a8..8100056676f2470e1df920d2051ce6819147798a 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -77,6 +77,7 @@ class CompilationInfo {
|
| Scope* global_scope() const { return global_scope_; }
|
| Handle<Code> code() const { return code_; }
|
| Handle<JSFunction> closure() const { return closure_; }
|
| + Handle<Object> closure_code_object() const { return closure_code_object_; }
|
| Handle<SharedFunctionInfo> shared_info() const { return shared_info_; }
|
| Handle<Script> script() const { return script_; }
|
| HydrogenCodeStub* code_stub() const {return code_stub_; }
|
| @@ -91,6 +92,7 @@ class CompilationInfo {
|
| int num_heap_slots() const;
|
| Code::Flags flags() const;
|
|
|
| + void CreateCodeObject();
|
| void MarkAsEval() {
|
| ASSERT(!is_lazy());
|
| flags_ |= IsEval::encode(true);
|
| @@ -405,6 +407,9 @@ class CompilationInfo {
|
| Handle<SharedFunctionInfo> shared_info_;
|
| Handle<Script> script_;
|
|
|
| + // Placeholder for self calls
|
| + Handle<Object> closure_code_object_;
|
| +
|
| // Fields possibly needed for eager compilation, NULL by default.
|
| v8::Extension* extension_;
|
| ScriptDataImpl* pre_parse_data_;
|
| @@ -438,7 +443,7 @@ class CompilationInfo {
|
| template<typename T>
|
| void SaveHandle(Handle<T> *object) {
|
| if (!object->is_null()) {
|
| - Handle<T> handle(*(*object));
|
| + Handle<T> handle(*(*object), isolate());
|
| *object = handle;
|
| }
|
| }
|
|
|