OLD | NEW |
1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 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/builtins/builtins-async-gen.h" | 5 #include "src/builtins/builtins-async-gen.h" |
6 #include "src/builtins/builtins-utils-gen.h" | 6 #include "src/builtins/builtins-utils-gen.h" |
7 #include "src/builtins/builtins.h" | 7 #include "src/builtins/builtins.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stub-assembler.h" | 9 #include "src/code-stub-assembler.h" |
10 #include "src/frames-inl.h" | 10 #include "src/frames-inl.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 #endif | 227 #endif |
228 | 228 |
229 ClearAwaitedPromise(generator); | 229 ClearAwaitedPromise(generator); |
230 | 230 |
231 CSA_SLOW_ASSERT(this, IsGeneratorSuspended(generator)); | 231 CSA_SLOW_ASSERT(this, IsGeneratorSuspended(generator)); |
232 | 232 |
233 CallStub(CodeFactory::ResumeGenerator(isolate()), context, value, generator, | 233 CallStub(CodeFactory::ResumeGenerator(isolate()), context, value, generator, |
234 SmiConstant(resume_mode), | 234 SmiConstant(resume_mode), |
235 SmiConstant(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); | 235 SmiConstant(static_cast<int>(SuspendFlags::kAsyncGeneratorAwait))); |
236 | 236 |
237 TailCallStub(CodeFactory::AsyncGeneratorResumeNext(isolate()), context, | 237 TailCallBuiltin(Builtins::kAsyncGeneratorResumeNext, context, generator); |
238 generator); | |
239 } | 238 } |
240 | 239 |
241 template <typename Descriptor> | 240 template <typename Descriptor> |
242 void AsyncGeneratorBuiltinsAssembler::AsyncGeneratorAwait(bool is_catchable) { | 241 void AsyncGeneratorBuiltinsAssembler::AsyncGeneratorAwait(bool is_catchable) { |
243 Node* generator = Parameter(1); | 242 Node* generator = Parameter(1); |
244 Node* value = Parameter(2); | 243 Node* value = Parameter(2); |
245 Node* context = Parameter(5); | 244 Node* context = Parameter(5); |
246 | 245 |
247 CSA_SLOW_ASSERT(this, | 246 CSA_SLOW_ASSERT(this, |
248 HasInstanceType(generator, JS_ASYNC_GENERATOR_OBJECT_TYPE)); | 247 HasInstanceType(generator, JS_ASYNC_GENERATOR_OBJECT_TYPE)); |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 | 501 |
503 Node* const next = TakeFirstAsyncGeneratorRequestFromQueue(generator); | 502 Node* const next = TakeFirstAsyncGeneratorRequestFromQueue(generator); |
504 Node* const promise = LoadPromiseFromAsyncGeneratorRequest(next); | 503 Node* const promise = LoadPromiseFromAsyncGeneratorRequest(next); |
505 | 504 |
506 Return(CallBuiltin(Builtins::kRejectNativePromise, context, promise, value, | 505 Return(CallBuiltin(Builtins::kRejectNativePromise, context, promise, value, |
507 TrueConstant())); | 506 TrueConstant())); |
508 } | 507 } |
509 | 508 |
510 } // namespace internal | 509 } // namespace internal |
511 } // namespace v8 | 510 } // namespace v8 |
OLD | NEW |