Update jerry_run_all_enqueued_jobs() function and documentation (#4283)
Make sure it always returns an error or an undefined value. JerryScript-DCO-1.0-Signed-off-by: Daniel Balla dballa@inf.u-szeged.hu
This commit is contained in:
@@ -1364,6 +1364,9 @@ jerry_eval (const jerry_char_t *source_p,
|
||||
|
||||
Run enqueued Promise jobs until the first thrown error or until all get executed.
|
||||
|
||||
*Important Note*: The job queue is not guaranteed to be empty, after the function call has returned a value.
|
||||
Therefore, this function is best used in a while loop, handling each error it returns, until the job queue is empty.
|
||||
|
||||
*Note*: Returned value must be freed with [jerry_release_value](#jerry_release_value) when it
|
||||
is no longer needed.
|
||||
|
||||
@@ -1394,7 +1397,27 @@ main (void)
|
||||
|
||||
jerry_value_t parsed_code = jerry_parse (NULL, 0, script, sizeof (script) - 1, JERRY_PARSE_NO_OPTS);
|
||||
jerry_value_t script_value = jerry_run (parsed_code);
|
||||
jerry_value_t job_value = jerry_run_all_enqueued_jobs ();
|
||||
|
||||
jerry_value_t job_value;
|
||||
while (true)
|
||||
{
|
||||
job_value = jerry_run_all_enqueued_jobs ();
|
||||
|
||||
if (jerry_value_is_error (job_value))
|
||||
{
|
||||
if (jerry_value_is_abort (job_value))
|
||||
{
|
||||
// Terminate the engine
|
||||
}
|
||||
|
||||
// Handle the error here
|
||||
}
|
||||
else
|
||||
{
|
||||
// The queue should be empty now
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
jerry_release_value (job_value);
|
||||
jerry_release_value (script_value);
|
||||
|
||||
Reference in New Issue
Block a user