Implement yield* operation in generator functions. (#3407)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2019-12-05 13:50:53 +01:00
committed by Dániel Bátyai
parent 1829d2df55
commit 1a4972fc3f
13 changed files with 476 additions and 143 deletions
@@ -27,6 +27,16 @@
* @{
*/
/**
* Generator resume execution flags.
*/
typedef enum
{
ECMA_ITERATOR_NEXT, /**< generator should continue its execution */
ECMA_ITERATOR_RETURN, /**< generator should perform a return operation */
ECMA_ITERATOR_THROW, /**< generator should perform a throw operation */
} ecma_iterator_command_type_t;
/**
* Maximum value of [[%Iterator%NextIndex]] until it can be stored
* in an ecma pseudo array object structure element.
@@ -49,11 +59,15 @@ ecma_op_get_iterator (ecma_value_t value, ecma_value_t method);
ecma_value_t
ecma_op_iterator_value (ecma_value_t iter_result);
ecma_value_t
ecma_op_iterator_close (ecma_value_t iterator);
ecma_value_t
ecma_op_iterator_step (ecma_value_t iterator);
ecma_value_t
ecma_op_iterator_close (ecma_value_t iterator);
ecma_op_iterator_do (ecma_iterator_command_type_t command, ecma_value_t iterator,
ecma_value_t value, bool *done_p);
#endif /* ENABLED (JERRY_ES2015) */