Implement async function execution. (#3897)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2020-06-17 12:08:01 +02:00
committed by GitHub
parent eb8e81d682
commit 8719f72e61
18 changed files with 663 additions and 173 deletions
+17 -5
View File
@@ -54,6 +54,19 @@ typedef enum
NUMBER_BITWISE_NOT, /**< bitwise NOT calculation */
} number_bitwise_logic_op;
#if ENABLED (JERRY_ESNEXT)
/**
* Types for opfunc_create_executable_object.
*/
typedef enum
{
VM_CREATE_EXECUTABLE_OBJECT_GENERATOR, /**< create a generator function */
VM_CREATE_EXECUTABLE_OBJECT_ASYNC, /**< create an async function */
} vm_create_executable_object_type_t;
#endif /* ENABLED (JERRY_ESNEXT) */
/**
* The stack contains spread object during the upcoming APPEND_ARRAY operation
*/
@@ -113,15 +126,14 @@ ecma_value_t
opfunc_append_array (ecma_value_t *stack_top_p, uint16_t values_length);
#if ENABLED (JERRY_ESNEXT)
ecma_value_t
opfunc_create_executable_object (vm_frame_ctx_t *frame_ctx_p);
vm_executable_object_t *
opfunc_create_executable_object (vm_frame_ctx_t *frame_ctx_p, vm_create_executable_object_type_t type);
extern const uint8_t opfunc_resume_executable_object_with_throw[];
ecma_value_t
opfunc_resume_executable_object (vm_executable_object_t *executable_object_p, ecma_value_t value);
ecma_value_t
opfunc_return_promise (ecma_value_t value);
ecma_value_t
opfunc_create_implicit_class_constructor (uint8_t opcode);