V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
js-generator-inl.h
1 // Copyright 2018 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_OBJECTS_JS_GENERATOR_INL_H_
6 #define V8_OBJECTS_JS_GENERATOR_INL_H_
7 
8 #include "src/objects/js-generator.h"
9 #include "src/objects/js-promise-inl.h"
10 
11 #include "src/objects-inl.h" // Needed for write barriers
12 
13 // Has to be the last include (doesn't have include guards):
14 #include "src/objects/object-macros.h"
15 
16 namespace v8 {
17 namespace internal {
18 
19 CAST_ACCESSOR(JSAsyncFunctionObject)
20 CAST_ACCESSOR(JSAsyncGeneratorObject)
21 CAST_ACCESSOR(JSGeneratorObject)
22 CAST_ACCESSOR(AsyncGeneratorRequest)
23 
24 ACCESSORS(JSGeneratorObject, function, JSFunction, kFunctionOffset)
25 ACCESSORS2(JSGeneratorObject, context, Context, kContextOffset)
26 ACCESSORS(JSGeneratorObject, receiver, Object, kReceiverOffset)
27 ACCESSORS(JSGeneratorObject, input_or_debug_pos, Object, kInputOrDebugPosOffset)
28 SMI_ACCESSORS(JSGeneratorObject, resume_mode, kResumeModeOffset)
29 SMI_ACCESSORS(JSGeneratorObject, continuation, kContinuationOffset)
30 ACCESSORS2(JSGeneratorObject, parameters_and_registers, FixedArray,
31  kParametersAndRegistersOffset)
32 
33 ACCESSORS(AsyncGeneratorRequest, next, Object, kNextOffset)
34 SMI_ACCESSORS(AsyncGeneratorRequest, resume_mode, kResumeModeOffset)
35 ACCESSORS(AsyncGeneratorRequest, value, Object, kValueOffset)
36 ACCESSORS(AsyncGeneratorRequest, promise, Object, kPromiseOffset)
37 
38 bool JSGeneratorObject::is_suspended() const {
39  DCHECK_LT(kGeneratorExecuting, 0);
40  DCHECK_LT(kGeneratorClosed, 0);
41  return continuation() >= 0;
42 }
43 
44 bool JSGeneratorObject::is_closed() const {
45  return continuation() == kGeneratorClosed;
46 }
47 
48 bool JSGeneratorObject::is_executing() const {
49  return continuation() == kGeneratorExecuting;
50 }
51 
52 ACCESSORS(JSAsyncFunctionObject, promise, JSPromise, kPromiseOffset)
53 
54 ACCESSORS(JSAsyncGeneratorObject, queue, HeapObject, kQueueOffset)
55 SMI_ACCESSORS(JSAsyncGeneratorObject, is_awaiting, kIsAwaitingOffset)
56 
57 } // namespace internal
58 } // namespace v8
59 
60 #include "src/objects/object-macros-undef.h"
61 
62 #endif // V8_OBJECTS_JS_GENERATOR_INL_H_
Definition: libplatform.h:13