Chromium Code Reviews| Index: src/parsing/parse-info.h |
| diff --git a/src/parsing/parse-info.h b/src/parsing/parse-info.h |
| index 6176135c5979c6565b474af065c6c93ed8f48fe0..e3fb5bd0c1274b391a5f349edeef977cf29e26db 100644 |
| --- a/src/parsing/parse-info.h |
| +++ b/src/parsing/parse-info.h |
| @@ -159,11 +159,15 @@ class ParseInfo { |
| Isolate* isolate() const { return isolate_; } |
| Handle<SharedFunctionInfo> shared_info() const { return shared_; } |
| Handle<Script> script() const { return script_; } |
| - Handle<Context> context() const { return context_; } |
| + MaybeHandle<ScopeInfo> maybe_outer_scope_info() const { |
| + return maybe_outer_scope_info_; |
| + } |
| void clear_script() { script_ = Handle<Script>::null(); } |
| void set_isolate(Isolate* isolate) { isolate_ = isolate; } |
| void set_shared_info(Handle<SharedFunctionInfo> shared) { shared_ = shared; } |
| - void set_context(Handle<Context> context) { context_ = context; } |
| + void set_outer_scope_info(Handle<ScopeInfo> outer_scope_info) { |
|
jgruber
2016/09/14 11:44:56
Since this is always called with the same
if (!c
jochen (gone - plz use gerrit)
2016/09/14 11:48:34
eventually, the compiler dispatcher will only have
|
| + maybe_outer_scope_info_ = outer_scope_info; |
| + } |
| void set_script(Handle<Script> script) { script_ = script; } |
| //-------------------------------------------------------------------------- |
| @@ -178,7 +182,10 @@ class ParseInfo { |
| void ReopenHandlesInNewHandleScope() { |
| shared_ = Handle<SharedFunctionInfo>(*shared_); |
| script_ = Handle<Script>(*script_); |
| - context_ = Handle<Context>(*context_); |
| + Handle<ScopeInfo> outer_scope_info; |
| + if (maybe_outer_scope_info_.ToHandle(&outer_scope_info)) { |
| + maybe_outer_scope_info_ = Handle<ScopeInfo>(*outer_scope_info); |
| + } |
| } |
| #ifdef DEBUG |
| @@ -224,7 +231,7 @@ class ParseInfo { |
| Isolate* isolate_; |
| Handle<SharedFunctionInfo> shared_; |
| Handle<Script> script_; |
| - Handle<Context> context_; |
| + MaybeHandle<ScopeInfo> maybe_outer_scope_info_; |
| //----------- Inputs+Outputs of parsing and scope analysis ----------------- |
| ScriptData** cached_data_; // used if available, populated if requested. |