Implement the core of the generator functions. (#3368)
Some things are missing: - yield* support - generator definition in object literal - the hidden GeneratorFunction JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
committed by
Dániel Bátyai
parent
14e95a4775
commit
110f75c99d
@@ -1750,6 +1750,35 @@ typedef struct
|
||||
|
||||
#endif /* ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) */
|
||||
|
||||
#if ENABLED (JERRY_ES2015)
|
||||
|
||||
/**
|
||||
* Executable (e.g. generator, async) object flags.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ECMA_EXECUTABLE_OBJECT_COMPLETED = (1u << 0), /**< executable object is completed and cannot be resumed */
|
||||
ECMA_EXECUTABLE_OBJECT_RUNNING = (1u << 1), /**< executable object is currently running */
|
||||
} ecma_executable_object_flags_t;
|
||||
|
||||
/**
|
||||
* Checks whether the executable object is waiting for resuming.
|
||||
*/
|
||||
#define ECMA_EXECUTABLE_OBJECT_IS_SUSPENDED(extra_info) \
|
||||
(!((extra_info) & (ECMA_EXECUTABLE_OBJECT_COMPLETED | ECMA_EXECUTABLE_OBJECT_RUNNING)))
|
||||
|
||||
/**
|
||||
* Executable (e.g. generator, async) object flags.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ECMA_GENERATOR_NEXT, /**< generator should continue its execution */
|
||||
ECMA_GENERATOR_RETURN, /**< generator should perform a return operation */
|
||||
ECMA_GENERATOR_THROW, /**< generator should perform a throw operation */
|
||||
} ecma_generator_yield_mode_t;
|
||||
|
||||
#endif /* ENABLED (JERRY_ES2015) */
|
||||
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW)
|
||||
/**
|
||||
* Description of DataView objects.
|
||||
|
||||
Reference in New Issue
Block a user