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

Side by Side Diff: test/unittests/compiler-dispatcher/compiler-dispatcher-job-unittest.cc

Issue 2358503002: Change the CompilerDispatcherJob to take a SharedFunctionInfo (Closed)
Patch Set: updates Created 4 years, 3 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
« no previous file with comments | « src/runtime/runtime-function.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <memory> 5 #include <memory>
6 6
7 #include "include/v8.h" 7 #include "include/v8.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/ast/ast.h" 9 #include "src/ast/ast.h"
10 #include "src/ast/scopes.h" 10 #include "src/ast/scopes.h"
(...skipping 12 matching lines...) Expand all
23 typedef TestWithContext CompilerDispatcherJobTest; 23 typedef TestWithContext CompilerDispatcherJobTest;
24 24
25 class IgnitionCompilerDispatcherJobTest : public TestWithContext { 25 class IgnitionCompilerDispatcherJobTest : public TestWithContext {
26 public: 26 public:
27 IgnitionCompilerDispatcherJobTest() {} 27 IgnitionCompilerDispatcherJobTest() {}
28 ~IgnitionCompilerDispatcherJobTest() override {} 28 ~IgnitionCompilerDispatcherJobTest() override {}
29 29
30 static void SetUpTestCase() { 30 static void SetUpTestCase() {
31 old_flag_ = i::FLAG_ignition; 31 old_flag_ = i::FLAG_ignition;
32 i::FLAG_ignition = true; 32 i::FLAG_ignition = true;
33 i::FLAG_never_compact = true;
33 TestWithContext::SetUpTestCase(); 34 TestWithContext::SetUpTestCase();
34 } 35 }
35 36
36 static void TearDownTestCase() { 37 static void TearDownTestCase() {
37 TestWithContext::TearDownTestCase(); 38 TestWithContext::TearDownTestCase();
38 i::FLAG_ignition = old_flag_; 39 i::FLAG_ignition = old_flag_;
39 } 40 }
40 41
41 private: 42 private:
42 static bool old_flag_; 43 static bool old_flag_;
(...skipping 15 matching lines...) Expand all
58 const char* data() const override { return data_; } 59 const char* data() const override { return data_; }
59 size_t length() const override { return length_; } 60 size_t length() const override { return length_; }
60 61
61 private: 62 private:
62 const char* data_; 63 const char* data_;
63 size_t length_; 64 size_t length_;
64 65
65 DISALLOW_COPY_AND_ASSIGN(ScriptResource); 66 DISALLOW_COPY_AND_ASSIGN(ScriptResource);
66 }; 67 };
67 68
68 Handle<JSFunction> CreateFunction( 69 Handle<SharedFunctionInfo> CreateSharedFunctionInfo(
69 Isolate* isolate, ExternalOneByteString::Resource* maybe_resource) { 70 Isolate* isolate, ExternalOneByteString::Resource* maybe_resource) {
70 HandleScope scope(isolate); 71 HandleScope scope(isolate);
71 Handle<String> source; 72 Handle<String> source;
72 if (maybe_resource) { 73 if (maybe_resource) {
73 source = isolate->factory() 74 source = isolate->factory()
74 ->NewExternalStringFromOneByte(maybe_resource) 75 ->NewExternalStringFromOneByte(maybe_resource)
75 .ToHandleChecked(); 76 .ToHandleChecked();
76 } else { 77 } else {
77 source = isolate->factory()->NewStringFromAsciiChecked(test_script); 78 source = isolate->factory()->NewStringFromAsciiChecked(test_script);
78 } 79 }
79 Handle<Script> script = isolate->factory()->NewScript(source); 80 Handle<Script> script = isolate->factory()->NewScript(source);
80 Handle<SharedFunctionInfo> shared = isolate->factory()->NewSharedFunctionInfo( 81 Handle<SharedFunctionInfo> shared = isolate->factory()->NewSharedFunctionInfo(
81 isolate->factory()->NewStringFromAsciiChecked("f"), 82 isolate->factory()->NewStringFromAsciiChecked("f"),
82 isolate->builtins()->CompileLazy(), false); 83 isolate->builtins()->CompileLazy(), false);
83 SharedFunctionInfo::SetScript(shared, script); 84 SharedFunctionInfo::SetScript(shared, script);
84 shared->set_end_position(source->length()); 85 shared->set_end_position(source->length());
85 Handle<JSFunction> function = 86 shared->set_outer_scope_info(ScopeInfo::Empty(isolate));
86 isolate->factory()->NewFunctionFromSharedFunctionInfo( 87 return scope.CloseAndEscape(shared);
87 shared, handle(isolate->context(), isolate));
88 return scope.CloseAndEscape(function);
89 } 88 }
90 89
91 Handle<Object> RunJS(v8::Isolate* isolate, const char* script) { 90 Handle<Object> RunJS(v8::Isolate* isolate, const char* script) {
92 return Utils::OpenHandle( 91 return Utils::OpenHandle(
93 *v8::Script::Compile( 92 *v8::Script::Compile(
94 isolate->GetCurrentContext(), 93 isolate->GetCurrentContext(),
95 v8::String::NewFromUtf8(isolate, script, v8::NewStringType::kNormal) 94 v8::String::NewFromUtf8(isolate, script, v8::NewStringType::kNormal)
96 .ToLocalChecked()) 95 .ToLocalChecked())
97 .ToLocalChecked() 96 .ToLocalChecked()
98 ->Run(isolate->GetCurrentContext()) 97 ->Run(isolate->GetCurrentContext())
99 .ToLocalChecked()); 98 .ToLocalChecked());
100 } 99 }
101 100
102 } // namespace 101 } // namespace
103 102
104 TEST_F(CompilerDispatcherJobTest, Construct) { 103 TEST_F(CompilerDispatcherJobTest, Construct) {
105 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 104 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
106 i_isolate(), CreateFunction(i_isolate(), nullptr), FLAG_stack_size)); 105 i_isolate(), CreateSharedFunctionInfo(i_isolate(), nullptr),
106 FLAG_stack_size));
107 } 107 }
108 108
109 TEST_F(CompilerDispatcherJobTest, CanParseOnBackgroundThread) { 109 TEST_F(CompilerDispatcherJobTest, CanParseOnBackgroundThread) {
110 { 110 {
111 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 111 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
112 i_isolate(), CreateFunction(i_isolate(), nullptr), FLAG_stack_size)); 112 i_isolate(), CreateSharedFunctionInfo(i_isolate(), nullptr),
113 FLAG_stack_size));
113 ASSERT_FALSE(job->can_parse_on_background_thread()); 114 ASSERT_FALSE(job->can_parse_on_background_thread());
114 } 115 }
115 { 116 {
116 ScriptResource script(test_script, strlen(test_script)); 117 ScriptResource script(test_script, strlen(test_script));
117 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 118 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
118 i_isolate(), CreateFunction(i_isolate(), &script), FLAG_stack_size)); 119 i_isolate(), CreateSharedFunctionInfo(i_isolate(), &script),
120 FLAG_stack_size));
119 ASSERT_TRUE(job->can_parse_on_background_thread()); 121 ASSERT_TRUE(job->can_parse_on_background_thread());
120 } 122 }
121 } 123 }
122 124
123 TEST_F(CompilerDispatcherJobTest, StateTransitions) { 125 TEST_F(CompilerDispatcherJobTest, StateTransitions) {
124 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 126 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
125 i_isolate(), CreateFunction(i_isolate(), nullptr), FLAG_stack_size)); 127 i_isolate(), CreateSharedFunctionInfo(i_isolate(), nullptr),
128 FLAG_stack_size));
126 129
127 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 130 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
128 job->PrepareToParseOnMainThread(); 131 job->PrepareToParseOnMainThread();
129 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToParse); 132 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToParse);
130 job->Parse(); 133 job->Parse();
131 ASSERT_TRUE(job->status() == CompileJobStatus::kParsed); 134 ASSERT_TRUE(job->status() == CompileJobStatus::kParsed);
132 ASSERT_TRUE(job->FinalizeParsingOnMainThread()); 135 ASSERT_TRUE(job->FinalizeParsingOnMainThread());
133 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToAnalyse); 136 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToAnalyse);
134 ASSERT_TRUE(job->PrepareToCompileOnMainThread()); 137 ASSERT_TRUE(job->PrepareToCompileOnMainThread());
135 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToCompile); 138 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToCompile);
136 job->Compile(); 139 job->Compile();
137 ASSERT_TRUE(job->status() == CompileJobStatus::kCompiled); 140 ASSERT_TRUE(job->status() == CompileJobStatus::kCompiled);
138 ASSERT_TRUE(job->FinalizeCompilingOnMainThread()); 141 ASSERT_TRUE(job->FinalizeCompilingOnMainThread());
139 ASSERT_TRUE(job->status() == CompileJobStatus::kDone); 142 ASSERT_TRUE(job->status() == CompileJobStatus::kDone);
140 job->ResetOnMainThread(); 143 job->ResetOnMainThread();
141 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 144 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
142 } 145 }
143 146
144 TEST_F(CompilerDispatcherJobTest, SyntaxError) { 147 TEST_F(CompilerDispatcherJobTest, SyntaxError) {
145 ScriptResource script("^^^", strlen("^^^")); 148 ScriptResource script("^^^", strlen("^^^"));
146 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 149 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
147 i_isolate(), CreateFunction(i_isolate(), &script), FLAG_stack_size)); 150 i_isolate(), CreateSharedFunctionInfo(i_isolate(), &script),
151 FLAG_stack_size));
148 152
149 job->PrepareToParseOnMainThread(); 153 job->PrepareToParseOnMainThread();
150 job->Parse(); 154 job->Parse();
151 ASSERT_FALSE(job->FinalizeParsingOnMainThread()); 155 ASSERT_FALSE(job->FinalizeParsingOnMainThread());
152 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed); 156 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed);
153 ASSERT_TRUE(i_isolate()->has_pending_exception()); 157 ASSERT_TRUE(i_isolate()->has_pending_exception());
154 158
155 i_isolate()->clear_pending_exception(); 159 i_isolate()->clear_pending_exception();
156 160
157 job->ResetOnMainThread(); 161 job->ResetOnMainThread();
158 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 162 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
159 } 163 }
160 164
161 TEST_F(CompilerDispatcherJobTest, ScopeChain) { 165 TEST_F(CompilerDispatcherJobTest, ScopeChain) {
162 const char script[] = 166 const char script[] =
163 "function g() { var g = 1; function f(x) { return x * g }; return f; } " 167 "function g() { var y = 1; function f(x) { return x * y }; return f; } "
164 "g();"; 168 "g();";
165 Handle<JSFunction> f = Handle<JSFunction>::cast(RunJS(isolate(), script)); 169 Handle<JSFunction> f = Handle<JSFunction>::cast(RunJS(isolate(), script));
166 170
167 std::unique_ptr<CompilerDispatcherJob> job( 171 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
168 new CompilerDispatcherJob(i_isolate(), f, FLAG_stack_size)); 172 i_isolate(), handle(f->shared()), FLAG_stack_size));
169 173
170 job->PrepareToParseOnMainThread(); 174 job->PrepareToParseOnMainThread();
171 job->Parse(); 175 job->Parse();
172 ASSERT_TRUE(job->FinalizeParsingOnMainThread()); 176 ASSERT_TRUE(job->FinalizeParsingOnMainThread());
173 ASSERT_TRUE(job->PrepareToCompileOnMainThread()); 177 ASSERT_TRUE(job->PrepareToCompileOnMainThread());
174 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToCompile); 178 ASSERT_TRUE(job->status() == CompileJobStatus::kReadyToCompile);
175 179
176 const AstRawString* var_x = 180 const AstRawString* var_x =
177 job->parse_info_->ast_value_factory()->GetOneByteString("x"); 181 job->parse_info_->ast_value_factory()->GetOneByteString("x");
178 Variable* var = job->parse_info_->literal()->scope()->Lookup(var_x); 182 Variable* var = job->parse_info_->literal()->scope()->Lookup(var_x);
179 ASSERT_TRUE(var); 183 ASSERT_TRUE(var);
180 ASSERT_TRUE(var->IsParameter()); 184 ASSERT_TRUE(var->IsParameter());
181 185
182 const AstRawString* var_g = 186 const AstRawString* var_y =
183 job->parse_info_->ast_value_factory()->GetOneByteString("g"); 187 job->parse_info_->ast_value_factory()->GetOneByteString("y");
184 var = job->parse_info_->literal()->scope()->Lookup(var_g); 188 var = job->parse_info_->literal()->scope()->Lookup(var_y);
185 ASSERT_TRUE(var); 189 ASSERT_TRUE(var);
186 ASSERT_TRUE(var->IsContextSlot()); 190 ASSERT_TRUE(var->IsContextSlot());
187 191
188 job->ResetOnMainThread(); 192 job->ResetOnMainThread();
189 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 193 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
190 } 194 }
191 195
192 TEST_F(CompilerDispatcherJobTest, CompileAndRun) { 196 TEST_F(CompilerDispatcherJobTest, CompileAndRun) {
193 const char script[] = 197 const char script[] =
194 "function g() {\n" 198 "function g() {\n"
195 " f = function(a) {\n" 199 " f = function(a) {\n"
196 " for (var i = 0; i < 3; i++) { a += 20; }\n" 200 " for (var i = 0; i < 3; i++) { a += 20; }\n"
197 " return a;\n" 201 " return a;\n"
198 " }\n" 202 " }\n"
199 " return f;\n" 203 " return f;\n"
200 "}\n" 204 "}\n"
201 "g();"; 205 "g();";
202 Handle<JSFunction> f = Handle<JSFunction>::cast(RunJS(isolate(), script)); 206 Handle<JSFunction> f = Handle<JSFunction>::cast(RunJS(isolate(), script));
203 std::unique_ptr<CompilerDispatcherJob> job( 207 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
204 new CompilerDispatcherJob(i_isolate(), f, FLAG_stack_size)); 208 i_isolate(), handle(f->shared()), FLAG_stack_size));
205 209
206 job->PrepareToParseOnMainThread(); 210 job->PrepareToParseOnMainThread();
207 job->Parse(); 211 job->Parse();
208 job->FinalizeParsingOnMainThread(); 212 job->FinalizeParsingOnMainThread();
209 job->PrepareToCompileOnMainThread(); 213 job->PrepareToCompileOnMainThread();
210 job->Compile(); 214 job->Compile();
211 ASSERT_TRUE(job->FinalizeCompilingOnMainThread()); 215 ASSERT_TRUE(job->FinalizeCompilingOnMainThread());
212 ASSERT_TRUE(job->status() == CompileJobStatus::kDone); 216 ASSERT_TRUE(job->status() == CompileJobStatus::kDone);
213 217
214 Smi* value = Smi::cast(*RunJS(isolate(), "f(100);")); 218 Smi* value = Smi::cast(*RunJS(isolate(), "f(100);"));
215 ASSERT_TRUE(value == Smi::FromInt(160)); 219 ASSERT_TRUE(value == Smi::FromInt(160));
216 220
217 job->ResetOnMainThread(); 221 job->ResetOnMainThread();
218 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 222 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
219 } 223 }
220 224
221 TEST_F(CompilerDispatcherJobTest, CompileFailureToPrepare) { 225 TEST_F(CompilerDispatcherJobTest, CompileFailureToPrepare) {
222 std::string raw_script("() { var a = "); 226 std::string raw_script("() { var a = ");
223 for (int i = 0; i < 100000; i++) { 227 for (int i = 0; i < 100000; i++) {
224 raw_script += "'x' + "; 228 raw_script += "'x' + ";
225 } 229 }
226 raw_script += " 'x'; }"; 230 raw_script += " 'x'; }";
227 ScriptResource script(raw_script.c_str(), strlen(raw_script.c_str())); 231 ScriptResource script(raw_script.c_str(), strlen(raw_script.c_str()));
228 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 232 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
229 i_isolate(), CreateFunction(i_isolate(), &script), 100)); 233 i_isolate(), CreateSharedFunctionInfo(i_isolate(), &script), 100));
230 234
231 job->PrepareToParseOnMainThread(); 235 job->PrepareToParseOnMainThread();
232 job->Parse(); 236 job->Parse();
233 job->FinalizeParsingOnMainThread(); 237 job->FinalizeParsingOnMainThread();
234 ASSERT_FALSE(job->PrepareToCompileOnMainThread()); 238 ASSERT_FALSE(job->PrepareToCompileOnMainThread());
235 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed); 239 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed);
236 ASSERT_TRUE(i_isolate()->has_pending_exception()); 240 ASSERT_TRUE(i_isolate()->has_pending_exception());
237 241
238 i_isolate()->clear_pending_exception(); 242 i_isolate()->clear_pending_exception();
239 job->ResetOnMainThread(); 243 job->ResetOnMainThread();
240 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 244 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
241 } 245 }
242 246
243 TEST_F(CompilerDispatcherJobTest, CompileFailureToFinalize) { 247 TEST_F(CompilerDispatcherJobTest, CompileFailureToFinalize) {
244 std::string raw_script("() { var a = "); 248 std::string raw_script("() { var a = ");
245 for (int i = 0; i < 1000; i++) { 249 for (int i = 0; i < 1000; i++) {
246 raw_script += "'x' + "; 250 raw_script += "'x' + ";
247 } 251 }
248 raw_script += " 'x'; }"; 252 raw_script += " 'x'; }";
249 ScriptResource script(raw_script.c_str(), strlen(raw_script.c_str())); 253 ScriptResource script(raw_script.c_str(), strlen(raw_script.c_str()));
250 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 254 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
251 i_isolate(), CreateFunction(i_isolate(), &script), 50)); 255 i_isolate(), CreateSharedFunctionInfo(i_isolate(), &script), 50));
252 256
253 job->PrepareToParseOnMainThread(); 257 job->PrepareToParseOnMainThread();
254 job->Parse(); 258 job->Parse();
255 job->FinalizeParsingOnMainThread(); 259 job->FinalizeParsingOnMainThread();
256 job->PrepareToCompileOnMainThread(); 260 job->PrepareToCompileOnMainThread();
257 job->Compile(); 261 job->Compile();
258 ASSERT_FALSE(job->FinalizeCompilingOnMainThread()); 262 ASSERT_FALSE(job->FinalizeCompilingOnMainThread());
259 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed); 263 ASSERT_TRUE(job->status() == CompileJobStatus::kFailed);
260 ASSERT_TRUE(i_isolate()->has_pending_exception()); 264 ASSERT_TRUE(i_isolate()->has_pending_exception());
261 265
(...skipping 22 matching lines...) Expand all
284 TEST_F(IgnitionCompilerDispatcherJobTest, CompileOnBackgroundThread) { 288 TEST_F(IgnitionCompilerDispatcherJobTest, CompileOnBackgroundThread) {
285 const char* raw_script = 289 const char* raw_script =
286 "(a, b) {\n" 290 "(a, b) {\n"
287 " var c = a + b;\n" 291 " var c = a + b;\n"
288 " function bar() { return b }\n" 292 " function bar() { return b }\n"
289 " var d = { foo: 100, bar : bar() }\n" 293 " var d = { foo: 100, bar : bar() }\n"
290 " return bar;" 294 " return bar;"
291 "}"; 295 "}";
292 ScriptResource script(raw_script, strlen(raw_script)); 296 ScriptResource script(raw_script, strlen(raw_script));
293 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob( 297 std::unique_ptr<CompilerDispatcherJob> job(new CompilerDispatcherJob(
294 i_isolate(), CreateFunction(i_isolate(), &script), 100)); 298 i_isolate(), CreateSharedFunctionInfo(i_isolate(), &script), 100));
295 299
296 job->PrepareToParseOnMainThread(); 300 job->PrepareToParseOnMainThread();
297 job->Parse(); 301 job->Parse();
298 job->FinalizeParsingOnMainThread(); 302 job->FinalizeParsingOnMainThread();
299 job->PrepareToCompileOnMainThread(); 303 job->PrepareToCompileOnMainThread();
300 ASSERT_TRUE(job->can_compile_on_background_thread()); 304 ASSERT_TRUE(job->can_compile_on_background_thread());
301 305
302 base::Semaphore semaphore(0); 306 base::Semaphore semaphore(0);
303 CompileTask* background_task = new CompileTask(job.get(), &semaphore); 307 CompileTask* background_task = new CompileTask(job.get(), &semaphore);
304 V8::GetCurrentPlatform()->CallOnBackgroundThread(background_task, 308 V8::GetCurrentPlatform()->CallOnBackgroundThread(background_task,
305 Platform::kShortRunningTask); 309 Platform::kShortRunningTask);
306 semaphore.Wait(); 310 semaphore.Wait();
307 ASSERT_TRUE(job->FinalizeCompilingOnMainThread()); 311 ASSERT_TRUE(job->FinalizeCompilingOnMainThread());
308 ASSERT_TRUE(job->status() == CompileJobStatus::kDone); 312 ASSERT_TRUE(job->status() == CompileJobStatus::kDone);
309 313
310 job->ResetOnMainThread(); 314 job->ResetOnMainThread();
311 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial); 315 ASSERT_TRUE(job->status() == CompileJobStatus::kInitial);
312 } 316 }
313 317
314 } // namespace internal 318 } // namespace internal
315 } // namespace v8 319 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime-function.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698