5 #ifndef V8_OBJECTS_JS_GENERATOR_INL_H_ 6 #define V8_OBJECTS_JS_GENERATOR_INL_H_ 8 #include "src/objects/js-generator.h" 9 #include "src/objects/js-promise-inl.h" 11 #include "src/objects-inl.h" 14 #include "src/objects/object-macros.h" 19 CAST_ACCESSOR(JSAsyncFunctionObject)
20 CAST_ACCESSOR(JSAsyncGeneratorObject)
21 CAST_ACCESSOR(JSGeneratorObject)
22 CAST_ACCESSOR(AsyncGeneratorRequest)
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)
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)
38 bool JSGeneratorObject::is_suspended()
const {
39 DCHECK_LT(kGeneratorExecuting, 0);
40 DCHECK_LT(kGeneratorClosed, 0);
41 return continuation() >= 0;
44 bool JSGeneratorObject::is_closed()
const {
45 return continuation() == kGeneratorClosed;
48 bool JSGeneratorObject::is_executing()
const {
49 return continuation() == kGeneratorExecuting;
52 ACCESSORS(JSAsyncFunctionObject, promise, JSPromise, kPromiseOffset)
54 ACCESSORS(JSAsyncGeneratorObject, queue, HeapObject, kQueueOffset)
55 SMI_ACCESSORS(JSAsyncGeneratorObject, is_awaiting, kIsAwaitingOffset)
60 #include "src/objects/object-macros-undef.h" 62 #endif // V8_OBJECTS_JS_GENERATOR_INL_H_