Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: src/compiler-dispatcher/compiler-dispatcher-job.cc

Issue 2198043002: Add a mode to completely deserialize scope chains (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler-dispatcher/compiler-dispatcher-job.h" 5 #include "src/compiler-dispatcher/compiler-dispatcher-job.h"
6 6
7 #include "src/assert-scope.h" 7 #include "src/assert-scope.h"
8 #include "src/global-handles.h" 8 #include "src/global-handles.h"
9 #include "src/isolate.h" 9 #include "src/isolate.h"
10 #include "src/objects-inl.h" 10 #include "src/objects-inl.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 source_ = Handle<String>::cast(isolate_->global_handles()->Create(*source)); 62 source_ = Handle<String>::cast(isolate_->global_handles()->Create(*source));
63 character_stream_.reset(new GenericStringUtf16CharacterStream( 63 character_stream_.reset(new GenericStringUtf16CharacterStream(
64 source_, shared->start_position(), shared->end_position())); 64 source_, shared->start_position(), shared->end_position()));
65 } 65 }
66 parse_info_.reset(new ParseInfo(zone_.get())); 66 parse_info_.reset(new ParseInfo(zone_.get()));
67 parse_info_->set_isolate(isolate_); 67 parse_info_->set_isolate(isolate_);
68 parse_info_->set_character_stream(character_stream_.get()); 68 parse_info_->set_character_stream(character_stream_.get());
69 parse_info_->set_hash_seed(isolate_->heap()->HashSeed()); 69 parse_info_->set_hash_seed(isolate_->heap()->HashSeed());
70 parse_info_->set_unicode_cache(unicode_cache_.get()); 70 parse_info_->set_unicode_cache(unicode_cache_.get());
71 parser_.reset(new Parser(parse_info_.get())); 71 parser_.reset(new Parser(parse_info_.get()));
72 Scope* script_scope = parser_->NewScriptScope();
73 parse_info_->set_script_scope(script_scope);
74 script_scope = Scope::DeserializeScopeChain(
75 isolate_, zone_.get(), function_->context(), script_scope,
76 parse_info_->ast_value_factory(),
77 Scope::DeserializationMode::kDeserializeOffHeap);
78 parser_->set_original_scope(script_scope);
72 status_ = CompileJobStatus::kReadyToParse; 79 status_ = CompileJobStatus::kReadyToParse;
73 } 80 }
74 81
75 void CompilerDispatcherJob::Parse() { 82 void CompilerDispatcherJob::Parse() {
76 DCHECK(can_parse_on_background_thread_ || 83 DCHECK(can_parse_on_background_thread_ ||
77 ThreadId::Current().Equals(isolate_->thread_id())); 84 ThreadId::Current().Equals(isolate_->thread_id()));
78 DCHECK(status() == CompileJobStatus::kReadyToParse); 85 DCHECK(status() == CompileJobStatus::kReadyToParse);
79 86
80 DisallowHeapAllocation no_allocation; 87 DisallowHeapAllocation no_allocation;
81 DisallowHandleAllocation no_handles; 88 DisallowHandleAllocation no_handles;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 173
167 parse_info_->set_character_stream(nullptr); 174 parse_info_->set_character_stream(nullptr);
168 parse_info_->set_unicode_cache(nullptr); 175 parse_info_->set_unicode_cache(nullptr);
169 parser_.reset(); 176 parser_.reset();
170 unicode_cache_.reset(); 177 unicode_cache_.reset();
171 character_stream_.reset(); 178 character_stream_.reset();
172 } 179 }
173 180
174 } // namespace internal 181 } // namespace internal
175 } // namespace v8 182 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698